Ejemplo n.º 1
0
        public void Count_of_filtered_is_equals_to_count_of_linqWhered()
        {
            var start = new DateTime(2016, 1, 1);
            var end   = new DateTime(2016, 1, 8);

            var sw = new Stopwatch();

            sw.Start();
            var linq = Samples.Where(s => start < s.Value.DateTime && s.Value.DateTime < end).ToArray();

            sw.Stop();
            Log($"linq whered count={linq.Length}, time={sw.ElapsedMilliseconds}[ms]");
            sw.Reset();

            var btree = new BPlusTree <DateTime, long>();

            foreach (var s in Samples)
            {
                btree.Add(s.Value.DateTime, s.Key);
            }

            sw.Start();
            var result = btree.GtAndLt(start, end).Select(id => Samples[id]).ToArray();

            sw.Stop();
            Log($"filtered count={result.Length}, time={sw.ElapsedMilliseconds}[ms]");
            sw.Reset();

            Assert.AreEqual(linq.Length, result.Length);
        }