mondrian.rolap.agg
Class AggregationOnDistinctCountMeasuresTest

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by mondrian.test.FoodMartTestCase
              extended by mondrian.rolap.BatchTestCase
                  extended by mondrian.rolap.agg.AggregationOnDistinctCountMeasuresTest
All Implemented Interfaces:
junit.framework.Test

public class AggregationOnDistinctCountMeasuresTest
extends BatchTestCase

AggregationOnDistinctCountMeasureTest tests the Distinct Count functionality with tuples and members.

Since:
19 December, 2007
Author:
ajogleka

Nested Class Summary
 
Nested classes/interfaces inherited from class mondrian.rolap.BatchTestCase
BatchTestCase.TestCase
 
Field Summary
 
Fields inherited from class mondrian.rolap.BatchTestCase
cubeNameSales, fieldGender, fieldProductDepartment, fieldProductFamily, fieldValueProductDepartment, fieldValuesGender, fieldValuesProductFamily, fieldValuesYear, fieldYear, measureUnitSales, tableCustomer, tableProductClass, tableTime
 
Fields inherited from class mondrian.test.FoodMartTestCase
propSaver
 
Constructor Summary
AggregationOnDistinctCountMeasuresTest()
           
 
Method Summary
 TestContext getTestContext()
          Returns the test context.
protected  void setUp()
           
 void testAggregateMaxConstraints()
          Test case for MONDRIAN-1122, "Aggregation is not supported over a list with more than 1000 predicates".
 void testAggregatesAtTheSameLevelForNormalAndDistinctCountMeasure()
           
 void testAggregationListOptimizationForChildren()
           
 void testAggregationOfMembersAndDefaultMemberWithoutGroupingSets()
           
 void testAggregationOnCJofMembersGeneratesOptimalQuery()
           
 void testAggregationOverLargeListGeneratesError()
           
 void testCanNotBatchForDifferentCompoundPredicate()
           
 void testCrossJoinMembersWithASingleMember()
           
 void testCrossJoinMembersWithSetOfMembers()
           
 void testCrossJoinOfAllMembers()
           
 void testCrossJoinOfJoiningAndNonJoiningDimension()
           
 void testCrossJoinOfJoiningAndNonJoiningDimensionWithAllMember()
           
 void testCrossJoinParticularMembersFromTwoDimensions()
           
 void testDistinctCountForAggregatesAtTheSameLevel()
           
 void testDistinctCountInNonGroupingSetsQuery()
          Test distinct count agg happens in non gs query for subset of members with mixed measures.
 void testDistinctCountOnMembersWithNonJoiningDimensionNotAtAllLevel()
           
 void testDistinctCountOnSetOfMembers()
           
 void testDistinctCountOnSetOfMembersFromOneDimension()
           
 void testDistinctCountOnTuplesWithSomeNonJoiningDimensions()
           
 void testDistinctCountWithAMeasureAsPartOfTuple()
           
 void testMemberCountIsNotSameForAllMembersInTuple()
           
 void testMemberCountIsSameForAllMembersInTuple()
           
 void testMondrian906()
          This test makes sure that the AggregateFunDef will not optimize a tuples list when the rollup policy is set to something else than FULL, as it results in wrong data for a distinct count operation when using roles to narrow down the members access.
 void testMultiLevelMembersMixedNullNonNullParent()
           
 void testMultiLevelMembersNullParents()
           
 void testMultiLevelsMixedNullNonNullChild()
           
 void testNonJoiningDimensionWithAllMember()
           
 void testOptimizeChildren()
           
 void testOptimizeChildrenForTuplesWithLength1()
           
 void testOptimizeChildrenForTuplesWithLength3()
           
 void testOptimizeChildrenWhenTuplesAreFormedWithDifferentLevels()
           
 void testOptimizeListWhenTuplesAreFormedWithDifferentLevels()
           
 void testOptimizeListWithTuplesOfLength3()
           
 void testShouldNotRemoveDuplicateTuples()
           
 void testTupleOptimizationBug1225()
          This is a test for MONDRIAN-1225
 void testTupleWithAllLevelMembersOnly()
           
 void testWhetherCJOfChildren()
           
 
Methods inherited from class mondrian.rolap.BatchTestCase
assertNative, assertNoQuerySql, assertNotNative, assertQuerySql, assertQuerySql, assertQuerySql, assertQuerySqlOrNot, assertRequestSql, assertRequestSql, checkNative, checkNative, checkNative, checkNotNative, checkNotNative, checkNotNative, createBatch, createBatch, createRequest, createRequest, createRequest, createRequest, dialectize, executeQuery, getCube, getFoodMartConnection, getGroupingSet, getMeasure
 
Methods inherited from class mondrian.test.FoodMartTestCase
allMember, assertAxisReturns, assertAxisThrows, assertBooleanExprReturns, assertExprReturns, assertExprThrows, assertQueriesReturnSimilarResults, assertQueryReturns, assertQueryThrows, assertSize, cubeByName, execute, executeExpr, executeQuery, executeSingletonAxis, genderMembersIncludingAll, getConnection, getDimensionWithName, isDefaultNullMemberRepresentation, isGroupingSetsSupported, member, productMembersPotScrubbersPotsAndPans, storeMembersCAAndOR, storeMembersUsaAndCanada, tearDown, warehouseMembersCanadaMexicoUsa
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, runTest, setName, toString
 
Methods inherited from class junit.framework.Assert
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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AggregationOnDistinctCountMeasuresTest

public AggregationOnDistinctCountMeasuresTest()
Method Detail

setUp

protected void setUp()
              throws Exception
Overrides:
setUp in class junit.framework.TestCase
Throws:
Exception

getTestContext

public TestContext getTestContext()
Description copied from class: FoodMartTestCase
Returns the test context. Override this method if you wish to use a different source for your FoodMart connection.

Overrides:
getTestContext in class FoodMartTestCase

testTupleWithAllLevelMembersOnly

public void testTupleWithAllLevelMembersOnly()

testCrossJoinOfAllMembers

public void testCrossJoinOfAllMembers()

testCrossJoinMembersWithASingleMember

public void testCrossJoinMembersWithASingleMember()

testCrossJoinMembersWithSetOfMembers

public void testCrossJoinMembersWithSetOfMembers()

testCrossJoinParticularMembersFromTwoDimensions

public void testCrossJoinParticularMembersFromTwoDimensions()

testDistinctCountOnSetOfMembersFromOneDimension

public void testDistinctCountOnSetOfMembersFromOneDimension()

testDistinctCountWithAMeasureAsPartOfTuple

public void testDistinctCountWithAMeasureAsPartOfTuple()

testDistinctCountOnSetOfMembers

public void testDistinctCountOnSetOfMembers()

testDistinctCountOnTuplesWithSomeNonJoiningDimensions

public void testDistinctCountOnTuplesWithSomeNonJoiningDimensions()

testAggregationListOptimizationForChildren

public void testAggregationListOptimizationForChildren()

testDistinctCountOnMembersWithNonJoiningDimensionNotAtAllLevel

public void testDistinctCountOnMembersWithNonJoiningDimensionNotAtAllLevel()

testNonJoiningDimensionWithAllMember

public void testNonJoiningDimensionWithAllMember()

testCrossJoinOfJoiningAndNonJoiningDimensionWithAllMember

public void testCrossJoinOfJoiningAndNonJoiningDimensionWithAllMember()

testCrossJoinOfJoiningAndNonJoiningDimension

public void testCrossJoinOfJoiningAndNonJoiningDimension()

testAggregationOverLargeListGeneratesError

public void testAggregationOverLargeListGeneratesError()

testAggregateMaxConstraints

public void testAggregateMaxConstraints()
Test case for MONDRIAN-1122, "Aggregation is not supported over a list with more than 1000 predicates".

See Also:
testAggregationOverLargeListGeneratesError()

testMultiLevelMembersNullParents

public void testMultiLevelMembersNullParents()

testMultiLevelMembersMixedNullNonNullParent

public void testMultiLevelMembersMixedNullNonNullParent()

testMultiLevelsMixedNullNonNullChild

public void testMultiLevelsMixedNullNonNullChild()

testAggregationOnCJofMembersGeneratesOptimalQuery

public void testAggregationOnCJofMembersGeneratesOptimalQuery()

testCanNotBatchForDifferentCompoundPredicate

public void testCanNotBatchForDifferentCompoundPredicate()

testDistinctCountInNonGroupingSetsQuery

public void testDistinctCountInNonGroupingSetsQuery()
Test distinct count agg happens in non gs query for subset of members with mixed measures.


testAggregationOfMembersAndDefaultMemberWithoutGroupingSets

public void testAggregationOfMembersAndDefaultMemberWithoutGroupingSets()

testOptimizeChildren

public void testOptimizeChildren()

testOptimizeListWhenTuplesAreFormedWithDifferentLevels

public void testOptimizeListWhenTuplesAreFormedWithDifferentLevels()

testOptimizeListWithTuplesOfLength3

public void testOptimizeListWithTuplesOfLength3()

testOptimizeChildrenForTuplesWithLength1

public void testOptimizeChildrenForTuplesWithLength1()

testOptimizeChildrenForTuplesWithLength3

public void testOptimizeChildrenForTuplesWithLength3()

testOptimizeChildrenWhenTuplesAreFormedWithDifferentLevels

public void testOptimizeChildrenWhenTuplesAreFormedWithDifferentLevels()

testWhetherCJOfChildren

public void testWhetherCJOfChildren()

testShouldNotRemoveDuplicateTuples

public void testShouldNotRemoveDuplicateTuples()

testMemberCountIsSameForAllMembersInTuple

public void testMemberCountIsSameForAllMembersInTuple()

testMemberCountIsNotSameForAllMembersInTuple

public void testMemberCountIsNotSameForAllMembersInTuple()

testAggregatesAtTheSameLevelForNormalAndDistinctCountMeasure

public void testAggregatesAtTheSameLevelForNormalAndDistinctCountMeasure()

testDistinctCountForAggregatesAtTheSameLevel

public void testDistinctCountForAggregatesAtTheSameLevel()

testMondrian906

public void testMondrian906()
This test makes sure that the AggregateFunDef will not optimize a tuples list when the rollup policy is set to something else than FULL, as it results in wrong data for a distinct count operation when using roles to narrow down the members access.


testTupleOptimizationBug1225

public void testTupleOptimizationBug1225()
This is a test for MONDRIAN-1225

The optimization routine for tuple lists was implementing a single side of an IF conditional, which resulted in an NPE.


Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads