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()
예제 #2
0
    machine.add_connection(Connection(sorter2, tape2, comp_from_output=4, reverse=True))
    machine.add_connection(Connection(sorter2, tape3, comp_from_output=5, reverse=True))
    machine.add_connection(Connection(sorter2, tape4, comp_from_output=6, reverse=True))
    machine.add_connection(Connection(sorter2, tape5, comp_from_output=7, reverse=True))
    machine.add_connection(Connection(sorter2, tape6, comp_from_output=8, reverse=True))
    machine.add_connection(Connection(sorter2, tape1, comp_from_output=9, reverse=True))
    machine.add_connection(Connection(sorter2, tape2, comp_from_output=10, reverse=True))
    machine.add_connection(Connection(sorter2, tape3, comp_from_output=11, reverse=True))
    machine.add_connection(Connection(sorter2, tape4, comp_from_output=12, reverse=True))
    machine.add_connection(Connection(sorter2, tape5, comp_from_output=13, reverse=True))
    machine.add_connection(Connection(sorter2, tape6, comp_from_output=14, reverse=True))

    machine.add_connection(Connection(sorter2, hold1, comp_from_output=16, comp_to_input=1, reverse=True))
    machine.add_connection(Connection(sorter2, hold2, comp_from_output=17, comp_to_input=1, reverse=True))
    machine.add_connection(Connection(sorter2, hold3, comp_from_output=18, comp_to_input=1, reverse=True))
    machine.add_connection(Connection(sorter2, hold4, comp_from_output=19, comp_to_input=1, reverse=True))
    machine.add_connection(Connection(sorter2, hold5, comp_from_output=20, comp_to_input=1, reverse=True))
    machine.add_connection(Connection(sorter2, hold2, comp_from_output=21, comp_to_input=1, reverse=True))
    machine.add_connection(Connection(sorter2, hold3, comp_from_output=22, comp_to_input=1, reverse=True))
    machine.add_connection(Connection(sorter2, hold4, comp_from_output=23, comp_to_input=1, reverse=True))
    machine.add_connection(Connection(sorter2, hold5, comp_from_output=24, comp_to_input=1, reverse=True))
    machine.add_connection(Connection(sorter2, hold6, comp_from_output=25, comp_to_input=1, reverse=True))

    machine.add_shared_layer(SharedLayer(hold6, init_state))

    machine.draw()
    mainloop()

# A:A# B:B# X:X# Y: Yellow
# Left: Green
# Right:right