def test_base_case(group, maintain_order): new_group = removeit(group.copy(), (2, "blue"), maintain_order=maintain_order) del group[2] del group["blue"] assert new_group == group
def test_base_case(group, maintain_order): new_group = removeit(group.copy(), {2, "blue"}, maintain_order=maintain_order) group.discard(2) group.discard("blue") assert new_group == group
def test_remove_same_element_twice_with_order(group): new_group = removeit(tuple(group), ("blue", "blue"), maintain_order=True) group = list(group) group.remove("blue") group = tuple(group) assert new_group == group
def test_base_case_with_order(group): new_group = removeit(tuple(group), (2, "blue"), maintain_order=True) group = list(group) group.remove(2) group.remove("blue") group = tuple(group) assert new_group == group
def test_remove_same_element_twice_no_order(group): new_group = removeit(group.copy(), ["blue", "blue"], maintain_order=False) orig_len = len(group) group.remove("blue") assert all([x in group for x in new_group]) assert all([x in new_group for x in group]) assert len(new_group) == orig_len - 1
def test_remove_duplicates_with_order(group): new_group = removeit(tuple(group), ("purple", ), maintain_order=True) group = list(group) group.remove("purple") group.remove("purple") group = tuple(group) assert new_group == group
def test_base_case_no_order(group): new_group = removeit(group.copy(), [2, "blue"], maintain_order=False) orig_len = len(group) group.remove(2) group.remove("blue") assert all([x in group for x in new_group]) assert all([x in new_group for x in group]) assert len(new_group) == orig_len - 2
def test_remove_duplicates_no_order(group): new_group = removeit(group.copy(), ["purple"], maintain_order=False) orig_len = len(group) group.remove("purple") group.remove("purple") assert all([x in group for x in new_group]) assert all([x in new_group for x in group]) assert len(new_group) == orig_len - 2
def test_empty_both(maintain_order): new_group = removeit(dict(), dict(), maintain_order=maintain_order) assert new_group == dict()
def test_empty_remove(group, maintain_order): new_group = removeit(group.copy(), dict(), maintain_order=maintain_order) assert new_group == group
def test_empty_collection(group, maintain_order): new_group = removeit(dict(), ("purple", ), maintain_order=maintain_order) assert new_group == dict()
def test_remove_same_element_twice(group, maintain_order): new_group = removeit(group.copy(), ("blue", "blue"), maintain_order=maintain_order) del group["blue"] assert new_group == group
def test_empty_collection(group, maintain_order): new_group = removeit({}, {"purple"}, maintain_order=maintain_order) assert new_group == {}
def test_unsupported_type_remove(group, maintain_order): with pytest.raises(TypeError) as exception: new_group = removeit(tuple(group), 1.21, maintain_order=maintain_order) assert "to_remove argument must be of type" in str(exception.value)
def test_empty_collection(group, maintain_order): new_group = removeit([], ["purple"], maintain_order=maintain_order) assert new_group == []
def test_remove_same_element_twice_with_order(group): new_group = removeit(group.copy(), ["blue", "blue"], maintain_order=True) group.remove("blue") assert new_group == group
def test_remove_duplicates_with_order(group): new_group = removeit(group.copy(), ["purple"], maintain_order=True) group.remove("purple") group.remove("purple") assert new_group == group
def test_base_case_with_order(group): new_group = removeit(group.copy(), [2, "blue"], maintain_order=True) group.remove(2) group.remove("blue") assert new_group == group
def test_empty_both(maintain_order): new_group = removeit(tuple(), tuple(), maintain_order=maintain_order) assert new_group == tuple()
def test_unsupported_type_collection(maintain_order): with pytest.raises(TypeError) as exception: new_group = removeit(1.21, ("purple", ), maintain_order=maintain_order) assert "collection argument must be of type" in str(exception.value)
def test_empty_collection(maintain_order): new_group = removeit(tuple(), ("purple", ), maintain_order=maintain_order) assert new_group == tuple()
def test_empty_both(maintain_order): new_group = removeit([], [], maintain_order=maintain_order) assert new_group == []
from removeit.removeit import removeit group = (1, 2, 3, 3, "purple", "blue", -1, 0, "purple", -2.1, 2.1, (2, 3, 5) ) # for hand testing # group = group * 20000 # uncomment when using for cProfile, and comment out the print()s below res = removeit(group, ("blue", "blue"), maintain_order=False) print(res) print(len(res)) print()
def test_remove_duplicates(group, maintain_order): new_group = removeit(group.copy(), {"purple"}, maintain_order=maintain_order) group.discard("purple") assert new_group == group
def test_remove_duplicates(group, maintain_order): new_group = removeit(group.copy(), ("purple", ), maintain_order=maintain_order) del group["purple"] assert new_group == group
def test_empty_remove(group, maintain_order): new_group = removeit(tuple(group), tuple(), maintain_order=maintain_order) assert new_group == group
def test_remove_same_element_twice(group, maintain_order): new_group = removeit(group.copy(), {"blue", "blue"}, maintain_order=maintain_order) group.discard("blue") assert new_group == group