use of mondrian.olap.Member in project mondrian by pentaho.
the class SqlConstraintUtilsTest method testExpandSupportedCalculatedMember_notCalculated.
public void testExpandSupportedCalculatedMember_notCalculated() {
// init
Evaluator evaluator = Mockito.mock(Evaluator.class);
Member member = makeNoncalculatedMember("0");
// tested call
TupleConstraintStruct constraint = new TupleConstraintStruct();
SqlConstraintUtils.expandSupportedCalculatedMember(member, evaluator, constraint);
List<Member> r = constraint.getMembers();
// test
Assert.assertNotNull(r);
Assert.assertEquals(1, r.size());
Assert.assertSame(member, r.get(0));
}
use of mondrian.olap.Member in project mondrian by pentaho.
the class SqlConstraintUtilsTest method testGetSetFromCalculatedMember_disjoint.
/**
* calculation test for disjoint tuples
*/
public void testGetSetFromCalculatedMember_disjoint() {
final int ARITY = 2;
List<Member> listColumn1 = new ArrayList<Member>();
List<Member> listColumn2 = new ArrayList<Member>();
listColumn1.add(new TestMember("elem1_col1"));
listColumn1.add(new TestMember("elem2_col1"));
listColumn2.add(new TestMember("elem1_col2"));
listColumn2.add(new TestMember("elem2_col2"));
final List<List<Member>> table = new ArrayList<List<Member>>();
table.add(listColumn1);
table.add(listColumn2);
TupleConstraintStruct res = getCalculatedMember(table, ARITY);
TupleList tuple = res.getDisjoinedTupleLists().get(0);
// should be empty
assertTrue(res.getMembers().isEmpty());
assertEquals(tuple.getArity(), ARITY);
assertEquals(tuple.get(0).get(0), listColumn1.get(0));
assertEquals(tuple.get(0).get(1), listColumn1.get(1));
assertEquals(tuple.get(1).get(0), listColumn2.get(0));
assertEquals(tuple.get(1).get(1), listColumn2.get(1));
}
use of mondrian.olap.Member in project mondrian by pentaho.
the class SqlConstraintUtilsTest method testIsSupportedCalculatedMember.
public void testIsSupportedCalculatedMember() {
Member member = Mockito.mock(Member.class);
Assert.assertEquals(false, member.isCalculated());
Assert.assertEquals(false, SqlConstraintUtils.isSupportedCalculatedMember(member));
Mockito.doReturn(true).when(member).isCalculated();
Assert.assertEquals(null, member.getExpression());
Assert.assertEquals(false, SqlConstraintUtils.isSupportedCalculatedMember(member));
Mockito.doReturn(makeUnsupportedExpressionForCalculatedMember()).when(member).getExpression();
Assert.assertEquals(false, SqlConstraintUtils.isSupportedCalculatedMember(member));
Mockito.doReturn(makeSupportedExpressionForCalculatedMember()).when(member).getExpression();
Assert.assertEquals(true, SqlConstraintUtils.isSupportedCalculatedMember(member));
}
use of mondrian.olap.Member in project mondrian by pentaho.
the class SqlConstraintUtilsTest method testExpandSupportedCalculatedMember_calculated_aggregate.
public void testExpandSupportedCalculatedMember_calculated_aggregate() {
Evaluator evaluator = Mockito.mock(Evaluator.class);
Member endMember0 = Mockito.mock(Member.class);
Member endMember1 = Mockito.mock(Member.class);
Member endMember2 = Mockito.mock(Member.class);
Member member = null;
List<Member> r = null;
List<Member> aggregatedMembers = null;
// 0
aggregatedMembers = Collections.emptyList();
member = makeAggregateExprMember(evaluator, aggregatedMembers);
// tested call
TupleConstraintStruct constraint = new TupleConstraintStruct();
SqlConstraintUtils.expandSupportedCalculatedMember(member, evaluator, true, constraint);
r = constraint.getMembers();
// test
assertSameContent("", aggregatedMembers, r);
// 1
aggregatedMembers = Collections.singletonList(endMember0);
member = makeAggregateExprMember(evaluator, aggregatedMembers);
// tested call
constraint = new TupleConstraintStruct();
SqlConstraintUtils.expandSupportedCalculatedMember(member, evaluator, constraint);
r = constraint.getMembers();
// test
assertSameContent("", aggregatedMembers, r);
// 2
aggregatedMembers = Arrays.asList(new Member[] { endMember0, endMember1 });
member = makeAggregateExprMember(evaluator, aggregatedMembers);
// tested call
constraint = new TupleConstraintStruct();
SqlConstraintUtils.expandSupportedCalculatedMember(member, evaluator, constraint);
r = constraint.getMembers();
// test
assertSameContent("", aggregatedMembers, r);
// 3
aggregatedMembers = Arrays.asList(new Member[] { endMember0, endMember1, endMember2 });
member = makeAggregateExprMember(evaluator, aggregatedMembers);
// tested call
constraint = new TupleConstraintStruct();
SqlConstraintUtils.expandSupportedCalculatedMember(member, evaluator, constraint);
r = constraint.getMembers();
// test
assertSameContent("", aggregatedMembers, r);
}
use of mondrian.olap.Member in project mondrian by pentaho.
the class SqlConstraintUtilsTest method makeAggregateExprMember.
private Member makeAggregateExprMember(Evaluator mockEvaluator, List<Member> endMembers) {
Member member = Mockito.mock(Member.class);
Mockito.doReturn(true).when(member).isCalculated();
Member aggregatedMember0 = Mockito.mock(Member.class);
Exp aggregateArg0 = new MemberExpr(aggregatedMember0);
FunDef dummy = Mockito.mock(FunDef.class);
Mockito.doReturn(Syntax.Function).when(dummy).getSyntax();
Mockito.doReturn("dummy").when(dummy).getName();
FunDef funDef = new AggregateFunDef(dummy);
Exp[] args = new Exp[] { aggregateArg0 };
Type returnType = new DecimalType(1, 1);
Exp memberExp = new ResolvedFunCall(funDef, args, returnType);
Mockito.doReturn(memberExp).when(member).getExpression();
SetEvaluator setEvaluator = Mockito.mock(SetEvaluator.class);
Mockito.doReturn(setEvaluator).when(mockEvaluator).getSetEvaluator(aggregateArg0, true);
Mockito.doReturn(new UnaryTupleList(endMembers)).when(setEvaluator).evaluateTupleIterable();
Assert.assertEquals(true, member.isCalculated());
Assert.assertEquals(true, SqlConstraintUtils.isSupportedCalculatedMember(member));
return member;
}
Aggregations