Beispiel #1
0
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'})
Beispiel #2
0
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