Esempio n. 1
0
        public void AddMoreThanOneDataSourceConfig_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");
                               		              });
                               })
                .AddDataSource(dsbuild => {
                               	dsbuild.SetName("xtable")
                               		.SetSourceType(DataSourceType.CSV)
                               		.SetCSVConfig(csvbuild => {
                               		              	csvbuild.SetFilePath("xtable.csv");
                               		              });
                               });

            Cube<int> cube = builder.Create<int>();

            Assert.AreEqual("xpto", cube.Config.DataSources["xpto"].Name);
            Assert.AreEqual("xtable", cube.Config.DataSources["xtable"].Name);
        }
Esempio n. 2
0
        public static Cube <T> Create <T>(this CubeBuilder cubebuilder)
            where T : struct, IComparable
        {
            CubeConfig cube = cubebuilder.CreateConfig();

            return(new Cube <T>(cube));
        }
Esempio n. 3
0
        public static CubeBuilder SetupConfig <T>(this Cube <T> cube)
            where T : struct, IComparable
        {
            cube.Config = new CubeConfig();
            CubeBuilder builder = new CubeBuilder(cube.Config);

            return(builder);
        }
        internal static CubeConfig GetConfig()
        {
            CubeBuilder builder = new CubeBuilder();

            builder.SetName("New_Cube")
                .Storage(store => { store.SetStoreType(StorageType.Molap); });

            return builder.CreateConfig();
        }
        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);
        }
Esempio n. 6
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 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);
        }
Esempio n. 8
0
        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 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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        public void SetNameConfig_Test()
        {
            CubeBuilder builder = new CubeBuilder();

            builder.SetName("hello");

            Cube<int> cube = builder.Create<int>();

            Assert.AreEqual("hello", cube.Name);
        }
Esempio n. 14
0
        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);
        }