예제 #1
0
        public void DistinctGetValuesWhenHasDistinctValuesShouldReturnOnlyDistinctRows1MilOfRows100Col()
        {
            BinaryDataListStorage bdls = new BinaryDataListStorage("MySweetNamespace", Guid.NewGuid());

            // build insert value ;)
            IIndexIterator keys = AddLotsOfRows1Mil(bdls);
            // Insert information
            List <int> distinctCols = new List <int> {
                2, 4, 5, 7, 120, 134, 99, 78, 34
            };
            DateTime   start = DateTime.Now;
            List <int> rows  = bdls.DistinctGetRows(keys, distinctCols);
            DateTime   end   = DateTime.Now;
            double     dif   = (end.Ticks - (double)start.Ticks) / TimeSpan.TicksPerSecond;

            Assert.AreEqual(7, rows.Count);
            Assert.IsTrue(dif < 20, string.Format("Time taken: {0}", dif));
            Console.Write(dif);
        }
예제 #2
0
        public void DistinctGetValuesWhenHasDistinctValuesShouldReturnOnlyDistinctRows()
        {
            BinaryDataListStorage bdls = new BinaryDataListStorage("MySweetNamespace", Guid.NewGuid());

            // build insert value ;)
            var row  = CreateBinaryDataListRow("1", "1", "Barney", "T", "Buchan");
            var row2 = CreateBinaryDataListRow("2", "2", "Huggs", "W", "Naidu");
            var row3 = CreateBinaryDataListRow("3", "3", "Trav", "A", "Fri");
            var row4 = CreateBinaryDataListRow("4", "4", "Trav", "B", "Fri");
            var row5 = CreateBinaryDataListRow("5", "5", "Huggs", "C", "Bear");
            var row6 = CreateBinaryDataListRow("6", "6", "Huggs", "D", "Naidu");

            bdls.Add(1, row);
            bdls.Add(2, row2);
            bdls.Add(3, row3);
            bdls.Add(4, row4);
            bdls.Add(5, row5);
            bdls.Add(6, row6);
            // Insert information

            IIndexIterator keys         = new IndexIterator(null, 6);
            List <int>     distinctCols = new List <int> {
                2, 4
            };
            List <int> rows = bdls.DistinctGetRows(keys, distinctCols);

            Assert.AreEqual(4, rows.Count);

            // now fetch each item ;)
            IBinaryDataListRow myRow;

            bdls.TryGetValue(rows[0], 1, out myRow);
            Assert.IsFalse(myRow.IsEmpty);
            bdls.TryGetValue(rows[3], 1, out myRow);
            Assert.IsFalse(myRow.IsEmpty);
        }
예제 #3
0
        public void DistinctGetValuesWhenHasDistinctValuesShouldReturnOnlyDistinctRows1MilOfRows100Col()
        {
            BinaryDataListStorage bdls = new BinaryDataListStorage("MySweetNamespace", Guid.NewGuid());

            // build insert value ;)
            IIndexIterator keys = AddLotsOfRows1Mil(bdls);
            // Insert information
            List<int> distinctCols = new List<int> { 2, 4, 5, 7, 120, 134, 99, 78, 34 };
            DateTime start = DateTime.Now;
            List<int> rows = bdls.DistinctGetRows(keys, distinctCols);
            DateTime end = DateTime.Now;
            double dif = (end.Ticks - (double)start.Ticks) / TimeSpan.TicksPerSecond;
            Assert.AreEqual(7, rows.Count);
            Assert.IsTrue(dif < 20, string.Format("Time taken: {0}", dif));
            Console.Write(dif);
        }
예제 #4
0
        public void DistinctGetValuesWhenHasDistinctValuesShouldReturnOnlyDistinctRows()
        {
            BinaryDataListStorage bdls = new BinaryDataListStorage("MySweetNamespace", Guid.NewGuid());

            // build insert value ;)
            var row = CreateBinaryDataListRow("1", "1", "Barney", "T", "Buchan");
            var row2 = CreateBinaryDataListRow("2", "2", "Huggs", "W", "Naidu");
            var row3 = CreateBinaryDataListRow("3", "3", "Trav", "A", "Fri");
            var row4 = CreateBinaryDataListRow("4", "4", "Trav", "B", "Fri");
            var row5 = CreateBinaryDataListRow("5", "5", "Huggs", "C", "Bear");
            var row6 = CreateBinaryDataListRow("6", "6", "Huggs", "D", "Naidu");
            bdls.Add(1, row);
            bdls.Add(2, row2);
            bdls.Add(3, row3);
            bdls.Add(4, row4);
            bdls.Add(5, row5);
            bdls.Add(6, row6);
            // Insert information

            IIndexIterator keys = new IndexIterator(null,6);
            List<int> distinctCols = new List<int> { 2, 4 };
            List<int> rows = bdls.DistinctGetRows(keys, distinctCols);
            Assert.AreEqual(4, rows.Count);

            // now fetch each item ;)
            IBinaryDataListRow myRow;
            bdls.TryGetValue(rows[0], 1, out myRow);
            Assert.IsFalse(myRow.IsEmpty);
            bdls.TryGetValue(rows[3], 1, out myRow);
            Assert.IsFalse(myRow.IsEmpty);
        }