public void TestSubtractOfOverlappingRangeFromRight() { IntervalSet s = IntervalSet.Of(10, 20); IntervalSet s2 = IntervalSet.Of(15, 25); String expecting = "{10..14}"; String result = (s.Subtract(s2)).ToString(); Assert.AreEqual(expecting, result); IntervalSet s3 = IntervalSet.Of(20, 25); expecting = "{10..19}"; result = (s.Subtract(s3)).ToString(); Assert.AreEqual(expecting, result); }
public void TestSubtractOfOverlappingRangeFromLeft() { IntervalSet s = IntervalSet.Of(10, 20); IntervalSet s2 = IntervalSet.Of(5, 11); String expecting = "{12..20}"; String result = (s.Subtract(s2)).ToString(); Assert.AreEqual(expecting, result); IntervalSet s3 = IntervalSet.Of(5, 10); expecting = "{11..20}"; result = (s.Subtract(s3)).ToString(); Assert.AreEqual(expecting, result); }
public void TestSubtractOfRangeSpanningMultipleRanges() { IntervalSet s = IntervalSet.Of(10, 20); s.Add(30, 40); s.Add(50, 60); // s has 3 ranges now: 10..20, 30..40, 50..60 IntervalSet s2 = IntervalSet.Of(5, 55); // covers one and touches 2nd range String expecting = "{56..60}"; String result = (s.Subtract(s2)).ToString(); Assert.AreEqual(expecting, result); IntervalSet s3 = IntervalSet.Of(15, 55); // touches both expecting = "{10..14, 56..60}"; result = (s.Subtract(s3)).ToString(); Assert.AreEqual(expecting, result); }
public void TestSubtractOfCompletelyCoveredRange() { IntervalSet s = IntervalSet.Of(10, 20); IntervalSet s2 = IntervalSet.Of(1, 25); String expecting = "{}"; String result = (s.Subtract(s2)).ToString(); Assert.AreEqual(expecting, result); }
public void TestSubtractOfCompletelyContainedRange() { IntervalSet s = IntervalSet.Of(10, 20); IntervalSet s2 = IntervalSet.Of(12, 15); String expecting = "{10..11, 16..20}"; String result = (s.Subtract(s2)).ToString(); Assert.AreEqual(expecting, result); }
public void TestSingleElementMinusDisjointSet() { IntervalSet s = IntervalSet.Of(15, 15); IntervalSet s2 = IntervalSet.Of(1, 5); s2.Add(10, 20); String expecting = "{}"; // 15 - {1..5, 10..20} = {} String result = s.Subtract(s2).ToString(); Assert.AreEqual(expecting, result); }
public void TestSubtractOfWackyRange() { IntervalSet s = IntervalSet.Of(0, 113); s.Add(115, 200); IntervalSet s2 = IntervalSet.Of(0, 115); s2.Add(117, 200); String expecting = "116"; String result = (s.Subtract(s2)).ToString(); Assert.AreEqual(expecting, result); }