public class FunctionTest extends FoodMartTestCase
FunctionTest
tests the functions defined in
BuiltinFunTable
.propSaver
Constructor and Description |
---|
FunctionTest()
Creates a FunctionTest.
|
FunctionTest(String s)
Creates a FuncionTest with an explicit name.
|
allMember, assertAxisReturns, assertAxisThrows, assertBooleanExprReturns, assertExprThrows, assertQueriesReturnSimilarResults, assertQueryReturns, assertQueryThrows, assertSize, cubeByName, execute, executeExpr, executeQuery, executeSingletonAxis, genderMembersIncludingAll, getConnection, getDimensionWithName, getTestContext, isDefaultNullMemberRepresentation, isGroupingSetsSupported, member, productMembersPotScrubbersPotsAndPans, storeMembersCAAndOR, storeMembersUsaAndCanada, tearDown, verifySameNativeAndNot, warehouseMembersCanadaMexicoUsa
countTestCases, createResult, getName, run, run, runBare, runTest, setName, setUp, toString
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail
public FunctionTest()
public FunctionTest(String s)
s
- Test namepublic void testParallelPeriodMinValue()
public void testLagMinValue()
public void testParallelPeriodWithSlicer()
public void testParallelperiodOnLevelsString()
public void testParallelperiodOnStrToMember()
public void testNumericLiteral()
public void testStringLiteral()
public void testDimensionHierarchy()
public void testLevelDimension()
public void testMemberDimension()
public void testDimensionsNumeric()
public void testDimensionsString()
public void testDimensionsDepends()
public void testTime()
public void testBasic9()
public void testFirstInLevel9()
public void testHierarchyAll()
public void testNullMember()
public void testNullValue()
public void testNullInMultiplication()
public void testNullInAddition()
public void testNullInSubtraction()
public void testMemberLevel()
public void testLevelsNumeric()
public void testLevelsTooSmall()
public void testLevelsTooLarge()
public void testHierarchyLevelsString()
public void testHierarchyLevelsStringFail()
public void testLevelsString()
public void testLevelsStringFail()
public void testIsEmptyQuery()
public void testIsEmptyWithAggregate()
public void testIsEmpty()
public void testQueryWithoutValidMeasure()
public void testValidMeasure()
ValidMeasure
function.public void _testValidMeasureNonEmpty()
public void testValidMeasureTupleHasAnotherMember()
public void testValidMeasureDepends()
public void testValidMeasureNonVirtualCube()
public void testValidMeasureCalculatedMemberMeasure()
We can't allow calculated members in ValidMeasure so a proper message must be returned.
public void testAncestor()
public void testAncestorNumeric()
public void testAncestorHigher()
public void testAncestorSameLevel()
public void testAncestorWrongHierarchy()
public void testAncestorAllLevel()
public void testAncestorWithHiddenParent()
public void testAncestorDepends()
public void testAncestors()
public void testOrdinal()
public void testClosingPeriodNoArgs()
public void testClosingPeriodLevel()
public void testClosingPeriodLevelNotInTimeFails()
public void testClosingPeriodMember()
public void testClosingPeriodMemberLeaf()
public void testClosingPeriod()
public void testClosingPeriodBelow()
public void testCousin1()
public void testCousin2()
public void testCousinOverrun()
public void testCousinThreeDown()
public void testCousinSameLevel()
public void testCousinHigherLevel()
public void testCousinWrongHierarchy()
public void testParent()
public void testParentPC()
public void testMembers()
public void testHierarchyMembers()
public void testAllMembers()
public void testAddCalculatedMembers()
public void testStripCalculatedMembers()
public void testCurrentMember()
public void testCurrentMemberDepends()
public void testCurrentMemberFromSlicer()
public void testCurrentMemberFromDefaultMember()
public void testCurrentMemberMultiHierarchy()
public void testDefaultMember()
public void testCurrentMemberFromAxis()
public void testCurrentMemberInCalcMember()
public void testNamedSetCurrentOrdinalWithOrder()
public void testNamedSetCurrentOrdinalWithGenerate()
public void testNamedSetCurrentOrdinalWithFilter()
public void testNamedSetCurrentOrdinalWithCrossjoin()
public void testNamedSetCurrentOrdinalWithNonNamedSetFails()
public void testDimensionDefaultMember()
public void testDrilldownLevel()
public void testDrilldownLevelTop()
public void testDrilldownMemberEmptyExpr()
public void testDrilldownMember()
public void testFirstChildFirstInLevel()
public void testFirstChildAll()
public void testFirstChildOfChildless()
public void testFirstSiblingFirstInLevel()
public void testFirstSiblingLastInLevel()
public void testFirstSiblingAll()
public void testFirstSiblingRoot()
public void testFirstSiblingNull()
public void testLag()
public void testLagFirstInLevel()
public void testLagAll()
public void testLagRoot()
public void testLagRootTooFar()
public void testLastChild()
public void testLastChildLastInLevel()
public void testLastChildAll()
public void testLastChildOfChildless()
public void testLastSibling()
public void testLastSiblingFirstInLevel()
public void testLastSiblingAll()
public void testLastSiblingRoot()
public void testLastSiblingNull()
public void testLead()
public void testLeadNegative()
public void testLeadLastInLevel()
public void testLeadNull()
public void testLeadZero()
public void testBasic2()
public void testFirstInLevel2()
public void testAll2()
public void testBasic5()
public void testFirstInLevel5()
public void testAll5()
public void testBasic()
public void testFirstInLevel()
public void testAll()
public void testAggregateDepends()
public void testAggregate()
public void testAggregate2()
public void testAggregateWithIIF()
public void testAggregate2AllMembers()
public void testAggregateToSimulateCompoundSlicer()
public void testMultiselectCalculations()
Mosha discusses this behavior in the article Multiselect friendly MDX calculations.
Mondrian's behavior is consistent with MSAS 2K: it returns zeroes. SSAS 2005 returns an error, which can be fixed by reformulating the calculated members.
public void testAvg()
public void testCorrelation()
public void testCount()
public void testCountExcludeEmpty()
public void testCountExcludeEmptyNull()
For a fuller test case, see
XmlaCognosTest.testCognosMDXSuiteConvertedAdventureWorksToFoodMart_015()
public void testCountExcludeEmptyOnCubeWithNoCountFacts()
public void testCountExcludeEmptyOnVirtualCubeWithNoCountFacts()
public void testCovariance()
public void testCovarianceN()
public void testIIfNumeric()
public void testMax()
public void testMaxNegative()
public void testMedian()
public void testMedian2()
public void testPercentile()
public void testPercentileBugMondrian1045()
public void testMin()
public void testMinTuple()
public void testStdev()
public void testStdevP()
public void testSumNoExp()
public void testValue()
public void testVar()
public void testVarP()
public void testAs()
public void testAs2()
public void testAscendants()
public void testAscendantsAll()
public void testAscendantsNull()
public void testBottomCount()
public void testBottomPercent()
public void testBottomSum()
public void testExceptEmpty()
public void testExceptCrossjoin()
public void testExtract()
public void testTopPercentCrossjoin()
public void testCrossjoinNested()
public void testCrossjoinSingletonTuples()
public void testCrossjoinSingletonTuplesNested()
public void testCrossjoinAsterisk()
public void testCrossjoinAsteriskTuple()
public void testCrossjoinAsteriskAssoc()
public void testCrossjoinAsteriskInsideBraces()
public void testCrossJoinAsteriskQuery()
public void testCrossjoinResolve()
public void testCrossjoinOrder()
public void testCrossjoinDupHierarchyFails()
public void testCrossjoinDupDimensionOk()
testCrossjoinDupHierarchyFails()
). Not an error.public void testDescendantsM()
public void testDescendantsDepends()
public void testDescendantsML()
public void testDescendantsMLSelf()
public void testDescendantsMLLeaves()
public void testDescendantsMLLeavesRagged()
public void testDescendantsMNLeaves()
public void testDescendantsMLSelfBefore()
public void testDescendantsMLSelfBeforeAfter()
public void testDescendantsMLBefore()
public void testDescendantsMLBeforeAfter()
public void testDescendantsMLAfter()
public void testDescendantsMLAfterEnd()
public void testDescendantsM0()
public void testDescendantsM2()
public void testDescendantsM2Self()
public void testDescendantsM2Leaves()
public void testDescendantsMFarLeaves()
public void testDescendantsMEmptyLeaves()
public void testDescendantsMEmptyLeavesFail()
public void testDescendantsMEmptyLeavesFail2()
public void testDescendantsMFarSelf()
public void testDescendantsMNY()
public void testDescendants2ndHier()
public void testDescendantsParentChild()
public void testDescendantsParentChildBefore()
public void testDescendantsParentChildLeaves()
public void testDescendantsSBA()
public void testDescendantsSet()
public void testDescendantsSetEmpty()
public void testRange()
public void testNullRange()
public void testTwoNullRange()
public void testRangeLarge()
public void testRangeStartEqualsEnd()
public void testRangeStartEqualsEndLarge()
public void testRangeEndBeforeStart()
public void testRangeEndBeforeStartLarge()
public void testRangeBetweenDifferentLevelsIsError()
public void testRangeBoundedByAll()
public void testRangeBoundedByAllLarge()
public void testRangeBoundedByNull()
public void testRangeBoundedByNullLarge()
public void testSetContainingLevelFails()
public void testBug715177()
public void testBug714707()
public void testBug715177c()
public void testFormatFixed()
public void testFormatVariable()
public void testFormatMember()
public void testIIf()
public void testIIfWithNullAndNumber()
public void testIIfWithStringAndNull()
public void testIsEmptyWithNull()
public void testIIfMember()
public void testIIfLevel()
public void testIIfHierarchy()
public void testIIfDimension()
public void testIIfSet()
public void testDimensionCaption()
public void testHierarchyCaption()
public void testLevelCaption()
public void testMemberCaption()
public void testDimensionName()
public void testHierarchyName()
public void testLevelName()
public void testMemberName()
public void testDimensionUniqueName()
public void testHierarchyUniqueName()
public void testLevelUniqueName()
public void testMemberUniqueName()
public void testMemberUniqueNameOfNull()
public void testCoalesceEmptyDepends()
public void testCoalesceEmpty()
public void testBrokenContextBug()
public void testSetItemInt()
<Set>.Item(<Integer>)
.public void testSetItemString()
<Set>.Item(<String> [,...])
.public void testTuple()
public void testTupleArgTypes()
public void testTupleItem()
public void testTupleAppliedToUnknownHierarchy()
public void testTupleDepends()
public void testItemNull()
public void testTupleNull()
public void testLevelMemberExpressions()
public void testCaseTestMatch()
public void testCaseTestMatchElse()
public void testCaseTestMatchNoElse()
public void testCaseTestReturnsMemberBug1799391()
public void testCaseMatch()
public void testCaseMatchElse()
public void testCaseMatchNoElse()
public void testCaseTypeMismatch()
public void testCaseTuple()
public void testPropertiesExpr()
public void testPropertiesOnDimension()
public void testPropertiesNonExistent()
public void testPropertiesFilter()
public void testPropertyInCalculatedMember()
public void testOpeningPeriod()
public void testOpeningPeriodNull()
public void testLastPeriods()
public void testParallelPeriod()
public void _testParallelPeriodThrowsException()
public void testParallelPeriodDepends()
public void testParallelPeriodLevelLag()
public void testParallelPeriodLevel()
public void testPlus()
public void testMinus()
public void testMinus_bug1234759()
public void testMinusAssociativity()
public void testMultiply()
public void testMultiplyPrecedence()
public void testMultiplyBug774807()
public void testDivide()
public void testDividePrecedence()
public void testMod()
public void testUnaryMinus()
public void testUnaryMinusMember()
public void testUnaryMinusPrecedence()
public void testNegativeZero()
public void testNegativeZero1()
public void testNegativeZeroSubtract()
public void testNegativeZeroMultiply()
public void testNegativeZeroDivide()
public void testString()
public void testStringConcat()
public void testStringConcat2()
public void testAnd()
public void testAnd2()
public void testOr()
public void testOr2()
public void testOrAssociativity1()
public void testOrAssociativity2()
public void testOrAssociativity3()
public void testXor()
public void testXorAssociativity()
public void testNonEmptyCrossJoin()
public void testNot()
public void testNotNot()
public void testNotAssociativity()
public void testIsNull()
public void testIsMember()
public void testIsString()
public void testIsNumeric()
public void testIsTuple()
public void testIsLevel()
public void testIsHierarchy()
public void testIsDimension()
public void testStringEquals()
public void testStringEqualsAssociativity()
public void testStringEqualsEmpty()
public void testEq()
public void testStringNe()
public void testNe()
public void testNeInfinity()
public void testLt()
public void testLe()
public void testGt()
public void testGe()
public void testDistinctTwoMembers()
public void testDistinctThreeMembers()
public void testDistinctFourMembers()
public void testDistinctTwoTuples()
public void testDistinctSomeTuples()
public void testFilterWithSlicer()
public void testFilterCompound()
public void testGenerateDepends()
public void testGenerate()
public void testGenerateNonSet()
public void testGenerateAll()
public void testGenerateUnique()
public void testGenerateUniqueTuple()
public void testGenerateCrossJoin()
public void testGenerateString()
public void testHead()
public void testHeadNegative()
public void testHeadDefault()
public void testHeadOvershoot()
public void testHeadEmpty()
public void testHeadBug()
public void testHierarchize()
public void testHierarchizePost()
public void testHierarchizePC()
public void testHierarchizeCrossJoinPre()
public void testHierarchizeCrossJoinPost()
public void testHierarchizeOrdinal()
public void testIntersectAll()
public void testIntersect()
public void testIntersectTuples()
public void testIntersectRightEmpty()
public void testIntersectLeftEmpty()
public void testOrderDepends()
public void testOrderCalc()
public void testOrderWithMember()
public void testOrderNonEmpty()
public void testOrder()
public void testOrderParentsMissing()
public void testOrderCrossJoinBreak()
public void testOrderCrossJoin()
public void testOrderHierarchicalDesc()
public void testOrderCrossJoinDesc()
public void testOrderBug656802()
public void testOrderBug712702_Simplified()
public void testOrderBug712702_Original()
public void testOrderEmpty()
public void testOrderOne()
public void testOrderKeyEmpty()
public void testOrderKeyOne()
public void testOrderDesc()
public void testOrderMemberMemberValueExpNew()
public void testOrderMemberMemberValueExpNew1()
public void testOrderMemberDefaultFlag1()
public void testOrderMemberDefaultFlag2()
public void testOrderMemberMemberValueExpHierarchy()
public void testOrderMemberMultiKeysMemberValueExp1()
public void testOrderMemberMultiKeysMemberValueExp2()
public void testOrderMemberMultiKeysMemberValueExpDepends()
public void testOrderTupleSingleKeysNew()
public void testOrderTupleSingleKeysNew1()
public void testOrderTupleMultiKeys1()
public void testOrderTupleMultiKeys2()
public void testOrderTupleMultiKeys3()
public void testOrderTupleMultiKeyswithVCube()
public void testOrderConstant1()
public void testOrderDiffrentDim()
public void testUnorder()
public void testSiblingsA()
public void testSiblingsB()
public void testSiblingsC()
public void testSiblingsD()
public void testSubset()
public void testSubsetNegativeCount()
public void testSubsetNegativeStart()
public void testSubsetDefault()
public void testSubsetOvershoot()
public void testSubsetEmpty()
public void testTail()
public void testTailNegative()
public void testTailDefault()
public void testTailOvershoot()
public void testTailEmpty()
public void testToggleDrillState()
public void testToggleDrillState2()
public void testToggleDrillState3()
public void testToggleDrillStateTuple()
public void testToggleDrillStateRecursive()
public void testTopCount()
public void testTopCountTuple()
public void testTopCountEmpty()
public void testTopCountDepends()
public void testTopCountHuge()
Before optimizing (see FunUtil.partialSort), on a 2-core 32-bit 2.4GHz machine, the 1st query took 14.5 secs, the 2nd query took 5.0 secs. After optimizing, who knows?
public void testTopPercent()
public void testTopSum()
public void testTopSumEmpty()
public void testUnionAll()
public void testUnionAllTuple()
public void testUnion()
public void testUnionEmptyBoth()
public void testUnionEmptyRight()
public void testUnionTuple()
public void testUnionTupleDistinct()
public void testUnionQuery()
public void testItemMember()
public void testItemTuple()
public void testStrToMember()
public void testStrToMemberUniqueName()
public void testStrToMemberFullyQualifiedName()
public void testStrToMemberNull()
public void testStrToMemberIgnoreInvalidMembers()
public void testStrToTuple()
public void testStrToTupleIgnoreInvalidMembers()
public void testStrToTupleDuHierarchiesFails()
public void testStrToTupleDupHierInSameDimensions()
public void testStrToTupleDepends()
public void testStrToSet()
public void testStrToSetDupDimensionsFails()
public void testStrToSetIgnoreInvalidMembers()
public void testYtd()
public void testGeneratePlusXtd()
public void testQtd()
public void testMtd()
public void testPeriodsToDate()
public void testSetToStr()
public void testTupleToStr()
public void assertExprReturns(String expr, String expected)
assertExprReturns("1 + 2", "3")
should succeed.assertExprReturns
in class FoodMartTestCase
public void assertExprReturns(String expr, double expected, double delta)
expr
- MDX scalar expressionexpected
- Expected valuedelta
- Maximum allowed deviation from expected valuepublic void assertExprCompilesTo(String expr, String expectedCalc)
public void assertAxisCompilesTo(String expr, String expectedCalc)
public void testRank()
Rank(member, set)
MDX function.public void testRankWithExpr()
public void testRankMembersWithTiedExpr()
public void testRankTuplesWithTiedExpr()
public void testRankWithExpr2()
public void testRankWithNulls()
public void testRankHuge()
public void _testRank3Huge()
testRankHuge()
, but for the 3-argument form of the
RANK
function.
Disabled by jhyde, 2006/2/14. Bug 1431316 logged.
public void testLinRegPointQuarter()
public void _testLinRegAll()
public void testLinRegPointMonth()
public void testLinRegIntercept()
public void testLinRegSlope()
public void testLinRegPoint()
public void _testLinRegR2()
public void _testLinRegVariance()
public void testVisualTotalsBasic()
public void testVisualTotalsConsecutively()
public void testVisualTotalsNoPattern()
public void testVisualTotalsWithFilter()
public void testVisualTotalsNested()
public void testVisualTotalsFilterInside()
public void testVisualTotalsOutOfOrder()
public void testVisualTotalsGrandparentsAndOutOfOrder()
public void testVisualTotalsCrossjoin()
public void testVisualTotalsAll()
public void testVisualTotalsWithNamedSetAndPivot()
public void testVisualTotalsIntersect()
Testcase for bug MONDRIAN-295, "Query generated by Excel 2007 gives incorrect results".
public void testVisualTotalsWithNamedSetAndPivotSameAxis()
public void testVisualTotalsDistinctCountMeasure()
public void testVisualTotalsClassCast()
public void testVisualTotalsWithNamedSetOfTuples()
Testcase for bug MONDRIAN-678, "VisualTotals gives UnsupportedOperationException calling getOrdinal". Key difference from previous test is that there are multiple hierarchies in Named set.
public void testVisualTotalsLevel()
public void testVisualTotalsMemberInCalculation()
The bug is not currently fixed, so it is a negative test case. Row #2 cell #1 contains an exception, but should be "**Subtotal - Bread : Product Subcategory".
public void testCalculatedChild()
public void testCalculatedChildUsingItem()
public void testCalculatedChildOnMemberWithNoChildren()
public void testCalculatedChildOnNullMember()
public void testCast()
public void testCastBug524()
public void testDumpFunctions() throws IOException
FunTable.getFunInfoList()
, but more
importantly, generates an HTML table of all implemented functions into
a file called "functions.html". You can manually include that table
in the MDX
specification.IOException
public void testComplexOrExpr()
public void testLeftFunctionWithValidArguments()
public void testLeftFunctionWithLengthValueZero()
public void testLeftFunctionWithLengthValueEqualToStringLength()
public void testLeftFunctionWithLengthMoreThanStringLength()
public void testLeftFunctionWithZeroLengthString()
public void testLeftFunctionWithNegativeLength()
public void testMidFunctionWithValidArguments()
public void testMidFunctionWithZeroLengthStringArgument()
public void testMidFunctionWithLengthArgumentLargerThanStringLength()
public void testMidFunctionWithStartIndexGreaterThanStringLength()
public void testMidFunctionWithStartIndexZeroFails()
public void testMidFunctionWithStartIndexOne()
public void testMidFunctionWithNegativeStartIndex()
public void testMidFunctionWithNegativeLength()
public void testMidFunctionWithoutLength()
public void testLenFunctionWithNonEmptyString()
public void testLenFunctionWithAnEmptyString()
public void testLenFunctionWithNullString()
public void testUCaseWithNonEmptyString()
public void testUCaseWithEmptyString()
public void testInStrFunctionWithValidArguments()
public void testIifFWithBooleanBooleanAndNumericParameterForReturningTruePart()
public void testIifWithBooleanBooleanAndNumericParameterForReturningFalsePart()
public void testIIFWithBooleanBooleanAndNumericParameterForReturningZero()
public void testInStrFunctionWithEmptyString1()
public void testInStrFunctionWithEmptyString2()
public void testGetCaptionUsingMemberDotCaption()
public void testCache()
public void testVbaBasic()
public void testVbaOverloading()
public void testVbaExceptions()
public void testVbaDateTime()
public void testExcelPi()
public void testExcelPower()
public void testBug1881739()
public void testCubeTimeDimensionFails()
public void testFilterEmpty()
public void testFilterCalcSlicer()
public void testExistsMembersAll()
public void testExistsMembersLevel2()
public void testExistsWithImplicitAllMember()
public void testExistsWithMultipleHierarchies()
public void testExistsWithDefaultNonAllMember()
public void testExistsMembers2Hierarchies()
public void testExistsTuplesAll()
public void testExistsTuplesLevel2()
public void testExistsTuplesLevel23()
public void testExistsTuples2Dim()
public void testExistsTuplesDiffDim()
public void testComplexQuery()
public void testDateParameter() throws Exception
Exception
public void testHierarchizeExcept() throws Exception
This test makes sure that Hierarchize and Except can be used within each other and that the sort order is maintained.
Exception
public void testTopPercentWithAlias()
The results should be equivalent either we use aliases or not