示例#1
0
def test_add_marked_arrows():
    graph = MarkedPatternGraph(nodes=['a', 'b'], undirected_edges=[('a', 'b')])

    graph.add_marked_arrow(('c', 'd'))

    assert graph.get_marked_arrows() == set({('c', 'd')})
    assert set(graph.get_edges()) == set(
        {frozenset({'a', 'b'}), frozenset({'c', 'd'})})
示例#2
0
def test_remove_undirected_edge_when_not_exist():
    graph = MarkedPatternGraph(nodes=['a', 'b'])
    graph.remove_undirected_edge(('a', 'b'))

    assert set(graph.get_undirected_edges()) == set({})
    assert set(graph.get_unmarked_arrows()) == set({})
    assert set(graph.get_marked_arrows()) == set({})
    assert set(graph.get_bidirectional_edges()) == set({})
    assert set(graph.get_edges()) == set({})
示例#3
0
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'})})
示例#4
0
def test_simple():
    # a     c
    # \   /
    # v v
    # b
    # |
    # d
    graph = MarkedPatternGraph(nodes=['a', 'b', 'c', 'd'])
    graph.add_undirected_edge(('a', 'b'))
    graph.add_undirected_edge(('c', 'b'))
    graph.add_undirected_edge(('b', 'd'))

    graph.add_arrowhead(('a', 'b'))
    graph.add_arrowhead(('c', 'b'))

    assert graph.get_edges() == set(
        {frozenset({'a', 'b'}),
         frozenset({'b', 'c'}),
         frozenset({'b', 'd'})})