Example #1
0
def test_sequentially_removing_intervals_yields_empty(ls):
    running = IntSet.from_intervals(ls)
    for i in ls:
        inter = IntSet.interval(*i)
        extra = inter & running
        original = running.size()
        assert (running - inter) == (running - extra)
        running -= inter
        assert running.size() == original - extra.size()
    assert running.size() == 0
Example #2
0
def test_unioning_a_value_in_includes_it(intervals, i):
    mp = IntSet.from_intervals(intervals)
    assume(i not in mp)
    mp2 = mp | IntSet.interval(i, i + 1)
    assert i in mp2
Example #3
0
    imper = imp.insert(i)
    assert imp.issubset(imper)


@example(IntSet.empty(), IntSet.empty())
@example(IntSet.single(0), IntSet.from_iterable([0, 2]))
@given(IntSets, IntSets)
def test_subtracting_a_superset_is_empty(x, y):
    assume(x.issubset(y))
    assert (x - y).size() == 0


@example(
    IntSet.interval(4611686018427387904, 4611686018427387907),
    IntSet.from_intervals([
        (0, 4611686018427387904), (4611686018427387904, 4611686018427387905),
        (4611686018427387906, 4611686018427387907)]))
@example(IntSet.single(0), IntSet.empty())
@example(IntSet.interval(0, 2), IntSet.from_iterable([0, 2]))
@example(IntSet.interval(0, 3), IntSet.from_iterable([0, 2]))
@example(IntSet.single(0), IntSet.from_iterable([1, 3]))
@example(IntSet.interval(0, 3), IntSet.from_iterable([0, 2, 3, 4]))
@example(IntSet.interval(0, 5), IntSet.from_iterable([0, 2]))
@example(IntSet.single(1), IntSet.from_iterable([0, 2]))
@example(IntSet.single(3), IntSet.from_iterable([0, 2]))
@given(IntSets, IntSets)
def test_subtracting_a_non_superset_is_non_empty(x, y):
    assume(not x.issubset(y))
    assert (x - y).size() > 0

Example #4
0
def test_concatenation_of_lists_is_union(x, y):
    assert IntSet.from_intervals(x + y) == \
        IntSet.from_intervals(x) | IntSet.from_intervals(y)
Example #5
0
def test_iterable_equivalent_to_intervals_of_length_one(xs):
    assert IntSet.from_iterable(xs) == \
        IntSet.from_intervals((x, x + 1) for x in xs)
Example #6
0
def test_concatenation_of_lists_is_union(x, y):
    assert IntSet.from_intervals(x + y) == \
        IntSet.from_intervals(x) | IntSet.from_intervals(y)
Example #7
0
def test_iterable_equivalent_to_intervals_of_length_one(xs):
    assert IntSet.from_iterable(xs) == \
        IntSet.from_intervals((x, x + 1) for x in xs)