public void OverlapsAnyTests() { var intervals = new List <Interval>(_intervalSetOne); intervals.Sort(); var tree = IntervalTree.Build(intervals); Assert.True(tree.OverlapsAny(5, 13)); Assert.False(tree.OverlapsAny(0, 4)); }
public void SpeedTestBuild100kIntervals() { IntervalTree<int, DateTime> tree = new IntervalTree<int, DateTime>(); for (int i = 0; i < 100 * 1000; i++) { tree.AddInterval(ZERO.AddHours(i), ZERO.AddHours(i + 200), i); } Stopwatch stopWatch = Stopwatch.StartNew(); tree.Build(); stopWatch.Stop(); Assert.IsTrue(stopWatch.ElapsedMilliseconds < 3 * 1000, "Build took more then 4s - it took " + stopWatch.Elapsed); }
public RangeTreeLookup(System.Collections.Generic.IReadOnlyCollection <ExecutionPathGroup> executionPathGroups, ExecutionPathGroup emptyGroup) { _emptyGroup = emptyGroup; foreach (var executionPathGroup in executionPathGroups) { var range = CreateRange(executionPathGroup.Match); _minValue = Math.Min(_minValue, range.Minimum); _maxValue = Math.Max(_maxValue, range.Maximum); } _intervalTree = IntervalTree.Build(executionPathGroups, e => CreateRange(e.Match)); }
public void SpeedTestBuild100kIntervals() { IntervalTree <int, int> tree = new IntervalTree <int, int>(); for (int i = 0; i < 100 * 1000; i++) { tree.AddInterval(i, i + 200, i); } Stopwatch stopWatch = Stopwatch.StartNew(); tree.Build(); stopWatch.Stop(); Assert.IsTrue(stopWatch.ElapsedMilliseconds < 3 * 1000, "Build took more then 4s - it took " + stopWatch.Elapsed); }
public void SpeedTestIntersectingIntervals_GetRange() { IntervalTree <int, DateTime> tree = new IntervalTree <int, DateTime>(); for (int i = 0; i < 100 * 1000; i++) { tree.AddInterval(ZERO.AddHours(i), ZERO.AddHours(i + 200), i); } tree.Build(); Stopwatch stopWatch = Stopwatch.StartNew(); var result = tree.Get(ZERO.AddHours(50 * 1000), ZERO.AddHours(52 * 1000)); stopWatch.Stop(); Assert.IsTrue(stopWatch.ElapsedMilliseconds < 100); }
public void SpeedTestIntersectingIntervals_GetPoint() { IntervalTree <int, int> tree = new IntervalTree <int, int>(); for (int i = 0; i < 100 * 1000; i++) { tree.AddInterval(i, i + 200, i); } tree.Build(); Stopwatch stopWatch = Stopwatch.StartNew(); var result = tree.Get(50 * 1000); stopWatch.Stop(); Assert.IsTrue(stopWatch.ElapsedMilliseconds < 100); }
public void GetOverlappingIntervals() { var intervals = new List <Interval>(_intervalSetOne); intervals.Sort(); var tree = IntervalTree.Build(intervals); var expectedIntervals = new Interval[] { _intervalSetOne[2], _intervalSetOne[1], _intervalSetOne[3] }; var observedIntervals = tree.GetOverlappingIntervals(new Interval(5, 13)).OrderBy(x => x.Begin); Assert.Equal(expectedIntervals, observedIntervals); }
public void SpeedTestIntersectingIntervals_GetPoint() { IntervalTree<int, DateTime> tree = new IntervalTree<int, DateTime>(); for (int i = 0; i < 100 * 1000; i++) { tree.AddInterval(ZERO.AddHours(i), ZERO.AddHours(i + 200), i); } tree.Build(); Stopwatch stopWatch = Stopwatch.StartNew(); var result = tree.Get(ZERO.AddHours(50 * 1000)); stopWatch.Stop(); Assert.IsTrue(stopWatch.ElapsedMilliseconds < 100); }
public void BuildEmptyIntervalTree() { IntervalTree<int, DateTime> emptyTree = new IntervalTree<int, DateTime>(); emptyTree.Build(); }
public void BuildEmptyIntervalTree() { IntervalTree <int, DateTime> emptyTree = new IntervalTree <int, DateTime>(); emptyTree.Build(); }
public void BuildEmptyIntervalTree() { IntervalTree <int, int> emptyTree = new IntervalTree <int, int>(); emptyTree.Build(); }