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); }
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); }
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()); }
public void OnNullRootSearchMultipleShouldReturnEmptyList() { var tree = new ImmutableIntervalBalancedTree <long, long>(new List <IntervalWithValue <long, long> >()); Assert.Empty(tree.Search(0, false, false)); }