コード例 #1
0
        public void ShouldSearchInLargeAmountOfOverlappedIntervals()
        {
            var intervals = new List <IntervalWithValue <long, long> >();

            for (var i = 0; i < 25000000; i += 25)
            {
                intervals.Add(new IntervalWithValue <long, long>(i, i + 50, 0));
            }
            var tree = new ImmutableIntervalBalancedTree <long, long>(intervals);

            var result = tree.Search(100000, true, true);

            Assert.Equal(3, result.Count);
        }
コード例 #2
0
        public void ShouldSearchInLargeAmountOfExclusiveIntervals()
        {
            var intervals = new List <IntervalWithValue <long, long> >();

            for (var i = 0; i < 50000000; i += 50)
            {
                intervals.Add(new IntervalWithValue <long, long>(i, i + 50, 0));
            }
            var tree = new ImmutableIntervalBalancedTree <long, long>(intervals);

            var result = tree.Search(25, false, false);

            Assert.Single(result);
        }
コード例 #3
0
        public void ShouldSearchInTree()
        {
            var intervalNodeFour  = new IntervalWithValue <long, long>(0, 5, 1);
            var intervalNodeFive  = new IntervalWithValue <long, long>(10, 15, 2);
            var intervalNodeSix   = new IntervalWithValue <long, long>(20, 25, 0);
            var intervalNodeSeven = new IntervalWithValue <long, long>(30, 35, 0);
            var intervalNodeTwo   = new IntervalWithValue <long, long>(5, 10, 1);
            var intervalNodeThree = new IntervalWithValue <long, long>(25, 30, 2);
            var intervalNodeOne   = new IntervalWithValue <long, long>(15, 20, 0);
            var treeIntervals     = new List <IntervalWithValue <long, long> >
            {
                intervalNodeOne, intervalNodeTwo, intervalNodeThree, intervalNodeFour, intervalNodeFive,
                intervalNodeSix, intervalNodeSeven
            };
            var tree   = new ImmutableIntervalBalancedTree <long, long>(treeIntervals);
            var result = tree.Search(3, false, false);

            Assert.Single(result);
            Assert.Equal(intervalNodeFour, result.First());
        }
コード例 #4
0
        public void OnNullRootSearchMultipleShouldReturnEmptyList()
        {
            var tree = new ImmutableIntervalBalancedTree <long, long>(new List <IntervalWithValue <long, long> >());

            Assert.Empty(tree.Search(0, false, false));
        }