| author | pshi | 2011-10-13 23:12:21 (EDT) |
|---|---|---|
| committer | xgu | 2011-10-13 23:12:21 (EDT) |
| commit | 5d4c0545dabdb8141c66911436b4b8ecbf6449c6 (patch) (side-by-side diff) | |
| tree | c4b1bdf19d5f7bacbe48b8cab9eaab1978c7e40d | |
| parent | 73350bde95fc92bd4fe3b756ae6c7dc4f5d4e977 (diff) | |
| download | org.eclipse.birt-5d4c0545dabdb8141c66911436b4b8ecbf6449c6.zip org.eclipse.birt-5d4c0545dabdb8141c66911436b4b8ecbf6449c6.tar.gz org.eclipse.birt-5d4c0545dabdb8141c66911436b4b8ecbf6449c6.tar.bz2 | |
add unit test for relative time period feature, improve some code
22 files changed, 3903 insertions, 638 deletions
diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/CubeFeaturesTest.java b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/CubeFeaturesTest.java index dea89d8..134a62d 100644 --- a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/CubeFeaturesTest.java +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/CubeFeaturesTest.java @@ -15,6 +15,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.GregorianCalendar; import java.util.List; import javax.olap.OLAPException; @@ -24,6 +25,7 @@ import javax.olap.cursor.EdgeCursor; import org.eclipse.birt.core.exception.BirtException; import org.eclipse.birt.data.aggregation.api.IBuildInAggregation; +import org.eclipse.birt.data.engine.api.CollectionConditionalExpression; import org.eclipse.birt.data.engine.api.DataEngine; import org.eclipse.birt.data.engine.api.DataEngineContext; import org.eclipse.birt.data.engine.api.IBinding; @@ -36,7 +38,6 @@ import org.eclipse.birt.data.engine.api.IQueryResults; import org.eclipse.birt.data.engine.api.IResultIterator; import org.eclipse.birt.data.engine.api.IScriptExpression; import org.eclipse.birt.data.engine.api.ISortDefinition; -import org.eclipse.birt.data.engine.api.CollectionConditionalExpression; import org.eclipse.birt.data.engine.api.querydefn.Binding; import org.eclipse.birt.data.engine.api.querydefn.ColumnDefinition; import org.eclipse.birt.data.engine.api.querydefn.ConditionalExpression; @@ -46,6 +47,10 @@ import org.eclipse.birt.data.engine.api.querydefn.ScriptDataSetDesign; import org.eclipse.birt.data.engine.api.querydefn.ScriptDataSourceDesign; import org.eclipse.birt.data.engine.api.querydefn.ScriptExpression; import org.eclipse.birt.data.engine.api.querydefn.SubqueryDefinition; +import org.eclipse.birt.data.engine.api.timefunction.ReferenceDate; +import org.eclipse.birt.data.engine.api.timefunction.TimeFunction; +import org.eclipse.birt.data.engine.api.timefunction.TimePeriod; +import org.eclipse.birt.data.engine.api.timefunction.TimePeriodType; import org.eclipse.birt.data.engine.core.DataException; import org.eclipse.birt.data.engine.impl.DataEngineImpl; import org.eclipse.birt.data.engine.impl.StopSign; @@ -58,9 +63,12 @@ import org.eclipse.birt.data.engine.olap.api.query.IEdgeDefinition; import org.eclipse.birt.data.engine.olap.api.query.IHierarchyDefinition; import org.eclipse.birt.data.engine.olap.api.query.ILevelDefinition; import org.eclipse.birt.data.engine.olap.api.query.ISubCubeQueryDefinition; +import org.eclipse.birt.data.engine.olap.cursor.DateCube; +import org.eclipse.birt.data.engine.olap.data.api.CubeQueryExecutorHelper; import org.eclipse.birt.data.engine.olap.data.api.ILevel; import org.eclipse.birt.data.engine.olap.data.api.cube.DocManagerMap; import org.eclipse.birt.data.engine.olap.data.api.cube.DocManagerReleaser; +import org.eclipse.birt.data.engine.olap.data.api.cube.ICube; import org.eclipse.birt.data.engine.olap.data.api.cube.IDatasetIterator; import org.eclipse.birt.data.engine.olap.data.api.cube.IDimension; import org.eclipse.birt.data.engine.olap.data.api.cube.IHierarchy; @@ -68,6 +76,7 @@ import org.eclipse.birt.data.engine.olap.data.api.cube.ILevelDefn; import org.eclipse.birt.data.engine.olap.data.document.DocumentManagerFactory; import org.eclipse.birt.data.engine.olap.data.document.IDocumentManager; import org.eclipse.birt.data.engine.olap.data.impl.Cube; +import org.eclipse.birt.data.engine.olap.data.impl.aggregation.function.TimeMember; import org.eclipse.birt.data.engine.olap.data.impl.dimension.Dimension; import org.eclipse.birt.data.engine.olap.data.impl.dimension.DimensionFactory; import org.eclipse.birt.data.engine.olap.data.impl.dimension.DimensionForTest; @@ -75,8 +84,11 @@ import org.eclipse.birt.data.engine.olap.data.impl.dimension.LevelDefinition; import org.eclipse.birt.data.engine.olap.data.util.DataType; import org.eclipse.birt.data.engine.olap.impl.query.AddingNestAggregations; import org.eclipse.birt.data.engine.olap.impl.query.CubeQueryDefinition; +import org.eclipse.birt.data.engine.olap.impl.query.CubeQueryExecutor; import org.eclipse.birt.data.engine.olap.impl.query.SubCubeQueryDefinition; +import org.eclipse.birt.data.engine.olap.query.view.BirtCubeView; import org.mozilla.javascript.Context; +import org.mozilla.javascript.ImporterTopLevel; import org.mozilla.javascript.Scriptable; import testutil.BaseTestCase; @@ -139,9 +151,12 @@ public class CubeFeaturesTest extends BaseTestCase DataEngineImpl engine = (DataEngineImpl)DataEngine.newDataEngine( createPresentationContext( ) ); this.createCube( engine ); + IPreparedCubeQuery pcq = engine.prepare( cqd, null ); ICubeQueryResults queryResults = pcq.execute( null ); CubeCursor cursor = queryResults.getCubeCursor( ); + + List columnEdgeBindingNames = new ArrayList( ); columnEdgeBindingNames.add( "edge1level1" ); columnEdgeBindingNames.add( "edge1level2" ); @@ -7268,6 +7283,813 @@ public class CubeFeaturesTest extends BaseTestCase this.checkOutputFile( ); } + /** + * test year to date function + * + * @throws Exception + */ + public void testRelativeTimePeriod1() throws Exception { + ICubeQueryDefinition cqd = new CubeQueryDefinition(DateCube.cubeName); + + IEdgeDefinition rowEdge = cqd + .createEdge(ICubeQueryDefinition.COLUMN_EDGE); + IDimensionDefinition productLineDim1 = rowEdge + .createDimension("dimension2"); + IHierarchyDefinition porductLineHie1 = productLineDim1 + .createHierarchy("dimension2"); + porductLineHie1.createLevel("level21"); + + IEdgeDefinition columnEdge = cqd + .createEdge(ICubeQueryDefinition.ROW_EDGE); + IDimensionDefinition dateDim = columnEdge.createDimension("dimension1"); + IHierarchyDefinition dateHier = dateDim.createHierarchy("dimension1"); + + dateHier.createLevel("level11"); + dateHier.createLevel("level12"); + dateHier.createLevel("level13"); + dateHier.createLevel("level14"); + + cqd.createMeasure("measure1"); + + TimeFunction timeFunction = new TimeFunction(); + TimePeriod timePeriod = new TimePeriod(0, TimePeriodType.YEAR); + ReferenceDate referenceDate = new ReferenceDate(new GregorianCalendar( + 1999, 8, 20).getTime()); + timeFunction.setReferenceDate(referenceDate); + timeFunction.setBaseTimePeriod(timePeriod); + timeFunction.setTimeDimension("dimension1"); + + IBinding binding2 = new Binding("measure1"); + binding2.setExpression(new ScriptExpression("measure[\"measure1\"]")); + + binding2.setTimeFunction(timeFunction); + binding2.setAggrFunction(IBuildInAggregation.TOTAL_SUM_FUNC); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level11\"]"); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level12\"]"); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level13\"]"); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level14\"]"); + binding2.addAggregateOn("dimension[\"dimension2\"][\"level21\"]"); + + cqd.addBinding(binding2); + + DateCube util = new DateCube(); + DataEngineImpl engine = (DataEngineImpl) DataEngine + .newDataEngine(createPresentationContext()); + util.createCube(engine); + + ICube cube = util.getCube(DateCube.cubeName, engine); + BirtCubeView cubeView = new BirtCubeView(new CubeQueryExecutor(null, + cqd, engine.getSession(), new ImporterTopLevel(), + engine.getContext()), cube, null, null); + + CubeCursor cursor = cubeView.getCubeCursor(new StopSign(), cube); + + List columnEdgeBindingNames = new ArrayList(); + + List rowEdgeBindingNames = new ArrayList(); + + this.printCube(cursor, columnEdgeBindingNames, rowEdgeBindingNames, + "measure1"); + engine.shutdown(); + + } + + /** + * test year to date function + * + * @throws Exception + */ + public void testRelativeTimePeriod2() throws Exception { + ICubeQueryDefinition cqd = new CubeQueryDefinition(DateCube.cubeName); + + IEdgeDefinition rowEdge = cqd + .createEdge(ICubeQueryDefinition.COLUMN_EDGE); + IDimensionDefinition productLineDim1 = rowEdge + .createDimension("dimension2"); + IHierarchyDefinition porductLineHie1 = productLineDim1 + .createHierarchy("dimension2"); + porductLineHie1.createLevel("level21"); + + IEdgeDefinition columnEdge = cqd + .createEdge(ICubeQueryDefinition.ROW_EDGE); + IDimensionDefinition dateDim = columnEdge.createDimension("dimension1"); + IHierarchyDefinition dateHier = dateDim.createHierarchy("dimension1"); + + dateHier.createLevel("level11"); + dateHier.createLevel("level12"); + dateHier.createLevel("level13"); + dateHier.createLevel("level14"); + + cqd.createMeasure("measure1"); + + TimeFunction timeFunction = new TimeFunction(); + TimePeriod timePeriod = new TimePeriod(0, TimePeriodType.YEAR); + ReferenceDate referenceDate = new ReferenceDate(new GregorianCalendar( + 1999, 7, 19).getTime()); + timeFunction.setReferenceDate(referenceDate); + timeFunction.setBaseTimePeriod(timePeriod); + timeFunction.setTimeDimension("dimension1"); + + IBinding binding2 = new Binding("measure1"); + binding2.setExpression(new ScriptExpression("measure[\"measure1\"]")); + + binding2.setTimeFunction(timeFunction); + binding2.setAggrFunction(IBuildInAggregation.TOTAL_SUM_FUNC); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level11\"]"); + binding2.addAggregateOn("dimension[\"dimension2\"][\"level21\"]"); + + cqd.addBinding(binding2); + + DateCube util = new DateCube(); + DataEngineImpl engine = (DataEngineImpl) DataEngine + .newDataEngine(createPresentationContext()); + util.createCube(engine); + + ICube cube = util.getCube(DateCube.cubeName, engine); + BirtCubeView cubeView = new BirtCubeView(new CubeQueryExecutor(null, + cqd, engine.getSession(), new ImporterTopLevel(), + engine.getContext()), cube, null, null); + + CubeCursor cursor = cubeView.getCubeCursor(new StopSign(), cube); + + List columnEdgeBindingNames = new ArrayList(); + + List rowEdgeBindingNames = new ArrayList(); + + this.printCube(cursor, columnEdgeBindingNames, rowEdgeBindingNames, + "measure1"); + engine.shutdown(); + + } + + /** + * test month to date function + * + * @throws Exception + */ + public void testRelativeTimePeriod3() throws Exception { + ICubeQueryDefinition cqd = new CubeQueryDefinition(DateCube.cubeName); + + IEdgeDefinition rowEdge = cqd + .createEdge(ICubeQueryDefinition.COLUMN_EDGE); + IDimensionDefinition productLineDim1 = rowEdge + .createDimension("dimension2"); + IHierarchyDefinition porductLineHie1 = productLineDim1 + .createHierarchy("dimension2"); + porductLineHie1.createLevel("level21"); + + IEdgeDefinition columnEdge = cqd + .createEdge(ICubeQueryDefinition.ROW_EDGE); + IDimensionDefinition dateDim = columnEdge.createDimension("dimension1"); + IHierarchyDefinition dateHier = dateDim.createHierarchy("dimension1"); + + dateHier.createLevel("level11"); + dateHier.createLevel("level12"); + dateHier.createLevel("level13"); + dateHier.createLevel("level14"); + cqd.createMeasure("measure1"); + + TimeFunction timeFunction = new TimeFunction(); + TimePeriod timePeriod = new TimePeriod(0, TimePeriodType.MONTH); + ReferenceDate referenceDate = new ReferenceDate(new GregorianCalendar( + 1998, 7, 19).getTime()); + timeFunction.setReferenceDate(referenceDate); + timeFunction.setBaseTimePeriod(timePeriod); + timeFunction.setTimeDimension("dimension1"); + + IBinding binding2 = new Binding("measure1"); + binding2.setExpression(new ScriptExpression("measure[\"measure1\"]")); + + binding2.setTimeFunction(timeFunction); + binding2.setAggrFunction(IBuildInAggregation.TOTAL_SUM_FUNC); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level11\"]"); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level12\"]"); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level13\"]"); + + cqd.addBinding(binding2); + + DateCube util = new DateCube(); + DataEngineImpl engine = (DataEngineImpl) DataEngine + .newDataEngine(createPresentationContext()); + util.createCube(engine); + + ICube cube = util.getCube(DateCube.cubeName, engine); + BirtCubeView cubeView = new BirtCubeView(new CubeQueryExecutor(null, + cqd, engine.getSession(), new ImporterTopLevel(), + engine.getContext()), cube, null, null); + + CubeCursor cursor = cubeView.getCubeCursor(new StopSign(), cube); + + List columnEdgeBindingNames = new ArrayList(); + + List rowEdgeBindingNames = new ArrayList(); + + this.printCube(cursor, columnEdgeBindingNames, rowEdgeBindingNames, + "measure1"); + engine.shutdown(); + + } + + /** + * test week to date function + * + * @throws Exception + */ + public void testRelativeTimePeriod12() throws Exception { + ICubeQueryDefinition cqd = new CubeQueryDefinition(DateCube.cubeName); + + IEdgeDefinition rowEdge = cqd + .createEdge(ICubeQueryDefinition.COLUMN_EDGE); + IDimensionDefinition productLineDim1 = rowEdge + .createDimension("dimension2"); + IHierarchyDefinition porductLineHie1 = productLineDim1 + .createHierarchy("dimension2"); + porductLineHie1.createLevel("level21"); + + IEdgeDefinition columnEdge = cqd + .createEdge(ICubeQueryDefinition.ROW_EDGE); + IDimensionDefinition dateDim = columnEdge.createDimension("dimension1"); + IHierarchyDefinition dateHier = dateDim.createHierarchy("dimension1"); + + dateHier.createLevel("level11"); + dateHier.createLevel("level12"); + dateHier.createLevel("level13"); + dateHier.createLevel("level14"); + cqd.createMeasure("measure1"); + + TimeFunction timeFunction = new TimeFunction(); + TimePeriod timePeriod = new TimePeriod(0, TimePeriodType.WEEK); + ReferenceDate referenceDate = new ReferenceDate(new GregorianCalendar( + 1998, 7, 19).getTime()); + timeFunction.setReferenceDate(referenceDate); + timeFunction.setBaseTimePeriod(timePeriod); + timeFunction.setTimeDimension("dimension1"); + + IBinding binding2 = new Binding("measure1"); + binding2.setExpression(new ScriptExpression("measure[\"measure1\"]")); + + binding2.setTimeFunction(timeFunction); + binding2.setAggrFunction(IBuildInAggregation.TOTAL_SUM_FUNC); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level11\"]"); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level12\"]"); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level13\"]"); + + cqd.addBinding(binding2); + + DateCube util = new DateCube(); + DataEngineImpl engine = (DataEngineImpl) DataEngine + .newDataEngine(createPresentationContext()); + util.createCube(engine); + + ICube cube = util.getCube(DateCube.cubeName, engine); + BirtCubeView cubeView = new BirtCubeView(new CubeQueryExecutor(null, + cqd, engine.getSession(), new ImporterTopLevel(), + engine.getContext()), cube, null, null); + + CubeCursor cursor = cubeView.getCubeCursor(new StopSign(), cube); + + List columnEdgeBindingNames = new ArrayList(); + + List rowEdgeBindingNames = new ArrayList(); + + this.printCube(cursor, columnEdgeBindingNames, rowEdgeBindingNames, + "measure1"); + engine.shutdown(); + + } + + /** + * test trailing function + * + * @throws Exception + */ + public void testRelativeTimePeriod5() throws Exception { + ICubeQueryDefinition cqd = new CubeQueryDefinition(DateCube.cubeName); + + IEdgeDefinition rowEdge = cqd + .createEdge(ICubeQueryDefinition.COLUMN_EDGE); + IDimensionDefinition productLineDim1 = rowEdge + .createDimension("dimension2"); + IHierarchyDefinition porductLineHie1 = productLineDim1 + .createHierarchy("dimension2"); + porductLineHie1.createLevel("level21"); + + IEdgeDefinition columnEdge = cqd + .createEdge(ICubeQueryDefinition.ROW_EDGE); + IDimensionDefinition dateDim = columnEdge.createDimension("dimension1"); + IHierarchyDefinition dateHier = dateDim.createHierarchy("dimension1"); + + dateHier.createLevel("level11"); + dateHier.createLevel("level12"); + dateHier.createLevel("level13"); + dateHier.createLevel("level14"); + cqd.createMeasure("measure1"); + + TimeFunction timeFunction = new TimeFunction(); + TimePeriod timePeriod = new TimePeriod(-3, TimePeriodType.MONTH); + ReferenceDate referenceDate = new ReferenceDate(new GregorianCalendar( + 1998, 10, 20).getTime()); + timeFunction.setReferenceDate(referenceDate); + timeFunction.setBaseTimePeriod(timePeriod); + timeFunction.setTimeDimension("dimension1"); + + IBinding binding2 = new Binding("measure1"); + binding2.setExpression(new ScriptExpression("measure[\"measure1\"]")); + + binding2.setTimeFunction(timeFunction); + binding2.setAggrFunction(IBuildInAggregation.TOTAL_SUM_FUNC); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level11\"]"); + + cqd.addBinding(binding2); + + DateCube util = new DateCube(); + DataEngineImpl engine = (DataEngineImpl) DataEngine + .newDataEngine(createPresentationContext()); + util.createCube(engine); + + ICube cube = util.getCube(DateCube.cubeName, engine); + BirtCubeView cubeView = new BirtCubeView(new CubeQueryExecutor(null, + cqd, engine.getSession(), new ImporterTopLevel(), + engine.getContext()), cube, null, null); + + CubeCursor cursor = cubeView.getCubeCursor(new StopSign(), cube); + + List columnEdgeBindingNames = new ArrayList(); + + List rowEdgeBindingNames = new ArrayList(); + + this.printCube(cursor, columnEdgeBindingNames, rowEdgeBindingNames, + "measure1"); + engine.shutdown(); + + } + + /** + * test trailing function + * + * @throws Exception + */ + public void testRelativeTimePeriod9() throws Exception { + ICubeQueryDefinition cqd = new CubeQueryDefinition(DateCube.cubeName); + + IEdgeDefinition rowEdge = cqd + .createEdge(ICubeQueryDefinition.COLUMN_EDGE); + IDimensionDefinition productLineDim1 = rowEdge + .createDimension("dimension2"); + IHierarchyDefinition porductLineHie1 = productLineDim1 + .createHierarchy("dimension2"); + porductLineHie1.createLevel("level21"); + + IEdgeDefinition columnEdge = cqd + .createEdge(ICubeQueryDefinition.ROW_EDGE); + IDimensionDefinition dateDim = columnEdge.createDimension("dimension1"); + IHierarchyDefinition dateHier = dateDim.createHierarchy("dimension1"); + + dateHier.createLevel("level11"); + dateHier.createLevel("level12"); + dateHier.createLevel("level13"); + dateHier.createLevel("level14"); + cqd.createMeasure("measure1"); + + TimeFunction timeFunction = new TimeFunction(); + TimePeriod timePeriod = new TimePeriod(-3, TimePeriodType.DAY); + ReferenceDate referenceDate = new ReferenceDate(new GregorianCalendar( + 1998, 8, 20).getTime()); + timeFunction.setReferenceDate(referenceDate); + timeFunction.setBaseTimePeriod(timePeriod); + timeFunction.setTimeDimension("dimension1"); + + IBinding binding2 = new Binding("measure1"); + binding2.setExpression(new ScriptExpression("measure[\"measure1\"]")); + + binding2.setTimeFunction(timeFunction); + binding2.setAggrFunction(IBuildInAggregation.TOTAL_SUM_FUNC); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level11\"]"); + + cqd.addBinding(binding2); + + DateCube util = new DateCube(); + DataEngineImpl engine = (DataEngineImpl) DataEngine + .newDataEngine(createPresentationContext()); + util.createCube(engine); + + ICube cube = util.getCube(DateCube.cubeName, engine); + BirtCubeView cubeView = new BirtCubeView(new CubeQueryExecutor(null, + cqd, engine.getSession(), new ImporterTopLevel(), + engine.getContext()), cube, null, null); + + CubeCursor cursor = cubeView.getCubeCursor(new StopSign(), cube); + + List columnEdgeBindingNames = new ArrayList(); + + List rowEdgeBindingNames = new ArrayList(); + + this.printCube(cursor, columnEdgeBindingNames, rowEdgeBindingNames, + "measure1"); + engine.shutdown(); + + } + + /** + * test trailing function + * + * @throws Exception + */ + public void testRelativeTimePeriod6() throws Exception { + ICubeQueryDefinition cqd = new CubeQueryDefinition(DateCube.cubeName); + + IEdgeDefinition rowEdge = cqd + .createEdge(ICubeQueryDefinition.COLUMN_EDGE); + IDimensionDefinition productLineDim1 = rowEdge + .createDimension("dimension2"); + IHierarchyDefinition porductLineHie1 = productLineDim1 + .createHierarchy("dimension2"); + porductLineHie1.createLevel("level21"); + + IEdgeDefinition columnEdge = cqd + .createEdge(ICubeQueryDefinition.ROW_EDGE); + IDimensionDefinition dateDim = columnEdge.createDimension("dimension1"); + IHierarchyDefinition dateHier = dateDim.createHierarchy("dimension1"); + + dateHier.createLevel("level11"); + dateHier.createLevel("level12"); + dateHier.createLevel("level13"); + dateHier.createLevel("level14"); + cqd.createMeasure("measure1"); + + TimeFunction timeFunction = new TimeFunction(); + TimePeriod timePeriod = new TimePeriod(-2, TimePeriodType.YEAR); + ReferenceDate referenceDate = new ReferenceDate(new GregorianCalendar( + 1999, 10, 20).getTime()); + timeFunction.setReferenceDate(referenceDate); + timeFunction.setBaseTimePeriod(timePeriod); + timeFunction.setTimeDimension("dimension1"); + + IBinding binding2 = new Binding("measure1"); + binding2.setExpression(new ScriptExpression("measure[\"measure1\"]")); + + binding2.setTimeFunction(timeFunction); + binding2.setAggrFunction(IBuildInAggregation.TOTAL_SUM_FUNC); + binding2.addAggregateOn("dimension[\"dimension2\"][\"level21\"]"); + + cqd.addBinding(binding2); + + DateCube util = new DateCube(); + DataEngineImpl engine = (DataEngineImpl) DataEngine + .newDataEngine(createPresentationContext()); + util.createCube(engine); + + ICube cube = util.getCube(DateCube.cubeName, engine); + BirtCubeView cubeView = new BirtCubeView(new CubeQueryExecutor(null, + cqd, engine.getSession(), new ImporterTopLevel(), + engine.getContext()), cube, null, null); + + CubeCursor cursor = cubeView.getCubeCursor(new StopSign(), cube); + + List columnEdgeBindingNames = new ArrayList(); + + List rowEdgeBindingNames = new ArrayList(); + + this.printCube(cursor, columnEdgeBindingNames, rowEdgeBindingNames, + "measure1"); + engine.shutdown(); + + } + + /** + * test trailing function + * + * @throws Exception + */ + public void testRelativeTimePeriod13() throws Exception { + ICubeQueryDefinition cqd = new CubeQueryDefinition(DateCube.cubeName); + + IEdgeDefinition rowEdge = cqd + .createEdge(ICubeQueryDefinition.COLUMN_EDGE); + IDimensionDefinition productLineDim1 = rowEdge + .createDimension("dimension2"); + IHierarchyDefinition porductLineHie1 = productLineDim1 + .createHierarchy("dimension2"); + porductLineHie1.createLevel("level21"); + + IEdgeDefinition columnEdge = cqd + .createEdge(ICubeQueryDefinition.ROW_EDGE); + IDimensionDefinition dateDim = columnEdge.createDimension("dimension1"); + IHierarchyDefinition dateHier = dateDim.createHierarchy("dimension1"); + + dateHier.createLevel("level11"); + dateHier.createLevel("level12"); + dateHier.createLevel("level13"); + dateHier.createLevel("level14"); + cqd.createMeasure("measure1"); + + TimeFunction timeFunction = new TimeFunction(); + TimePeriod timePeriod = new TimePeriod(3, TimePeriodType.YEAR); + ReferenceDate referenceDate = new ReferenceDate(new GregorianCalendar( + 1998, 11, 20).getTime()); + timeFunction.setReferenceDate(referenceDate); + timeFunction.setBaseTimePeriod(timePeriod); + timeFunction.setTimeDimension("dimension1"); + + IBinding binding2 = new Binding("measure1"); + binding2.setExpression(new ScriptExpression("measure[\"measure1\"]")); + + binding2.setTimeFunction(timeFunction); + binding2.setAggrFunction(IBuildInAggregation.TOTAL_SUM_FUNC); + binding2.addAggregateOn("dimension[\"dimension2\"][\"level21\"]"); + + cqd.addBinding(binding2); + + DateCube util = new DateCube(); + DataEngineImpl engine = (DataEngineImpl) DataEngine + .newDataEngine(createPresentationContext()); + util.createCube(engine); + + ICube cube = util.getCube(DateCube.cubeName, engine); + BirtCubeView cubeView = new BirtCubeView(new CubeQueryExecutor(null, + cqd, engine.getSession(), new ImporterTopLevel(), + engine.getContext()), cube, null, null); + + CubeCursor cursor = cubeView.getCubeCursor(new StopSign(), cube); + + List columnEdgeBindingNames = new ArrayList(); + + List rowEdgeBindingNames = new ArrayList(); + + this.printCube(cursor, columnEdgeBindingNames, rowEdgeBindingNames, + "measure1"); + engine.shutdown(); + + } + + /** + * test previous N period function + * + * @throws Exception + */ + public void testRelativeTimePeriod7() throws Exception { + ICubeQueryDefinition cqd = new CubeQueryDefinition(DateCube.cubeName); + + IEdgeDefinition rowEdge = cqd + .createEdge(ICubeQueryDefinition.COLUMN_EDGE); + IDimensionDefinition productLineDim1 = rowEdge + .createDimension("dimension2"); + IHierarchyDefinition porductLineHie1 = productLineDim1 + .createHierarchy("dimension2"); + porductLineHie1.createLevel("level21"); + + IEdgeDefinition columnEdge = cqd + .createEdge(ICubeQueryDefinition.ROW_EDGE); + IDimensionDefinition dateDim = columnEdge.createDimension("dimension1"); + IHierarchyDefinition dateHier = dateDim.createHierarchy("dimension1"); + + dateHier.createLevel("level11"); + dateHier.createLevel("level12"); + dateHier.createLevel("level13"); + dateHier.createLevel("level14"); + cqd.createMeasure("measure1"); + + TimeFunction timeFunction = new TimeFunction(); + TimePeriod timePeriod = new TimePeriod(0, TimePeriodType.YEAR); + ReferenceDate referenceDate = new ReferenceDate(new GregorianCalendar( + 1998, 10, 20).getTime()); + timeFunction.setReferenceDate(referenceDate); + timeFunction.setBaseTimePeriod(timePeriod); + timeFunction.setTimeDimension("dimension1"); + timePeriod = new TimePeriod(3, TimePeriodType.MONTH); + timeFunction.setRelativeTimePeriod(timePeriod); + + IBinding binding2 = new Binding("measure1"); + binding2.setExpression(new ScriptExpression("measure[\"measure1\"]")); + + binding2.setTimeFunction(timeFunction); + binding2.setAggrFunction(IBuildInAggregation.TOTAL_SUM_FUNC); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level11\"]"); + + cqd.addBinding(binding2); + + DateCube util = new DateCube(); + DataEngineImpl engine = (DataEngineImpl) DataEngine + .newDataEngine(createPresentationContext()); + util.createCube(engine); + + ICube cube = util.getCube(DateCube.cubeName, engine); + BirtCubeView cubeView = new BirtCubeView(new CubeQueryExecutor(null, + cqd, engine.getSession(), new ImporterTopLevel(), + engine.getContext()), cube, null, null); + + CubeCursor cursor = cubeView.getCubeCursor(new StopSign(), cube); + + List columnEdgeBindingNames = new ArrayList(); + + List rowEdgeBindingNames = new ArrayList(); + + this.printCube(cursor, columnEdgeBindingNames, rowEdgeBindingNames, + "measure1"); + engine.shutdown(); + + } + + /** + * test previous N period function + * + * @throws Exception + */ + public void testRelativeTimePeriod10() throws Exception { + ICubeQueryDefinition cqd = new CubeQueryDefinition(DateCube.cubeName); + + IEdgeDefinition rowEdge = cqd + .createEdge(ICubeQueryDefinition.COLUMN_EDGE); + IDimensionDefinition productLineDim1 = rowEdge + .createDimension("dimension2"); + IHierarchyDefinition porductLineHie1 = productLineDim1 + .createHierarchy("dimension2"); + porductLineHie1.createLevel("level21"); + + IEdgeDefinition columnEdge = cqd + .createEdge(ICubeQueryDefinition.ROW_EDGE); + IDimensionDefinition dateDim = columnEdge.createDimension("dimension1"); + IHierarchyDefinition dateHier = dateDim.createHierarchy("dimension1"); + + dateHier.createLevel("level11"); + dateHier.createLevel("level12"); + dateHier.createLevel("level13"); + dateHier.createLevel("level14"); + cqd.createMeasure("measure1"); + + TimeFunction timeFunction = new TimeFunction(); + TimePeriod timePeriod = new TimePeriod(0, TimePeriodType.YEAR); + ReferenceDate referenceDate = new ReferenceDate(new GregorianCalendar( + 1999, 9, 9).getTime()); + timeFunction.setReferenceDate(referenceDate); + timeFunction.setBaseTimePeriod(timePeriod); + timeFunction.setTimeDimension("dimension1"); + timePeriod = new TimePeriod(3, TimePeriodType.WEEK); + timeFunction.setRelativeTimePeriod(timePeriod); + + IBinding binding2 = new Binding("measure1"); + binding2.setExpression(new ScriptExpression("measure[\"measure1\"]")); + + binding2.setTimeFunction(timeFunction); + binding2.setAggrFunction(IBuildInAggregation.TOTAL_SUM_FUNC); + binding2.addAggregateOn("dimension[\"dimension1\"][\"level11\"]"); + + cqd.addBinding(binding2); + + DateCube util = new DateCube(); + DataEngineImpl engine = (DataEngineImpl) DataEngine + .newDataEngine(createPresentationContext()); + util.createCube(engine); + + ICube cube = util.getCube(DateCube.cubeName, engine); + BirtCubeView cubeView = new BirtCubeView(new CubeQueryExecutor(null, + cqd, engine.getSession(), new ImporterTopLevel(), + engine.getContext()), cube, null, null); + + CubeCursor cursor = cubeView.getCubeCursor(new StopSign(), cube); + + List columnEdgeBindingNames = new ArrayList(); + + List rowEdgeBindingNames = new ArrayList(); + + this.printCube(cursor, columnEdgeBindingNames, rowEdgeBindingNames, + "measure1"); + engine.shutdown(); + + } + + /** + * test month to date function + * + * @throws Exception + */ + public void testRelativeTimePeriod8() throws Exception { + ICubeQueryDefinition cqd = new CubeQueryDefinition(DateCube.cubeName); + + IEdgeDefinition rowEdge = cqd + .createEdge(ICubeQueryDefinition.COLUMN_EDGE); + IDimensionDefinition productLineDim1 = rowEdge + .createDimension("dimension2"); + IHierarchyDefinition porductLineHie1 = productLineDim1 + .createHierarchy("dimension2"); + porductLineHie1.createLevel("level21"); + + IEdgeDefinition columnEdge = cqd + .createEdge(ICubeQueryDefinition.ROW_EDGE); + IDimensionDefinition dateDim = columnEdge.createDimension("dimension1"); + IHierarchyDefinition dateHier = dateDim.createHierarchy("dimension1"); + + dateHier.createLevel("level11"); + dateHier.createLevel("level12"); + dateHier.createLevel("level13"); + dateHier.createLevel("level14"); + cqd.createMeasure("measure1"); + + TimeFunction timeFunction = new TimeFunction(); + TimePeriod timePeriod = new TimePeriod(0, TimePeriodType.MONTH); + ReferenceDate referenceDate = new ReferenceDate(new GregorianCalendar( + 1999, 7, 20).getTime()); + timeFunction.setReferenceDate(referenceDate); + timeFunction.setBaseTimePeriod(timePeriod); + timeFunction.setTimeDimension("dimension1"); + + IBinding binding2 = new Binding("measure1"); + binding2.setExpression(new ScriptExpression("measure[\"measure1\"]")); + + binding2.setTimeFunction(timeFunction); + binding2.setAggrFunction(IBuildInAggregation.TOTAL_SUM_FUNC); + binding2.addAggregateOn("dimension[\"dimension2\"][\"level21\"]"); + + cqd.addBinding(binding2); + + DateCube util = new DateCube(); + DataEngineImpl engine = (DataEngineImpl) DataEngine + .newDataEngine(createPresentationContext()); + util.createCube(engine); + + ICube cube = util.getCube(DateCube.cubeName, engine); + BirtCubeView cubeView = new BirtCubeView(new CubeQueryExecutor(null, + cqd, engine.getSession(), new ImporterTopLevel(), + engine.getContext()), cube, null, null); + + CubeCursor cursor = cubeView.getCubeCursor(new StopSign(), cube); + + List columnEdgeBindingNames = new ArrayList(); + + List rowEdgeBindingNames = new ArrayList(); + + this.printCube(cursor, columnEdgeBindingNames, rowEdgeBindingNames, + "measure1"); + engine.shutdown(); + + } + + /** + * test quarter to date function + * + * @throws Exception + */ + public void testRelativeTimePeriod11() throws Exception { + ICubeQueryDefinition cqd = new CubeQueryDefinition(DateCube.cubeName); + + IEdgeDefinition rowEdge = cqd + .createEdge(ICubeQueryDefinition.COLUMN_EDGE); + IDimensionDefinition productLineDim1 = rowEdge + .createDimension("dimension2"); + IHierarchyDefinition porductLineHie1 = productLineDim1 + .createHierarchy("dimension2"); + porductLineHie1.createLevel("level21"); + + IEdgeDefinition columnEdge = cqd + .createEdge(ICubeQueryDefinition.ROW_EDGE); + IDimensionDefinition dateDim = columnEdge.createDimension("dimension1"); + IHierarchyDefinition dateHier = dateDim.createHierarchy("dimension1"); + + dateHier.createLevel("level11"); + dateHier.createLevel("level12"); + dateHier.createLevel("level13"); + dateHier.createLevel("level14"); + cqd.createMeasure("measure1"); + + TimeFunction timeFunction = new TimeFunction(); + TimePeriod timePeriod = new TimePeriod(0, TimePeriodType.QUARTER); + ReferenceDate referenceDate = new ReferenceDate(new GregorianCalendar( + 1998, 2, 1).getTime()); + timeFunction.setReferenceDate(referenceDate); + timeFunction.setBaseTimePeriod(timePeriod); + timeFunction.setTimeDimension("dimension1"); + + IBinding binding2 = new Binding("measure1"); + binding2.setExpression(new ScriptExpression("measure[\"measure1\"]")); + + binding2.setTimeFunction(timeFunction); + binding2.setAggrFunction(IBuildInAggregation.TOTAL_SUM_FUNC); + binding2.addAggregateOn("dimension[\"dimension2\"][\"level21\"]"); + + cqd.addBinding(binding2); + + DateCube util = new DateCube(); + DataEngineImpl engine = (DataEngineImpl) DataEngine + .newDataEngine(createPresentationContext()); + util.createCube(engine); + + ICube cube = util.getCube(DateCube.cubeName, engine); + BirtCubeView cubeView = new BirtCubeView(new CubeQueryExecutor(null, + cqd, engine.getSession(), new ImporterTopLevel(), + engine.getContext()), cube, null, null); + + CubeCursor cursor = cubeView.getCubeCursor(new StopSign(), cube); + + List columnEdgeBindingNames = new ArrayList(); + + List rowEdgeBindingNames = new ArrayList(); + + this.printCube(cursor, columnEdgeBindingNames, rowEdgeBindingNames, + "measure1"); + engine.shutdown(); + + } + private void createSortTestBindings( ICubeQueryDefinition cqd ) throws DataException { @@ -8007,6 +8829,91 @@ public class CubeFeaturesTest extends BaseTestCase } + + private void createDateCube( org.eclipse.birt.data.engine.impl.DataEngineImpl engine ) throws BirtException, + IOException + { + IDocumentManager documentManager = DocumentManagerFactory.createFileDocumentManager( engine.getSession( ) + .getTempDir( ), + String.valueOf( engine.hashCode( ) ) ); + DocManagerMap.getDocManagerMap( ) + .set( String.valueOf( engine.hashCode( ) ), + engine.getSession( ).getTempDir( ) + engine.hashCode( ), + documentManager ); + engine.addShutdownListener( new DocManagerReleaser( engine ) ); + Dimension[] dimensions = new Dimension[2]; + + // dimension0 + String[] levelNames = new String[3]; + levelNames[0] = "level11"; + levelNames[1] = "level12"; + levelNames[2] = "level13"; + DimensionForTest iterator = new DimensionForTest( levelNames ); + iterator.setLevelMember( 0, TestFactTable.DIM0_L1Col ); + iterator.setLevelMember( 1, TestFactTable.DIM0_L2Col ); + iterator.setLevelMember( 2, TestFactTable.DIM0_L3Col ); + + ILevelDefn[] levelDefs = new ILevelDefn[3]; + levelDefs[0] = new LevelDefinition( "level11", new String[]{ + "level11" + }, null ); + levelDefs[1] = new LevelDefinition( "level12", new String[]{ + "level12" + }, null ); + levelDefs[2] = new LevelDefinition( "level13", new String[]{ + "level13" + }, null ); + dimensions[0] = (Dimension) DimensionFactory.createDimension( "dimension1", + documentManager, + iterator, + levelDefs, + false, + new StopSign( ) ); + IHierarchy hierarchy = dimensions[0].getHierarchy( ); + assertEquals( hierarchy.getName( ), "dimension1" ); + assertEquals( dimensions[0].length( ), 13 ); + + // dimension1 + levelNames = new String[]{ + "level21", "attr21" + }; + iterator = new DimensionForTest( levelNames ); + iterator.setLevelMember( 0, distinct( TestFactTable.DIM1_L1Col ) ); + iterator.setLevelMember( 1, TestFactTable.ATTRIBUTE_Col ); + + levelDefs = new ILevelDefn[1]; + levelDefs[0] = new LevelDefinition( "level21", new String[]{ + "level21" + }, new String[]{ + "attr21" + } ); + dimensions[1] = (Dimension) DimensionFactory.createDimension( "dimension2", + documentManager, + iterator, + levelDefs, + false, + new StopSign( ) ); + hierarchy = dimensions[1].getHierarchy( ); + assertEquals( hierarchy.getName( ), "dimension2" ); + assertEquals( dimensions[1].length( ), 5 ); + + TestFactTable factTable2 = new TestFactTable( ); + String[] measureColumnName = new String[1]; + measureColumnName[0] = "measure1"; + Cube cube = new Cube( cubeName, documentManager ); + + cube.create( getKeyColNames( dimensions ), + dimensions, + factTable2, + measureColumnName, + new StopSign( ) ); + + cube.close( ); + documentManager.flush( ); + + } + + private void createCube1( org.eclipse.birt.data.engine.impl.DataEngineImpl engine ) throws BirtException, IOException diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod1.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod1.txt new file mode 100644 index 0000000..f9a8fa7 --- a/dev/null +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod1.txt @@ -0,0 +1,9 @@ + +1.0 null +39.0 null +null 2.0 +11.0 null +null 18.0 +null 54.0 +34.0 null +null 39.0
\ No newline at end of file diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod10.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod10.txt new file mode 100644 index 0000000..099ee02 --- a/dev/null +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod10.txt @@ -0,0 +1,9 @@ + +39.0 39.0 +39.0 39.0 +65.0 65.0 +65.0 65.0 +65.0 65.0 +65.0 65.0 +65.0 65.0 +null null
\ No newline at end of file diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod11.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod11.txt new file mode 100644 index 0000000..77527cd --- a/dev/null +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod11.txt @@ -0,0 +1,9 @@ + +39.0 null +39.0 null +39.0 null +39.0 null +39.0 null +39.0 null +39.0 null +39.0 null
\ No newline at end of file diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod12.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod12.txt new file mode 100644 index 0000000..b499039 --- a/dev/null +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod12.txt @@ -0,0 +1,9 @@ + +null null +null null +null null +11.0 11.0 +16.0 16.0 +16.0 16.0 +23.0 23.0 +null null
\ No newline at end of file diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod13.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod13.txt new file mode 100644 index 0000000..8c78bcf --- a/dev/null +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod13.txt @@ -0,0 +1,9 @@ + +34.0 93.0 +34.0 93.0 +34.0 93.0 +34.0 93.0 +34.0 93.0 +34.0 93.0 +34.0 93.0 +34.0 93.0
\ No newline at end of file diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod2.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod2.txt new file mode 100644 index 0000000..6f4b2cf --- a/dev/null +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod2.txt @@ -0,0 +1,9 @@ + +39.0 null +39.0 null +11.0 18.0 +11.0 18.0 +11.0 18.0 +11.0 18.0 +11.0 18.0 +null null
\ No newline at end of file diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod3.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod3.txt new file mode 100644 index 0000000..3937099 --- a/dev/null +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod3.txt @@ -0,0 +1,9 @@ + +1.0 1.0 +null null +2.0 2.0 +11.0 11.0 +16.0 16.0 +16.0 16.0 +23.0 23.0 +null null
\ No newline at end of file diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod5.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod5.txt new file mode 100644 index 0000000..6afea2b --- a/dev/null +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod5.txt @@ -0,0 +1,9 @@ + +null null +null null +23.0 23.0 +23.0 23.0 +23.0 23.0 +23.0 23.0 +23.0 23.0 +null null
\ No newline at end of file diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod6.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod6.txt new file mode 100644 index 0000000..cb9be8f --- a/dev/null +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod6.txt @@ -0,0 +1,9 @@ + +73.0 54.0 +73.0 54.0 +73.0 54.0 +73.0 54.0 +73.0 54.0 +73.0 54.0 +73.0 54.0 +73.0 54.0
\ No newline at end of file diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod7.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod7.txt new file mode 100644 index 0000000..099ee02 --- a/dev/null +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod7.txt @@ -0,0 +1,9 @@ + +39.0 39.0 +39.0 39.0 +65.0 65.0 +65.0 65.0 +65.0 65.0 +65.0 65.0 +65.0 65.0 +null null
\ No newline at end of file diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod8.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod8.txt new file mode 100644 index 0000000..945b7c3 --- a/dev/null +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod8.txt @@ -0,0 +1,9 @@ + +null 52.0 +null 52.0 +null 52.0 +null 52.0 +null 52.0 +null 52.0 +null 52.0 +null 52.0
\ No newline at end of file diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod9.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod9.txt new file mode 100644 index 0000000..6afea2b --- a/dev/null +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/api/golden/CubeFeaturesTest.testRelativeTimePeriod9.txt @@ -0,0 +1,9 @@ + +null null +null null +23.0 23.0 +23.0 23.0 +23.0 23.0 +23.0 23.0 +23.0 23.0 +null null
\ No newline at end of file diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/DateCube.java b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/DateCube.java index a8595a8..ad54629 100644 --- a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/DateCube.java +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/DateCube.java @@ -38,11 +38,11 @@ import org.eclipse.birt.data.engine.olap.data.impl.dimension.LevelDefinition; import org.eclipse.birt.data.engine.olap.data.util.DataType; import org.eclipse.birt.data.engine.olap.data.util.IDiskArray; -class DateCube +public class DateCube { public static final String cubeName ="DateCube"; - void createCube( DataEngineImpl engine ) throws IOException, + public void createCube( DataEngineImpl engine ) throws IOException, BirtException, OLAPException { IDocumentManager documentManager = DocumentManagerFactory.createFileDocumentManager( engine.getSession( ) @@ -56,53 +56,63 @@ class DateCube Dimension[] dimensions = new Dimension[2]; // dimension0 - String[] levelNames = new String[7]; - levelNames[0] = "level11"; + String[] levelNames = new String[8]; +// levelNames[0] = "level11"; // dimension1 - levelNames[1] = "level12"; - levelNames[2] = "year/DateTime"; + levelNames[0] = "level11"; + levelNames[1] = "year/DateTime"; - levelNames[3] = "level13"; - levelNames[4] = "quarter/DateTime"; + levelNames[2] = "level12"; + levelNames[3] = "quarter/DateTime"; - levelNames[5] = "level14"; - levelNames[6] = "month/DateTime"; + levelNames[4] = "level13"; + levelNames[5] = "month/DateTime"; + levelNames[6] = "level14"; + levelNames[7] = "day-of-month/DateTime"; + DimensionForTest iterator = new DimensionForTest( levelNames ); - iterator.setLevelMember( 0, DateFactTable.DIM0_L1Col ); - iterator.setLevelMember( 1, DateFactTable.DIM1_YEAR_Col ); - iterator.setLevelMember( 2, DateFactTable.ATTRIBUTE_Col ); - iterator.setLevelMember( 3, DateFactTable.DIM1_QUARTER_Col ); - iterator.setLevelMember( 4, DateFactTable.ATTRIBUTE_Col ); - iterator.setLevelMember( 5, DateFactTable.DIM1_MONTH_Col ); - iterator.setLevelMember( 6, DateFactTable.ATTRIBUTE_Col ); - + iterator.setLevelMember( 0, DateFactTable.DIM1_YEAR_Col ); + iterator.setLevelMember( 1, DateFactTable.ATTRIBUTE_Col ); + iterator.setLevelMember( 2, DateFactTable.DIM1_QUARTER_Col ); + iterator.setLevelMember( 3, DateFactTable.ATTRIBUTE_Col ); + iterator.setLevelMember( 4, DateFactTable.DIM1_MONTH_Col ); + iterator.setLevelMember( 5, DateFactTable.ATTRIBUTE_Col ); + iterator.setLevelMember( 6, DateFactTable.DIM1_DAY_Col ); + iterator.setLevelMember( 7, DateFactTable.ATTRIBUTE_Col ); + ILevelDefn[] levelDefs = new ILevelDefn[4]; + levelDefs[0] = new LevelDefinition( "level11", new String[]{ "level11" - }, null ); - - levelDefs[1] = new LevelDefinition( "level12", new String[]{ - "level12" }, new String[]{ "year/DateTime" } ); - levelDefs[1].setTimeType( "year" ); - levelDefs[2] = new LevelDefinition( "level13", new String[]{ - "level13" + levelDefs[0].setTimeType( "year" ); + + levelDefs[1] = new LevelDefinition( "level12", new String[]{ + "level12" }, new String[]{ "quarter/DateTime" } ); - levelDefs[2].setTimeType( "quarter" ); - levelDefs[3] = new LevelDefinition( "level14", new String[]{ - "level14" + levelDefs[1].setTimeType( "quarter" ); + + levelDefs[2] = new LevelDefinition( "level13", new String[]{ + "level13" }, new String[]{ "month/DateTime" } ); - levelDefs[3].setTimeType( "month" ); + levelDefs[2].setTimeType( "month" ); + levelDefs[3] = new LevelDefinition( "level14", new String[]{ + "level14" + }, new String[]{ + "day-of-month/DateTime" + } ); + levelDefs[3].setTimeType( "day-of-month" ); + dimensions[0] = (Dimension) DimensionFactory.createDimension( "dimension1", documentManager, iterator, @@ -144,7 +154,7 @@ class DateCube documentManager.flush( ); } - ICube getCube( String cubeName, DataEngineImpl engine ) + public ICube getCube( String cubeName, DataEngineImpl engine ) throws DataException, IOException { ICube cube = null; @@ -182,33 +192,34 @@ class DateFactTable implements IDatasetIterator { int ptr = -1; - static String[] DIM0_L1Col = { - "CN","CN", - "US","US", - "UN","UN", - "JP","JP" - }; static Integer[] DIM1_YEAR_Col = { 1998,1999, 1999,1999, - 1999,2000, + 1999,1999, 1998,2000 }; static Integer[] DIM1_QUARTER_Col = { 1,2, 2,3, - 3,4, + 3,3, 1,4 }; static Integer[] DIM1_MONTH_Col = { 1,4, - 5,7, - 8,10, + 5,8, + 9,8, 2,11 }; + static Integer[] DIM1_DAY_Col = { + 15,16, + 17,18, + 19,20, + 21,22 +}; + static String[] DIM2_L2Col = { "PP1","PP2", "PP1","PP2", @@ -273,6 +284,7 @@ class DateFactTable implements IDatasetIterator { return 4; } + else if ( name.equals( "measure1" ) ) { return 5; @@ -284,7 +296,7 @@ class DateFactTable implements IDatasetIterator { if ( name.equals( "level11" ) ) { - return DataType.STRING_TYPE; + return DataType.INTEGER_TYPE; } else if ( name.equals( "level12" ) ) { @@ -323,21 +335,21 @@ class DateFactTable implements IDatasetIterator public Object getValue( int fieldIndex ) throws BirtException { - if ( fieldIndex == 0 ) + if ( fieldIndex == 0 ) { - return DIM0_L1Col[ptr]; + return DIM1_YEAR_Col[ptr]; } else if ( fieldIndex == 1 ) { - return DIM1_YEAR_Col[ptr]; + return DIM1_QUARTER_Col[ptr]; } else if ( fieldIndex == 2 ) { - return DIM1_QUARTER_Col[ptr]; + return DIM1_MONTH_Col[ptr]; } else if ( fieldIndex == 3 ) { - return DIM1_MONTH_Col[ptr]; + return DIM1_DAY_Col[ptr]; } else if ( fieldIndex == 4 ) { diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/golden/DateTimeCursorTest.testMirrorOnMonthDimension.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/golden/DateTimeCursorTest.testMirrorOnMonthDimension.txt index 21e5f52..66b3a5b 100644 --- a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/golden/DateTimeCursorTest.testMirrorOnMonthDimension.txt +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/golden/DateTimeCursorTest.testMirrorOnMonthDimension.txt @@ -1,98 +1,219 @@ PP1 PP2 -CN 1998 1 1 1.0, null, -CN 1998 1 2 null, null, -CN 1998 1 3 null, null, -CN 1998 1 4 null, null, -CN 1998 1 5 null, null, -CN 1998 1 6 null, null, -CN 1998 1 7 null, null, -CN 1998 1 8 null, null, -CN 1998 1 9 null, null, -CN 1998 1 10 null, null, -CN 1998 1 11 null, null, -CN 1998 1 12 null, null, -CN 1999 2 1 null, null, -CN 1999 2 2 null, null, -CN 1999 2 3 null, null, -CN 1999 2 4 null, 2.0, -CN 1999 2 5 null, null, -CN 1999 2 6 null, null, -CN 1999 2 7 null, null, -CN 1999 2 8 null, null, -CN 1999 2 9 null, null, -CN 1999 2 10 null, null, -CN 1999 2 11 null, null, -CN 1999 2 12 null, null, -JP 1998 1 1 null, null, -JP 1998 1 2 38.0, null, -JP 1998 1 3 null, null, -JP 1998 1 4 null, null, -JP 1998 1 5 null, null, -JP 1998 1 6 null, null, -JP 1998 1 7 null, null, -JP 1998 1 8 null, null, -JP 1998 1 9 null, null, -JP 1998 1 10 null, null, -JP 1998 1 11 null, null, -JP 1998 1 12 null, null, -JP 2000 4 1 null, null, -JP 2000 4 2 null, null, -JP 2000 4 3 null, null, -JP 2000 4 4 null, null, -JP 2000 4 5 null, null, -JP 2000 4 6 null, null, -JP 2000 4 7 null, null, -JP 2000 4 8 null, null, -JP 2000 4 9 null, null, -JP 2000 4 10 null, null, -JP 2000 4 11 null, 39.0, -JP 2000 4 12 null, null, -UN 1999 3 1 null, null, -UN 1999 3 2 null, null, -UN 1999 3 3 null, null, -UN 1999 3 4 null, null, -UN 1999 3 5 null, null, -UN 1999 3 6 null, null, -UN 1999 3 7 null, null, -UN 1999 3 8 23.0, null, -UN 1999 3 9 null, null, -UN 1999 3 10 null, null, -UN 1999 3 11 null, null, -UN 1999 3 12 null, null, -UN 2000 4 1 null, null, -UN 2000 4 2 null, null, -UN 2000 4 3 null, null, -UN 2000 4 4 null, null, -UN 2000 4 5 null, null, -UN 2000 4 6 null, null, -UN 2000 4 7 null, null, -UN 2000 4 8 null, null, -UN 2000 4 9 null, null, -UN 2000 4 10 null, 36.0, -UN 2000 4 11 null, null, -UN 2000 4 12 null, null, -US 1999 2 1 null, null, -US 1999 2 2 null, null, -US 1999 2 3 null, null, -US 1999 2 4 null, null, -US 1999 2 5 11.0, null, -US 1999 2 6 null, null, -US 1999 2 7 null, null, -US 1999 2 8 null, null, -US 1999 2 9 null, null, -US 1999 2 10 null, null, -US 1999 2 11 null, null, -US 1999 2 12 null, null, -US 1999 3 1 null, null, -US 1999 3 2 null, null, -US 1999 3 3 null, null, -US 1999 3 4 null, null, -US 1999 3 5 null, null, -US 1999 3 6 null, null, -US 1999 3 7 null, 16.0, -US 1999 3 8 null, null, -US 1999 3 9 null, null, -US 1999 3 10 null, null, -US 1999 3 11 null, null, -US 1999 3 12 null, null,
\ No newline at end of file +1998 1 1 1 null, null, +1998 1 1 2 null, null, +1998 1 1 3 null, null, +1998 1 1 4 null, null, +1998 1 1 5 null, null, +1998 1 1 6 null, null, +1998 1 1 7 null, null, +1998 1 1 8 null, null, +1998 1 1 9 null, null, +1998 1 1 10 null, null, +1998 1 1 11 null, null, +1998 1 1 12 null, null, +1998 1 1 13 null, null, +1998 1 1 14 null, null, +1998 1 1 15 1.0, null, +1998 1 1 16 null, null, +1998 1 1 17 null, null, +1998 1 1 18 null, null, +1998 1 1 19 null, null, +1998 1 1 20 null, null, +1998 1 1 21 null, null, +1998 1 1 22 null, null, +1998 1 1 23 null, null, +1998 1 1 24 null, null, +1998 1 1 25 null, null, +1998 1 1 26 null, null, +1998 1 1 27 null, null, +1998 1 1 28 null, null, +1998 1 1 29 null, null, +1998 1 1 30 null, null, +1998 1 1 31 null, null, +1998 1 2 1 null, null, +1998 1 2 2 null, null, +1998 1 2 3 null, null, +1998 1 2 4 null, null, +1998 1 2 5 null, null, +1998 1 2 6 null, null, +1998 1 2 7 null, null, +1998 1 2 8 null, null, +1998 1 2 9 null, null, +1998 1 2 10 null, null, +1998 1 2 11 null, null, +1998 1 2 12 null, null, +1998 1 2 13 null, null, +1998 1 2 14 null, null, +1998 1 2 15 null, null, +1998 1 2 16 null, null, +1998 1 2 17 null, null, +1998 1 2 18 null, null, +1998 1 2 19 null, null, +1998 1 2 20 null, null, +1998 1 2 21 38.0, null, +1998 1 2 22 null, null, +1998 1 2 23 null, null, +1998 1 2 24 null, null, +1998 1 2 25 null, null, +1998 1 2 26 null, null, +1998 1 2 27 null, null, +1998 1 2 28 null, null, +1998 1 2 29 null, null, +1998 1 2 30 null, null, +1998 1 2 31 null, null, +1999 2 4 1 null, null, +1999 2 4 2 null, null, +1999 2 4 3 null, null, +1999 2 4 4 null, null, +1999 2 4 5 null, null, +1999 2 4 6 null, null, +1999 2 4 7 null, null, +1999 2 4 8 null, null, +1999 2 4 9 null, null, +1999 2 4 10 null, null, +1999 2 4 11 null, null, +1999 2 4 12 null, null, +1999 2 4 13 null, null, +1999 2 4 14 null, null, +1999 2 4 15 null, null, +1999 2 4 16 null, 2.0, +1999 2 4 17 null, null, +1999 2 4 18 null, null, +1999 2 4 19 null, null, +1999 2 4 20 null, null, +1999 2 4 21 null, null, +1999 2 4 22 null, null, +1999 2 4 23 null, null, +1999 2 4 24 null, null, +1999 2 4 25 null, null, +1999 2 4 26 null, null, +1999 2 4 27 null, null, +1999 2 4 28 null, null, +1999 2 4 29 null, null, +1999 2 4 30 null, null, +1999 2 4 31 null, null, +1999 2 5 1 null, null, +1999 2 5 2 null, null, +1999 2 5 3 null, null, +1999 2 5 4 null, null, +1999 2 5 5 null, null, +1999 2 5 6 null, null, +1999 2 5 7 null, null, +1999 2 5 8 null, null, +1999 2 5 9 null, null, +1999 2 5 10 null, null, +1999 2 5 11 null, null, +1999 2 5 12 null, null, +1999 2 5 13 null, null, +1999 2 5 14 null, null, +1999 2 5 15 null, null, +1999 2 5 16 null, null, +1999 2 5 17 11.0, null, +1999 2 5 18 null, null, +1999 2 5 19 null, null, +1999 2 5 20 null, null, +1999 2 5 21 null, null, +1999 2 5 22 null, null, +1999 2 5 23 null, null, +1999 2 5 24 null, null, +1999 2 5 25 null, null, +1999 2 5 26 null, null, +1999 2 5 27 null, null, +1999 2 5 28 null, null, +1999 2 5 29 null, null, +1999 2 5 30 null, null, +1999 2 5 31 null, null, +1999 3 8 1 null, null, +1999 3 8 2 null, null, +1999 3 8 3 null, null, +1999 3 8 4 null, null, +1999 3 8 5 null, null, +1999 3 8 6 null, null, +1999 3 8 7 null, null, +1999 3 8 8 null, null, +1999 3 8 9 null, null, +1999 3 8 10 null, null, +1999 3 8 11 null, null, +1999 3 8 12 null, null, +1999 3 8 13 null, null, +1999 3 8 14 null, null, +1999 3 8 15 null, null, +1999 3 8 16 null, null, +1999 3 8 17 null, null, +1999 3 8 18 null, 16.0, +1999 3 8 19 null, null, +1999 3 8 20 null, 36.0, +1999 3 8 21 null, null, +1999 3 8 22 null, null, +1999 3 8 23 null, null, +1999 3 8 24 null, null, +1999 3 8 25 null, null, +1999 3 8 26 null, null, +1999 3 8 27 null, null, +1999 3 8 28 null, null, +1999 3 8 29 null, null, +1999 3 8 30 null, null, +1999 3 8 31 null, null, +1999 3 9 1 null, null, +1999 3 9 2 null, null, +1999 3 9 3 null, null, +1999 3 9 4 null, null, +1999 3 9 5 null, null, +1999 3 9 6 null, null, +1999 3 9 7 null, null, +1999 3 9 8 null, null, +1999 3 9 9 null, null, +1999 3 9 10 null, null, +1999 3 9 11 null, null, +1999 3 9 12 null, null, +1999 3 9 13 null, null, +1999 3 9 14 null, null, +1999 3 9 15 null, null, +1999 3 9 16 null, null, +1999 3 9 17 null, null, +1999 3 9 18 null, null, +1999 3 9 19 23.0, null, +1999 3 9 20 null, null, +1999 3 9 21 null, null, +1999 3 9 22 null, null, +1999 3 9 23 null, null, +1999 3 9 24 null, null, +1999 3 9 25 null, null, +1999 3 9 26 null, null, +1999 3 9 27 null, null, +1999 3 9 28 null, null, +1999 3 9 29 null, null, +1999 3 9 30 null, null, +1999 3 9 31 null, null, +2000 4 11 1 null, null, +2000 4 11 2 null, null, +2000 4 11 3 null, null, +2000 4 11 4 null, null, +2000 4 11 5 null, null, +2000 4 11 6 null, null, +2000 4 11 7 null, null, +2000 4 11 8 null, null, +2000 4 11 9 null, null, +2000 4 11 10 null, null, +2000 4 11 11 null, null, +2000 4 11 12 null, null, +2000 4 11 13 null, null, +2000 4 11 14 null, null, +2000 4 11 15 null, null, +2000 4 11 16 null, null, +2000 4 11 17 null, null, +2000 4 11 18 null, null, +2000 4 11 19 null, null, +2000 4 11 20 null, null, +2000 4 11 21 null, null, +2000 4 11 22 null, 39.0, +2000 4 11 23 null, null, +2000 4 11 24 null, null, +2000 4 11 25 null, null, +2000 4 11 26 null, null, +2000 4 11 27 null, null, +2000 4 11 28 null, null, +2000 4 11 29 null, null, +2000 4 11 30 null, null, +2000 4 11 31 null, null,
\ No newline at end of file diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/golden/DateTimeCursorTest.testMirrorOnQuarterDimension.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/golden/DateTimeCursorTest.testMirrorOnQuarterDimension.txt index 27267b1..318e7bf 100644 --- a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/golden/DateTimeCursorTest.testMirrorOnQuarterDimension.txt +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/golden/DateTimeCursorTest.testMirrorOnQuarterDimension.txt @@ -1,86 +1,1462 @@ PP1 PP2 -CN 1998 1 1 1.0, null, -CN 1998 1 2 null, null, -CN 1998 1 3 null, null, -CN 1998 2 4 null, null, -CN 1998 2 5 null, null, -CN 1998 2 6 null, null, -CN 1998 3 7 null, null, -CN 1998 3 8 null, null, -CN 1998 3 9 null, null, -CN 1998 4 10 null, null, -CN 1998 4 11 null, null, -CN 1998 4 12 null, null, -CN 1999 1 1 null, null, -CN 1999 1 2 null, null, -CN 1999 1 3 null, null, -CN 1999 2 4 null, 2.0, -CN 1999 2 5 null, null, -CN 1999 2 6 null, null, -CN 1999 3 7 null, null, -CN 1999 3 8 null, null, -CN 1999 3 9 null, null, -CN 1999 4 10 null, null, -CN 1999 4 11 null, null, -CN 1999 4 12 null, null, -JP 1998 1 1 null, null, -JP 1998 1 2 38.0, null, -JP 1998 1 3 null, null, -JP 1998 2 4 null, null, -JP 1998 2 5 null, null, -JP 1998 2 6 null, null, -JP 1998 3 7 null, null, -JP 1998 3 8 null, null, -JP 1998 3 9 null, null, -JP 1998 4 10 null, null, -JP 1998 4 11 null, null, -JP 1998 4 12 null, null, -JP 2000 1 1 null, null, -JP 2000 1 2 null, null, -JP 2000 1 3 null, null, -JP 2000 2 4 null, null, -JP 2000 2 5 null, null, -JP 2000 2 6 null, null, -JP 2000 3 7 null, null, -JP 2000 3 8 null, null, -JP 2000 3 9 null, null, -JP 2000 4 10 null, null, -JP 2000 4 11 null, 39.0, -JP 2000 4 12 null, null, -UN 1999 1 1 null, null, -UN 1999 1 2 null, null, -UN 1999 1 3 null, null, -UN 1999 2 4 null, null, -UN 1999 2 5 null, null, -UN 1999 2 6 null, null, -UN 1999 3 7 null, null, -UN 1999 3 8 23.0, null, -UN 1999 3 9 null, null, -UN 1999 4 10 null, null, -UN 1999 4 11 null, null, -UN 1999 4 12 null, null, -UN 2000 1 1 null, null, -UN 2000 1 2 null, null, -UN 2000 1 3 null, null, -UN 2000 2 4 null, null, -UN 2000 2 5 null, null, -UN 2000 2 6 null, null, -UN 2000 3 7 null, null, -UN 2000 3 8 null, null, -UN 2000 3 9 null, null, -UN 2000 4 10 null, 36.0, -UN 2000 4 11 null, null, -UN 2000 4 12 null, null, -US 1999 1 1 null, null, -US 1999 1 2 null, null, -US 1999 1 3 null, null, -US 1999 2 4 null, null, -US 1999 2 5 11.0, null, -US 1999 2 6 null, null, -US 1999 3 7 null, 16.0, -US 1999 3 8 null, null, -US 1999 3 9 null, null, -US 1999 4 10 null, null, -US 1999 4 11 null, null, -US 1999 4 12 null, null,
\ No newline at end of file +1998 1 1 1 null, null, +1998 1 1 2 null, null, +1998 1 1 3 null, null, +1998 1 1 4 null, null, +1998 1 1 5 null, null, +1998 1 1 6 null, null, +1998 1 1 7 null, null, +1998 1 1 8 null, null, +1998 1 1 9 null, null, +1998 1 1 10 null, null, +1998 1 1 11 null, null, +1998 1 1 12 null, null, +1998 1 1 13 null, null, +1998 1 1 14 null, null, +1998 1 1 15 1.0, null, +1998 1 1 16 null, null, +1998 1 1 17 null, null, +1998 1 1 18 null, null, +1998 1 1 19 null, null, +1998 1 1 20 null, null, +1998 1 1 21 null, null, +1998 1 1 22 null, null, +1998 1 1 23 null, null, +1998 1 1 24 null, null, +1998 1 1 25 null, null, +1998 1 1 26 null, null, +1998 1 1 27 null, null, +1998 1 1 28 null, null, +1998 1 1 29 null, null, +1998 1 1 30 null, null, +1998 1 1 31 null, null, +1998 1 2 1 null, null, +1998 1 2 2 null, null, +1998 1 2 3 null, null, +1998 1 2 4 null, null, +1998 1 2 5 null, null, +1998 1 2 6 null, null, +1998 1 2 7 null, null, +1998 1 2 8 null, null, +1998 1 2 9 null, null, +1998 1 2 10 null, null, +1998 1 2 11 null, null, +1998 1 2 12 null, null, +1998 1 2 13 null, null, +1998 1 2 14 null, null, +1998 1 2 15 null, null, +1998 1 2 16 null, null, +1998 1 2 17 null, null, +1998 1 2 18 null, null, +1998 1 2 19 null, null, +1998 1 2 20 null, null, +1998 1 2 21 38.0, null, +1998 1 2 22 null, null, +1998 1 2 23 null, null, +1998 1 2 24 null, null, +1998 1 2 25 null, null, +1998 1 2 26 null, null, +1998 1 2 27 null, null, +1998 1 2 28 null, null, +1998 1 3 1 null, null, +1998 1 3 2 null, null, +1998 1 3 3 null, null, +1998 1 3 4 null, null, +1998 1 3 5 null, null, +1998 1 3 6 null, null, +1998 1 3 7 null, null, +1998 1 3 8 null, null, +1998 1 3 9 null, null, +1998 1 3 10 null, null, +1998 1 3 11 null, null, +1998 1 3 12 null, null, +1998 1 3 13 null, null, +1998 1 3 14 null, null, +1998 1 3 15 null, null, +1998 1 3 16 null, null, +1998 1 3 17 null, null, +1998 1 3 18 null, null, +1998 1 3 19 null, null, +1998 1 3 20 null, null, +1998 1 3 21 null, null, +1998 1 3 22 null, null, +1998 1 3 23 null, null, +1998 1 3 24 null, null, +1998 1 3 25 null, null, +1998 1 3 26 null, null, +1998 1 3 27 null, null, +1998 1 3 28 null, null, +1998 1 3 29 null, null, +1998 1 3 30 null, null, +1998 1 3 31 null, null, +1998 1 4 1 null, null, +1998 1 4 2 null, null, +1998 1 4 3 null, null, +1998 1 4 4 null, null, +1998 1 4 5 null, null, +1998 1 4 6 null, null, +1998 1 4 7 null, null, +1998 1 4 8 null, null, +1998 1 4 9 null, null, +1998 1 4 10 null, null, +1998 1 4 11 null, null, +1998 1 4 12 null, null, +1998 1 4 13 null, null, +1998 1 4 14 null, null, +1998 1 4 15 null, null, +1998 1 4 16 null, null, +1998 1 4 17 null, null, +1998 1 4 18 null, null, +1998 1 4 19 null, null, +1998 1 4 20 null, null, +1998 1 4 21 null, null, +1998 1 4 22 null, null, +1998 1 4 23 null, null, +1998 1 4 24 null, null, +1998 1 4 25 null, null, +1998 1 4 26 null, null, +1998 1 4 27 null, null, +1998 1 4 28 null, null, +1998 1 4 29 null, null, +1998 1 4 30 null, null, +1998 1 5 1 null, null, +1998 1 5 2 null, null, +1998 1 5 3 null, null, +1998 1 5 4 null, null, +1998 1 5 5 null, null, +1998 1 5 6 null, null, +1998 1 5 7 null, null, +1998 1 5 8 null, null, +1998 1 5 9 null, null, +1998 1 5 10 null, null, +1998 1 5 11 null, null, +1998 1 5 12 null, null, +1998 1 5 13 null, null, +1998 1 5 14 null, null, +1998 1 5 15 null, null, +1998 1 5 16 null, null, +1998 1 5 17 null, null, +1998 1 5 18 null, null, +1998 1 5 19 null, null, +1998 1 5 20 null, null, +1998 1 5 21 null, null, +1998 1 5 22 null, null, +1998 1 5 23 null, null, +1998 1 5 24 null, null, +1998 1 5 25 null, null, +1998 1 5 26 null, null, +1998 1 5 27 null, null, +1998 1 5 28 null, null, +1998 1 5 29 null, null, +1998 1 5 30 null, null, +1998 1 5 31 null, null, +1998 1 6 1 null, null, +1998 1 6 2 null, null, +1998 1 6 3 null, null, +1998 1 6 4 null, null, +1998 1 6 5 null, null, +1998 1 6 6 null, null, +1998 1 6 7 null, null, +1998 1 6 8 null, null, +1998 1 6 9 null, null, +1998 1 6 10 null, null, +1998 1 6 11 null, null, +1998 1 6 12 null, null, +1998 1 6 13 null, null, +1998 1 6 14 null, null, +1998 1 6 15 null, null, +1998 1 6 16 null, null, +1998 1 6 17 null, null, +1998 1 6 18 null, null, +1998 1 6 19 null, null, +1998 1 6 20 null, null, +1998 1 6 21 null, null, +1998 1 6 22 null, null, +1998 1 6 23 null, null, +1998 1 6 24 null, null, +1998 1 6 25 null, null, +1998 1 6 26 null, null, +1998 1 6 27 null, null, +1998 1 6 28 null, null, +1998 1 6 29 null, null, +1998 1 6 30 null, null, +1998 1 7 1 null, null, +1998 1 7 2 null, null, +1998 1 7 3 null, null, +1998 1 7 4 null, null, +1998 1 7 5 null, null, +1998 1 7 6 null, null, +1998 1 7 7 null, null, +1998 1 7 8 null, null, +1998 1 7 9 null, null, +1998 1 7 10 null, null, +1998 1 7 11 null, null, +1998 1 7 12 null, null, +1998 1 7 13 null, null, +1998 1 7 14 null, null, +1998 1 7 15 null, null, +1998 1 7 16 null, null, +1998 1 7 17 null, null, +1998 1 7 18 null, null, +1998 1 7 19 null, null, +1998 1 7 20 null, null, +1998 1 7 21 null, null, +1998 1 7 22 null, null, +1998 1 7 23 null, null, +1998 1 7 24 null, null, +1998 1 7 25 null, null, +1998 1 7 26 null, null, +1998 1 7 27 null, null, +1998 1 7 28 null, null, +1998 1 7 29 null, null, +1998 1 7 30 null, null, +1998 1 7 31 null, null, +1998 1 8 1 null, null, +1998 1 8 2 null, null, +1998 1 8 3 null, null, +1998 1 8 4 null, null, +1998 1 8 5 null, null, +1998 1 8 6 null, null, +1998 1 8 7 null, null, +1998 1 8 8 null, null, +1998 1 8 9 null, null, +1998 1 8 10 null, null, +1998 1 8 11 null, null, +1998 1 8 12 null, null, +1998 1 8 13 null, null, +1998 1 8 14 null, null, +1998 1 8 15 null, null, +1998 1 8 16 null, null, +1998 1 8 17 null, null, +1998 1 8 18 null, null, +1998 1 8 19 null, null, +1998 1 8 20 null, null, +1998 1 8 21 null, null, +1998 1 8 22 null, null, +1998 1 8 23 null, null, +1998 1 8 24 null, null, +1998 1 8 25 null, null, +1998 1 8 26 null, null, +1998 1 8 27 null, null, +1998 1 8 28 null, null, +1998 1 8 29 null, null, +1998 1 8 30 null, null, +1998 1 8 31 null, null, +1998 1 9 1 null, null, +1998 1 9 2 null, null, +1998 1 9 3 null, null, +1998 1 9 4 null, null, +1998 1 9 5 null, null, +1998 1 9 6 null, null, +1998 1 9 7 null, null, +1998 1 9 8 null, null, +1998 1 9 9 null, null, +1998 1 9 10 null, null, +1998 1 9 11 null, null, +1998 1 9 12 null, null, +1998 1 9 13 null, null, +1998 1 9 14 null, null, +1998 1 9 15 null, null, +1998 1 9 16 null, null, +1998 1 9 17 null, null, +1998 1 9 18 null, null, +1998 1 9 19 null, null, +1998 1 9 20 null, null, +1998 1 9 21 null, null, +1998 1 9 22 null, null, +1998 1 9 23 null, null, +1998 1 9 24 null, null, +1998 1 9 25 null, null, +1998 1 9 26 null, null, +1998 1 9 27 null, null, +1998 1 9 28 null, null, +1998 1 9 29 null, null, +1998 1 9 30 null, null, +1998 1 10 1 null, null, +1998 1 10 2 null, null, +1998 1 10 3 null, null, +1998 1 10 4 null, null, +1998 1 10 5 null, null, +1998 1 10 6 null, null, +1998 1 10 7 null, null, +1998 1 10 8 null, null, +1998 1 10 9 null, null, +1998 1 10 10 null, null, +1998 1 10 11 null, null, +1998 1 10 12 null, null, +1998 1 10 13 null, null, +1998 1 10 14 null, null, +1998 1 10 15 null, null, +1998 1 10 16 null, null, +1998 1 10 17 null, null, +1998 1 10 18 null, null, +1998 1 10 19 null, null, +1998 1 10 20 null, null, +1998 1 10 21 null, null, +1998 1 10 22 null, null, +1998 1 10 23 null, null, +1998 1 10 24 null, null, +1998 1 10 25 null, null, +1998 1 10 26 null, null, +1998 1 10 27 null, null, +1998 1 10 28 null, null, +1998 1 10 29 null, null, +1998 1 10 30 null, null, +1998 1 10 31 null, null, +1998 1 11 1 null, null, +1998 1 11 2 null, null, +1998 1 11 3 null, null, +1998 1 11 4 null, null, +1998 1 11 5 null, null, +1998 1 11 6 null, null, +1998 1 11 7 null, null, +1998 1 11 8 null, null, +1998 1 11 9 null, null, +1998 1 11 10 null, null, +1998 1 11 11 null, null, +1998 1 11 12 null, null, +1998 1 11 13 null, null, +1998 1 11 14 null, null, +1998 1 11 15 null, null, +1998 1 11 16 null, null, +1998 1 11 17 null, null, +1998 1 11 18 null, null, +1998 1 11 19 null, null, +1998 1 11 20 null, null, +1998 1 11 21 null, null, +1998 1 11 22 null, null, +1998 1 11 23 null, null, +1998 1 11 24 null, null, +1998 1 11 25 null, null, +1998 1 11 26 null, null, +1998 1 11 27 null, null, +1998 1 11 28 null, null, +1998 1 11 29 null, null, +1998 1 11 30 null, null, +1998 1 12 1 null, null, +1998 1 12 2 null, null, +1998 1 12 3 null, null, +1998 1 12 4 null, null, +1998 1 12 5 null, null, +1998 1 12 6 null, null, +1998 1 12 7 null, null, +1998 1 12 8 null, null, +1998 1 12 9 null, null, +1998 1 12 10 null, null, +1998 1 12 11 null, null, +1998 1 12 12 null, null, +1998 1 12 13 null, null, +1998 1 12 14 null, null, +1998 1 12 15 null, null, +1998 1 12 16 null, null, +1998 1 12 17 null, null, +1998 1 12 18 null, null, +1998 1 12 19 null, null, +1998 1 12 20 null, null, +1998 1 12 21 null, null, +1998 1 12 22 null, null, +1998 1 12 23 null, null, +1998 1 12 24 null, null, +1998 1 12 25 null, null, +1998 1 12 26 null, null, +1998 1 12 27 null, null, +1998 1 12 28 null, null, +1998 1 12 29 null, null, +1998 1 12 30 null, null, +1998 1 12 31 null, null, +1999 2 1 1 null, null, +1999 2 1 2 null, null, +1999 2 1 3 null, null, +1999 2 1 4 null, null, +1999 2 1 5 null, null, +1999 2 1 6 null, null, +1999 2 1 7 null, null, +1999 2 1 8 null, null, +1999 2 1 9 null, null, +1999 2 1 10 null, null, +1999 2 1 11 null, null, +1999 2 1 12 null, null, +1999 2 1 13 null, null, +1999 2 1 14 null, null, +1999 2 1 15 null, null, +1999 2 1 16 null, null, +1999 2 1 17 null, null, +1999 2 1 18 null, null, +1999 2 1 19 null, null, +1999 2 1 20 null, null, +1999 2 1 21 null, null, +1999 2 1 22 null, null, +1999 2 1 23 null, null, +1999 2 1 24 null, null, +1999 2 1 25 null, null, +1999 2 1 26 null, null, +1999 2 1 27 null, null, +1999 2 1 28 null, null, +1999 2 1 29 null, null, +1999 2 1 30 null, null, +1999 2 1 31 null, null, +1999 2 2 1 null, null, +1999 2 2 2 null, null, +1999 2 2 3 null, null, +1999 2 2 4 null, null, +1999 2 2 5 null, null, +1999 2 2 6 null, null, +1999 2 2 7 null, null, +1999 2 2 8 null, null, +1999 2 2 9 null, null, +1999 2 2 10 null, null, +1999 2 2 11 null, null, +1999 2 2 12 null, null, +1999 2 2 13 null, null, +1999 2 2 14 null, null, +1999 2 2 15 null, null, +1999 2 2 16 null, null, +1999 2 2 17 null, null, +1999 2 2 18 null, null, +1999 2 2 19 null, null, +1999 2 2 20 null, null, +1999 2 2 21 null, null, +1999 2 2 22 null, null, +1999 2 2 23 null, null, +1999 2 2 24 null, null, +1999 2 2 25 null, null, +1999 2 2 26 null, null, +1999 2 2 27 null, null, +1999 2 2 28 null, null, +1999 2 3 1 null, null, +1999 2 3 2 null, null, +1999 2 3 3 null, null, +1999 2 3 4 null, null, +1999 2 3 5 null, null, +1999 2 3 6 null, null, +1999 2 3 7 null, null, +1999 2 3 8 null, null, +1999 2 3 9 null, null, +1999 2 3 10 null, null, +1999 2 3 11 null, null, +1999 2 3 12 null, null, +1999 2 3 13 null, null, +1999 2 3 14 null, null, +1999 2 3 15 null, null, +1999 2 3 16 null, null, +1999 2 3 17 null, null, +1999 2 3 18 null, null, +1999 2 3 19 null, null, +1999 2 3 20 null, null, +1999 2 3 21 null, null, +1999 2 3 22 null, null, +1999 2 3 23 null, null, +1999 2 3 24 null, null, +1999 2 3 25 null, null, +1999 2 3 26 null, null, +1999 2 3 27 null, null, +1999 2 3 28 null, null, +1999 2 3 29 null, null, +1999 2 3 30 null, null, +1999 2 3 31 null, null, +1999 2 4 1 null, null, +1999 2 4 2 null, null, +1999 2 4 3 null, null, +1999 2 4 4 null, null, +1999 2 4 5 null, null, +1999 2 4 6 null, null, +1999 2 4 7 null, null, +1999 2 4 8 null, null, +1999 2 4 9 null, null, +1999 2 4 10 null, null, +1999 2 4 11 null, null, +1999 2 4 12 null, null, +1999 2 4 13 null, null, +1999 2 4 14 null, null, +1999 2 4 15 null, null, +1999 2 4 16 null, 2.0, +1999 2 4 17 null, null, +1999 2 4 18 null, null, +1999 2 4 19 null, null, +1999 2 4 20 null, null, +1999 2 4 21 null, null, +1999 2 4 22 null, null, +1999 2 4 23 null, null, +1999 2 4 24 null, null, +1999 2 4 25 null, null, +1999 2 4 26 null, null, +1999 2 4 27 null, null, +1999 2 4 28 null, null, +1999 2 4 29 null, null, +1999 2 4 30 null, null, +1999 2 5 1 null, null, +1999 2 5 2 null, null, +1999 2 5 3 null, null, +1999 2 5 4 null, null, +1999 2 5 5 null, null, +1999 2 5 6 null, null, +1999 2 5 7 null, null, +1999 2 5 8 null, null, +1999 2 5 9 null, null, +1999 2 5 10 null, null, +1999 2 5 11 null, null, +1999 2 5 12 null, null, +1999 2 5 13 null, null, +1999 2 5 14 null, null, +1999 2 5 15 null, null, +1999 2 5 16 null, null, +1999 2 5 17 11.0, null, +1999 2 5 18 null, null, +1999 2 5 19 null, null, +1999 2 5 20 null, null, +1999 2 5 21 null, null, +1999 2 5 22 null, null, +1999 2 5 23 null, null, +1999 2 5 24 null, null, +1999 2 5 25 null, null, +1999 2 5 26 null, null, +1999 2 5 27 null, null, +1999 2 5 28 null, null, +1999 2 5 29 null, null, +1999 2 5 30 null, null, +1999 2 5 31 null, null, +1999 2 6 1 null, null, +1999 2 6 2 null, null, +1999 2 6 3 null, null, +1999 2 6 4 null, null, +1999 2 6 5 null, null, +1999 2 6 6 null, null, +1999 2 6 7 null, null, +1999 2 6 8 null, null, +1999 2 6 9 null, null, +1999 2 6 10 null, null, +1999 2 6 11 null, null, +1999 2 6 12 null, null, +1999 2 6 13 null, null, +1999 2 6 14 null, null, +1999 2 6 15 null, null, +1999 2 6 16 null, null, +1999 2 6 17 null, null, +1999 2 6 18 null, null, +1999 2 6 19 null, null, +1999 2 6 20 null, null, +1999 2 6 21 null, null, +1999 2 6 22 null, null, +1999 2 6 23 null, null, +1999 2 6 24 null, null, +1999 2 6 25 null, null, +1999 2 6 26 null, null, +1999 2 6 27 null, null, +1999 2 6 28 null, null, +1999 2 6 29 null, null, +1999 2 6 30 null, null, +1999 2 7 1 null, null, +1999 2 7 2 null, null, +1999 2 7 3 null, null, +1999 2 7 4 null, null, +1999 2 7 5 null, null, +1999 2 7 6 null, null, +1999 2 7 7 null, null, +1999 2 7 8 null, null, +1999 2 7 9 null, null, +1999 2 7 10 null, null, +1999 2 7 11 null, null, +1999 2 7 12 null, null, +1999 2 7 13 null, null, +1999 2 7 14 null, null, +1999 2 7 15 null, null, +1999 2 7 16 null, null, +1999 2 7 17 null, null, +1999 2 7 18 null, null, +1999 2 7 19 null, null, +1999 2 7 20 null, null, +1999 2 7 21 null, null, +1999 2 7 22 null, null, +1999 2 7 23 null, null, +1999 2 7 24 null, null, +1999 2 7 25 null, null, +1999 2 7 26 null, null, +1999 2 7 27 null, null, +1999 2 7 28 null, null, +1999 2 7 29 null, null, +1999 2 7 30 null, null, +1999 2 7 31 null, null, +1999 2 8 1 null, null, +1999 2 8 2 null, null, +1999 2 8 3 null, null, +1999 2 8 4 null, null, +1999 2 8 5 null, null, +1999 2 8 6 null, null, +1999 2 8 7 null, null, +1999 2 8 8 null, null, +1999 2 8 9 null, null, +1999 2 8 10 null, null, +1999 2 8 11 null, null, +1999 2 8 12 null, null, +1999 2 8 13 null, null, +1999 2 8 14 null, null, +1999 2 8 15 null, null, +1999 2 8 16 null, null, +1999 2 8 17 null, null, +1999 2 8 18 null, null, +1999 2 8 19 null, null, +1999 2 8 20 null, null, +1999 2 8 21 null, null, +1999 2 8 22 null, null, +1999 2 8 23 null, null, +1999 2 8 24 null, null, +1999 2 8 25 null, null, +1999 2 8 26 null, null, +1999 2 8 27 null, null, +1999 2 8 28 null, null, +1999 2 8 29 null, null, +1999 2 8 30 null, null, +1999 2 8 31 null, null, +1999 2 9 1 null, null, +1999 2 9 2 null, null, +1999 2 9 3 null, null, +1999 2 9 4 null, null, +1999 2 9 5 null, null, +1999 2 9 6 null, null, +1999 2 9 7 null, null, +1999 2 9 8 null, null, +1999 2 9 9 null, null, +1999 2 9 10 null, null, +1999 2 9 11 null, null, +1999 2 9 12 null, null, +1999 2 9 13 null, null, +1999 2 9 14 null, null, +1999 2 9 15 null, null, +1999 2 9 16 null, null, +1999 2 9 17 null, null, +1999 2 9 18 null, null, +1999 2 9 19 null, null, +1999 2 9 20 null, null, +1999 2 9 21 null, null, +1999 2 9 22 null, null, +1999 2 9 23 null, null, +1999 2 9 24 null, null, +1999 2 9 25 null, null, +1999 2 9 26 null, null, +1999 2 9 27 null, null, +1999 2 9 28 null, null, +1999 2 9 29 null, null, +1999 2 9 30 null, null, +1999 2 10 1 null, null, +1999 2 10 2 null, null, +1999 2 10 3 null, null, +1999 2 10 4 null, null, +1999 2 10 5 null, null, +1999 2 10 6 null, null, +1999 2 10 7 null, null, +1999 2 10 8 null, null, +1999 2 10 9 null, null, +1999 2 10 10 null, null, +1999 2 10 11 null, null, +1999 2 10 12 null, null, +1999 2 10 13 null, null, +1999 2 10 14 null, null, +1999 2 10 15 null, null, +1999 2 10 16 null, null, +1999 2 10 17 null, null, +1999 2 10 18 null, null, +1999 2 10 19 null, null, +1999 2 10 20 null, null, +1999 2 10 21 null, null, +1999 2 10 22 null, null, +1999 2 10 23 null, null, +1999 2 10 24 null, null, +1999 2 10 25 null, null, +1999 2 10 26 null, null, +1999 2 10 27 null, null, +1999 2 10 28 null, null, +1999 2 10 29 null, null, +1999 2 10 30 null, null, +1999 2 10 31 null, null, +1999 2 11 1 null, null, +1999 2 11 2 null, null, +1999 2 11 3 null, null, +1999 2 11 4 null, null, +1999 2 11 5 null, null, +1999 2 11 6 null, null, +1999 2 11 7 null, null, +1999 2 11 8 null, null, +1999 2 11 9 null, null, +1999 2 11 10 null, null, +1999 2 11 11 null, null, +1999 2 11 12 null, null, +1999 2 11 13 null, null, +1999 2 11 14 null, null, +1999 2 11 15 null, null, +1999 2 11 16 null, null, +1999 2 11 17 null, null, +1999 2 11 18 null, null, +1999 2 11 19 null, null, +1999 2 11 20 null, null, +1999 2 11 21 null, null, +1999 2 11 22 null, null, +1999 2 11 23 null, null, +1999 2 11 24 null, null, +1999 2 11 25 null, null, +1999 2 11 26 null, null, +1999 2 11 27 null, null, +1999 2 11 28 null, null, +1999 2 11 29 null, null, +1999 2 11 30 null, null, +1999 2 12 1 null, null, +1999 2 12 2 null, null, +1999 2 12 3 null, null, +1999 2 12 4 null, null, +1999 2 12 5 null, null, +1999 2 12 6 null, null, +1999 2 12 7 null, null, +1999 2 12 8 null, null, +1999 2 12 9 null, null, +1999 2 12 10 null, null, +1999 2 12 11 null, null, +1999 2 12 12 null, null, +1999 2 12 13 null, null, +1999 2 12 14 null, null, +1999 2 12 15 null, null, +1999 2 12 16 null, null, +1999 2 12 17 null, null, +1999 2 12 18 null, null, +1999 2 12 19 null, null, +1999 2 12 20 null, null, +1999 2 12 21 null, null, +1999 2 12 22 null, null, +1999 2 12 23 null, null, +1999 2 12 24 null, null, +1999 2 12 25 null, null, +1999 2 12 26 null, null, +1999 2 12 27 null, null, +1999 2 12 28 null, null, +1999 2 12 29 null, null, +1999 2 12 30 null, null, +1999 2 12 31 null, null, +1999 3 1 1 null, null, +1999 3 1 2 null, null, +1999 3 1 3 null, null, +1999 3 1 4 null, null, +1999 3 1 5 null, null, +1999 3 1 6 null, null, +1999 3 1 7 null, null, +1999 3 1 8 null, null, +1999 3 1 9 null, null, +1999 3 1 10 null, null, +1999 3 1 11 null, null, +1999 3 1 12 null, null, +1999 3 1 13 null, null, +1999 3 1 14 null, null, +1999 3 1 15 null, null, +1999 3 1 16 null, null, +1999 3 1 17 null, null, +1999 3 1 18 null, null, +1999 3 1 19 null, null, +1999 3 1 20 null, null, +1999 3 1 21 null, null, +1999 3 1 22 null, null, +1999 3 1 23 null, null, +1999 3 1 24 null, null, +1999 3 1 25 null, null, +1999 3 1 26 null, null, +1999 3 1 27 null, null, +1999 3 1 28 null, null, +1999 3 1 29 null, null, +1999 3 1 30 null, null, +1999 3 1 31 null, null, +1999 3 2 1 null, null, +1999 3 2 2 null, null, +1999 3 2 3 null, null, +1999 3 2 4 null, null, +1999 3 2 5 null, null, +1999 3 2 6 null, null, +1999 3 2 7 null, null, +1999 3 2 8 null, null, +1999 3 2 9 null, null, +1999 3 2 10 null, null, +1999 3 2 11 null, null, +1999 3 2 12 null, null, +1999 3 2 13 null, null, +1999 3 2 14 null, null, +1999 3 2 15 null, null, +1999 3 2 16 null, null, +1999 3 2 17 null, null, +1999 3 2 18 null, null, +1999 3 2 19 null, null, +1999 3 2 20 null, null, +1999 3 2 21 null, null, +1999 3 2 22 null, null, +1999 3 2 23 null, null, +1999 3 2 24 null, null, +1999 3 2 25 null, null, +1999 3 2 26 null, null, +1999 3 2 27 null, null, +1999 3 2 28 null, null, +1999 3 3 1 null, null, +1999 3 3 2 null, null, +1999 3 3 3 null, null, +1999 3 3 4 null, null, +1999 3 3 5 null, null, +1999 3 3 6 null, null, +1999 3 3 7 null, null, +1999 3 3 8 null, null, +1999 3 3 9 null, null, +1999 3 3 10 null, null, +1999 3 3 11 null, null, +1999 3 3 12 null, null, +1999 3 3 13 null, null, +1999 3 3 14 null, null, +1999 3 3 15 null, null, +1999 3 3 16 null, null, +1999 3 3 17 null, null, +1999 3 3 18 null, null, +1999 3 3 19 null, null, +1999 3 3 20 null, null, +1999 3 3 21 null, null, +1999 3 3 22 null, null, +1999 3 3 23 null, null, +1999 3 3 24 null, null, +1999 3 3 25 null, null, +1999 3 3 26 null, null, +1999 3 3 27 null, null, +1999 3 3 28 null, null, +1999 3 3 29 null, null, +1999 3 3 30 null, null, +1999 3 3 31 null, null, +1999 3 4 1 null, null, +1999 3 4 2 null, null, +1999 3 4 3 null, null, +1999 3 4 4 null, null, +1999 3 4 5 null, null, +1999 3 4 6 null, null, +1999 3 4 7 null, null, +1999 3 4 8 null, null, +1999 3 4 9 null, null, +1999 3 4 10 null, null, +1999 3 4 11 null, null, +1999 3 4 12 null, null, +1999 3 4 13 null, null, +1999 3 4 14 null, null, +1999 3 4 15 null, null, +1999 3 4 16 null, null, +1999 3 4 17 null, null, +1999 3 4 18 null, null, +1999 3 4 19 null, null, +1999 3 4 20 null, null, +1999 3 4 21 null, null, +1999 3 4 22 null, null, +1999 3 4 23 null, null, +1999 3 4 24 null, null, +1999 3 4 25 null, null, +1999 3 4 26 null, null, +1999 3 4 27 null, null, +1999 3 4 28 null, null, +1999 3 4 29 null, null, +1999 3 4 30 null, null, +1999 3 5 1 null, null, +1999 3 5 2 null, null, +1999 3 5 3 null, null, +1999 3 5 4 null, null, +1999 3 5 5 null, null, +1999 3 5 6 null, null, +1999 3 5 7 null, null, +1999 3 5 8 null, null, +1999 3 5 9 null, null, +1999 3 5 10 null, null, +1999 3 5 11 null, null, +1999 3 5 12 null, null, +1999 3 5 13 null, null, +1999 3 5 14 null, null, +1999 3 5 15 null, null, +1999 3 5 16 null, null, +1999 3 5 17 null, null, +1999 3 5 18 null, null, +1999 3 5 19 null, null, +1999 3 5 20 null, null, +1999 3 5 21 null, null, +1999 3 5 22 null, null, +1999 3 5 23 null, null, +1999 3 5 24 null, null, +1999 3 5 25 null, null, +1999 3 5 26 null, null, +1999 3 5 27 null, null, +1999 3 5 28 null, null, +1999 3 5 29 null, null, +1999 3 5 30 null, null, +1999 3 5 31 null, null, +1999 3 6 1 null, null, +1999 3 6 2 null, null, +1999 3 6 3 null, null, +1999 3 6 4 null, null, +1999 3 6 5 null, null, +1999 3 6 6 null, null, +1999 3 6 7 null, null, +1999 3 6 8 null, null, +1999 3 6 9 null, null, +1999 3 6 10 null, null, +1999 3 6 11 null, null, +1999 3 6 12 null, null, +1999 3 6 13 null, null, +1999 3 6 14 null, null, +1999 3 6 15 null, null, +1999 3 6 16 null, null, +1999 3 6 17 null, null, +1999 3 6 18 null, null, +1999 3 6 19 null, null, +1999 3 6 20 null, null, +1999 3 6 21 null, null, +1999 3 6 22 null, null, +1999 3 6 23 null, null, +1999 3 6 24 null, null, +1999 3 6 25 null, null, +1999 3 6 26 null, null, +1999 3 6 27 null, null, +1999 3 6 28 null, null, +1999 3 6 29 null, null, +1999 3 6 30 null, null, +1999 3 7 1 null, null, +1999 3 7 2 null, null, +1999 3 7 3 null, null, +1999 3 7 4 null, null, +1999 3 7 5 null, null, +1999 3 7 6 null, null, +1999 3 7 7 null, null, +1999 3 7 8 null, null, +1999 3 7 9 null, null, +1999 3 7 10 null, null, +1999 3 7 11 null, null, +1999 3 7 12 null, null, +1999 3 7 13 null, null, +1999 3 7 14 null, null, +1999 3 7 15 null, null, +1999 3 7 16 null, null, +1999 3 7 17 null, null, +1999 3 7 18 null, null, +1999 3 7 19 null, null, +1999 3 7 20 null, null, +1999 3 7 21 null, null, +1999 3 7 22 null, null, +1999 3 7 23 null, null, +1999 3 7 24 null, null, +1999 3 7 25 null, null, +1999 3 7 26 null, null, +1999 3 7 27 null, null, +1999 3 7 28 null, null, +1999 3 7 29 null, null, +1999 3 7 30 null, null, +1999 3 7 31 null, null, +1999 3 8 1 null, null, +1999 3 8 2 null, null, +1999 3 8 3 null, null, +1999 3 8 4 null, null, +1999 3 8 5 null, null, +1999 3 8 6 null, null, +1999 3 8 7 null, null, +1999 3 8 8 null, null, +1999 3 8 9 null, null, +1999 3 8 10 null, null, +1999 3 8 11 null, null, +1999 3 8 12 null, null, +1999 3 8 13 null, null, +1999 3 8 14 null, null, +1999 3 8 15 null, null, +1999 3 8 16 null, null, +1999 3 8 17 null, null, +1999 3 8 18 null, 16.0, +1999 3 8 19 null, null, +1999 3 8 20 null, 36.0, +1999 3 8 21 null, null, +1999 3 8 22 null, null, +1999 3 8 23 null, null, +1999 3 8 24 null, null, +1999 3 8 25 null, null, +1999 3 8 26 null, null, +1999 3 8 27 null, null, +1999 3 8 28 null, null, +1999 3 8 29 null, null, +1999 3 8 30 null, null, +1999 3 8 31 null, null, +1999 3 9 1 null, null, +1999 3 9 2 null, null, +1999 3 9 3 null, null, +1999 3 9 4 null, null, +1999 3 9 5 null, null, +1999 3 9 6 null, null, +1999 3 9 7 null, null, +1999 3 9 8 null, null, +1999 3 9 9 null, null, +1999 3 9 10 null, null, +1999 3 9 11 null, null, +1999 3 9 12 null, null, +1999 3 9 13 null, null, +1999 3 9 14 null, null, +1999 3 9 15 null, null, +1999 3 9 16 null, null, +1999 3 9 17 null, null, +1999 3 9 18 null, null, +1999 3 9 19 23.0, null, +1999 3 9 20 null, null, +1999 3 9 21 null, null, +1999 3 9 22 null, null, +1999 3 9 23 null, null, +1999 3 9 24 null, null, +1999 3 9 25 null, null, +1999 3 9 26 null, null, +1999 3 9 27 null, null, +1999 3 9 28 null, null, +1999 3 9 29 null, null, +1999 3 9 30 null, null, +1999 3 10 1 null, null, +1999 3 10 2 null, null, +1999 3 10 3 null, null, +1999 3 10 4 null, null, +1999 3 10 5 null, null, +1999 3 10 6 null, null, +1999 3 10 7 null, null, +1999 3 10 8 null, null, +1999 3 10 9 null, null, +1999 3 10 10 null, null, +1999 3 10 11 null, null, +1999 3 10 12 null, null, +1999 3 10 13 null, null, +1999 3 10 14 null, null, +1999 3 10 15 null, null, +1999 3 10 16 null, null, +1999 3 10 17 null, null, +1999 3 10 18 null, null, +1999 3 10 19 null, null, +1999 3 10 20 null, null, +1999 3 10 21 null, null, +1999 3 10 22 null, null, +1999 3 10 23 null, null, +1999 3 10 24 null, null, +1999 3 10 25 null, null, +1999 3 10 26 null, null, +1999 3 10 27 null, null, +1999 3 10 28 null, null, +1999 3 10 29 null, null, +1999 3 10 30 null, null, +1999 3 10 31 null, null, +1999 3 11 1 null, null, +1999 3 11 2 null, null, +1999 3 11 3 null, null, +1999 3 11 4 null, null, +1999 3 11 5 null, null, +1999 3 11 6 null, null, +1999 3 11 7 null, null, +1999 3 11 8 null, null, +1999 3 11 9 null, null, +1999 3 11 10 null, null, +1999 3 11 11 null, null, +1999 3 11 12 null, null, +1999 3 11 13 null, null, +1999 3 11 14 null, null, +1999 3 11 15 null, null, +1999 3 11 16 null, null, +1999 3 11 17 null, null, +1999 3 11 18 null, null, +1999 3 11 19 null, null, +1999 3 11 20 null, null, +1999 3 11 21 null, null, +1999 3 11 22 null, null, +1999 3 11 23 null, null, +1999 3 11 24 null, null, +1999 3 11 25 null, null, +1999 3 11 26 null, null, +1999 3 11 27 null, null, +1999 3 11 28 null, null, +1999 3 11 29 null, null, +1999 3 11 30 null, null, +1999 3 12 1 null, null, +1999 3 12 2 null, null, +1999 3 12 3 null, null, +1999 3 12 4 null, null, +1999 3 12 5 null, null, +1999 3 12 6 null, null, +1999 3 12 7 null, null, +1999 3 12 8 null, null, +1999 3 12 9 null, null, +1999 3 12 10 null, null, +1999 3 12 11 null, null, +1999 3 12 12 null, null, +1999 3 12 13 null, null, +1999 3 12 14 null, null, +1999 3 12 15 null, null, +1999 3 12 16 null, null, +1999 3 12 17 null, null, +1999 3 12 18 null, null, +1999 3 12 19 null, null, +1999 3 12 20 null, null, +1999 3 12 21 null, null, +1999 3 12 22 null, null, +1999 3 12 23 null, null, +1999 3 12 24 null, null, +1999 3 12 25 null, null, +1999 3 12 26 null, null, +1999 3 12 27 null, null, +1999 3 12 28 null, null, +1999 3 12 29 null, null, +1999 3 12 30 null, null, +1999 3 12 31 null, null, +2000 4 1 1 null, null, +2000 4 1 2 null, null, +2000 4 1 3 null, null, +2000 4 1 4 null, null, +2000 4 1 5 null, null, +2000 4 1 6 null, null, +2000 4 1 7 null, null, +2000 4 1 8 null, null, +2000 4 1 9 null, null, +2000 4 1 10 null, null, +2000 4 1 11 null, null, +2000 4 1 12 null, null, +2000 4 1 13 null, null, +2000 4 1 14 null, null, +2000 4 1 15 null, null, +2000 4 1 16 null, null, +2000 4 1 17 null, null, +2000 4 1 18 null, null, +2000 4 1 19 null, null, +2000 4 1 20 null, null, +2000 4 1 21 null, null, +2000 4 1 22 null, null, +2000 4 1 23 null, null, +2000 4 1 24 null, null, +2000 4 1 25 null, null, +2000 4 1 26 null, null, +2000 4 1 27 null, null, +2000 4 1 28 null, null, +2000 4 1 29 null, null, +2000 4 1 30 null, null, +2000 4 1 31 null, null, +2000 4 2 1 null, null, +2000 4 2 2 null, null, +2000 4 2 3 null, null, +2000 4 2 4 null, null, +2000 4 2 5 null, null, +2000 4 2 6 null, null, +2000 4 2 7 null, null, +2000 4 2 8 null, null, +2000 4 2 9 null, null, +2000 4 2 10 null, null, +2000 4 2 11 null, null, +2000 4 2 12 null, null, +2000 4 2 13 null, null, +2000 4 2 14 null, null, +2000 4 2 15 null, null, +2000 4 2 16 null, null, +2000 4 2 17 null, null, +2000 4 2 18 null, null, +2000 4 2 19 null, null, +2000 4 2 20 null, null, +2000 4 2 21 null, null, +2000 4 2 22 null, null, +2000 4 2 23 null, null, +2000 4 2 24 null, null, +2000 4 2 25 null, null, +2000 4 2 26 null, null, +2000 4 2 27 null, null, +2000 4 2 28 null, null, +2000 4 3 1 null, null, +2000 4 3 2 null, null, +2000 4 3 3 null, null, +2000 4 3 4 null, null, +2000 4 3 5 null, null, +2000 4 3 6 null, null, +2000 4 3 7 null, null, +2000 4 3 8 null, null, +2000 4 3 9 null, null, +2000 4 3 10 null, null, +2000 4 3 11 null, null, +2000 4 3 12 null, null, +2000 4 3 13 null, null, +2000 4 3 14 null, null, +2000 4 3 15 null, null, +2000 4 3 16 null, null, +2000 4 3 17 null, null, +2000 4 3 18 null, null, +2000 4 3 19 null, null, +2000 4 3 20 null, null, +2000 4 3 21 null, null, +2000 4 3 22 null, null, +2000 4 3 23 null, null, +2000 4 3 24 null, null, +2000 4 3 25 null, null, +2000 4 3 26 null, null, +2000 4 3 27 null, null, +2000 4 3 28 null, null, +2000 4 3 29 null, null, +2000 4 3 30 null, null, +2000 4 3 31 null, null, +2000 4 4 1 null, null, +2000 4 4 2 null, null, +2000 4 4 3 null, null, +2000 4 4 4 null, null, +2000 4 4 5 null, null, +2000 4 4 6 null, null, +2000 4 4 7 null, null, +2000 4 4 8 null, null, +2000 4 4 9 null, null, +2000 4 4 10 null, null, +2000 4 4 11 null, null, +2000 4 4 12 null, null, +2000 4 4 13 null, null, +2000 4 4 14 null, null, +2000 4 4 15 null, null, +2000 4 4 16 null, null, +2000 4 4 17 null, null, +2000 4 4 18 null, null, +2000 4 4 19 null, null, +2000 4 4 20 null, null, +2000 4 4 21 null, null, +2000 4 4 22 null, null, +2000 4 4 23 null, null, +2000 4 4 24 null, null, +2000 4 4 25 null, null, +2000 4 4 26 null, null, +2000 4 4 27 null, null, +2000 4 4 28 null, null, +2000 4 4 29 null, null, +2000 4 4 30 null, null, +2000 4 5 1 null, null, +2000 4 5 2 null, null, +2000 4 5 3 null, null, +2000 4 5 4 null, null, +2000 4 5 5 null, null, +2000 4 5 6 null, null, +2000 4 5 7 null, null, +2000 4 5 8 null, null, +2000 4 5 9 null, null, +2000 4 5 10 null, null, +2000 4 5 11 null, null, +2000 4 5 12 null, null, +2000 4 5 13 null, null, +2000 4 5 14 null, null, +2000 4 5 15 null, null, +2000 4 5 16 null, null, +2000 4 5 17 null, null, +2000 4 5 18 null, null, +2000 4 5 19 null, null, +2000 4 5 20 null, null, +2000 4 5 21 null, null, +2000 4 5 22 null, null, +2000 4 5 23 null, null, +2000 4 5 24 null, null, +2000 4 5 25 null, null, +2000 4 5 26 null, null, +2000 4 5 27 null, null, +2000 4 5 28 null, null, +2000 4 5 29 null, null, +2000 4 5 30 null, null, +2000 4 5 31 null, null, +2000 4 6 1 null, null, +2000 4 6 2 null, null, +2000 4 6 3 null, null, +2000 4 6 4 null, null, +2000 4 6 5 null, null, +2000 4 6 6 null, null, +2000 4 6 7 null, null, +2000 4 6 8 null, null, +2000 4 6 9 null, null, +2000 4 6 10 null, null, +2000 4 6 11 null, null, +2000 4 6 12 null, null, +2000 4 6 13 null, null, +2000 4 6 14 null, null, +2000 4 6 15 null, null, +2000 4 6 16 null, null, +2000 4 6 17 null, null, +2000 4 6 18 null, null, +2000 4 6 19 null, null, +2000 4 6 20 null, null, +2000 4 6 21 null, null, +2000 4 6 22 null, null, +2000 4 6 23 null, null, +2000 4 6 24 null, null, +2000 4 6 25 null, null, +2000 4 6 26 null, null, +2000 4 6 27 null, null, +2000 4 6 28 null, null, +2000 4 6 29 null, null, +2000 4 6 30 null, null, +2000 4 7 1 null, null, +2000 4 7 2 null, null, +2000 4 7 3 null, null, +2000 4 7 4 null, null, +2000 4 7 5 null, null, +2000 4 7 6 null, null, +2000 4 7 7 null, null, +2000 4 7 8 null, null, +2000 4 7 9 null, null, +2000 4 7 10 null, null, +2000 4 7 11 null, null, +2000 4 7 12 null, null, +2000 4 7 13 null, null, +2000 4 7 14 null, null, +2000 4 7 15 null, null, +2000 4 7 16 null, null, +2000 4 7 17 null, null, +2000 4 7 18 null, null, +2000 4 7 19 null, null, +2000 4 7 20 null, null, +2000 4 7 21 null, null, +2000 4 7 22 null, null, +2000 4 7 23 null, null, +2000 4 7 24 null, null, +2000 4 7 25 null, null, +2000 4 7 26 null, null, +2000 4 7 27 null, null, +2000 4 7 28 null, null, +2000 4 7 29 null, null, +2000 4 7 30 null, null, +2000 4 7 31 null, null, +2000 4 8 1 null, null, +2000 4 8 2 null, null, +2000 4 8 3 null, null, +2000 4 8 4 null, null, +2000 4 8 5 null, null, +2000 4 8 6 null, null, +2000 4 8 7 null, null, +2000 4 8 8 null, null, +2000 4 8 9 null, null, +2000 4 8 10 null, null, +2000 4 8 11 null, null, +2000 4 8 12 null, null, +2000 4 8 13 null, null, +2000 4 8 14 null, null, +2000 4 8 15 null, null, +2000 4 8 16 null, null, +2000 4 8 17 null, null, +2000 4 8 18 null, null, +2000 4 8 19 null, null, +2000 4 8 20 null, null, +2000 4 8 21 null, null, +2000 4 8 22 null, null, +2000 4 8 23 null, null, +2000 4 8 24 null, null, +2000 4 8 25 null, null, +2000 4 8 26 null, null, +2000 4 8 27 null, null, +2000 4 8 28 null, null, +2000 4 8 29 null, null, +2000 4 8 30 null, null, +2000 4 8 31 null, null, +2000 4 9 1 null, null, +2000 4 9 2 null, null, +2000 4 9 3 null, null, +2000 4 9 4 null, null, +2000 4 9 5 null, null, +2000 4 9 6 null, null, +2000 4 9 7 null, null, +2000 4 9 8 null, null, +2000 4 9 9 null, null, +2000 4 9 10 null, null, +2000 4 9 11 null, null, +2000 4 9 12 null, null, +2000 4 9 13 null, null, +2000 4 9 14 null, null, +2000 4 9 15 null, null, +2000 4 9 16 null, null, +2000 4 9 17 null, null, +2000 4 9 18 null, null, +2000 4 9 19 null, null, +2000 4 9 20 null, null, +2000 4 9 21 null, null, +2000 4 9 22 null, null, +2000 4 9 23 null, null, +2000 4 9 24 null, null, +2000 4 9 25 null, null, +2000 4 9 26 null, null, +2000 4 9 27 null, null, +2000 4 9 28 null, null, +2000 4 9 29 null, null, +2000 4 9 30 null, null, +2000 4 10 1 null, null, +2000 4 10 2 null, null, +2000 4 10 3 null, null, +2000 4 10 4 null, null, +2000 4 10 5 null, null, +2000 4 10 6 null, null, +2000 4 10 7 null, null, +2000 4 10 8 null, null, +2000 4 10 9 null, null, +2000 4 10 10 null, null, +2000 4 10 11 null, null, +2000 4 10 12 null, null, +2000 4 10 13 null, null, +2000 4 10 14 null, null, +2000 4 10 15 null, null, +2000 4 10 16 null, null, +2000 4 10 17 null, null, +2000 4 10 18 null, null, +2000 4 10 19 null, null, +2000 4 10 20 null, null, +2000 4 10 21 null, null, +2000 4 10 22 null, null, +2000 4 10 23 null, null, +2000 4 10 24 null, null, +2000 4 10 25 null, null, +2000 4 10 26 null, null, +2000 4 10 27 null, null, +2000 4 10 28 null, null, +2000 4 10 29 null, null, +2000 4 10 30 null, null, +2000 4 10 31 null, null, +2000 4 11 1 null, null, +2000 4 11 2 null, null, +2000 4 11 3 null, null, +2000 4 11 4 null, null, +2000 4 11 5 null, null, +2000 4 11 6 null, null, +2000 4 11 7 null, null, +2000 4 11 8 null, null, +2000 4 11 9 null, null, +2000 4 11 10 null, null, +2000 4 11 11 null, null, +2000 4 11 12 null, null, +2000 4 11 13 null, null, +2000 4 11 14 null, null, +2000 4 11 15 null, null, +2000 4 11 16 null, null, +2000 4 11 17 null, null, +2000 4 11 18 null, null, +2000 4 11 19 null, null, +2000 4 11 20 null, null, +2000 4 11 21 null, null, +2000 4 11 22 null, 39.0, +2000 4 11 23 null, null, +2000 4 11 24 null, null, +2000 4 11 25 null, null, +2000 4 11 26 null, null, +2000 4 11 27 null, null, +2000 4 11 28 null, null, +2000 4 11 29 null, null, +2000 4 11 30 null, null, +2000 4 12 1 null, null, +2000 4 12 2 null, null, +2000 4 12 3 null, null, +2000 4 12 4 null, null, +2000 4 12 5 null, null, +2000 4 12 6 null, null, +2000 4 12 7 null, null, +2000 4 12 8 null, null, +2000 4 12 9 null, null, +2000 4 12 10 null, null, +2000 4 12 11 null, null, +2000 4 12 12 null, null, +2000 4 12 13 null, null, +2000 4 12 14 null, null, +2000 4 12 15 null, null, +2000 4 12 16 null, null, +2000 4 12 17 null, null, +2000 4 12 18 null, null, +2000 4 12 19 null, null, +2000 4 12 20 null, null, +2000 4 12 21 null, null, +2000 4 12 22 null, null, +2000 4 12 23 null, null, +2000 4 12 24 null, null, +2000 4 12 25 null, null, +2000 4 12 26 null, null, +2000 4 12 27 null, null, +2000 4 12 28 null, null, +2000 4 12 29 null, null, +2000 4 12 30 null, null, +2000 4 12 31 null, null,
\ No newline at end of file diff --git a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/golden/DateTimeCursorTest.testMirrorOnYearDimension.txt b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/golden/DateTimeCursorTest.testMirrorOnYearDimension.txt index 5886e61..bb091e1 100644 --- a/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/golden/DateTimeCursorTest.testMirrorOnYearDimension.txt +++ b/data/org.eclipse.birt.data.tests/test/org/eclipse/birt/data/engine/olap/cursor/golden/DateTimeCursorTest.testMirrorOnYearDimension.txt @@ -1,386 +1,1097 @@ PP1 PP2 -CN 1998 1 1 1.0, null, -CN 1998 1 2 null, null, -CN 1998 1 4 null, null, -CN 1998 1 5 null, null, -CN 1998 1 7 null, null, -CN 1998 1 8 null, null, -CN 1998 1 10 null, null, -CN 1998 1 11 null, null, -CN 1998 2 1 null, null, -CN 1998 2 2 null, null, -CN 1998 2 4 null, null, -CN 1998 2 5 null, null, -CN 1998 2 7 null, null, -CN 1998 2 8 null, null, -CN 1998 2 10 null, null, -CN 1998 2 11 null, null, -CN 1998 3 1 null, null, -CN 1998 3 2 null, null, -CN 1998 3 4 null, null, -CN 1998 3 5 null, null, -CN 1998 3 7 null, null, -CN 1998 3 8 null, null, -CN 1998 3 10 null, null, -CN 1998 3 11 null, null, -CN 1998 4 1 null, null, -CN 1998 4 2 null, null, -CN 1998 4 4 null, null, -CN 1998 4 5 null, null, -CN 1998 4 7 null, null, -CN 1998 4 8 null, null, -CN 1998 4 10 null, null, -CN 1998 4 11 null, null, -CN 1999 1 1 null, null, -CN 1999 1 2 null, null, -CN 1999 1 4 null, null, -CN 1999 1 5 null, null, -CN 1999 1 7 null, null, -CN 1999 1 8 null, null, -CN 1999 1 10 null, null, -CN 1999 1 11 null, null, -CN 1999 2 1 null, null, -CN 1999 2 2 null, null, -CN 1999 2 4 null, 2.0, -CN 1999 2 5 null, null, -CN 1999 2 7 null, null, -CN 1999 2 8 null, null, -CN 1999 2 10 null, null, -CN 1999 2 11 null, null, -CN 1999 3 1 null, null, -CN 1999 3 2 null, null, -CN 1999 3 4 null, null, -CN 1999 3 5 null, null, -CN 1999 3 7 null, null, -CN 1999 3 8 null, null, -CN 1999 3 10 null, null, -CN 1999 3 11 null, null, -CN 1999 4 1 null, null, -CN 1999 4 2 null, null, -CN 1999 4 4 null, null, -CN 1999 4 5 null, null, -CN 1999 4 7 null, null, -CN 1999 4 8 null, null, -CN 1999 4 10 null, null, -CN 1999 4 11 null, null, -CN 2000 1 1 null, null, -CN 2000 1 2 null, null, -CN 2000 1 4 null, null, -CN 2000 1 5 null, null, -CN 2000 1 7 null, null, -CN 2000 1 8 null, null, -CN 2000 1 10 null, null, -CN 2000 1 11 null, null, -CN 2000 2 1 null, null, -CN 2000 2 2 null, null, -CN 2000 2 4 null, null, -CN 2000 2 5 null, null, -CN 2000 2 7 null, null, -CN 2000 2 8 null, null, -CN 2000 2 10 null, null, -CN 2000 2 11 null, null, -CN 2000 3 1 null, null, -CN 2000 3 2 null, null, -CN 2000 3 4 null, null, -CN 2000 3 5 null, null, -CN 2000 3 7 null, null, -CN 2000 3 8 null, null, -CN 2000 3 10 null, null, -CN 2000 3 11 null, null, -CN 2000 4 1 null, null, -CN 2000 4 2 null, null, -CN 2000 4 4 null, null, -CN 2000 4 5 null, null, -CN 2000 4 7 null, null, -CN 2000 4 8 null, null, -CN 2000 4 10 null, null, -CN 2000 4 11 null, null, -JP 1998 1 1 null, null, -JP 1998 1 2 38.0, null, -JP 1998 1 4 null, null, -JP 1998 1 5 null, null, -JP 1998 1 7 null, null, -JP 1998 1 8 null, null, -JP 1998 1 10 null, null, -JP 1998 1 11 null, null, -JP 1998 2 1 null, null, -JP 1998 2 2 null, null, -JP 1998 2 4 null, null, -JP 1998 2 5 null, null, -JP 1998 2 7 null, null, -JP 1998 2 8 null, null, -JP 1998 2 10 null, null, -JP 1998 2 11 null, null, -JP 1998 3 1 null, null, -JP 1998 3 2 null, null, -JP 1998 3 4 null, null, -JP 1998 3 5 null, null, -JP 1998 3 7 null, null, -JP 1998 3 8 null, null, -JP 1998 3 10 null, null, -JP 1998 3 11 null, null, -JP 1998 4 1 null, null, -JP 1998 4 2 null, null, -JP 1998 4 4 null, null, -JP 1998 4 5 null, null, -JP 1998 4 7 null, null, -JP 1998 4 8 null, null, -JP 1998 4 10 null, null, -JP 1998 4 11 null, null, -JP 1999 1 1 null, null, -JP 1999 1 2 null, null, -JP 1999 1 4 null, null, -JP 1999 1 5 null, null, -JP 1999 1 7 null, null, -JP 1999 1 8 null, null, -JP 1999 1 10 null, null, -JP 1999 1 11 null, null, -JP 1999 2 1 null, null, -JP 1999 2 2 null, null, -JP 1999 2 4 null, null, -JP 1999 2 5 null, null, -JP 1999 2 7 null, null, -JP 1999 2 8 null, null, -JP 1999 2 10 null, null, -JP 1999 2 11 null, null, -JP 1999 3 1 null, null, -JP 1999 3 2 null, null, -JP 1999 3 4 null, null, -JP 1999 3 5 null, null, -JP 1999 3 7 null, null, -JP 1999 3 8 null, null, -JP 1999 3 10 null, null, -JP 1999 3 11 null, null, -JP 1999 4 1 null, null, -JP 1999 4 2 null, null, -JP 1999 4 4 null, null, -JP 1999 4 5 null, null, -JP 1999 4 7 null, null, -JP 1999 4 8 null, null, -JP 1999 4 10 null, null, -JP 1999 4 11 null, null, -JP 2000 1 1 null, null, -JP 2000 1 2 null, null, -JP 2000 1 4 null, null, -JP 2000 1 5 null, null, -JP 2000 1 7 null, null, -JP 2000 1 8 null, null, -JP 2000 1 10 null, null, -JP 2000 1 11 null, null, -JP 2000 2 1 null, null, -JP 2000 2 2 null, null, -JP 2000 2 4 null, null, -JP 2000 2 5 null, null, -JP 2000 2 7 null, null, -JP 2000 2 8 null, null, -JP 2000 2 10 null, null, -JP 2000 2 11 null, null, -JP 2000 3 1 null, null, -JP 2000 3 2 null, null, -JP 2000 3 4 null, null, -JP 2000 3 5 null, null, -JP 2000 3 7 null, null, -JP 2000 3 8 null, null, -JP 2000 3 10 null, null, -JP 2000 3 11 null, null, -JP 2000 4 1 null, null, -JP 2000 4 2 null, null, -JP 2000 4 4 null, null, -JP 2000 4 5 null, null, -JP 2000 4 7 null, null, -JP 2000 4 8 null, null, -JP 2000 4 10 null, null, -JP 2000 4 11 null, 39.0, -UN 1998 1 1 null, null, -UN 1998 1 2 null, null, -UN 1998 1 4 null, null, -UN 1998 1 5 null, null, -UN 1998 1 7 null, null, -UN 1998 1 8 null, null, -UN 1998 1 10 null, null, -UN 1998 1 11 null, null, -UN 1998 2 1 null, null, -UN 1998 2 2 null, null, -UN 1998 2 4 null, null, -UN 1998 2 5 null, null, -UN 1998 2 7 null, null, -UN 1998 2 8 null, null, -UN 1998 2 10 null, null, -UN 1998 2 11 null, null, -UN 1998 3 1 null, null, -UN 1998 3 2 null, null, -UN 1998 3 4 null, null, -UN 1998 3 5 null, null, -UN 1998 3 7 null, null, -UN 1998 3 8 null, null, -UN 1998 3 10 null, null, -UN 1998 3 11 null, null, -UN 1998 4 1 null, null, -UN 1998 4 2 null, null, -UN 1998 4 4 null, null, -UN 1998 4 5 null, null, -UN 1998 4 7 null, null, -UN 1998 4 8 null, null, -UN 1998 4 10 null, null, -UN 1998 4 11 null, null, -UN 1999 1 1 null, null, -UN 1999 1 2 null, null, -UN 1999 1 4 null, null, -UN 1999 1 5 null, null, -UN 1999 1 7 null, null, -UN 1999 1 8 null, null, -UN 1999 1 10 null, null, -UN 1999 1 11 null, null, -UN 1999 2 1 null, null, -UN 1999 2 2 null, null, -UN 1999 2 4 null, null, -UN 1999 2 5 null, null, -UN 1999 2 7 null, null, -UN 1999 2 8 null, null, -UN 1999 2 10 null, null, -UN 1999 2 11 null, null, -UN 1999 3 1 null, null, -UN 1999 3 2 null, null, -UN 1999 3 4 null, null, -UN 1999 3 5 null, null, -UN 1999 3 7 null, null, -UN 1999 3 8 23.0, null, -UN 1999 3 10 null, null, -UN 1999 3 11 null, null, -UN 1999 4 1 null, null, -UN 1999 4 2 null, null, -UN 1999 4 4 null, null, -UN 1999 4 5 null, null, -UN 1999 4 7 null, null, -UN 1999 4 8 null, null, -UN 1999 4 10 null, null, -UN 1999 4 11 null, null, -UN 2000 1 1 null, null, -UN 2000 1 2 null, null, -UN 2000 1 4 null, null, -UN 2000 1 5 null, null, -UN 2000 1 7 null, null, -UN 2000 1 8 null, null, -UN 2000 1 10 null, null, -UN 2000 1 11 null, null, -UN 2000 2 1 null, null, -UN 2000 2 2 null, null, -UN 2000 2 4 null, null, -UN 2000 2 5 null, null, -UN 2000 2 7 null, null, -UN 2000 2 8 null, null, -UN 2000 2 10 null, null, -UN 2000 2 11 null, null, -UN 2000 3 1 null, null, -UN 2000 3 2 null, null, -UN 2000 3 4 null, null, -UN 2000 3 5 null, null, -UN 2000 3 7 null, null, -UN 2000 3 8 null, null, -UN 2000 3 10 null, null, -UN 2000 3 11 null, null, -UN 2000 4 1 null, null, -UN 2000 4 2 null, null, -UN 2000 4 4 null, null, -UN 2000 4 5 null, null, -UN 2000 4 7 null, null, -UN 2000 4 8 null, null, -UN 2000 4 10 null, 36.0, -UN 2000 4 11 null, null, -US 1998 1 1 null, null, -US 1998 1 2 null, null, -US 1998 1 4 null, null, -US 1998 1 5 null, null, -US 1998 1 7 null, null, -US 1998 1 8 null, null, -US 1998 1 10 null, null, -US 1998 1 11 null, null, -US 1998 2 1 null, null, -US 1998 2 2 null, null, -US 1998 2 4 null, null, -US 1998 2 5 null, null, -US 1998 2 7 null, null, -US 1998 2 8 null, null, -US 1998 2 10 null, null, -US 1998 2 11 null, null, -US 1998 3 1 null, null, -US 1998 3 2 null, null, -US 1998 3 4 null, null, -US 1998 3 5 null, null, -US 1998 3 7 null, null, -US 1998 3 8 null, null, -US 1998 3 10 null, null, -US 1998 3 11 null, null, -US 1998 4 1 null, null, -US 1998 4 2 null, null, -US 1998 4 4 null, null, -US 1998 4 5 null, null, -US 1998 4 7 null, null, -US 1998 4 8 null, null, -US 1998 4 10 null, null, -US 1998 4 11 null, null, -US 1999 1 1 null, null, -US 1999 1 2 null, null, -US 1999 1 4 null, null, -US 1999 1 5 null, null, -US 1999 1 7 null, null, -US 1999 1 8 null, null, -US 1999 1 10 null, null, -US 1999 1 11 null, null, -US 1999 2 1 null, null, -US 1999 2 2 null, null, -US 1999 2 4 null, null, -US 1999 2 5 11.0, null, -US 1999 2 7 null, null, -US 1999 2 8 null, null, -US 1999 2 10 null, null, -US 1999 2 11 null, null, -US 1999 3 1 null, null, -US 1999 3 2 null, null, -US 1999 3 4 null, null, -US 1999 3 5 null, null, -US 1999 3 7 null, 16.0, -US 1999 3 8 null, null, -US 1999 3 10 null, null, -US 1999 3 11 null, null, -US 1999 4 1 null, null, -US 1999 4 2 null, null, -US 1999 4 4 null, null, -US 1999 4 5 null, null, -US 1999 4 7 null, null, -US 1999 4 8 null, null, -US 1999 4 10 null, null, -US 1999 4 11 null, null, -US 2000 1 1 null, null, -US 2000 1 2 null, null, -US 2000 1 4 null, null, -US 2000 1 5 null, null, -US 2000 1 7 null, null, -US 2000 1 8 null, null, -US 2000 1 10 null, null, -US 2000 1 11 null, null, -US 2000 2 1 null, null, -US 2000 2 2 null, null, -US 2000 2 4 null, null, -US 2000 2 5 null, null, -US 2000 2 7 null, null, -US 2000 2 8 null, null, -US 2000 2 10 null, null, -US 2000 2 11 null, null, -US 2000 3 1 null, null, -US 2000 3 2 null, null, -US 2000 3 4 null, null, -US 2000 3 5 null, null, -US 2000 3 7 null, null, -US 2000 3 8 null, null, -US 2000 3 10 null, null, -US 2000 3 11 null, null, -US 2000 4 1 null, null, -US 2000 4 2 null, null, -US 2000 4 4 null, null, -US 2000 4 5 null, null, -US 2000 4 7 null, null, -US 2000 4 8 null, null, -US 2000 4 10 null, null, -US 2000 4 11 null, null,
\ No newline at end of file +1998 1 1 1 null, null, +1998 1 1 2 null, null, +1998 1 1 3 null, null, +1998 1 1 4 null, null, +1998 1 1 5 null, null, +1998 1 1 6 null, null, +1998 1 1 7 null, null, +1998 1 1 8 null, null, +1998 1 1 9 null, null, +1998 1 1 10 null, null, +1998 1 1 11 null, null, +1998 1 1 12 null, null, +1998 1 1 13 null, null, +1998 1 1 14 null, null, +1998 1 1 15 1.0, null, +1998 1 1 16 null, null, +1998 1 1 17 null, null, +1998 1 1 18 null, null, +1998 1 1 19 null, null, +1998 1 1 20 null, null, +1998 1 1 21 null, null, +1998 1 1 22 null, null, +1998 1 1 23 null, null, +1998 1 1 24 null, null, +1998 1 1 25 null, null, +1998 1 1 26 null, null, +1998 1 1 27 null, null, +1998 1 1 28 null, null, +1998 1 1 29 null, null, +1998 1 1 30 null, null, +1998 1 1 31 null, null, +1998 1 2 1 null, null, +1998 1 2 2 null, null, +1998 1 2 3 null, null, +1998 1 2 4 null, null, +1998 1 2 5 null, null, +1998 1 2 6 null, null, +1998 1 2 7 null, null, +1998 1 2 8 null, null, +1998 1 2 9 null, null, +1998 1 2 10 null, null, +1998 1 2 11 null, null, +1998 1 2 12 null, null, +1998 1 2 13 null, null, +1998 1 2 14 null, null, +1998 1 2 15 null, null, +1998 1 2 16 null, null, +1998 1 2 17 null, null, +1998 1 2 18 null, null, +1998 1 2 19 null, null, +1998 1 2 20 null, null, +1998 1 2 21 38.0, null, +1998 1 2 22 null, null, +1998 1 2 23 null, null, +1998 1 2 24 null, null, +1998 1 2 25 null, null, +1998 1 2 26 null, null, +1998 1 2 27 null, null, +1998 1 2 28 null, null, +1998 1 3 1 null, null, +1998 1 3 2 null, null, +1998 1 3 3 null, null, +1998 1 3 4 null, null, +1998 1 3 5 null, null, +1998 1 3 6 null, null, +1998 1 3 7 null, null, +1998 1 3 8 null, null, +1998 1 3 9 null, null, +1998 1 3 10 null, null, +1998 1 3 11 null, null, +1998 1 3 12 null, null, +1998 1 3 13 null, null, +1998 1 3 14 null, null, +1998 1 3 15 null, null, +1998 1 3 16 null, null, +1998 1 3 17 null, null, +1998 1 3 18 null, null, +1998 1 3 19 null, null, +1998 1 3 20 null, null, +1998 1 3 21 null, null, +1998 1 3 22 null, null, +1998 1 3 23 null, null, +1998 1 3 24 null, null, +1998 1 3 25 null, null, +1998 1 3 26 null, null, +1998 1 3 27 null, null, +1998 1 3 28 null, null, +1998 1 3 29 null, null, +1998 1 3 30 null, null, +1998 1 3 31 null, null, +1998 2 4 1 null, null, +1998 2 4 2 null, null, +1998 2 4 3 null, null, +1998 2 4 4 null, null, +1998 2 4 5 null, null, +1998 2 4 6 null, null, +1998 2 4 7 null, null, +1998 2 4 8 null, null, +1998 2 4 9 null, null, +1998 2 4 10 null, null, +1998 2 4 11 null, null, +1998 2 4 12 null, null, +1998 2 4 13 null, null, +1998 2 4 14 null, null, +1998 2 4 15 null, null, +1998 2 4 16 null, null, +1998 2 4 17 null, null, +1998 2 4 18 null, null, +1998 2 4 19 null, null, +1998 2 4 20 null, null, +1998 2 4 21 null, null, +1998 2 4 22 null, null, +1998 2 4 23 null, null, +1998 2 4 24 null, null, +1998 2 4 25 null, null, +1998 2 4 26 null, null, +1998 2 4 27 null, null, +1998 2 4 28 null, null, +1998 2 4 29 null, null, +1998 2 4 30 null, null, +1998 2 5 1 null, null, +1998 2 5 2 null, null, +1998 2 5 3 null, null, +1998 2 5 4 null, null, +1998 2 5 5 null, null, +1998 2 5 6 null, null, +1998 2 5 7 null, null, +1998 2 5 8 null, null, +1998 2 5 9 null, null, +1998 2 5 10 null, null, +1998 2 5 11 null, null, +1998 2 5 12 null, null, +1998 2 5 13 null, null, +1998 2 5 14 null, null, +1998 2 5 15 null, null, +1998 2 5 16 null, null, +1998 2 5 17 null, null, +1998 2 5 18 null, null, +1998 2 5 19 null, null, +1998 2 5 20 null, null, +1998 2 5 21 null, null, +1998 2 5 22 null, null, +1998 2 5 23 null, null, +1998 2 5 24 null, null, +1998 2 5 25 null, null, +1998 2 5 26 null, null, +1998 2 5 27 null, null, +1998 2 5 28 null, null, +1998 2 5 29 null, null, +1998 2 5 30 null, null, +1998 2 5 31 null, null, +1998 2 6 1 null, null, +1998 2 6 2 null, null, +1998 2 6 3 null, null, +1998 2 6 4 null, null, +1998 2 6 5 null, null, +1998 2 6 6 null, null, +1998 2 6 7 null, null, +1998 2 6 8 null, null, +1998 2 6 9 null, null, +1998 2 6 10 null, null, +1998 2 6 11 null, null, +1998 2 6 12 null, null, +1998 2 6 13 null, null, +1998 2 6 14 null, null, +1998 2 6 15 null, null, +1998 2 6 16 null, null, +1998 2 6 17 null, null, +1998 2 6 18 null, null, +1998 2 6 19 null, null, +1998 2 6 20 null, null, +1998 2 6 21 null, null, +1998 2 6 22 null, null, +1998 2 6 23 null, null, +1998 2 6 24 null, null, +1998 2 6 25 null, null, +1998 2 6 26 null, null, +1998 2 6 27 null, null, +1998 2 6 28 null, null, +1998 2 6 29 null, null, +1998 2 6 30 null, null, +1998 3 7 1 null, null, +1998 3 7 2 null, null, +1998 3 7 3 null, null, +1998 3 7 4 null, null, +1998 3 7 5 null, null, +1998 3 7 6 null, null, +1998 3 7 7 null, null, +1998 3 7 8 null, null, +1998 3 7 9 null, null, +1998 3 7 10 null, null, +1998 3 7 11 null, null, +1998 3 7 12 null, null, +1998 3 7 13 null, null, +1998 3 7 14 null, null, +1998 3 7 15 null, null, +1998 3 7 16 null, null, +1998 3 7 17 null, null, +1998 3 7 18 null, null, +1998 3 7 19 null, null, +1998 3 7 20 null, null, +1998 3 7 21 null, null, +1998 3 7 22 null, null, +1998 3 7 23 null, null, +1998 3 7 24 null, null, +1998 3 7 25 null, null, +1998 3 7 26 null, null, +1998 3 7 27 null, null, +1998 3 7 28 null, null, +1998 3 7 29 null, null, +1998 3 7 30 null, null, +1998 3 7 31 null, null, +1998 3 8 1 null, null, +1998 3 8 2 null, null, +1998 3 8 3 null, null, +1998 3 8 4 null, null, +1998 3 8 5 null, null, +1998 3 8 6 null, null, +1998 3 8 7 null, null, +1998 3 8 8 null, null, +1998 3 8 9 null, null, +1998 3 8 10 null, null, +1998 3 8 11 null, null, +1998 3 8 12 null, null, +1998 3 8 13 null, null, +1998 3 8 14 null, null, +1998 3 8 15 null, null, +1998 3 8 16 null, null, +1998 3 8 17 null, null, +1998 3 8 18 null, null, +1998 3 8 19 null, null, +1998 3 8 20 null, null, +1998 3 8 21 null, null, +1998 3 8 22 null, null, +1998 3 8 23 null, null, +1998 3 8 24 null, null, +1998 3 8 25 null, null, +1998 3 8 26 null, null, +1998 3 8 27 null, null, +1998 3 8 28 null, null, +1998 3 8 29 null, null, +1998 3 8 30 null, null, +1998 3 8 31 null, null, +1998 3 9 1 null, null, +1998 3 9 2 null, null, +1998 3 9 3 null, null, +1998 3 9 4 null, null, +1998 3 9 5 null, null, +1998 3 9 6 null, null, +1998 3 9 7 null, null, +1998 3 9 8 null, null, +1998 3 9 9 null, null, +1998 3 9 10 null, null, +1998 3 9 11 null, null, +1998 3 9 12 null, null, +1998 3 9 13 null, null, +1998 3 9 14 null, null, +1998 3 9 15 null, null, +1998 3 9 16 null, null, +1998 3 9 17 null, null, +1998 3 9 18 null, null, +1998 3 9 19 null, null, +1998 3 9 20 null, null, +1998 3 9 21 null, null, +1998 3 9 22 null, null, +1998 3 9 23 null, null, +1998 3 9 24 null, null, +1998 3 9 25 null, null, +1998 3 9 26 null, null, +1998 3 9 27 null, null, +1998 3 9 28 null, null, +1998 3 9 29 null, null, +1998 3 9 30 null, null, +1998 4 10 1 null, null, +1998 4 10 2 null, null, +1998 4 10 3 null, null, +1998 4 10 4 null, null, +1998 4 10 5 null, null, +1998 4 10 6 null, null, +1998 4 10 7 null, null, +1998 4 10 8 null, null, +1998 4 10 9 null, null, +1998 4 10 10 null, null, +1998 4 10 11 null, null, +1998 4 10 12 null, null, +1998 4 10 13 null, null, +1998 4 10 14 null, null, +1998 4 10 15 null, null, +1998 4 10 16 null, null, +1998 4 10 17 null, null, +1998 4 10 18 null, null, +1998 4 10 19 null, null, +1998 4 10 20 null, null, +1998 4 10 21 null, null, +1998 4 10 22 null, null, +1998 4 10 23 null, null, +1998 4 10 24 null, null, +1998 4 10 25 null, null, +1998 4 10 26 null, null, +1998 4 10 27 null, null, +1998 4 10 28 null, null, +1998 4 10 29 null, null, +1998 4 10 30 null, null, +1998 4 10 31 null, null, +1998 4 11 1 null, null, +1998 4 11 2 null, null, +1998 4 11 3 null, null, +1998 4 11 4 null, null, +1998 4 11 5 null, null, +1998 4 11 6 null, null, +1998 4 11 7 null, null, +1998 4 11 8 null, null, +1998 4 11 9 null, null, +1998 4 11 10 null, null, +1998 4 11 11 null, null, +1998 4 11 12 null, null, +1998 4 11 13 null, null, +1998 4 11 14 null, null, +1998 4 11 15 null, null, +1998 4 11 16 null, null, +1998 4 11 17 null, null, +1998 4 11 18 null, null, +1998 4 11 19 null, null, +1998 4 11 20 null, null, +1998 4 11 21 null, null, +1998 4 11 22 null, null, +1998 4 11 23 null, null, +1998 4 11 24 null, null, +1998 4 11 25 null, null, +1998 4 11 26 null, null, +1998 4 11 27 null, null, +1998 4 11 28 null, null, +1998 4 11 29 null, null, +1998 4 11 30 null, null, +1998 4 12 1 null, null, +1998 4 12 2 null, null, +1998 4 12 3 null, null, +1998 4 12 4 null, null, +1998 4 12 5 null, null, +1998 4 12 6 null, null, +1998 4 12 7 null, null, +1998 4 12 8 null, null, +1998 4 12 9 null, null, +1998 4 12 10 null, null, +1998 4 12 11 null, null, +1998 4 12 12 null, null, +1998 4 12 13 null, null, +1998 4 12 14 null, null, +1998 4 12 15 null, null, +1998 4 12 16 null, null, +1998 4 12 17 null, null, +1998 4 12 18 null, null, +1998 4 12 19 null, null, +1998 4 12 20 null, null, +1998 4 12 21 null, null, +1998 4 12 22 null, null, +1998 4 12 23 null, null, +1998 4 12 24 null, null, +1998 4 12 25 null, null, +1998 4 12 26 null, null, +1998 4 12 27 null, null, +1998 4 12 28 null, null, +1998 4 12 29 null, null, +1998 4 12 30 null, null, +1998 4 12 31 null, null, +1999 1 1 1 null, null, +1999 1 1 2 null, null, +1999 1 1 3 null, null, +1999 1 1 4 null, null, +1999 1 1 5 null, null, +1999 1 1 6 null, null, +1999 1 1 7 null, null, +1999 1 1 8 null, null, +1999 1 1 9 null, null, +1999 1 1 10 null, null, +1999 1 1 11 null, null, +1999 1 1 12 null, null, +1999 1 1 13 null, null, +1999 1 1 14 null, null, +1999 1 1 15 null, null, +1999 1 1 16 null, null, +1999 1 1 17 null, null, +1999 1 1 18 null, null, +1999 1 1 19 null, null, +1999 1 1 20 null, null, +1999 1 1 21 null, null, +1999 1 1 22 null, null, +1999 1 1 23 null, null, +1999 1 1 24 null, null, +1999 1 1 25 null, null, +1999 1 1 26 null, null, +1999 1 1 27 null, null, +1999 1 1 28 null, null, +1999 1 1 29 null, null, +1999 1 1 30 null, null, +1999 1 1 31 null, null, +1999 1 2 1 null, null, +1999 1 2 2 null, null, +1999 1 2 3 null, null, +1999 1 2 4 null, null, +1999 1 2 5 null, null, +1999 1 2 6 null, null, +1999 1 2 7 null, null, +1999 1 2 8 null, null, +1999 1 2 9 null, null, +1999 1 2 10 null, null, +1999 1 2 11 null, null, +1999 1 2 12 null, null, +1999 1 2 13 null, null, +1999 1 2 14 null, null, +1999 1 2 15 null, null, +1999 1 2 16 null, null, +1999 1 2 17 null, null, +1999 1 2 18 null, null, +1999 1 2 19 null, null, +1999 1 2 20 null, null, +1999 1 2 21 null, null, +1999 1 2 22 null, null, +1999 1 2 23 null, null, +1999 1 2 24 null, null, +1999 1 2 25 null, null, +1999 1 2 26 null, null, +1999 1 2 27 null, null, +1999 1 2 28 null, null, +1999 1 3 1 null, null, +1999 1 3 2 null, null, +1999 1 3 3 null, null, +1999 1 3 4 null, null, +1999 1 3 5 null, null, +1999 1 3 6 null, null, +1999 1 3 7 null, null, +1999 1 3 8 null, null, +1999 1 3 9 null, null, +1999 1 3 10 null, null, +1999 1 3 11 null, null, +1999 1 3 12 null, null, +1999 1 3 13 null, null, +1999 1 3 14 null, null, +1999 1 3 15 null, null, +1999 1 3 16 null, null, +1999 1 3 17 null, null, +1999 1 3 18 null, null, +1999 1 3 19 null, null, +1999 1 3 20 null, null, +1999 1 3 21 null, null, +1999 1 3 22 null, null, +1999 1 3 23 null, null, +1999 1 3 24 null, null, +1999 1 3 25 null, null, +1999 1 3 26 null, null, +1999 1 3 27 null, null, +1999 1 3 28 null, null, +1999 1 3 29 null, null, +1999 1 3 30 null, null, +1999 1 3 31 null, null, +1999 2 4 1 null, null, +1999 2 4 2 null, null, +1999 2 4 3 null, null, +1999 2 4 4 null, null, +1999 2 4 5 null, null, +1999 2 4 6 null, null, +1999 2 4 7 null, null, +1999 2 4 8 null, null, +1999 2 4 9 null, null, +1999 2 4 10 null, null, +1999 2 4 11 null, null, +1999 2 4 12 null, null, +1999 2 4 13 null, null, +1999 2 4 14 null, null, +1999 2 4 15 null, null, +1999 2 4 16 null, 2.0, +1999 2 4 17 null, null, +1999 2 4 18 null, null, +1999 2 4 19 null, null, +1999 2 4 20 null, null, +1999 2 4 21 null, null, +1999 2 4 22 null, null, +1999 2 4 23 null, null, +1999 2 4 24 null, null, +1999 2 4 25 null, null, +1999 2 4 26 null, null, +1999 2 4 27 null, null, +1999 2 4 28 null, null, +1999 2 4 29 null, null, +1999 2 4 30 null, null, +1999 2 5 1 null, null, +1999 2 5 2 null, null, +1999 2 5 3 null, null, +1999 2 5 4 null, null, +1999 2 5 5 null, null, +1999 2 5 6 null, null, +1999 2 5 7 null, null, +1999 2 5 8 null, null, +1999 2 5 9 null, null, +1999 2 5 10 null, null, +1999 2 5 11 null, null, +1999 2 5 12 null, null, +1999 2 5 13 null, null, +1999 2 5 14 null, null, +1999 2 5 15 null, null, +1999 2 5 16 null, null, +1999 2 5 17 11.0, null, +1999 2 5 18 null, null, +1999 2 5 19 null, null, +1999 2 5 20 null, null, +1999 2 5 21 null, null, +1999 2 5 22 null, null, +1999 2 5 23 null, null, +1999 2 5 24 null, null, +1999 2 5 25 null, null, +1999 2 5 26 null, null, +1999 2 5 27 null, null, +1999 2 5 28 null, null, +1999 2 5 29 null, null, +1999 2 5 30 null, null, +1999 2 5 31 null, null, +1999 2 6 1 null, null, +1999 2 6 2 null, null, +1999 2 6 3 null, null, +1999 2 6 4 null, null, +1999 2 6 5 null, null, +1999 2 6 6 null, null, +1999 2 6 7 null, null, +1999 2 6 8 null, null, +1999 2 6 9 null, null, +1999 2 6 10 null, null, +1999 2 6 11 null, null, +1999 2 6 12 null, null, +1999 2 6 13 null, null, +1999 2 6 14 null, null, +1999 2 6 15 null, null, +1999 2 6 16 null, null, +1999 2 6 17 null, null, +1999 2 6 18 null, null, +1999 2 6 19 null, null, +1999 2 6 20 null, null, +1999 2 6 21 null, null, +1999 2 6 22 null, null, +1999 2 6 23 null, null, +1999 2 6 24 null, null, +1999 2 6 25 null, null, +1999 2 6 26 null, null, +1999 2 6 27 null, null, +1999 2 6 28 null, null, +1999 2 6 29 null, null, +1999 2 6 30 null, null, +1999 3 7 1 null, null, +1999 3 7 2 null, null, +1999 3 7 3 null, null, +1999 3 7 4 null, null, +1999 3 7 5 null, null, +1999 3 7 6 null, null, +1999 3 7 7 null, null, +1999 3 7 8 null, null, +1999 3 7 9 null, null, +1999 3 7 10 null, null, +1999 3 7 11 null, null, +1999 3 7 12 null, null, +1999 3 7 13 null, null, +1999 3 7 14 null, null, +1999 3 7 15 null, null, +1999 3 7 16 null, null, +1999 3 7 17 null, null, +1999 3 7 18 null, null, +1999 3 7 19 null, null, +1999 3 7 20 null, null, +1999 3 7 21 null, null, +1999 3 7 22 null, null, +1999 3 7 23 null, null, +1999 3 7 24 null, null, +1999 3 7 25 null, null, +1999 3 7 26 null, null, +1999 3 7 27 null, null, +1999 3 7 28 null, null, +1999 3 7 29 null, null, +1999 3 7 30 null, null, +1999 3 7 31 null, null, +1999 3 8 1 null, null, +1999 3 8 2 null, null, +1999 3 8 3 null, null, +1999 3 8 4 null, null, +1999 3 8 5 null, null, +1999 3 8 6 null, null, +1999 3 8 7 null, null, +1999 3 8 8 null, null, +1999 3 8 9 null, null, +1999 3 8 10 null, null, +1999 3 8 11 null, null, +1999 3 8 12 null, null, +1999 3 8 13 null, null, +1999 3 8 14 null, null, +1999 3 8 15 null, null, +1999 3 8 16 null, null, +1999 3 8 17 null, null, +1999 3 8 18 null, 16.0, +1999 3 8 19 null, null, +1999 3 8 20 null, 36.0, +1999 3 8 21 null, null, +1999 3 8 22 null, null, +1999 3 8 23 null, null, +1999 3 8 24 null, null, +1999 3 8 25 null, null, +1999 3 8 26 null, null, +1999 3 8 27 null, null, +1999 3 8 28 null, null, +1999 3 8 29 null, null, +1999 3 8 30 null, null, +1999 3 8 31 null, null, +1999 3 9 1 null, null, +1999 3 9 2 null, null, +1999 3 9 3 null, null, +1999 3 9 4 null, null, +1999 3 9 5 null, null, +1999 3 9 6 null, null, +1999 3 9 7 null, null, +1999 3 9 8 null, null, +1999 3 9 9 null, null, +1999 3 9 10 null, null, +1999 3 9 11 null, null, +1999 3 9 12 null, null, +1999 3 9 13 null, null, +1999 3 9 14 null, null, +1999 3 9 15 null, null, +1999 3 9 16 null, null, +1999 3 9 17 null, null, +1999 3 9 18 null, null, +1999 3 9 19 23.0, null, +1999 3 9 20 null, null, +1999 3 9 21 null, null, +1999 3 9 22 null, null, +1999 3 9 23 null, null, +1999 3 9 24 null, null, +1999 3 9 25 null, null, +1999 3 9 26 null, null, +1999 3 9 27 null, null, +1999 3 9 28 null, null, +1999 3 9 29 null, null, +1999 3 9 30 null, null, +1999 4 10 1 null, null, +1999 4 10 2 null, null, +1999 4 10 3 null, null, +1999 4 10 4 null, null, +1999 4 10 5 null, null, +1999 4 10 6 null, null, +1999 4 10 7 null, null, +1999 4 10 8 null, null, +1999 4 10 9 null, null, +1999 4 10 10 null, null, +1999 4 10 11 null, null, +1999 4 10 12 null, null, +1999 4 10 13 null, null, +1999 4 10 14 null, null, +1999 4 10 15 null, null, +1999 4 10 16 null, null, +1999 4 10 17 null, null, +1999 4 10 18 null, null, +1999 4 10 19 null, null, +1999 4 10 20 null, null, +1999 4 10 21 null, null, +1999 4 10 22 null, null, +1999 4 10 23 null, null, +1999 4 10 24 null, null, +1999 4 10 25 null, null, +1999 4 10 26 null, null, +1999 4 10 27 null, null, +1999 4 10 28 null, null, +1999 4 10 29 null, null, +1999 4 10 30 null, null, +1999 4 10 31 null, null, +1999 4 11 1 null, null, +1999 4 11 2 null, null, +1999 4 11 3 null, null, +1999 4 11 4 null, null, +1999 4 11 5 null, null, +1999 4 11 6 null, null, +1999 4 11 7 null, null, +1999 4 11 8 null, null, +1999 4 11 9 null, null, +1999 4 11 10 null, null, +1999 4 11 11 null, null, +1999 4 11 12 null, null, +1999 4 11 13 null, null, +1999 4 11 14 null, null, +1999 4 11 15 null, null, +1999 4 11 16 null, null, +1999 4 11 17 null, null, +1999 4 11 18 null, null, +1999 4 11 19 null, null, +1999 4 11 20 null, null, +1999 4 11 21 null, null, +1999 4 11 22 null, null, +1999 4 11 23 null, null, +1999 4 11 24 null, null, +1999 4 11 25 null, null, +1999 4 11 26 null, null, +1999 4 11 27 null, null, +1999 4 11 28 null, null, +1999 4 11 29 null, null, +1999 4 11 30 null, null, +1999 4 12 1 null, null, +1999 4 12 2 null, null, +1999 4 12 3 null, null, +1999 4 12 4 null, null, +1999 4 12 5 null, null, +1999 4 12 6 null, null, +1999 4 12 7 null, null, +1999 4 12 8 null, null, +1999 4 12 9 null, null, +1999 4 12 10 null, null, +1999 4 12 11 null, null, +1999 4 12 12 null, null, +1999 4 12 13 null, null, +1999 4 12 14 null, null, +1999 4 12 15 null, null, +1999 4 12 16 null, null, +1999 4 12 17 null, null, +1999 4 12 18 null, null, +1999 4 12 19 null, null, +1999 4 12 20 null, null, +1999 4 12 21 null, null, +1999 4 12 22 null, null, +1999 4 12 23 null, null, +1999 4 12 24 null, null, +1999 4 12 25 null, null, +1999 4 12 26 null, null, +1999 4 12 27 null, null, +1999 4 12 28 null, null, +1999 4 12 29 null, null, +1999 4 12 30 null, null, +1999 4 12 31 null, null, +2000 1 1 1 null, null, +2000 1 1 2 null, null, +2000 1 1 3 null, null, +2000 1 1 4 null, null, +2000 1 1 5 null, null, +2000 1 1 6 null, null, +2000 1 1 7 null, null, +2000 1 1 8 null, null, +2000 1 1 9 null, null, +2000 1 1 10 null, null, +2000 1 1 11 null, null, +2000 1 1 12 null, null, +2000 1 1 13 null, null, +2000 1 1 14 null, null, +2000 1 1 15 null, null, +2000 1 1 16 null, null, +2000 1 1 17 null, null, +2000 1 1 18 null, null, +2000 1 1 19 null, null, +2000 1 1 20 null, null, +2000 1 1 21 null, null, +2000 1 1 22 null, null, +2000 1 1 23 null, null, +2000 1 1 24 null, null, +2000 1 1 25 null, null, +2000 1 1 26 null, null, +2000 1 1 27 null, null, +2000 1 1 28 null, null, +2000 1 1 29 null, null, +2000 1 1 30 null, null, +2000 1 1 31 null, null, +2000 1 2 1 null, null, +2000 1 2 2 null, null, +2000 1 2 3 null, null, +2000 1 2 4 null, null, +2000 1 2 5 null, null, +2000 1 2 6 null, null, +2000 1 2 7 null, null, +2000 1 2 8 null, null, +2000 1 2 9 null, null, +2000 1 2 10 null, null, +2000 1 2 11 null, null, +2000 1 2 12 null, null, +2000 1 2 13 null, null, +2000 1 2 14 null, null, +2000 1 2 15 null, null, +2000 1 2 16 null, null, +2000 1 2 17 null, null, +2000 1 2 18 null, null, +2000 1 2 19 null, null, +2000 1 2 20 null, null, +2000 1 2 21 null, null, +2000 1 2 22 null, null, +2000 1 2 23 null, null, +2000 1 2 24 null, null, +2000 1 2 25 null, null, +2000 1 2 26 null, null, +2000 1 2 27 null, null, +2000 1 2 28 null, null, +2000 1 3 1 null, null, +2000 1 3 2 null, null, +2000 1 3 3 null, null, +2000 1 3 4 null, null, +2000 1 3 5 null, null, +2000 1 3 6 null, null, +2000 1 3 7 null, null, +2000 1 3 8 null, null, +2000 1 3 9 null, null, +2000 1 3 10 null, null, +2000 1 3 11 null, null, +2000 1 3 12 null, null, +2000 1 3 13 null, null, +2000 1 3 14 null, null, +2000 1 3 15 null, null, +2000 1 3 16 null, null, +2000 1 3 17 null, null, +2000 1 3 18 null, null, +2000 1 3 19 null, null, +2000 1 3 20 null, null, +2000 1 3 21 null, null, +2000 1 3 22 null, null, +2000 1 3 23 null, null, +2000 1 3 24 null, null, +2000 1 3 25 null, null, +2000 1 3 26 null, null, +2000 1 3 27 null, null, +2000 1 3 28 null, null, +2000 1 3 29 null, null, +2000 1 3 30 null, null, +2000 1 3 31 null, null, +2000 2 4 1 null, null, +2000 2 4 2 null, null, +2000 2 4 3 null, null, +2000 2 4 4 null, null, +2000 2 4 5 null, null, +2000 2 4 6 null, null, +2000 2 4 7 null, null, +2000 2 4 8 null, null, +2000 2 4 9 null, null, +2000 2 4 10 null, null, +2000 2 4 11 null, null, +2000 2 4 12 null, null, +2000 2 4 13 null, null, +2000 2 4 14 null, null, +2000 2 4 15 null, null, +2000 2 4 16 null, null, +2000 2 4 17 null, null, +2000 2 4 18 null, null, +2000 2 4 19 null, null, +2000 2 4 20 null, null, +2000 2 4 21 null, null, +2000 2 4 22 null, null, +2000 2 4 23 null, null, +2000 2 4 24 null, null, +2000 2 4 25 null, null, +2000 2 4 26 null, null, +2000 2 4 27 null, null, +2000 2 4 28 null, null, +2000 2 4 29 null, null, +2000 2 4 30 null, null, +2000 2 5 1 null, null, +2000 2 5 2 null, null, +2000 2 5 3 null, null, +2000 2 5 4 null, null, +2000 2 5 5 null, null, +2000 2 5 6 null, null, +2000 2 5 7 null, null, +2000 2 5 8 null, null, +2000 2 5 9 null, null, +2000 2 5 10 null, null, +2000 2 5 11 null, null, +2000 2 5 12 null, null, +2000 2 5 13 null, null, +2000 2 5 14 null, null, +2000 2 5 15 null, null, +2000 2 5 16 null, null, +2000 2 5 17 null, null, +2000 2 5 18 null, null, +2000 2 5 19 null, null, +2000 2 5 20 null, null, +2000 2 5 21 null, null, +2000 2 5 22 null, null, +2000 2 5 23 null, null, +2000 2 5 24 null, null, +2000 2 5 25 null, null, +2000 2 5 26 null, null, +2000 2 5 27 null, null, +2000 2 5 28 null, null, +2000 2 5 29 null, null, +2000 2 5 30 null, null, +2000 2 5 31 null, null, +2000 2 6 1 null, null, +2000 2 6 2 null, null, +2000 2 6 3 null, null, +2000 2 6 4 null, null, +2000 2 6 5 null, null, +2000 2 6 6 null, null, +2000 2 6 7 null, null, +2000 2 6 8 null, null, +2000 2 6 9 null, null, +2000 2 6 10 null, null, +2000 2 6 11 null, null, +2000 2 6 12 null, null, +2000 2 6 13 null, null, +2000 2 6 14 null, null, +2000 2 6 15 null, null, +2000 2 6 16 null, null, +2000 2 6 17 null, null, +2000 2 6 18 null, null, +2000 2 6 19 null, null, +2000 2 6 20 null, null, +2000 2 6 21 null, null, +2000 2 6 22 null, null, +2000 2 6 23 null, null, +2000 2 6 24 null, null, +2000 2 6 25 null, null, +2000 2 6 26 null, null, +2000 2 6 27 null, null, +2000 2 6 28 null, null, +2000 2 6 29 null, null, +2000 2 6 30 null, null, +2000 3 7 1 null, null, +2000 3 7 2 null, null, +2000 3 7 3 null, null, +2000 3 7 4 null, null, +2000 3 7 5 null, null, +2000 3 7 6 null, null, +2000 3 7 7 null, null, +2000 3 7 8 null, null, +2000 3 7 9 null, null, +2000 3 7 10 null, null, +2000 3 7 11 null, null, +2000 3 7 12 null, null, +2000 3 7 13 null, null, +2000 3 7 14 null, null, +2000 3 7 15 null, null, +2000 3 7 16 null, null, +2000 3 7 17 null, null, +2000 3 7 18 null, null, +2000 3 7 19 null, null, +2000 3 7 20 null, null, +2000 3 7 21 null, null, +2000 3 7 22 null, null, +2000 3 7 23 null, null, +2000 3 7 24 null, null, +2000 3 7 25 null, null, +2000 3 7 26 null, null, +2000 3 7 27 null, null, +2000 3 7 28 null, null, +2000 3 7 29 null, null, +2000 3 7 30 null, null, +2000 3 7 31 null, null, +2000 3 8 1 null, null, +2000 3 8 2 null, null, +2000 3 8 3 null, null, +2000 3 8 4 null, null, +2000 3 8 5 null, null, +2000 3 8 6 null, null, +2000 3 8 7 null, null, +2000 3 8 8 null, null, +2000 3 8 9 null, null, +2000 3 8 10 null, null, +2000 3 8 11 null, null, +2000 3 8 12 null, null, +2000 3 8 13 null, null, +2000 3 8 14 null, null, +2000 3 8 15 null, null, +2000 3 8 16 null, null, +2000 3 8 17 null, null, +2000 3 8 18 null, null, +2000 3 8 19 null, null, +2000 3 8 20 null, null, +2000 3 8 21 null, null, +2000 3 8 22 null, null, +2000 3 8 23 null, null, +2000 3 8 24 null, null, +2000 3 8 25 null, null, +2000 3 8 26 null, null, +2000 3 8 27 null, null, +2000 3 8 28 null, null, +2000 3 8 29 null, null, +2000 3 8 30 null, null, +2000 3 8 31 null, null, +2000 3 9 1 null, null, +2000 3 9 2 null, null, +2000 3 9 3 null, null, +2000 3 9 4 null, null, +2000 3 9 5 null, null, +2000 3 9 6 null, null, +2000 3 9 7 null, null, +2000 3 9 8 null, null, +2000 3 9 9 null, null, +2000 3 9 10 null, null, +2000 3 9 11 null, null, +2000 3 9 12 null, null, +2000 3 9 13 null, null, +2000 3 9 14 null, null, +2000 3 9 15 null, null, +2000 3 9 16 null, null, +2000 3 9 17 null, null, +2000 3 9 18 null, null, +2000 3 9 19 null, null, +2000 3 9 20 null, null, +2000 3 9 21 null, null, +2000 3 9 22 null, null, +2000 3 9 23 null, null, +2000 3 9 24 null, null, +2000 3 9 25 null, null, +2000 3 9 26 null, null, +2000 3 9 27 null, null, +2000 3 9 28 null, null, +2000 3 9 29 null, null, +2000 3 9 30 null, null, +2000 4 10 1 null, null, +2000 4 10 2 null, null, +2000 4 10 3 null, null, +2000 4 10 4 null, null, +2000 4 10 5 null, null, +2000 4 10 6 null, null, +2000 4 10 7 null, null, +2000 4 10 8 null, null, +2000 4 10 9 null, null, +2000 4 10 10 null, null, +2000 4 10 11 null, null, +2000 4 10 12 null, null, +2000 4 10 13 null, null, +2000 4 10 14 null, null, +2000 4 10 15 null, null, +2000 4 10 16 null, null, +2000 4 10 17 null, null, +2000 4 10 18 null, null, +2000 4 10 19 null, null, +2000 4 10 20 null, null, +2000 4 10 21 null, null, +2000 4 10 22 null, null, +2000 4 10 23 null, null, +2000 4 10 24 null, null, +2000 4 10 25 null, null, +2000 4 10 26 null, null, +2000 4 10 27 null, null, +2000 4 10 28 null, null, +2000 4 10 29 null, null, +2000 4 10 30 null, null, +2000 4 10 31 null, null, +2000 4 11 1 null, null, +2000 4 11 2 null, null, +2000 4 11 3 null, null, +2000 4 11 4 null, null, +2000 4 11 5 null, null, +2000 4 11 6 null, null, +2000 4 11 7 null, null, +2000 4 11 8 null, null, +2000 4 11 9 null, null, +2000 4 11 10 null, null, +2000 4 11 11 null, null, +2000 4 11 12 null, null, +2000 4 11 13 null, null, +2000 4 11 14 null, null, +2000 4 11 15 null, null, +2000 4 11 16 null, null, +2000 4 11 17 null, null, +2000 4 11 18 null, null, +2000 4 11 19 null, null, +2000 4 11 20 null, null, +2000 4 11 21 null, null, +2000 4 11 22 null, 39.0, +2000 4 11 23 null, null, +2000 4 11 24 null, null, +2000 4 11 25 null, null, +2000 4 11 26 null, null, +2000 4 11 27 null, null, +2000 4 11 28 null, null, +2000 4 11 29 null, null, +2000 4 11 30 null, null, +2000 4 12 1 null, null, +2000 4 12 2 null, null, +2000 4 12 3 null, null, +2000 4 12 4 null, null, +2000 4 12 5 null, null, +2000 4 12 6 null, null, +2000 4 12 7 null, null, +2000 4 12 8 null, null, +2000 4 12 9 null, null, +2000 4 12 10 null, null, +2000 4 12 11 null, null, +2000 4 12 12 null, null, +2000 4 12 13 null, null, +2000 4 12 14 null, null, +2000 4 12 15 null, null, +2000 4 12 16 null, null, +2000 4 12 17 null, null, +2000 4 12 18 null, null, +2000 4 12 19 null, null, +2000 4 12 20 null, null, +2000 4 12 21 null, null, +2000 4 12 22 null, null, +2000 4 12 23 null, null, +2000 4 12 24 null, null, +2000 4 12 25 null, null, +2000 4 12 26 null, null, +2000 4 12 27 null, null, +2000 4 12 28 null, null, +2000 4 12 29 null, null, +2000 4 12 30 null, null, +2000 4 12 31 null, null,
\ No newline at end of file diff --git a/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/api/timefunction/TimePeriod.java b/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/api/timefunction/TimePeriod.java index f2b2c82..1400508 100644 --- a/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/api/timefunction/TimePeriod.java +++ b/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/api/timefunction/TimePeriod.java @@ -30,7 +30,7 @@ public class TimePeriod implements ITimePeriod }
public TimePeriodType getType() {
- return null;
+ return type;
}
}
diff --git a/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/data/impl/aggregation/AggregationCalculator.java b/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/data/impl/aggregation/AggregationCalculator.java index 4459a7b..5b72982 100644 --- a/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/data/impl/aggregation/AggregationCalculator.java +++ b/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/data/impl/aggregation/AggregationCalculator.java @@ -109,7 +109,7 @@ public class AggregationCalculator IDimension timeDimension = cubeDimensionReader.getDimension( tDimName ); this.timeFunctionFilter[i] = getTimeFunctinResult( timeDimension, aggregationFunction[i].getTimeFunctionFilter() ); this.timeFilterDimensionIndex[i] = cubeDimensionReader.getDimensionIndex( tDimName ); - this.timeFilterLevelCount[i] = cubeDimensionReader.getlowestLevelIndex( tDimName ) - 1; + this.timeFilterLevelCount[i] = cubeDimensionReader.getlowestLevelIndex( tDimName ) ; } if (aggregation == null) { diff --git a/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/data/impl/aggregation/TimeFunctionCalculator.java b/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/data/impl/aggregation/TimeFunctionCalculator.java index 76bbe9f..27e1df5 100644 --- a/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/data/impl/aggregation/TimeFunctionCalculator.java +++ b/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/data/impl/aggregation/TimeFunctionCalculator.java @@ -108,7 +108,7 @@ public class TimeFunctionCalculator }
if( existReferenceDate )
{
- endLevelIndex = cubeDimensionReader.getlowestLevelIndex( tDimName ) - 1;
+ endLevelIndex = cubeDimensionReader.getlowestLevelIndex( tDimName );
}
else
{
@@ -203,9 +203,9 @@ public class TimeFunctionCalculator {
ITimeFunction function = timeFunction[i].getTimeFunction();
toDatelevelType = toLevelType( function.getBaseTimePeriod( ).getType( ) );
- if( function.getBaseTimePeriod( ).countOfUnit() < 1 )
- {
- periodsFunction[i] = TimeFunctionFactory.createPeriodsToDateFunction(toDatelevelType);
+ if (Math.abs(function.getBaseTimePeriod().countOfUnit()) < 1) {
+ periodsFunction[i] = TimeFunctionFactory
+ .createPeriodsToDateFunction(toDatelevelType);
}
else
{
@@ -554,7 +554,7 @@ public class TimeFunctionCalculator private static int compare( Row4Aggregation r, MemberCellIndex m )
{
int result = 0;
- for( int i = 0; i < r.getLevelMembers().length; i++ )
+ for( int i = 0; i < m.member.length; i++ )
{
result = r.getLevelMembers()[i].compareTo(m.member[i] );
if( result != 0 )
diff --git a/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/data/impl/aggregation/function/TimeMemberUtil.java b/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/data/impl/aggregation/function/TimeMemberUtil.java index e4d7854..463847c 100644 --- a/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/data/impl/aggregation/function/TimeMemberUtil.java +++ b/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/data/impl/aggregation/function/TimeMemberUtil.java @@ -48,7 +48,7 @@ public class TimeMemberUtil ILevel[] levels = timeDimension.getHierarchy( ).getLevels();
String[] levelType = null;
if( referenceDate != null )
- levelType = new String[levels.length - 1];
+ levelType = new String[levels.length];
else
{
levelType = new String[getLowestLevelIndex(timeDimension, cellTimeMember)+1];
@@ -135,7 +135,7 @@ public class TimeMemberUtil {
ILevel[] levels = timeDimension.getHierarchy( ).getLevels();
String[] levelType = null;
- levelType = new String[levels.length - 1];
+ levelType = new String[levels.length];
int[] levelValue = new int[levelType.length];
Calendar cal = getCalendar( referenceDate );
diff --git a/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/query/view/CubeQueryDefinitionUtil.java b/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/query/view/CubeQueryDefinitionUtil.java index f5a54e9..882d9b7 100644 --- a/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/query/view/CubeQueryDefinitionUtil.java +++ b/data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/query/view/CubeQueryDefinitionUtil.java @@ -307,13 +307,17 @@ public class CubeQueryDefinitionUtil list.get( index ).getCubeAggrDefn( ).getAggrName( ), list.get( index ).getFilterEvalHelper( ) ); - if( containsTimeDimension( query,list.get( index ).getCubeAggrDefn( ).getTimeFunction( ) ) ) + ITimeFunction timeFunction = list.get( index ).getCubeAggrDefn( ).getTimeFunction( ); + if (timeFunction != null) { - funcitons[index].setTimeFunction( list.get( index ).getCubeAggrDefn( ).getTimeFunction( ) ); - } - else - { - funcitons[index].setTimeFunctionFilter( list.get( index ).getCubeAggrDefn( ).getTimeFunction( ) ); + if( containsTimeDimension( query,list.get( index ).getCubeAggrDefn( ) ) ) + { + funcitons[index].setTimeFunction( list.get( index ).getCubeAggrDefn( ).getTimeFunction( ) ); + } + else + { + funcitons[index].setTimeFunctionFilter( list.get( index ).getCubeAggrDefn( ).getTimeFunction( ) ); + } } CubeAggrDefn cad = ( (CalculatedMember) list.get( index ) ).getCubeAggrDefn( ); @@ -352,29 +356,55 @@ public class CubeQueryDefinitionUtil return result.toArray( new AggregationDefinition[0] ); } - private static boolean containsTimeDimension( ICubeQueryDefinition query, ITimeFunction timeFunction ) throws DataException - { - if( query.getEdge( ICubeQueryDefinition.COLUMN_EDGE ) != null ) + private static boolean containsTimeDimension( ICubeQueryDefinition query, CubeAggrDefn aggrDefn ) throws DataException + { + ITimeFunction timeFunction = aggrDefn.getTimeFunction( ); + List onlevels = aggrDefn.getAggrLevelsInAggregationResult( ); + + if ( query.getEdge( ICubeQueryDefinition.COLUMN_EDGE ) != null ) { - IEdgeDefinition definition = query.getEdge( ICubeQueryDefinition.COLUMN_EDGE ) ; + IEdgeDefinition definition = query.getEdge( ICubeQueryDefinition.COLUMN_EDGE ); List<IDimensionDefinition> dimension = definition.getDimensions( ); - for( int i=0; i< dimension.size( ); i++ ) + for ( int i = 0; i < dimension.size( ); i++ ) { - if( dimension.get( i ).getName( ).equals( timeFunction.getTimeDimension( ) ) ) + if ( dimension.get( i ) + .getName( ) + .equals( timeFunction.getTimeDimension( ) ) ) { - return true; + + List<ILevelDefinition> levels = dimension.get( i ) + .getHierarchy( ) + .get( 0 ) + .getLevels( ); + for ( int j = 0; j < levels.size( ); j++ ) + { + if ( onlevels.contains( new DimLevel( levels.get( j ) ) ) ) + return true; + } + return false; } } } - if( query.getEdge( ICubeQueryDefinition.ROW_EDGE ) != null ) + if ( query.getEdge( ICubeQueryDefinition.ROW_EDGE ) != null ) { - IEdgeDefinition definition = query.getEdge( ICubeQueryDefinition.ROW_EDGE ) ; + IEdgeDefinition definition = query.getEdge( ICubeQueryDefinition.ROW_EDGE ); List<IDimensionDefinition> dimension = definition.getDimensions( ); - for( int i=0; i< dimension.size( ); i++ ) + for ( int i = 0; i < dimension.size( ); i++ ) { - if( dimension.get( i ).getName( ).equals( timeFunction.getTimeDimension( ) ) ) + if ( dimension.get( i ) + .getName( ) + .equals( timeFunction.getTimeDimension( ) ) ) { - return true; + List<ILevelDefinition> levels = dimension.get( i ) + .getHierarchy( ) + .get( 0 ) + .getLevels( ); + for ( int j = 0; j < levels.size( ); j++ ) + { + if ( onlevels.contains( new DimLevel( levels.get( j ) ) ) ) + return true; + } + return false; } } } |

