def test_one_to_many():
    g = nx.DiGraph()

    g.add_edge("A", "B1")
    g.add_edge("A", "B2")

    assert max_dag_para(g) == 2
def test_01():
    g = nx.DiGraph()

    g.add_edge("A", "B")
    g.add_edge("A", "C")
    g.add_edge("A", "D")

    g.add_edge("C", "N")

    g.add_edge("B", "E")
    g.add_edge("E", "H")
    g.add_edge("H", "M")
    g.add_edge("B", "F")
    g.add_edge("F", "H")

    g.add_edge("N", "I")
    g.add_edge("N", "J")
    g.add_edge("N", "K")
    g.add_edge("I", "M")
    g.add_edge("J", "M")
    g.add_edge("K", "M")

    g.add_edge("D", "N")
    g.add_edge("D", "O")
    g.add_edge("D", "G")

    g.add_edge("G", "L")
    g.add_edge("O", "L")
    g.add_edge("L", "M")

    assert max_dag_para(g) == 7
def test_many_to_one():
    g = nx.DiGraph()

    g.add_edge("A1", "B")
    g.add_edge("A2", "B")

    assert max_dag_para(g) == 2
def test_02():
    g = nx.DiGraph()

    g.add_edge("A", "B")
    g.add_edge("A", "C")
    g.add_edge("A", "D")

    g.add_edge("B", "E")
    g.add_edge("C", "E")
    g.add_edge("D", "F")

    g.add_edge("E", "G")
    g.add_edge("E", "H")
    g.add_edge("F", "I")
    g.add_edge("F", "H")

    g.add_edge("G", "J")
    g.add_edge("H", "J")
    g.add_edge("I", "J")

    assert max_dag_para(g) == 4