Exemple #1
0
def test_impossible_union():
    class Impossible:
        def __init__(self):
            self.left = -1
            self.right = float("nan")

        def is_empty(self):
            return False

    with pytest.raises(NotImplementedError) as exinfo:
        interval = Interval(0, 1)
        other = Impossible()
        interval.union(other)
    assert str(exinfo.value).startswith("Can't merge [0, 1] and ")
Exemple #2
0
def test_interval_union():
    i01 = Interval(0, 1)
    assert Interval(None, None).union(Interval(42, 1337)) == Interval(42, 1337)
    assert Interval(42, 1337).union(Interval(None, None)) == Interval(42, 1337)
    assert i01.union(Interval(1, 3)) == Interval(0, 3)
    assert i01.union(Interval(2, 4)) == IntervalUnion([[0, 1], [2, 4]])
    assert i01.union(Interval(3, 5)) == IntervalUnion([[0, 1], [3, 5]])
    assert i01.union(Interval(-1, 6)) == Interval(-1, 6)
    assert Interval(1, 3).union(Interval(2, 4)) == Interval(1, 4)
    assert Interval(1, 3).union(Interval(3, 5)) == Interval(1, 5)
    assert Interval(1, 3).union(Interval(-1, 6)) == Interval(-1, 6)
    assert Interval(2, 4).union(Interval(3, 5)) == Interval(2, 5)
    assert Interval(2, 4).union(Interval(-1, 6)) == Interval(-1, 6)
    assert Interval(3, 5).union(Interval(-1, 6)) == Interval(-1, 6)
Exemple #3
0
def test_interval_union_interval_unition():
    i01 = Interval(0, 1)
    iu = IntervalUnion([[4, 5], [6, 7]])
    iu_expected = IntervalUnion([[0, 1], [4, 5], [6, 7]])
    assert i01.union(iu) == iu_expected
    assert i01 | iu == iu_expected