From 2ccb7cb78601b94928f578aa43f9b4fbb3ba0aac Mon Sep 17 00:00:00 2001 From: John Lancaster <32917998+jsl12@users.noreply.github.com> Date: Sat, 21 Feb 2026 10:25:12 -0600 Subject: [PATCH] more tests --- tests/test_dagset.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/test_dagset.py b/tests/test_dagset.py index 785875d..8c2767f 100644 --- a/tests/test_dagset.py +++ b/tests/test_dagset.py @@ -99,6 +99,14 @@ class TestDAGSetCallbacks: assert len(added) == 1 def test_on_remove_callback(self) -> None: + removed: list[int] = [] + s = DAGSetView({1, 2, 3}) + s.on_remove = lambda v: removed.append(v) + s.remove(2) + assert 2 in removed + assert len(removed) == 1 + + def test_on_discard_callback(self) -> None: removed: list[int] = [] s = DAGSetView({1, 2, 3}) s.on_remove = lambda v: removed.append(v) @@ -136,6 +144,26 @@ class TestDAGSetCallbacks: assert 2 in removed assert 3 in removed + def test_iand_triggers_callbacks(self) -> None: + removed: list[int] = [] + s = DAGSetView({1, 2, 3, 4}) + s.on_remove = lambda v: removed.append(v) + s &= {2, 3} + assert 1 in removed + assert 4 in removed + assert len(removed) == 2 + + def test_ixor_triggers_callbacks(self) -> None: + added: list[int] = [] + removed: list[int] = [] + s = DAGSetView({1, 2, 3}) + s.on_add = lambda v: added.append(v) + s.on_remove = lambda v: removed.append(v) + s ^= {3, 4, 5} + assert 3 in removed + assert 4 in added + assert 5 in added + class TestDAGSetInPlaceOperators: """Test in-place set operators."""