def test_reverse_dfs1(): G = Graph() G.add_node(Node("test1")) G.add_node(Node('test2')) G.add_edge(Edge('test1', 'test2')) G.add_edge(Edge('test1', Node('test3'))) expect = ['test1', 'test2', 'test3'] assert [node.name for node in G.dfs()] == expect expect.reverse() assert [node.name for node in G.dfs(reverse=True)] == expect
def test_create4(): G = Graph() G.add_node(Node("test1")) G.add_node(Node('test2')) G.add_edge(Edge('test1', 'test2')) G.add_edge(Edge('test2', Node('test3'))) assert not G.verify_edges() G.replace_node('test2', Node('test4')) expect = ['test1', 'test4', 'test3'] assert [node.name for node in G.dfs()] == expect expect.reverse() assert [node.name for node in G.dfs(reverse=True)] == expect assert not G.verify_edges()
def test_create1(): G = Graph() G.add_node(Node("test1")) G.add_node(Node('test2')) G.add_edge(Edge('test1', 'test2')) G.add_edge(Edge('test2', Node('test3'))) expect = ['test1', 'test2', 'test3'] assert [node.name for node in G.dfs()] == expect expect.reverse() assert [node.name for node in G.dfs(reverse=True)] == expect assert G.num_in_edges('test1') == 0 assert G.num_out_edges('test1') == 1 assert not G.verify_edges()
def test_create2(): G = Graph() G.add_node(Node("test1")) G.add_node(Node('test2')) G.add_edge(Edge('test2', Node('test3'))) assert [node.name for node in G.dfs()] == ['test1', 'test2', 'test3'] assert not G.verify_edges()
def test_match_and_remove(): G = Graph() G.add_node(Node("test0")) G.add_node(Node("test1")) G.add_node(Node('test2')) G.add_edge(Edge('test0', 'test1')) G.add_edge(Edge('test1', 'test2')) G.add_edge(Edge('test1', Node('test3'))) G.add_node(Node('test4')) G.add_edge(Edge('test2', 'test4')) G.add_edge(Edge('test3', 'test4')) G.add_edge(Edge('test4', Node('test5'))) fragment = Graph() fragment.add_node(MatchNameNode("test1")) fragment.add_node(MatchNameNode('test2')) fragment.add_edge(Edge('test1', 'test2')) fragment.add_edge(Edge('test1', MatchNameNode('test3'))) res = G.match_fragment(fragment) assert len(res) == 1 assert res[0].num_nodes() == 3 assert res[0].num_edges() == 2 G.remove_fragment(res[0]) assert [node.name for node in G.dfs()] == ['test0', 'test4', 'test5'] assert not G.verify_edges()
def test_create5(): G = Graph() G.add_node(Node("test1")) G.add_node(Node('test2')) G.add_edge(Edge('test1', 'test2')) G.add_edge(Edge('test1', Node('test3'))) G.add_node(Node('test4')) G.add_edge(Edge('test2', 'test4')) G.add_edge(Edge('test3', 'test4')) assert G.num_in_edges('test4') == 2 assert G.num_out_edges('test1') == 2 assert [node.name for node in G.dfs()] == ['test1', 'test2', 'test3', 'test4'] assert not G.verify_edges()
def test_insert(): G = Graph() G.add_node(Node("test1")) G.add_node(Node('test2')) G.add_edge(Edge('test1', 'test2')) G.add_edge(Edge('test1', Node('test3'))) G.add_node(Node('test4')) G.add_edge(Edge('test2', 'test4')) G.add_edge(Edge('test3', 'test4', to_idx=2)) G.insert_node(Node('test5'), 'test2', 'test4') nodes = [node.name for node in G.dfs()] assert nodes == ['test1', 'test2', 'test5', 'test3', 'test4'] suc = G.successor_names('test5') pred = G.predecessor_names('test5') assert len(suc) == 1 and 'test4' in suc assert len(pred) == 1 and 'test2' in pred assert not G.verify_edges()
def test_remove_edge(): G = Graph() G.add_node(Node("test1")) G.add_node(Node('test2')) G.add_edge(Edge('test1', 'test2')) G.add_edge(Edge('test2', Node('test3'))) assert [node.name for node in G.dfs()] == ['test1', 'test2', 'test3'] assert G.num_edges() == 2 edge12 = G.edge('test1', 'test2') assert edge12.from_node.name == 'test1' and edge12.from_idx == 0 assert edge12.to_node.name == 'test2' and edge12.to_idx == 0 assert not G.verify_edges() G.remove_edge(edge12) assert G.num_edges() == 1 assert G.num_in_edges('test1') == 0 assert G.num_out_edges('test1') == 0 assert G.num_in_edges('test2') == 0 assert G.num_out_edges('test2') == 1 assert G.num_in_edges('test3') == 1 assert G.num_out_edges('test3') == 0 assert not G.verify_edges()