public void MolapAddDimensionInit_Test() { CubeBuilder builder = new CubeBuilder(); builder.SetName("hello") .SetSource((sourcebuild) => sourcebuild.SetSource("sales")) .AddDataSource(dsbuild => { dsbuild.SetName("sales") .SetSourceType(DataSourceType.CSV) .SetCSVConfig(csvbuild => { csvbuild.SetFilePath("TestData//table.csv") .SetHasHeader(); }) .AddField("category", 0, typeof(int)) .AddField("sex", 1, typeof(int)) .AddField("place", 2, typeof(int)) .AddField("expenses", 3, typeof(double)) .AddField("items", 4, typeof(int)); }) .AddDataSource(dsbuild => { dsbuild.SetName("categories") .SetSourceType(DataSourceType.CSV) .AddField("id", 0, typeof(int)) .AddField("description", 1, typeof(string)) .SetCSVConfig(csvbuild => { csvbuild.SetFilePath("TestData//dimension1.csv") .SetHasHeader(); }); }) .MetaData(mbuild => { mbuild.AddDimension("category", (dimbuild)=> { dimbuild.Source("categories") .ValueField("id") .DescField("description"); }); }); Cube<int> cube = builder.Create<int>(); cube.Initialize(); Assert.AreEqual("category",cube.Schema.Dimensions["category"].Name); Assert.AreEqual("categories",cube.Schema.Dimensions["category"].DataSource.Name); Assert.AreEqual(ItemType.Dimension,cube.Schema.Dimensions["category"].ItemType); Assert.Greater(cube.Schema.Dimensions["category"].ID, 0); }
public void AddMeasureConfig_Test() { CubeBuilder builder = new CubeBuilder(); builder.SetName("hello") .SetSource((sourcebuild) => sourcebuild.SetSource("xpto")) .MetaData(mbuild => { mbuild.AddMeasure("var1", mesbuild => { mesbuild.ValueField("varx1"); }); }); Cube<int> cube = builder.Create<int>(); Assert.AreEqual("var1", cube.Config.MetaData.Measures["var1"].Name); Assert.AreEqual("varx1", cube.Config.MetaData.Measures["var1"].ValueFieldName); }
public void AddDataSourceConfig_Test() { CubeBuilder builder = new CubeBuilder(); builder.SetName("hello") .SetSource((sourcebuild) => sourcebuild.SetSource("xpto")) .AddDataSource(dsbuild => { dsbuild.SetName("xpto") .SetSourceType(DataSourceType.CSV) .SetCSVConfig(csvbuild => { csvbuild.SetFilePath("xpto.csv"); }); }); Cube<int> cube = builder.Create<int>(); Assert.AreEqual("xpto", cube.Config.DataSources["xpto"].Name); }
public void AddDimensionConfig_Test() { CubeBuilder builder = new CubeBuilder(); builder.SetName("hello") .SetSource((sourcebuild) => sourcebuild.SetSource("xpto")) .MetaData(mbuild => { mbuild.AddDimension("x", (dimbuild)=> { dimbuild.Source("xtable") .ValueField("xkey") .DescField("xdesc"); }); }); Cube<int> cube = builder.Create<int>(); Assert.AreEqual("x", cube.Config.MetaData.Dimensions[0].Name); Assert.AreEqual("x", cube.Config.MetaData.Dimensions["x"].Name); }
public void MolapAddMeasureInit_Test() { CubeBuilder builder = new CubeBuilder(); builder.SetName("hello") .SetSource((sourcebuild) => sourcebuild.SetSource("xpto")) .AddDataSource(dsbuild => { dsbuild.SetName("xpto") .SetSourceType(DataSourceType.CSV) .AddField("x", 0, typeof(int)) .AddField("varx1", 2, typeof(int)) .SetCSVConfig(csvbuild => { csvbuild.SetFilePath("xpto.csv"); }); }) .AddDataSource(dsbuild => { dsbuild.SetName("xtable") .SetSourceType(DataSourceType.CSV) .AddField("xkey", 0, typeof(int)) .AddField("xdesc", 1, typeof(string)) .SetCSVConfig(csvbuild => { csvbuild.SetFilePath("xtable.csv"); }); }) .MetaData(mbuild => { mbuild.AddDimension("x", (dimbuild)=> { dimbuild.Source("xtable") .ValueField("xkey") .DescField("xdesc"); }) .AddMeasure("var1", mesbuild => { mesbuild.ValueField("varx1") .SetType(typeof(int)); }); }); Cube<int> cube = builder.Create<int>(); cube.Initialize(); Assert.AreEqual("var1", cube.Schema.Measures["var1"].Name); Assert.AreEqual(ItemType.Measure, cube.Schema.Measures["var1"].ItemType); Assert.AreEqual(typeof(int), cube.Schema.Measures["var1"].DataType); }
public void CellsEnumeratorTest() { CubeBuilder builder = new CubeBuilder(); builder.SetName("hello") .SetSource((sourcebuild) => { sourcebuild.SetSource("sales") .AddMapping("category", "category") .AddMapping("sex","sex") .AddMapping("place", "place"); }) .AddDataSource(dsbuild => { dsbuild.SetName("sales") .SetSourceType(DataSourceType.CSV) .SetCSVConfig(csvbuild => { csvbuild.SetFilePath("TestData//table.csv") .SetHasHeader(); }) .AddField("category", 0, typeof(int)) .AddField("sex", 1, typeof(int)) .AddField("place", 2, typeof(int)) .AddField("expenses", 3, typeof(double)) .AddField("items", 4, typeof(int)); }) .AddDataSource(dsbuild => { dsbuild.SetName("categories") .SetSourceType(DataSourceType.CSV) .AddField("id", 0, typeof(int)) .AddField("description", 1, typeof(string)) .SetCSVConfig(csvbuild => { csvbuild.SetFilePath("TestData//dimension1.csv") .SetHasHeader(); }); }) .AddDataSource(dsbuild => { dsbuild.SetName("sexes") .SetSourceType(DataSourceType.CSV) .AddField("id", 0, typeof(int)) .AddField("description", 1, typeof(string)) .SetCSVConfig(csvbuild => { csvbuild.SetFilePath("TestData//dimension2.csv") .SetHasHeader(); }); }) .AddDataSource(dsbuild => { dsbuild.SetName("places") .SetSourceType(DataSourceType.CSV) .AddField("id", 0, typeof(int)) .AddField("description", 1, typeof(string)) .SetCSVConfig(csvbuild => { csvbuild.SetFilePath("TestData//dimension3.csv") .SetHasHeader(); }); }) .MetaData(mbuild => { mbuild.AddDimension("category", (dimbuild)=> { dimbuild.Source("categories") .ValueField("id") .DescField("description"); }) .AddDimension("sex", (dimbuild)=> { dimbuild.Source("sexes") .ValueField("id") .DescField("description"); }) .AddDimension("place", (dimbuild)=> { dimbuild.Source("places") .ValueField("id") .DescField("description"); }) .AddMeasure("spent", mesbuild => { mesbuild.ValueField("expenses") .SetType(typeof(double)); }) .AddMeasure("quantity", mesbuild => { mesbuild.ValueField("items") .SetType(typeof(int)); }); }); Cube<int> cube = builder.Create<int>(); _watch.Reset(); _watch.Start(); cube.Initialize(); cube.Process(); // 12, 7 Console.WriteLine(); foreach(Cell<int> item in cube.Cells) { foreach (var pair in item.Coords) { Console.Write(pair.Key); Console.Write(","); Console.Write(pair.Value); Console.Write("|"); } Console.WriteLine(); } int count = cube.Cells.Count; _watch.Stop(); Console.WriteLine(); Console.WriteLine(_watch.ElapsedMilliseconds); Console.WriteLine(); }
public void DimensionMembersTest() { CubeBuilder builder = new CubeBuilder(); builder.SetName("hello") .SetSource((sourcebuild) => { sourcebuild.SetSource("sales") .AddMapping("category", "category") .AddMapping("sex","sex") .AddMapping("place", "place"); }) .AddDataSource(dsbuild => { dsbuild.SetName("sales") .SetSourceType(DataSourceType.CSV) .SetCSVConfig(csvbuild => { csvbuild.SetFilePath("TestData//table.csv") .SetHasHeader(); }) .AddField("category", 0, typeof(int)) .AddField("sex", 1, typeof(int)) .AddField("place", 2, typeof(int)) .AddField("expenses", 3, typeof(double)) .AddField("items", 4, typeof(int)); }) .AddDataSource(dsbuild => { dsbuild.SetName("categories") .SetSourceType(DataSourceType.CSV) .AddField("id", 0, typeof(int)) .AddField("description", 1, typeof(string)) .SetCSVConfig(csvbuild => { csvbuild.SetFilePath("TestData//dimension1.csv") .SetHasHeader(); }); }) .AddDataSource(dsbuild => { dsbuild.SetName("sexes") .SetSourceType(DataSourceType.CSV) .AddField("id", 0, typeof(int)) .AddField("description", 1, typeof(string)) .SetCSVConfig(csvbuild => { csvbuild.SetFilePath("TestData//dimension2.csv") .SetHasHeader(); }); }) .AddDataSource(dsbuild => { dsbuild.SetName("places") .SetSourceType(DataSourceType.CSV) .AddField("id", 0, typeof(int)) .AddField("description", 1, typeof(string)) .SetCSVConfig(csvbuild => { csvbuild.SetFilePath("TestData//dimension3.csv") .SetHasHeader(); }); }) .MetaData(mbuild => { mbuild.AddDimension("category", (dimbuild)=> { dimbuild.Source("categories") .ValueField("id") .DescField("description"); }) .AddDimension("sex", (dimbuild)=> { dimbuild.Source("sexes") .ValueField("id") .DescField("description"); }) .AddDimension("place", (dimbuild)=> { dimbuild.Source("places") .ValueField("id") .DescField("description"); }) .AddMeasure("spent", mesbuild => { mesbuild.ValueField("expenses") .SetType(typeof(double)); }) .AddMeasure("quantity", mesbuild => { mesbuild.ValueField("items") .SetType(typeof(int)); }); }); KeyValuePair<int,int>[] pairs = new KeyValuePair<int, int>[] { new KeyValuePair<int, int>(1,2), new KeyValuePair<int, int>(2,1), new KeyValuePair<int, int>(3,6) }; KeyValuePair<int,int>[] pairs2 = new KeyValuePair<int, int>[] { new KeyValuePair<int, int>(2,1), new KeyValuePair<int, int>(3,6) }; Cube<int> cube = builder.Create<int>(); _watch.Reset(); _watch.Start(); cube.Initialize(); cube.Process(); Cell<int> xcell = cube.Cells[pairs]; Cell<int> xcell2 = cube.Cells[pairs2]; _watch.Stop(); Console.WriteLine(); Console.WriteLine(_watch.ElapsedMilliseconds); Console.WriteLine(); Assert.AreEqual("male",cube.Schema.Dimensions["sex"].Members["male"].Name); Assert.AreEqual("female",cube.Schema.Dimensions["sex"].Members["female"].Name); Assert.AreEqual("London",cube.Schema.Dimensions["place"].Members["London"].Name); Assert.AreEqual(5, xcell.Values[cube.Schema.Measures["quantity"].ID]); Assert.AreEqual(10.10, xcell.Values[cube.Schema.Measures["spent"].ID]); Assert.AreEqual(3, xcell2.Occurrences); }
public void SetStorageConfig_Test() { CubeBuilder builder = new CubeBuilder(); builder.SetName("hello") .SetSource((sourcebuild) => sourcebuild.SetSource("xpto")) .Storage(storebuild => { storebuild.SetStoreType(StorageType.Molap); }); Cube<int> cube = builder.Create<int>(); Assert.AreEqual(StorageType.Molap, cube.Config.Storage.StoreType); }
public void SetSourceConfig_Test() { CubeBuilder builder = new CubeBuilder(); builder.SetName("hello") .SetSource((sourcebuild) => sourcebuild.SetSource("xpto")); Cube<int> cube = builder.Create<int>(); Assert.AreEqual("xpto", cube.Source); }
public void SetNameConfig_Test() { CubeBuilder builder = new CubeBuilder(); builder.SetName("hello"); Cube<int> cube = builder.Create<int>(); Assert.AreEqual("hello", cube.Name); }
public void DataSourceFieldsSetupConfig_Test() { CubeBuilder builder = new CubeBuilder(); builder.SetName("hello") .SetSource((sourcebuild) => sourcebuild.SetSource("xpto")) .AddDataSource(dsbuild => { dsbuild.SetName("xpto") .SetSourceType(DataSourceType.CSV) .SetCSVConfig(csvbuild => { csvbuild.SetFilePath("xpto.csv"); }) .AddField("xval", 0, typeof(int)) .AddField("yval", 1, typeof(int)); }); Cube<int> cube = builder.Create<int>(); Assert.AreEqual("xval", cube.Config.DataSources["xpto"].Fields["xval"].Name); Assert.AreEqual(0, cube.Config.DataSources["xpto"].Fields["xval"].Index); Assert.AreEqual(typeof(int), cube.Config.DataSources["xpto"].Fields["xval"].FieldType); Assert.AreEqual("yval", cube.Config.DataSources["xpto"].Fields["yval"].Name); Assert.AreEqual(1, cube.Config.DataSources["xpto"].Fields["yval"].Index); Assert.AreEqual(typeof(int), cube.Config.DataSources["xpto"].Fields["yval"].FieldType); }