Exemplo n.º 1
0
def test3():
    c1 = Curve({0: 1, 5: 10, 10: 3})
    c2 = Curve({0: 8, 5: 3, 10: 1})
    c3 = Curve({0: 2, 5: 9, 10: 4})
    curves = {"1": c1, "2": c2, "3": c3}
    DAG1 = get_extremalDAG(curves)
    assert (DAG1 == ([('1', 'min'), ('1', 'max'), ('1', 'min'), ('2', 'max'),
                      ('2', 'min'), ('3', 'min'), ('3', 'max'),
                      ('3', 'min')], [(0, 4.5), (1, 4.5), (2, 3.5), (3, 3.5),
                                      (4, 3.5), (5, 3.5), (6, 3.5),
                                      (7, 2.5)], [((0, 1), 4.5), ((0, 2), 3.5),
                                                  ((0, 4), 0), ((0, 6), 0),
                                                  ((0, 7), 0), ((1, 2), 3.5),
                                                  ((1, 4), 0), ((1, 7), 0),
                                                  ((3, 1), 0), ((3, 2), 0),
                                                  ((3, 4), 3.5), ((3, 6), 0),
                                                  ((3, 7), 0), ((5, 1), 0),
                                                  ((5, 2), 0), ((5, 4), 0),
                                                  ((5, 6), 3.5), ((5, 7), 2.5),
                                                  ((6, 2), 0), ((6, 4), 0),
                                                  ((6, 7), 2.5)]))

    c1 = Curve({0: 1, 5: 7, 9: 1, 10: 2})
    c2 = Curve({0: 10, 5: 2, 10: 0})
    c3 = Curve({0: 2.5, 5: 9, 10: 4})
    curves = {"1": c1, "2": c2, "3": c3}
    DAG2 = get_extremalDAG(curves)
    assert (DAG2 == ([('1', 'min'), ('1', 'max'), ('1', 'min'), ('1', 'max'),
                      ('2', 'max'), ('2', 'min'), ('3', 'min'), ('3', 'max'),
                      ('3', 'min')], [(0, 3.0), (1, 3.0), (2, 3.0), (3, 0.5),
                                      (4, 5.0), (5, 5.0), (6, 3.25), (7, 3.25),
                                      (8, 2.5)], [((0, 1), 3.0), ((0, 2), 3.0),
                                                  ((0, 3), 0.5), ((0, 5), 0),
                                                  ((0, 7), 0), ((0, 8), 0),
                                                  ((1, 2), 3.0), ((1, 3), 0.5),
                                                  ((1, 5), 0), ((1, 8), 0),
                                                  ((2, 3), 0.5), ((2, 5), 0),
                                                  ((2, 8), 0), ((4, 1), 0),
                                                  ((4, 2), 0), ((4, 3), 0.5),
                                                  ((4, 5), 5.0), ((4, 7), 0),
                                                  ((4, 8), 0), ((6, 1), 0),
                                                  ((6, 2), 0), ((6, 3), 0.5),
                                                  ((6, 5), 0), ((6, 7), 3.25),
                                                  ((6, 8), 2.5), ((7, 2), 0),
                                                  ((7, 3), 0), ((7, 5), 0),
                                                  ((7, 8), 2.5)]))

    names = ['1', '2', '3']
    supergraph = get_supergraph(names, DAG1, DAG2)
    assert (supergraph == ([
        (('1', 'min'), (4.5, 3.0)), (('1', 'max'), (4.5, 3.0)),
        (('1', 'min'), (3.5, 3.0)), (('1', 'max'), (0, 0.5)),
        (('2', 'max'), (3.5, 5.0)), (('2', 'min'), (3.5, 5.0)),
        (('3', 'min'), (3.5, 3.25)), (('3', 'max'), (3.5, 3.25)),
        (('3', 'min'), (2.5, 2.5))
    ], [((0, 1), (4.5, 3.0)), ((0, 2), (3.5, 3.0)), ((0, 3), (0, 0.5)),
        ((1, 2), (3.5, 3.0)), ((1, 3), (0, 0.5)), ((2, 3), (0, 0.5)),
        ((4, 3), (0, 0.5)), ((4, 5), (3.5, 5.0)), ((6, 3), (0, 0.5)),
        ((6, 7), (3.5, 3.25)), ((6, 8), (2.5, 2.5)),
        ((7, 8), (2.5, 2.5))], 3.992179855667828))
Exemplo n.º 2
0
def test2():
    c1 = Curve({0: 0, 1: 2, 4: 5, 5: 1, 7: 10, 10: 7})
    c2 = Curve({0: 0, 3: 2, 6: 4, 10: 5})
    curves = {"1": c1, "2": c2}
    DAG1 = get_extremalDAG(curves)
    assert (DAG1 == ([('1', 'min'), ('1', 'max'), ('1', 'min'), ('1', 'max'),
                      ('1', 'min'), ('2', 'min'),
                      ('2', 'max')], [(0, 5.0), (1, 2.0), (2, 2.0), (3, 5.0),
                                      (4, 1.5), (5, 2.5),
                                      (6, 2.5)], [((0, 1), 2.0), ((0, 2), 2.0),
                                                  ((0, 3), 5.0), ((0, 4), 1.5),
                                                  ((0, 6), 1.0), ((1, 2), 2.0),
                                                  ((1, 3), 2.0), ((1, 4), 1.5),
                                                  ((1, 6), 0.5), ((2, 3), 2.0),
                                                  ((2, 4), 1.5), ((2, 6), 0),
                                                  ((3, 4), 1.5), ((3, 6), 0),
                                                  ((5, 1), 0), ((5, 2), 1.0),
                                                  ((5, 3), 1.0), ((5, 4), 1.5),
                                                  ((5, 6), 2.5)]))

    c1 = Curve({0: .5, 7: 9, 10: 6})
    c2 = Curve({0: 0, 3: 2, 6: 4, 10: 5})
    curves = {"1": c1, "2": c2}
    DAG2 = get_extremalDAG(curves)
    assert (DAG2 == ([('1', 'min'), ('1', 'max'), ('1', 'min'), ('2', 'min'),
                      ('2', 'max')], [(0, 4.25), (1, 4.25), (2, 1.5), (3, 2.5),
                                      (4, 2.5)], [((0, 1), 4.25),
                                                  ((0, 2), 1.5), ((0, 4), 0),
                                                  ((1, 2), 1.5), ((1, 4), 0),
                                                  ((3, 1), 0), ((3, 2), 1.5),
                                                  ((3, 4), 2.5)]))

    names = ['1', '2']
    supergraph = get_supergraph(names, DAG1, DAG2)
    supergraph_round = (supergraph[0], supergraph[1], round(supergraph[2], 8))
    assert (supergraph_round == ([(('1', 'min'), (5.0, 4.25)),
                                  (('1', 'max'), (2.0, 0)),
                                  (('1', 'min'), (2.0, 0)),
                                  (('1', 'max'), (5.0, 4.25)),
                                  (('1', 'min'), (1.5, 1.5)),
                                  (('2', 'min'), (2.5, 2.5)),
                                  (('2', 'max'), (2.5, 2.5))
                                  ], [((0, 1), (2.0, 0)), ((0, 2), (2.0, 0)),
                                      ((0, 3), (5.0, 4.25)),
                                      ((0, 4), (1.5, 1.5)), ((0, 6), (1.0, 0)),
                                      ((1, 2), (2.0, 0)), ((1, 3), (2.0, 0)),
                                      ((1, 4), (1.5, 0)), ((1, 6), (0.5, 0)),
                                      ((2, 3), (2.0, 0)), ((2, 4), (1.5, 0)),
                                      ((3, 4), (1.5, 1.5)), ((5, 2), (1.0, 0)),
                                      ((5, 3), (1.0, 0)), ((5, 4), (1.5, 1.5)),
                                      ((5, 6), (2.5, 2.5))], 22.75))
Exemplo n.º 3
0
def test1():
    c1 = Curve({0: 1, 5: 10, 10: 3})
    c2 = Curve({0: 8, 5: 3, 10: 1})
    curves = {"1": c1, "2": c2}
    DAG1 = get_extremalDAG(curves)
    assert (DAG1 == ([('1', 'min'), ('1', 'max'), ('1', 'min'), ('2', 'max'),
                      ('2', 'min')], [(0, 4.5), (1, 4.5), (2, 3.5), (3, 3.5),
                                      (4, 3.5)], [((0, 1), 4.5), ((0, 2), 3.5),
                                                  ((0, 4), 0), ((1, 2), 3.5),
                                                  ((1, 4), 0), ((3, 1), 0),
                                                  ((3, 2), 0), ((3, 4), 3.5)]))

    c1 = Curve({0: 1, 5: 7, 9: 1, 10: 2})
    c2 = Curve({0: 10, 5: 2, 10: 0})
    curves = {"1": c1, "2": c2}
    DAG2 = get_extremalDAG(curves)
    assert (DAG2 == ([('1', 'min'), ('1', 'max'), ('1', 'min'), ('1', 'max'),
                      ('2', 'max'),
                      ('2', 'min')], [(0, 3.0), (1, 3.0), (2, 3.0), (3, 0.5),
                                      (4, 5.0), (5, 5.0)], [((0, 1), 3.0),
                                                            ((0, 2), 3.0),
                                                            ((0, 3), 0.5),
                                                            ((0, 5), 0),
                                                            ((1, 2), 3.0),
                                                            ((1, 3), 0.5),
                                                            ((1, 5), 0),
                                                            ((2, 3), 0.5),
                                                            ((2, 5), 0),
                                                            ((4, 1), 0),
                                                            ((4, 2), 0),
                                                            ((4, 3), 0.5),
                                                            ((4, 5), 5.0)]))

    names = ['1', '2']
    supergraph = get_supergraph(names, DAG1, DAG2)
    supergraph_round = (supergraph[0], supergraph[1], round(supergraph[2], 8))
    assert (supergraph_round == ([(('1', 'min'), (4.5, 3.0)),
                                  (('1', 'max'), (4.5, 3.0)),
                                  (('1', 'min'), (3.5, 3.0)),
                                  (('1', 'max'), (0, 0.5)),
                                  (('2', 'max'), (3.5, 5.0)),
                                  (('2', 'min'),
                                   (3.5, 5.0))], [((0, 1), (4.5, 3.0)),
                                                  ((0, 2), (3.5, 3.0)),
                                                  ((0, 3), (0, 0.5)),
                                                  ((1, 2), (3.5, 3.0)),
                                                  ((1, 3), (0, 0.5)),
                                                  ((2, 3), (0, 0.5)),
                                                  ((4, 3), (0, 0.5)),
                                                  ((4, 5), (3.5, 5.0))], 13.0))
Exemplo n.º 4
0
def test4():
    x = np.arange(0, 2 * np.pi, 0.1)  # start,stop,step
    y = np.sin(x)
    z = np.cos(x)
    c1 = Curve({x[i]: y[i] for i in range(len(x))})
    c2 = Curve({x[i]: z[i] for i in range(len(y))})
    curves = {"sine": c1, "cosine": c2}
    DAG1 = get_extremalDAG(curves)
    DAG1_nodes_round = [(DAG1[1][i][0], round(DAG1[1][i][1], 8))
                        for i in range(len(DAG1[1]))]
    DAG1_edges_round = [(DAG1[2][i][0], round(DAG1[2][i][1], 8))
                        for i in range(len(DAG1[2]))]
    DAG1_round = (DAG1[0], DAG1_nodes_round, DAG1_edges_round)
    assert (DAG1_round == ([('sine', 'min'), ('sine', 'max'), ('sine', 'min'),
                            ('sine', 'max'), ('cosine', 'max'),
                            ('cosine', 'min'), ('cosine', 'max')],
                           [(0, 0.4997868), (1, 0.99974843), (2, 0.99974843),
                            (3, 0.45841693), (4, 0.99956758), (5, 0.99956758),
                            (6, 0.99783862)], [((0, 1), 0.4997868),
                                               ((0, 2), 0.4997868),
                                               ((0, 3), 0.45841693),
                                               ((0, 5), 0.49272486),
                                               ((0, 6), 0.4997868),
                                               ((1, 2), 0.99974843),
                                               ((1, 3), 0.45841693),
                                               ((1, 5), 0.1269342),
                                               ((1, 6), 0.82509286),
                                               ((2, 3), 0.45841693),
                                               ((2, 6), 0.11357939),
                                               ((4, 1), 0.11757891),
                                               ((4, 2), 0.83313801),
                                               ((4, 3), 0.45841693),
                                               ((4, 5), 0.99956758),
                                               ((4, 6), 0.99783862),
                                               ((5, 2), 0.12156038),
                                               ((5, 3), 0.4565376),
                                               ((5, 6), 0.99783862)]))

    # Adding small noise to curves
    c1.curve[6.0] = 0
    c2.curve[0.4] = 1
    curves = {"sine": c1, "cosine": c2}
    DAG2 = get_extremalDAG(curves)
    DAG2_nodes_round = [(DAG2[1][i][0], round(DAG2[1][i][1], 8))
                        for i in range(len(DAG2[1]))]
    DAG2_edges_round = [(DAG2[2][i][0], round(DAG2[2][i][1], 8))
                        for i in range(len(DAG2[2]))]
    DAG2_round = (DAG2[0], DAG2_nodes_round, DAG2_edges_round)
    assert (DAG2_round == ([('sine', 'min'), ('sine', 'max'), ('sine', 'min'),
                            ('sine', 'max'), ('sine', 'min'), ('sine', 'max'),
                            ('cosine', 'max'), ('cosine', 'min'),
                            ('cosine', 'max'), ('cosine', 'min'),
                            ('cosine', 'max')], [(0, 0.4997868),
                                                 (1, 0.99974843),
                                                 (2, 0.99974843),
                                                 (3, 0.49996163),
                                                 (4, 0.09108125),
                                                 (5, 0.04953655),
                                                 (6, 0.99956758),
                                                 (7, 0.02233176),
                                                 (8, 0.02233176),
                                                 (9, 0.99956758),
                                                 (10, 0.99783862)],
                           [((0, 1), 0.4997868), ((0, 2), 0.4997868),
                            ((0, 3), 0.4997868), ((0, 4), 0.09108125),
                            ((0, 5), 0.04953655), ((0, 7), 0.01236504),
                            ((0, 8), 0.02233176), ((0, 9), 0.49272486),
                            ((0, 10), 0.4997868), ((1, 2), 0.99974843),
                            ((1, 3), 0.49996163), ((1, 4), 0.09108125),
                            ((1, 5), 0.04953655), ((1, 9), 0.1269342),
                            ((1, 10), 0.82509286), ((2, 3), 0.49996163),
                            ((2, 4), 0.09108125), ((2, 5), 0.04953655),
                            ((2, 10), 0.11357939), ((3, 4), 0.09108125),
                            ((3, 5), 0.04953655), ((3, 10), 0),
                            ((4, 5), 0.04953655), ((4, 10), 0),
                            ((6, 1), 0.11757891), ((6, 2), 0.83313801),
                            ((6, 3), 0.49996163), ((6, 4), 0.09108125),
                            ((6, 5), 0.04953655), ((6, 7), 0.02233176),
                            ((6, 8), 0.02233176), ((6, 9), 0.99956758),
                            ((6, 10), 0.99783862), ((7, 1), 0.02233176),
                            ((7, 2), 0.02233176), ((7, 3), 0.02233176),
                            ((7, 4), 0.02233176), ((7, 5), 0.02233176),
                            ((7, 8), 0.02233176), ((7, 9), 0.02233176),
                            ((7, 10), 0.02233176), ((8, 1), 0.02233176),
                            ((8, 2), 0.02233176), ((8, 3), 0.02233176),
                            ((8, 4), 0.02233176), ((8, 5), 0.02233176),
                            ((8, 9), 0.02233176), ((8, 10), 0.02233176),
                            ((9, 2), 0.12156038), ((9, 3), 0.49337324),
                            ((9, 4), 0.09108125), ((9, 5), 0.04953655),
                            ((9, 10), 0.99783862)]))

    names = ['sine', 'cosine']
    supergraph = get_supergraph(names, DAG1, DAG2)
    supergraph_round1 = [(supergraph[0][i][0], (round(supergraph[0][i][1][0],
                                                      8),
                                                round(supergraph[0][i][1][1],
                                                      8)))
                         for i in range(len(supergraph[0]))]
    supergraph_round2 = [(supergraph[1][i][0], (round(supergraph[1][i][1][0],
                                                      8),
                                                round(supergraph[1][i][1][1],
                                                      8)))
                         for i in range(len(supergraph[1]))]
    supergraph_round3 = round(supergraph[2], 8)
    supergraph_round = (supergraph_round1, supergraph_round2,
                        supergraph_round3)
    assert (supergraph_round == ([
        (('sine', 'min'), (0.4997868, 0.4997868)),
        (('sine', 'max'), (0.99974843, 0.99974843)),
        (('sine', 'min'), (0.99974843, 0.99974843)),
        (('sine', 'max'), (0.45841693, 0.49996163)),
        (('sine', 'min'), (0, 0.09108125)), (('sine', 'max'), (0, 0.04953655)),
        (('cosine', 'max'), (0.99956758, 0.99956758)),
        (('cosine', 'min'), (0, 0.02233176)),
        (('cosine', 'max'), (0, 0.02233176)),
        (('cosine', 'min'), (0.99956758, 0.99956758)),
        (('cosine', 'max'), (0.99783862, 0.99783862))
    ], [((0, 1), (0.4997868, 0.4997868)), ((0, 2), (0.4997868, 0.4997868)),
        ((0, 3), (0.45841693, 0.4997868)), ((0, 4), (0, 0.09108125)),
        ((0, 5), (0, 0.04953655)), ((0, 7), (0, 0.01236504)),
        ((0, 8), (0, 0.02233176)), ((0, 9), (0.49272486, 0.49272486)),
        ((0, 10), (0.4997868, 0.4997868)), ((1, 2), (0.99974843, 0.99974843)),
        ((1, 3), (0.45841693, 0.49996163)), ((1, 4), (0, 0.09108125)),
        ((1, 5), (0, 0.04953655)), ((1, 9), (0.1269342, 0.1269342)),
        ((1, 10), (0.82509286, 0.82509286)),
        ((2, 3), (0.45841693, 0.49996163)), ((2, 4), (0, 0.09108125)),
        ((2, 5), (0, 0.04953655)), ((2, 10), (0.11357939, 0.11357939)),
        ((3, 4), (0, 0.09108125)), ((3, 5), (0, 0.04953655)),
        ((4, 5), (0, 0.04953655)), ((6, 1), (0.11757891, 0.11757891)),
        ((6, 2), (0.83313801, 0.83313801)), ((6, 3), (0.45841693, 0.49996163)),
        ((6, 4), (0, 0.09108125)), ((6, 5), (0, 0.04953655)),
        ((6, 7), (0, 0.02233176)), ((6, 8), (0, 0.02233176)),
        ((6, 9), (0.99956758, 0.99956758)),
        ((6, 10), (0.99783862, 0.99783862)), ((7, 1), (0, 0.02233176)),
        ((7, 2), (0, 0.02233176)), ((7, 3), (0, 0.02233176)),
        ((7, 4), (0, 0.02233176)), ((7, 5), (0, 0.02233176)),
        ((7, 8), (0, 0.02233176)), ((7, 9), (0, 0.02233176)),
        ((7, 10), (0, 0.02233176)), ((8, 1), (0, 0.02233176)),
        ((8, 2), (0, 0.02233176)), ((8, 3), (0, 0.02233176)),
        ((8, 4), (0, 0.02233176)), ((8, 5), (0, 0.02233176)),
        ((8, 9), (0, 0.02233176)), ((8, 10), (0, 0.02233176)),
        ((9, 2), (0.12156038, 0.12156038)), ((9, 3), (0.4565376, 0.49337324)),
        ((9, 4), (0, 0.09108125)), ((9, 5), (0, 0.04953655)),
        ((9, 10), (0.99783862, 0.99783862))], 1.73724564))
Exemplo n.º 5
0
def test4():
    x = np.arange(0, 2 * np.pi, 0.1)  # start,stop,step
    y = np.sin(x)
    z = np.cos(x)
    c1 = Curve({x[i]: y[i] for i in range(len(x))})
    c2 = Curve({x[i]: z[i] for i in range(len(y))})
    curves = {"sine": c1, "cosine": c2}
    DAG1 = get_extremalDAG(curves)
    assert (DAG1 == ([('sine', 'min'), ('sine', 'max'), ('sine', 'min'),
                      ('sine', 'max'), ('cosine', 'max'), ('cosine', 'min'),
                      ('cosine', 'max')], [(0, 0.49978680152075255),
                                           (1, 0.999748430302803),
                                           (2, 0.999748430302803),
                                           (3, 0.4584169273733022),
                                           (4, 0.9995675751366397),
                                           (5, 0.9995675751366397),
                                           (6, 0.9978386236482485)
                                           ], [((0, 1), 0.49978680152075255),
                                               ((0, 2), 0.49978680152075255),
                                               ((0, 3), 0.4584169273733022),
                                               ((0, 5), 0.4927248649942301),
                                               ((0, 6), 0.49978680152075255),
                                               ((1, 2), 0.999748430302803),
                                               ((1, 3), 0.4584169273733022),
                                               ((1, 5), 0.12693419543239254),
                                               ((1, 6), 0.8250928589434148),
                                               ((2, 3), 0.4584169273733022),
                                               ((2, 6), 0.11357938500405684),
                                               ((4, 1), 0.11757890635775581),
                                               ((4, 2), 0.8331380106399122),
                                               ((4, 3), 0.4584169273733022),
                                               ((4, 5), 0.9995675751366397),
                                               ((4, 6), 0.9978386236482485),
                                               ((5, 2), 0.12156038112808631),
                                               ((5, 3), 0.45653760300917207),
                                               ((5, 6), 0.9978386236482485)]))

    # Adding small noise to curves
    c1.curve[6.0] = 0
    c2.curve[0.4] = 1
    curves = {"sine": c1, "cosine": c2}
    DAG2 = get_extremalDAG(curves)
    assert (DAG2 == ([('sine', 'min'), ('sine', 'max'), ('sine', 'min'),
                      ('sine', 'max'), ('sine', 'min'), ('sine', 'max'),
                      ('cosine', 'max'), ('cosine', 'min'), ('cosine', 'max'),
                      ('cosine', 'min'), ('cosine', 'max')], [
                          (0, 0.49978680152075255), (1, 0.999748430302803),
                          (2, 0.999748430302803), (3, 0.4999616287820504),
                          (4, 0.09108125213604751), (5, 0.0495365507272993),
                          (6, 0.9995675751366397), (7, 0.02233175543719701),
                          (8, 0.02233175543719701), (9, 0.9995675751366397),
                          (10, 0.9978386236482485)
                      ], [((0, 1), 0.49978680152075255),
                          ((0, 2), 0.49978680152075255),
                          ((0, 3), 0.49978680152075255),
                          ((0, 4), 0.09108125213604751),
                          ((0, 5), 0.0495365507272993),
                          ((0, 7), 0.012365044357817823),
                          ((0, 8), 0.02233175543719701),
                          ((0, 9), 0.4927248649942301),
                          ((0, 10), 0.49978680152075255),
                          ((1, 2), 0.999748430302803),
                          ((1, 3), 0.4999616287820504),
                          ((1, 4), 0.09108125213604751),
                          ((1, 5), 0.0495365507272993),
                          ((1, 9), 0.12693419543239254),
                          ((1, 10), 0.8250928589434148),
                          ((2, 3), 0.4999616287820504),
                          ((2, 4), 0.09108125213604751),
                          ((2, 5), 0.0495365507272993),
                          ((2, 10), 0.11357938500405684),
                          ((3, 4), 0.09108125213604751),
                          ((3, 5), 0.0495365507272993), ((3, 10), 0),
                          ((4, 5), 0.0495365507272993), ((4, 10), 0),
                          ((6, 1), 0.11757890635775581),
                          ((6, 2), 0.8331380106399122),
                          ((6, 3), 0.4999616287820504),
                          ((6, 4), 0.09108125213604751),
                          ((6, 5), 0.0495365507272993),
                          ((6, 7), 0.02233175543719701),
                          ((6, 8), 0.02233175543719701),
                          ((6, 9), 0.9995675751366397),
                          ((6, 10), 0.9978386236482485),
                          ((7, 1), 0.02233175543719701),
                          ((7, 2), 0.02233175543719701),
                          ((7, 3), 0.02233175543719701),
                          ((7, 4), 0.02233175543719701),
                          ((7, 5), 0.02233175543719701),
                          ((7, 8), 0.02233175543719701),
                          ((7, 9), 0.02233175543719701),
                          ((7, 10), 0.02233175543719701),
                          ((8, 1), 0.02233175543719701),
                          ((8, 2), 0.02233175543719701),
                          ((8, 3), 0.02233175543719701),
                          ((8, 4), 0.02233175543719701),
                          ((8, 5), 0.02233175543719701),
                          ((8, 9), 0.02233175543719701),
                          ((8, 10), 0.02233175543719701),
                          ((9, 2), 0.12156038112808631),
                          ((9, 3), 0.49337324340519445),
                          ((9, 4), 0.09108125213604751),
                          ((9, 5), 0.0495365507272993),
                          ((9, 10), 0.9978386236482485)]))

    names = ['sine', 'cosine']
    supergraph = get_supergraph(names, DAG1, DAG2)
    assert (supergraph == ([
        (('sine', 'min'), (0.49978680152075255, 0.49978680152075255)),
        (('sine', 'max'), (0.999748430302803, 0.999748430302803)),
        (('sine', 'min'), (0.999748430302803, 0.999748430302803)),
        (('sine', 'max'), (0.4584169273733022, 0.4999616287820504)),
        (('sine', 'min'), (0, 0.09108125213604751)),
        (('sine', 'max'), (0, 0.0495365507272993)),
        (('cosine', 'max'), (0.9995675751366397, 0.9995675751366397)),
        (('cosine', 'min'), (0, 0.02233175543719701)),
        (('cosine', 'max'), (0, 0.02233175543719701)),
        (('cosine', 'min'), (0.9995675751366397, 0.9995675751366397)),
        (('cosine', 'max'), (0.9978386236482485, 0.9978386236482485))
    ], [((0, 1), (0.49978680152075255, 0.49978680152075255)),
        ((0, 2), (0.49978680152075255, 0.49978680152075255)),
        ((0, 3), (0.4584169273733022, 0.49978680152075255)),
        ((0, 4), (0, 0.09108125213604751)), ((0, 5), (0, 0.0495365507272993)),
        ((0, 7), (0, 0.012365044357817823)),
        ((0, 8), (0, 0.02233175543719701)),
        ((0, 9), (0.4927248649942301, 0.4927248649942301)),
        ((0, 10), (0.49978680152075255, 0.49978680152075255)),
        ((1, 2), (0.999748430302803, 0.999748430302803)),
        ((1, 3), (0.4584169273733022, 0.4999616287820504)),
        ((1, 4), (0, 0.09108125213604751)), ((1, 5), (0, 0.0495365507272993)),
        ((1, 9), (0.12693419543239254, 0.12693419543239254)),
        ((1, 10), (0.8250928589434148, 0.8250928589434148)),
        ((2, 3), (0.4584169273733022, 0.4999616287820504)),
        ((2, 4), (0, 0.09108125213604751)), ((2, 5), (0, 0.0495365507272993)),
        ((2, 10), (0.11357938500405684, 0.11357938500405684)),
        ((3, 4), (0, 0.09108125213604751)), ((3, 5), (0, 0.0495365507272993)),
        ((4, 5), (0, 0.0495365507272993)),
        ((6, 1), (0.11757890635775581, 0.11757890635775581)),
        ((6, 2), (0.8331380106399122, 0.8331380106399122)),
        ((6, 3), (0.4584169273733022, 0.4999616287820504)),
        ((6, 4), (0, 0.09108125213604751)), ((6, 5), (0, 0.0495365507272993)),
        ((6, 7), (0, 0.02233175543719701)), ((6, 8), (0, 0.02233175543719701)),
        ((6, 9), (0.9995675751366397, 0.9995675751366397)),
        ((6, 10), (0.9978386236482485, 0.9978386236482485)),
        ((7, 1), (0, 0.02233175543719701)), ((7, 2), (0, 0.02233175543719701)),
        ((7, 3), (0, 0.02233175543719701)), ((7, 4), (0, 0.02233175543719701)),
        ((7, 5), (0, 0.02233175543719701)), ((7, 8), (0, 0.02233175543719701)),
        ((7, 9), (0, 0.02233175543719701)), ((7, 10), (0,
                                                       0.02233175543719701)),
        ((8, 1), (0, 0.02233175543719701)), ((8, 2), (0, 0.02233175543719701)),
        ((8, 3), (0, 0.02233175543719701)), ((8, 4), (0, 0.02233175543719701)),
        ((8, 5), (0, 0.02233175543719701)), ((8, 9), (0, 0.02233175543719701)),
        ((8, 10), (0, 0.02233175543719701)),
        ((9, 2), (0.12156038112808631, 0.12156038112808631)),
        ((9, 3), (0.45653760300917207, 0.49337324340519445)),
        ((9, 4), (0, 0.09108125213604751)), ((9, 5), (0, 0.0495365507272993)),
        ((9, 10), (0.9978386236482485, 0.9978386236482485))],
                           0.312731099172106))