def test_parse_another_graph_from_file(): g = virgo.load("test/files/grid.vgo") assert g is not None
def test_parse_edge_statement(): g = virgo.load("test/files/edges.vgo") assert g is not None assert set(g.direct_successors_of("b")) == {"d", "e", "h", "i"}
def test_parse_node_statement(): g = virgo.load("test/files/nodes.vgo") assert g is not None assert "vertex_definition_1" in g.nodes assert g.nodes["vertex_definition_1"] == """
def test_parse_basic_example_from_file(): g = virgo.load("test/files/config.vgo") assert g is not None
def test_parse_example_with_multiline_comments(): g = virgo.load("test/files/comments.vgo") assert g is not None assert "src files" in g.nodes assert g.nodes["src files"] == "go build ./..." assert set(g.direct_successors_of("src files")) == {"test"}
def test_parse_harder_example(): g = virgo.load("test/files/make.vgo") assert g is not None assert "src files" in g.nodes assert g.nodes["src files"] == "go build ./..." assert set(g.direct_successors_of("src files")) == {"test"}
def test_topological_sorting_of_cycles(): filename = "test/files/grid.vgo" g = virgo.load(filename) with pytest.raises(Exception): list(g.topological_sort())
def test_topological_sorting(): filename = "test/files/sorting.vgo" g = virgo.load(filename) l = list(g.topological_sort()) assert l.index("x7") < l.index("x11")