use of mondrian.olap.Result in project mondrian by pentaho.
the class FunctionTest method testCurrentMemberInCalcMember.
/**
* When evaluating a calculated member, MSOLAP regards that calculated member as the current member of that dimension,
* so it cycles in this case. But I disagree; it is the previous current member, before the calculated member was
* expanded.
*/
public void testCurrentMemberInCalcMember() {
Result result = executeQuery("with member [Measures].[Foo] as '[Measures].CurrentMember.Name'\n" + "select {[Measures].[Foo]} on columns\n" + "from Sales");
Assert.assertEquals("Unit Sales", result.getCell(new int[] { 0 }).getValue());
}
use of mondrian.olap.Result in project mondrian by pentaho.
the class FunctionTest method testCurrentMemberMultiHierarchy.
public void testCurrentMemberMultiHierarchy() {
final String hierarchyName = MondrianProperties.instance().SsasCompatibleNaming.get() ? "Weekly" : "Time.Weekly";
final String queryString = "with member [Measures].[Foo] as\n" + " 'IIf(([Time].[Time].CurrentMember.Hierarchy.Name = \"" + hierarchyName + "\"), \n" + "[Measures].[Unit Sales], \n" + "- [Measures].[Unit Sales])'\n" + "select {[Measures].[Unit Sales], [Measures].[Foo]} ON COLUMNS,\n" + " {[Product].[Food].[Dairy]} ON ROWS\n" + "from [Sales]";
Result result = executeQuery(queryString + " where [Time].[1997]");
final int[] coords = { 1, 0 };
Assert.assertEquals("-12,885", result.getCell(coords).getFormattedValue());
// As above, but context provided on rows axis as opposed to slicer.
final String queryString1 = "with member [Measures].[Foo] as\n" + " 'IIf(([Time].[Time].CurrentMember.Hierarchy.Name = \"" + hierarchyName + "\"), \n" + "[Measures].[Unit Sales], \n" + "- [Measures].[Unit Sales])'\n" + "select {[Measures].[Unit Sales], [Measures].[Foo]} ON COLUMNS,";
final String queryString2 = "from [Sales]\n" + " where [Product].[Food].[Dairy] ";
result = executeQuery(queryString1 + " {[Time].[1997]} ON ROWS " + queryString2);
Assert.assertEquals("-12,885", result.getCell(coords).getFormattedValue());
result = executeQuery(queryString + " where [Time.Weekly].[1997]");
Assert.assertEquals("-12,885", result.getCell(coords).getFormattedValue());
result = executeQuery(queryString1 + " {[Time.Weekly].[1997]} ON ROWS " + queryString2);
Assert.assertEquals("-12,885", result.getCell(coords).getFormattedValue());
}
use of mondrian.olap.Result in project mondrian by pentaho.
the class FunctionTest method testCurrentMemberFromDefaultMember.
public void testCurrentMemberFromDefaultMember() {
Result result = executeQuery("with member [Measures].[Foo] as" + " '[Time].[Time].CurrentMember.Name'\n" + "select {[Measures].[Foo]} on columns\n" + "from Sales");
Assert.assertEquals("1997", result.getCell(new int[] { 0 }).getValue());
}
use of mondrian.olap.Result in project mondrian by pentaho.
the class FunctionTest method testVisualTotalsLevel.
public void testVisualTotalsLevel() {
Result result = getTestContext().executeQuery("select {[Measures].[Unit Sales]} on columns,\n" + "{[Product].[All Products],\n" + " [Product].[All Products].[Food].[Baked Goods].[Bread],\n" + " VisualTotals(\n" + " {[Product].[All Products].[Food].[Baked Goods].[Bread],\n" + " [Product].[All Products].[Food].[Baked Goods].[Bread].[Bagels],\n" + " [Product].[All Products].[Food].[Baked Goods].[Bread].[Muffins]},\n" + " \"**Subtotal - *\")} on rows\n" + "from [Sales]");
final List<Position> rowPos = result.getAxes()[1].getPositions();
final Member member0 = rowPos.get(0).get(0);
assertEquals("All Products", member0.getName());
assertEquals("(All)", member0.getLevel().getName());
final Member member1 = rowPos.get(1).get(0);
assertEquals("Bread", member1.getName());
assertEquals("Product Category", member1.getLevel().getName());
final Member member2 = rowPos.get(2).get(0);
assertEquals("*Subtotal - Bread", member2.getName());
assertEquals("Product Category", member2.getLevel().getName());
final Member member3 = rowPos.get(3).get(0);
assertEquals("Bagels", member3.getName());
assertEquals("Product Subcategory", member3.getLevel().getName());
final Member member4 = rowPos.get(4).get(0);
assertEquals("Muffins", member4.getName());
assertEquals("Product Subcategory", member4.getLevel().getName());
}
use of mondrian.olap.Result in project mondrian by pentaho.
the class FunctionTest method testFilterWithSlicer.
/**
* Make sure that slicer is in force when expression is applied on axis, E.g. select filter([Customers].members, [Unit
* Sales] > 100) from sales where ([Time].[1998])
*/
public void testFilterWithSlicer() {
Result result = executeQuery("select {[Measures].[Unit Sales]} on columns,\n" + " filter([Customers].[USA].children,\n" + " [Measures].[Unit Sales] > 20000) on rows\n" + "from Sales\n" + "where ([Time].[1997].[Q1])");
Axis rows = result.getAxes()[1];
// if slicer were ignored, there would be 3 rows
Assert.assertEquals(1, rows.getPositions().size());
Cell cell = result.getCell(new int[] { 0, 0 });
Assert.assertEquals("30,114", cell.getFormattedValue());
}
Aggregations