def test_machine(machine, show_all, fname=''):
    root = Tk()

    machine = machine(show_all=show_all)

    num_inputs = len(machine.inputs)
    num_outputs = len(machine.outputs)

    inputs = []
    outputs = []

    for i in range(num_inputs):
        inputs.append(IO(name=f'input_{i}'))

    for i in range(num_outputs):
        outputs.append(IO(name=f'output_{i}'))

    m = Machine(root)
    
    i = 0
    for input in inputs:
        m.add_connection(Connection(input, machine, comp_to_input=i))
        i += 1

    i = 0
    for output in outputs:
        m.add_connection(Connection(machine, output, comp_from_output=i))
        m.specify_output(output)
        i += 1

    for comb in itertools.combinations(inputs, 2):
        m.add_shared_layer(SharedLayer(comb[0], comb[1]))

    for comb in itertools.combinations(outputs, 2):
        m.add_shared_layer(SharedLayer(comb[0], comb[1]))

    m.draw()
    if fname != '':
        m.save(fname)
    root.mainloop()
Example #2
0
    s4 = Sorter([('red', ), ('blue', ), ('purple', ), ('dark green', ),
                 ('gold', ), ('grey', ), ('orange', ), ('cyan', )])
    s5 = Sorter([('red', ), ('blue', ), ('purple', ), ('dark green', ),
                 ('gold', ), ('grey', ), ('orange', ), ('cyan', )])
    s6 = Sorter([('red', ), ('blue', ), ('purple', ), ('dark green', ),
                 ('gold', ), ('grey', ), ('orange', ), ('cyan', )])
    s7 = Sorter([('red', ), ('blue', ), ('purple', ), ('dark green', ),
                 ('gold', ), ('grey', ), ('orange', ), ('cyan', )])
    s8 = Sorter([('red', ), ('blue', ), ('purple', ), ('dark green', ),
                 ('gold', ), ('grey', ), ('orange', ), ('cyan', )])

    eq1 = Eq2or3(False)

    output = IO()

    machine.add_connection(Connection(cell1, r1))
    machine.add_connection(Connection(cell2, r2))
    machine.add_connection(Connection(cell3, r3))
    machine.add_connection(Connection(cell4, r4))
    machine.add_connection(Connection(cell6, r5))
    machine.add_connection(Connection(cell7, r6))
    machine.add_connection(Connection(cell8, r7))
    machine.add_connection(Connection(cell9, r8))

    machine.add_connection(Connection(r1, s1))
    machine.add_connection(Connection(r2, s2))
    machine.add_connection(Connection(r3, s3))
    machine.add_connection(Connection(r4, s4))
    machine.add_connection(Connection(r5, s5))
    machine.add_connection(Connection(r6, s6))
    machine.add_connection(Connection(r7, s7))
Example #3
0
        (Y, c6),
        (left, c1),
        (left, c2),
        (left, c3),
        (left, c4),
        (left, c5),
        (left, c6),
        (right, c1),
        (right, c2),
        (right, c3),
        (right, c4),
        (right, c5),
        (right, c6)
    ])

    machine.add_connection(Connection(tape1, hold1))
    machine.add_connection(Connection(tape2, hold2))
    machine.add_connection(Connection(tape3, hold3))
    machine.add_connection(Connection(tape4, hold4))
    machine.add_connection(Connection(tape5, hold5))
    machine.add_connection(Connection(tape6, hold6))

    machine.add_connection(Connection(init_state, sorter1))

    machine.add_connection(Connection(hold1, sorter1))
    machine.add_connection(Connection(hold2, sorter1))
    machine.add_connection(Connection(hold3, sorter1))
    machine.add_connection(Connection(hold4, sorter1))
    machine.add_connection(Connection(hold5, sorter1))
    machine.add_connection(Connection(hold6, sorter1))