def test_remove_items():
    repo = Repository()

    repo.add_item(0)
    repo.add_item(1)
    repo.add_item(1)
    repo.add_item(1)

    repo.remove_item(lambda item: item == 1)
    assert repo.get_items() == [0, 1, 1]
    repo.undo()
    assert repo.get_items() == [0, 1, 1, 1]

    repo.remove_items(lambda item: item == 1)
    assert repo.get_items() == [0]
    repo.undo()
    assert repo.get_items() == [0, 1, 1, 1]