Пример #1
0
def test_subtract_overlapping():
    left = IntervalSet((i.open(1, 4), i.open(5, 10)))
    right = IntervalSet((i.open(0, 2), i.open(6, 8)))
    expected = IntervalSet((
        i.closedopen(2, 4),
        i.openclosed(5, 6),
        i.closedopen(8, 10),
    ))
    assert left - right == expected
Пример #2
0
def test_subtract_overlapping():
    left = IntervalSet((i.open(1, 4), i.open(5, 10)))
    right = IntervalSet((i.open(0, 2), i.open(6, 8)))
    expected = IntervalSet((
        i.closedopen(2, 4),
        i.openclosed(5, 6),
        i.closedopen(8, 10),
    ))
    assert left - right == expected
Пример #3
0
def test_empty():
    assert i.open(1, 1).empty()
    assert i.open(3, 3).empty()
    assert i.openclosed(3, 3).empty()
    assert i.closedopen(3, 3).empty()
    assert not i.open(3, 4).empty()
    assert not i.openclosed(3, 4).empty()
def test_contains():
    small = i.closed(1, 5)
    medium = i.closedopen(3, 10)
    assert small.lower_value in small
    assert small._upper_value in small
    assert medium.lower_value in medium
    assert medium._upper_value not in medium
Пример #5
0
def test_empty():
    assert i.open(1, 1).empty()
    assert i.open(3, 3).empty()
    assert i.openclosed(3, 3).empty()
    assert i.closedopen(3, 3).empty()
    assert not i.open(3, 4).empty()
    assert not i.openclosed(3, 4).empty()
Пример #6
0
def test_contains():
    small = i.closed(1, 5)
    medium = i.closedopen(3, 10)
    assert small.lower_value in small
    assert small._upper_value in small
    assert medium.lower_value in medium
    assert medium._upper_value not in medium
Пример #7
0
def test_complement_open():
    unit = i.open(0, 1)
    complement = unit.complement()
    (lower_interval,
     upper_interval) = sorted(complement)  # an IntervalSet is not sorted
    assert lower_interval == i.openclosed(i.NEGATIVE_INFINITY, 0)
    assert upper_interval == i.closedopen(1, i.INFINITY)
Пример #8
0
def test_complement_whole():
    whole = i.open(i.NEGATIVE_INFINITY, i.INFINITY)
    (lower_interval, upper_interval) = sorted(
        whole.complement())  # an IntervalSet is not sorted
    assert lower_interval == i.openclosed(i.NEGATIVE_INFINITY,
                                          i.NEGATIVE_INFINITY)
    assert upper_interval == i.closedopen(i.INFINITY, i.INFINITY)
Пример #9
0
def test_union_of_overlapping():
    first = IntervalSet((i.open(1, 5), i.closed(7, 10)))
    second = IntervalSet((i.open(8, 21), i.closed(22, 23)))
    expected = IntervalSet((i.open(1, 5), i.closedopen(7,
                                                       21), i.closed(22, 23)))
    result = first.union(second)
    assert result == expected
def test_non_equality():
    small, medium = get_intervals()[:2]
    assert small != medium
    assert small != i.openclosed(1, 5)
    assert small != i.closedopen(1, 5)
    assert small != i.closed(1, 5)
    assert small != i.Interval(i.Interval.OPEN, 1, 7, i.Interval.OPEN)
    assert small != i.open(100, 288)
Пример #11
0
def test_non_equality():
    small, medium = get_intervals()[:2]
    assert small != medium
    assert small != i.openclosed(1,5)
    assert small != i.closedopen(1,5)
    assert small != i.closed(1,5)
    assert small != i.Interval(i.Interval.OPEN, 1, 7, i.Interval.OPEN)
    assert small != i.open(100, 288)
Пример #12
0
def test_complement():
    one = i.open(3, 6)
    two = i.open(7, 10)
    intervals = IntervalSet([one, two])
    complement = intervals.complement()
    (lower, middle, upper) = sorted(complement)  # an IntervalSet is not sorted

    assert lower == i.openclosed(i.NEGATIVE_INFINITY, 3)
    assert middle == i.closed(6, 7)
    assert upper == i.closedopen(10, i.INFINITY)
Пример #13
0
def test_closedopen_interval_construction_using_helper():
    expected_lower = i.Interval.CLOSED
    expectedlower_value = 10
    expected_upper_value = 100
    expected_upper = i.Interval.OPEN
    result = i.closedopen(10, 100)
    assert result.lower == expected_lower
    assert result.lower_value == expectedlower_value
    assert result.upper_value == expected_upper_value
    assert result.upper == expected_upper
Пример #14
0
def test_complement():
    one = i.open(3, 6)
    two = i.open(7, 10)
    intervals = IntervalSet([one, two])
    complement = intervals.complement()
    (lower, middle, upper) = sorted(complement)  # an IntervalSet is not sorted

    assert lower == i.openclosed(i.NEGATIVE_INFINITY, 3)
    assert middle == i.closed(6, 7)
    assert upper == i.closedopen(10, i.INFINITY)
def test_closedopen_interval_construction_using_helper():
    expected_lower = i.Interval.CLOSED
    expectedlower_value = 10
    expected_upper_value = 100
    expected_upper = i.Interval.OPEN
    result = i.closedopen(10, 100)
    assert result._lower == expected_lower
    assert result.lower_value == expectedlower_value
    assert result._upper_value == expected_upper_value
    assert result._upper == expected_upper
Пример #16
0
def test_subtract_overlapping_start():
    left = i.open(1, 10)
    right = i.open(1, 5)
    expected = i.closedopen(5, 10)
    assert left - right == expected
Пример #17
0
def test_initialising_interval_with_overlapping_intervals_unions_them():
    expected = IntervalSet((i.open(1, 10),))
    result = IntervalSet([i.open(1, 7), i.closedopen(5, 10)])
    assert result == expected
def test_contains_self_closed_open():
    small = i.closedopen(1, 5)
    medium = i.closed(7, 10)
    assert small in small
    assert small not in medium
    assert medium not in small
Пример #19
0
def test_contains_fully_overlapping():
    small = i.closed(7, 10)
    medium = i.closedopen(7, 21)
    assert small in medium
Пример #20
0
def test_repr():
    assert repr(i.open(1, 2)) == '(1, 2)'
    assert repr(i.openclosed(1, 2)) == '(1, 2]'
    assert repr(i.closed(1, 2)) == '[1, 2]'
    assert repr(i.closedopen(1, 2)) == '[1, 2)'
Пример #21
0
def test_initialising_interval_with_overlapping_intervals_unions_them():
    expected = IntervalSet((i.open(1, 10), ))
    result = IntervalSet([i.open(1, 7), i.closedopen(5, 10)])
    assert result == expected
Пример #22
0
def test_contains_self_closed_open():
    small = i.closedopen(1, 5)
    medium = i.closed(7, 10)
    assert small in small
    assert small not in medium
    assert medium not in small
Пример #23
0
def test_intersection_of_almost_overlapping():
    first = IntervalSet((i.open(1, 5), i.closedopen(7, 10)))
    second = IntervalSet((i.open(1, 5), i.closed(7,23)))
    expected = IntervalSet((i.open(1, 5), i.closedopen(7, 10)))
    result = first.intersection(second)
    assert result == expected
Пример #24
0
def test_overlaps_touching():
    assert not i.openclosed(1, 4).overlaps(i.openclosed(4, 5))
    assert not i.closedopen(1, 4).overlaps(i.closedopen(4, 5))
    assert not i.open(1, 4).overlaps(i.open(4, 5))
    assert i.closed(1, 4).overlaps(i.closed(4, 5))
Пример #25
0
def test_complement_open():
    unit = i.open(0, 1)
    complement = unit.complement()
    (lower_interval, upper_interval) = sorted(complement)  # an IntervalSet is not sorted
    assert lower_interval == i.openclosed(i.NEGATIVE_INFINITY, 0)
    assert upper_interval == i.closedopen(1, i.INFINITY)
Пример #26
0
def test_intersection_of_almost_overlapping():
    first = IntervalSet((i.open(1, 5), i.closedopen(7, 10)))
    second = IntervalSet((i.open(1, 5), i.closed(7, 23)))
    expected = IntervalSet((i.open(1, 5), i.closedopen(7, 10)))
    result = first.intersection(second)
    assert result == expected
Пример #27
0
def test_subtract_overlapping_start():
    left = i.open(1, 10)
    right = i.open(1, 5)
    expected = i.closedopen(5, 10)
    assert left - right == expected
Пример #28
0
def test_subtract_contained():
    left = i.open(3, 6)
    right = i.open(4, 5)
    expected = IntervalSet([i.openclosed(3, 4), i.closedopen(5, 6)])
    assert left - right == expected
Пример #29
0
def test_replace():
    assert i.open(1, 4).replace(upper_value=5) == i.open(1, 5)
    assert i.open(1, 4).replace(upper=i.Interval.CLOSED) == i.openclosed(1, 4)
    assert i.open(1, 4).replace(lower=i.Interval.CLOSED) == i.closedopen(1, 4)
    assert i.open(1, 4).replace(lower_value=0) == i.open(0, 4)
Пример #30
0
def test_replace():
    assert i.open(1, 4).replace(upper_value=5) == i.open(1, 5)
    assert i.open(1, 4).replace(upper=i.Interval.CLOSED) == i.openclosed(1, 4)
    assert i.open(1, 4).replace(lower=i.Interval.CLOSED) == i.closedopen(1, 4)
    assert i.open(1, 4).replace(lower_value=0) == i.open(0, 4)
Пример #31
0
def test_subtract_contained():
    left = i.open(3, 6)
    right = i.open(4, 5)
    expected = IntervalSet([i.openclosed(3, 4), i.closedopen(5, 6)])
    assert left - right == expected
Пример #32
0
def test_repr():
    assert repr(i.open(1, 2)) == '(1, 2)'
    assert repr(i.openclosed(1, 2)) == '(1, 2]'
    assert repr(i.closed(1, 2)) == '[1, 2]'
    assert repr(i.closedopen(1, 2)) == '[1, 2)'
def test_contains_fully_overlapping():
    small = i.closed(7, 10)
    medium = i.closedopen(7, 21)
    assert small in medium
Пример #34
0
def test_interval_copy():
    assert i.open(1, 4).copy() == i.open(1, 4)
    assert i.openclosed(1, 4).copy() == i.openclosed(1, 4)
    assert i.closedopen(1, 4).copy() == i.closedopen(1, 4)
    assert i.closed(1, 4).copy() == i.closed(1, 4)
Пример #35
0
def test_overlaps_touching():
    assert not i.openclosed(1, 4).overlaps(i.openclosed(4, 5))
    assert not i.closedopen(1, 4).overlaps(i.closedopen(4, 5))
    assert not i.open(1, 4).overlaps(i.open(4, 5))
    assert i.closed(1, 4).overlaps(i.closed(4, 5))
Пример #36
0
def test_union_of_overlapping():
    first = IntervalSet((i.open(1, 5), i.closed(7, 10)))
    second = IntervalSet((i.open(8, 21), i.closed(22,23)))
    expected = IntervalSet((i.open(1, 5), i.closedopen(7, 21), i.closed(22, 23)))
    result = first.union(second)
    assert result == expected
Пример #37
0
def test_interval_copy():
    assert i.open(1, 4).copy() == i.open(1, 4)
    assert i.openclosed(1, 4).copy() == i.openclosed(1, 4)
    assert i.closedopen(1, 4).copy() == i.closedopen(1, 4)
    assert i.closed(1, 4).copy() == i.closed(1, 4)