Exemple #1
0
def test_is_disjoint():
    s1 = pset([1, 2, 3])
    s2 = pset([3, 4, 5])
    s3 = pset([4, 5])

    assert not s1.isdisjoint(s2)
    assert s1.isdisjoint(s3)
Exemple #2
0
def test_is_immutable():
    s1 = pset([1])
    s2 = s1.add(2)

    assert s1 == pset([1])
    assert s2 == pset([1, 2])

    s3 = s2.remove(1)
    assert s2 == pset([1, 2])
    assert s3 == pset([2])
Exemple #3
0
def test_pset_constructor():
    container = pset()
    assert len(container) == 0

    container = pset((0, "1", 2))
    assert len(container) == 3

    container = pset([0, "1", 2])
    assert len(container) == 3

    container = pset(range(5))
    assert len(container) == 5

    container = pset(map(lambda x: x, range(10)))
    assert len(container) == 10
Exemple #4
0
def test_supports_set_operations():
    s1 = pset([1, 2, 3])
    s2 = pset([3, 4, 5])

    assert s1 | s2 == s(1, 2, 3, 4, 5)
    assert s1.union(s2) == s1 | s2

    assert s1 & s2 == s(3)
    assert s1.intersection(s2) == s1 & s2

    assert s1 - s2 == s(1, 2)
    assert s1.difference(s2) == s1 - s2

    assert s1 ^ s2 == s(1, 2, 4, 5)
    assert s1.symmetric_difference(s2) == s1 ^ s2
Exemple #5
0
def test_set():
    set_0 = pset()
    assert len(set_0) == 0
    assert hash(set_0) == -4800647303603446203

    set_1 = set_0.add(0)
    assert 0 in set_1
    assert len(set_1) == 1
    assert hash(set_1) == -8559946577813192710

    set_2 = set_1.add("1")
    assert 0 in set_2
    assert "1" in set_2
    assert len(set_2) == 2

    set_3 = set_2.add(2)
    assert 0 in set_3
    assert "1" in set_3
    assert 2 in set_3
    assert len(set_3) == 3

    set_4 = set_3.remove(2)
    assert 0 in set_2
    assert "1" in set_2
    assert len(set_4) == 2

    assert set_0 != set_1
    assert set_1 != set_2
    assert set_2 != set_3
    assert set_3 != set_4
    assert set_2 == set_4
    assert hash(set_2) == hash(set_4)
Exemple #6
0
def test_contains_elements_that_it_was_initialized_with():
    initial = [1, 2, 3]
    s = pset(initial)

    assert set(s) == set(initial)
    assert len(s) == len(set(initial))
Exemple #7
0
def test_literalish_works():
    assert s(1, 2) == pset([1, 2])
Exemple #8
0
def test_iter():
    container = pset()
    for element in range(100):
        container.add(element)
    for index, element in enumerate(sorted(container)):
        assert index == element
Exemple #9
0
def test_iterable():
    """
    PSets can be created from iterables even though they can't be len() hinted.
    """

    assert pset(iter("a")) == pset(iter("a"))
Exemple #10
0
def test_str():
    rep = str(pset([1, 2, 3]))
    assert eval(rep) == eval("pset([1, 2, 3])")
Exemple #11
0
def test_contains():
    s = pset([1, 2, 3])

    assert 2 in s
    assert 4 not in s
Exemple #12
0
def test_is_iterable():
    assert sum(pset([1, 2, 3])) == 6