def test_discard_only_removes_one_element(a):
    t = TopoSet(a)
    sizes = [len(t)]
    for item in a:
        t.discard(item)
        sizes.append(len(t))
    assert all(a == b + 1 for a, b in pairwise(sizes))
def test_discarding_all_elements_results_in_an_empty_set(a):
    t = TopoSet(a)
    for item in a:
        t.discard(item)
    assert len(t) == 0
def test_discarding_an_item_not_present_silently_succeeds(a):
    b = max(a) + 1
    t = TopoSet(a)
    t.discard(b)