def test_has_arrowhead_with_marked_arrowhead(): graph = MarkedPatternGraph(nodes=['a', 'b']) graph.add_undirected_edge(('a', 'b')) assert graph.has_arrowhead(('a', 'b')) == False graph.add_marked_arrowhead(('a', 'b')) assert graph.has_arrowhead(('a', 'b')) == True assert graph.has_marked_arrowhead(('a', 'b')) == True
def test_add_marked_arrowhead(): graph = MarkedPatternGraph(nodes=['a', 'b']) graph.add_undirected_edge(('a', 'b')) graph.add_marked_arrowhead(('a', 'b')) assert set(graph.get_undirected_edges()) == set({}) assert set(graph.get_unmarked_arrows()) == set({}) assert set(graph.get_marked_arrows()) == set({('a', 'b')}) assert set(graph.get_bidirectional_edges()) == set({}) assert set(graph.get_edges()) == set({frozenset({'a', 'b'})})
def test_has_marked_path(): graph = MarkedPatternGraph(nodes=['a', 'b']) graph.add_undirected_edge(('a', 'b')) graph.add_marked_arrowhead(('a', 'b')) assert graph.has_marked_arrowhead(('a', 'b')) == True graph.add_undirected_edge(('b', 'c')) assert graph.has_marked_path(('a', 'c')) == False graph.add_marked_arrowhead(('b', 'c')) assert graph.has_marked_path(('a', 'c')) == True assert graph.get_nodes_of_edges() == set({'a', 'b', 'c'})
def test_when_marked_path_exists(): # a -*> b -*> c # \ / # \ / # \ / # graph = MarkedPatternGraph(nodes=['a', 'b', 'c']) graph.add_undirected_edge(('a', 'b')) graph.add_undirected_edge(('b', 'c')) graph.add_undirected_edge(('a', 'c')) graph.add_marked_arrowhead(('a', 'b')) graph.add_marked_arrowhead(('b', 'c')) RecursiveEdgeOrienter(marked_pattern_graph=graph).orient() assert graph.get_unmarked_arrows() == set({('a', 'c')})
def test_longer_marked_path_exists(): # a -*> b -*> c -*> d # \ / # \ / # \ / # ------ graph = MarkedPatternGraph(nodes=['a', 'b', 'c', 'd']) graph.add_undirected_edge(('a', 'b')) graph.add_undirected_edge(('b', 'c')) graph.add_undirected_edge(('c', 'd')) graph.add_undirected_edge(('a', 'd')) graph.add_marked_arrowhead(('a', 'b')) graph.add_marked_arrowhead(('b', 'c')) graph.add_marked_arrowhead(('c', 'd')) assert graph.has_marked_path(('d', 'c')) == False