def test_when_some_vars_are_in_the_same_time_window():
    graph = MarkedPatternGraph(nodes=['X_t=2', 'Y_t=2'],
                               undirected_edges=[('X_t=2', 'Y_t=2')])

    TimeEdgeOrienter(graph).orient()

    assert graph.get_unmarked_arrows() == set({})
Exemplo n.º 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({})
Exemplo n.º 3
0
def test_bidirectional_edges():
    graph = MarkedPatternGraph(nodes=['a', 'b'])
    graph.add_undirected_edge(('a', 'b'))
    graph.add_arrowhead(('a', 'b'))
    graph.add_arrowhead(('b', 'a'))

    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({frozenset({'a', 'b'})})
def test_immorality_across_time():
    # X_t=1 --> Y_t=2 <-- X_t=3
    graph = MarkedPatternGraph(nodes=['X_t=1', 'Y_t=2', 'X_t=3'],
                               unmarked_arrows=[('X_t=1', 'Y_t=2'),
                                                ('X_t=3', 'Y_t=2')])

    TimeEdgeOrienter(graph).orient()

    # X_t=1 --> Y_t=2 <--> X_t=3
    assert graph.get_unmarked_arrows() == set({('X_t=1', 'Y_t=2')})

    assert graph.get_bidirectional_edges() == set(
        {frozenset({'X_t=3', 'Y_t=2'})})
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')})