def test_deepcopy_collapses_reference_equality(): x = IntSet.from_iterable([1, 2, 3]) y = IntSet.from_iterable([1, 2, 3]) z = IntSet.from_iterable([1, 2, 3, 4]) assert x == y assert x is not y w, u, v = deepcopy((x, y, z)) assert x == w assert y == u assert z == v assert w is u assert w is not v
def test_trying_to_pass_extra_args_to_intset_errors(): with pytest.raises(TypeError): IntSet.from_iterable(1, 2)
def test_instantiating_with_a_collection_gives_that_collection(xs): ts = IntSet.from_iterable(xs) assert len(ts) == len(xs) assert set(ts) == xs
@example(set()) @example(set([1, 2, 3])) @given(st.sets(integers_in_range)) def test_instantiating_with_a_collection_gives_that_collection(xs): ts = IntSet.from_iterable(xs) assert len(ts) == len(xs) assert set(ts) == xs def test_trying_to_pass_extra_args_to_intset_errors(): with pytest.raises(TypeError): IntSet.from_iterable(1, 2) @example(IntSet.from_iterable([]), 1) @example(IntSet.from_iterable([]), -1) @example(IntSet.from_iterable([0]), -2) @example(IntSet.from_iterable([0]), 2) @given(IntSets, st.integers()) def test_raises_index_error_out_of_bounds(x, i): assume(abs(i) > x.size()) with pytest.raises(IndexError): x[i] SmallIntSets = st.builds( IntSet.from_intervals, st.lists(short_intervals, average_size=5)).filter(lambda x: x.size() <= SMALL)
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)