Search in sources :

Example 6 with Exp

use of mondrian.olap.Exp in project mondrian by pentaho.

the class IifFunDefTest method setUp.

@Override
protected void setUp() throws Exception {
    when(trueCaseParamMock.getType()).thenReturn(setTypeMock);
    setListCalc = new SetListCalc(trueCaseParamMock, new Exp[] { args[1] }, compilerMock, ResultStyle.LIST_MUTABLELIST);
    call = new ResolvedFunCall(funDefMock, args, setTypeMock);
    when(compilerMock.compileAs(any(), any(), any())).thenReturn(setListCalc);
}
Also used : ResolvedFunCall(mondrian.mdx.ResolvedFunCall) SetListCalc(mondrian.olap.fun.SetFunDef.SetListCalc) Exp(mondrian.olap.Exp)

Example 7 with Exp

use of mondrian.olap.Exp in project mondrian by pentaho.

the class SqlConstraintUtilsTest method makeParenthesesExprMember.

private Member makeParenthesesExprMember(Evaluator evaluator, Member parenthesesInnerMember, String toString) {
    Member member = Mockito.mock(Member.class);
    Mockito.doReturn("mock[" + toString + "]").when(member).toString();
    Mockito.doReturn(true).when(member).isCalculated();
    Exp parenthesesArg = new MemberExpr(parenthesesInnerMember);
    FunDef funDef = new ParenthesesFunDef(Category.Member);
    Exp[] args = new Exp[] { parenthesesArg };
    Type returnType = new DecimalType(1, 1);
    Exp memberExp = new ResolvedFunCall(funDef, args, returnType);
    Mockito.doReturn(memberExp).when(member).getExpression();
    Assert.assertEquals(true, member.isCalculated());
    Assert.assertEquals(true, SqlConstraintUtils.isSupportedCalculatedMember(member));
    return member;
}
Also used : FunDef(mondrian.olap.FunDef) ParenthesesFunDef(mondrian.olap.fun.ParenthesesFunDef) AggregateFunDef(mondrian.olap.fun.AggregateFunDef) NullFunDef(mondrian.olap.fun.CrossJoinTest.NullFunDef) NullType(mondrian.olap.type.NullType) DecimalType(mondrian.olap.type.DecimalType) TupleType(mondrian.olap.type.TupleType) Type(mondrian.olap.type.Type) MemberExpr(mondrian.mdx.MemberExpr) ParenthesesFunDef(mondrian.olap.fun.ParenthesesFunDef) DecimalType(mondrian.olap.type.DecimalType) ResolvedFunCall(mondrian.mdx.ResolvedFunCall) Exp(mondrian.olap.Exp) Member(mondrian.olap.Member) TestMember(mondrian.olap.fun.TestMember)

Example 8 with Exp

use of mondrian.olap.Exp in project mondrian by pentaho.

the class SqlConstraintUtilsTest method makeMemberExprMember.

private Member makeMemberExprMember(Member resultMember) {
    Exp memberExp = new MemberExpr(resultMember);
    Member member = Mockito.mock(Member.class);
    Mockito.doReturn(true).when(member).isCalculated();
    Mockito.doReturn(memberExp).when(member).getExpression();
    return member;
}
Also used : MemberExpr(mondrian.mdx.MemberExpr) Exp(mondrian.olap.Exp) Member(mondrian.olap.Member) TestMember(mondrian.olap.fun.TestMember)

Example 9 with Exp

use of mondrian.olap.Exp 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;
}
Also used : SetEvaluator(mondrian.olap.Evaluator.SetEvaluator) FunDef(mondrian.olap.FunDef) ParenthesesFunDef(mondrian.olap.fun.ParenthesesFunDef) AggregateFunDef(mondrian.olap.fun.AggregateFunDef) NullFunDef(mondrian.olap.fun.CrossJoinTest.NullFunDef) NullType(mondrian.olap.type.NullType) DecimalType(mondrian.olap.type.DecimalType) TupleType(mondrian.olap.type.TupleType) Type(mondrian.olap.type.Type) UnaryTupleList(mondrian.calc.impl.UnaryTupleList) MemberExpr(mondrian.mdx.MemberExpr) DecimalType(mondrian.olap.type.DecimalType) AggregateFunDef(mondrian.olap.fun.AggregateFunDef) ResolvedFunCall(mondrian.mdx.ResolvedFunCall) Exp(mondrian.olap.Exp) Member(mondrian.olap.Member) TestMember(mondrian.olap.fun.TestMember)

Example 10 with Exp

use of mondrian.olap.Exp in project mondrian by pentaho.

the class SqlConstraintUtilsTest method makeUnsupportedExpressionForCalculatedMember.

private Exp makeUnsupportedExpressionForCalculatedMember() {
    Exp nullFunDefExpr = new ResolvedFunCall(new NullFunDef(), new Exp[] {}, new NullType());
    Assert.assertEquals(false, SqlConstraintUtils.isSupportedExpressionForCalculatedMember(nullFunDefExpr));
    return nullFunDefExpr;
}
Also used : NullFunDef(mondrian.olap.fun.CrossJoinTest.NullFunDef) ResolvedFunCall(mondrian.mdx.ResolvedFunCall) NullType(mondrian.olap.type.NullType) Exp(mondrian.olap.Exp)

Aggregations

Exp (mondrian.olap.Exp)18 ResolvedFunCall (mondrian.mdx.ResolvedFunCall)9 Member (mondrian.olap.Member)9 TestMember (mondrian.olap.fun.TestMember)7 DummyExp (mondrian.calc.DummyExp)5 MemberExpr (mondrian.mdx.MemberExpr)5 FunDef (mondrian.olap.FunDef)5 NullFunDef (mondrian.olap.fun.CrossJoinTest.NullFunDef)5 NullType (mondrian.olap.type.NullType)5 AggregateFunDef (mondrian.olap.fun.AggregateFunDef)4 ParenthesesFunDef (mondrian.olap.fun.ParenthesesFunDef)4 TupleType (mondrian.olap.type.TupleType)4 Type (mondrian.olap.type.Type)4 ArrayList (java.util.ArrayList)3 TupleList (mondrian.calc.TupleList)3 UnaryTupleList (mondrian.calc.impl.UnaryTupleList)3 DecimalType (mondrian.olap.type.DecimalType)3 List (java.util.List)2 TupleIterable (mondrian.calc.TupleIterable)2 SetEvaluator (mondrian.olap.Evaluator.SetEvaluator)2