Пример #1
0
        public void DimensionMembersTest()
        {
            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 = CubeSourcesFixture.GetBasicCubeThreeDimensionsTwoMeasures();

            _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);
        }
Пример #2
0
        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 = CubeSourcesFixture.GetBasicCubeThreeDimensionsTwoMeasures();

            _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();
        }