Ejemplo n.º 1
0
def test_validates_bounds():
    with pytest.raises(ValueError):
        IntSet.single(-1)
    with pytest.raises(ValueError):
        IntSet.single(2 ** 64)
    with pytest.raises(ValueError):
        IntSet.interval(1, 2 ** 65)
    with pytest.raises(ValueError):
        IntSet.interval(2 ** 65, 1)
Ejemplo n.º 2
0
def test_validates_argument_types():
    with pytest.raises(TypeError):
        IntSet.single('foo')
Ejemplo n.º 3
0
 def three_adjacent_values_with_hole(self, v):
     assume(v + 2 <= 2 ** 64)
     return (IntSet.single(v) | IntSet.single(v + 2), [v, v + 2])
Ejemplo n.º 4
0
 def single_value(self, v):
     return (IntSet.single(v), [v])
Ejemplo n.º 5
0
def test_not_equal_to_other_types():
    assert IntSet.single(1) != 1
Ejemplo n.º 6
0
def test_discarding_a_solo_gives_the_empty_list(i):
    imp = IntSet.single(i)
    assert imp.discard(i).size() == 0
Ejemplo n.º 7
0
SMALL = 100

short_intervals = st.builds(
    lambda start, length: assume(
        start + length <= 2 ** 64) and (start, start + length),
    integers_in_range, st.integers(0, SMALL))

interval_list = st.lists(intervals, average_size=10)

IntSets = st.builds(
    IntSet.from_intervals, interval_list) | integers_in_range.map(
        IntSet.single) | intervals.map(lambda x: IntSet.interval(*x))


@example(IntSet.empty())
@example(IntSet.single(1))
@example(IntSet([1, 2, 3, 6]))
@given(IntSets)
def test_pickling_works_correctly(x):
    assert pickle.loads(pickle.dumps(x)) == x


@example(IntSet.interval(0, 10))
@example(IntSet([(0, 10), (15, 20)]))
@given(IntSets)
def test_copies_as_self(x):
    assert copy(x) is x
    assert deepcopy(x) is x


def test_deepcopy_collapses_reference_equality():