add_edge tests

This commit is contained in:
John Lancaster
2026-02-21 12:20:13 -06:00
parent 44540d7e3d
commit f357ee1a5a
2 changed files with 17 additions and 20 deletions

View File

@@ -27,23 +27,29 @@ class TestDAGOps:
g.add_edge("foo", "bar")
assert "foo" in g._succ
assert "bar" in g._succ["foo"]
assert "bar" in g._pred
assert "foo" in g._pred["bar"]
assert set(g["foo"]) == {"bar"}
def test_add_multiple_edges(self) -> None:
g = DAG[str]()
g.add_edge("foo", "bar")
g.add_edge("foo", "baz")
g.add_edge("bar", "baz")
assert "foo" in g._succ
assert "bar" in g._succ["foo"]
assert "baz" in g._succ["foo"]
assert set(g["foo"]) == {"bar", "baz"}
assert "bar" in g._succ
assert "baz" in g._succ["bar"]
assert set(g["bar"]) == {"baz"}
assert "bar" in g["foo"]
assert "baz" in g["foo"]
assert "baz" in g["bar"]
def test_add_edge_creates_nodes(self) -> None:
g = DAG[str]()
g.add_edge("foo", "bar")
assert "foo" in g._succ
assert "bar" in g._pred
def test_self_loop_raises_error(self) -> None:
g = DAG[str]()
with pytest.raises(ValueError, match="Self-loops are not allowed"):