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()
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))
(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))