Testing Graph Root Node Detection in AutoGPT
This test suite validates the get_roots function in AutoGPT’s graph dependency analysis system. It focuses on verifying correct identification of root nodes in directed graphs, which is crucial for dependency resolution and task orchestration within the AutoGPT framework.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
significant-gravitas/autogpt
classic/benchmark/tests/test_get_roots.py
from agbenchmark.utils.dependencies.graphs import get_roots
def test_get_roots():
graph = {
"nodes": [
{"id": "A", "data": {"category": []}},
{"id": "B", "data": {"category": []}},
{"id": "C", "data": {"category": []}},
{"id": "D", "data": {"category": []}},
],
"edges": [
{"from": "A", "to": "B"},
{"from": "B", "to": "C"},
],
}
result = get_roots(graph)
assert set(result) == {
"A",
"D",
}, f"Expected roots to be 'A' and 'D', but got {result}"
def test_no_roots():
fully_connected_graph = {
"nodes": [
{"id": "A", "data": {"category": []}},
{"id": "B", "data": {"category": []}},
{"id": "C", "data": {"category": []}},
],
"edges": [
{"from": "A", "to": "B"},
{"from": "B", "to": "C"},
{"from": "C", "to": "A"},
],
}
result = get_roots(fully_connected_graph)
assert not result, "Expected no roots, but found some"
# def test_no_rcoots():
# fully_connected_graph = {
# "nodes": [
# {"id": "A", "data": {"category": []}},
# {"id": "B", "data": {"category": []}},
# {"id": "C", "data": {"category": []}},
# ],
# "edges": [
# {"from": "A", "to": "B"},
# {"from": "D", "to": "C"},
# ],
# }
#
# result = get_roots(fully_connected_graph)
# assert set(result) == {"A"}, f"Expected roots to be 'A', but got {result}"