public virtual void TestUnionWithEmptyDoesNotCreateNewRange() { IBTreeRange range = Range(3, 4); IBTreeRange empty = Range(0, 0); Assert.AreSame(range, range.Union(empty)); Assert.AreSame(range, empty.Union(range)); IBTreeRange union = range.Union(Range(8, 9)); Assert.AreSame(union, union.Union(empty)); Assert.AreSame(union, empty.Union(union)); }
public virtual void TestUnionsOfUnions() { IBTreeRange union1 = Range(3, 4).Union(Range(8, 9)); BTreeAssert.AssertRange(new int[] { 3, 4, 9 }, union1); BTreeAssert.AssertRange(new int[] { 3, 4, 7, 9 }, union1.Union(Range(7, 7))); IBTreeRange union2 = Range(3, 3).Union(Range(7, 7)); AssertUnion(new int[] { 3, 4, 7, 9 }, union1, union2); AssertIsRangeSingle(union1.Union(union2)); AssertIsRangeSingle(union2.Union(union1)); IBTreeRange union3 = Range(3, 3).Union(Range(9, 9)); AssertUnion(new int[] { 3, 7, 9 }, union2, union3); }
private IBTreeRange Search() { IBTreeRange range = Search(Constraint().GetObject()); QEBitmap bitmap = QEBitmap.ForQE(Constraint().Evaluator()); if (bitmap.TakeGreater()) { if (bitmap.TakeEqual()) { return(range.ExtendToLast()); } IBTreeRange greater = range.Greater(); if (bitmap.TakeSmaller()) { return(greater.Union(range.Smaller())); } return(greater); } if (bitmap.TakeSmaller()) { if (bitmap.TakeEqual()) { return(range.ExtendToFirst()); } return(range.Smaller()); } return(range); }
public static IBTreeRange Union(BTreeRangeUnion union1, BTreeRangeUnion union2) { IEnumerator ranges = union1.Ranges(); IBTreeRange merged = union2; while (ranges.MoveNext()) { merged = merged.Union((IBTreeRange)ranges.Current); } return(merged); }
private void AssertUnion(int[] expectedKeys, IBTreeRange range1, IBTreeRange range2 ) { BTreeAssert.AssertRange(expectedKeys, range1.Union(range2)); BTreeAssert.AssertRange(expectedKeys, range2.Union(range1)); }
private void AssertUnion(int[] expectedKeys, IBTreeRange range1, IBTreeRange range2 ) { BTreeAssert.AssertRange(expectedKeys, range1.Union(range2)); BTreeAssert.AssertRange(expectedKeys, range2.Union(range1)); }