def testNormalPort(self):
     c1 = Component('c1')
     c1.outputs.add(OutputPort('a'))
     c2 = Component('c2')
     c2.inputs.add(InputPort('b'))
     graph = Multigraph()
     graph.connect(c1.outputs['a'], c2.inputs['b'])
     with open('/home/baffelli/normal.dot', 'w+') as outfile:
         outfile.write(graph.dot())
 def testArrayPort(self):
     c1 = Component('c1')
     c1.outputs.add(OutputPort('a'))
     c2 = Component('c2')
     c2.inputs.add(InputPort('b'))
     c2.inputs.add(InputPort('c'))
     graph = Multigraph()
     graph.connect(c1.outputs['a'], c2.inputs['b'])
     graph.connect(c1.outputs['a'], c2.inputs['c'])
     print(list(graph.iterarcs()))
     with open('/home/baffelli/multiport.dot', 'w+') as outfile:
         outfile.write(graph.dot())
 def testSumPipeline(self):
     source1 = GeneratorSource('s1', (i for i in range(100)))
     source2 = GeneratorSource('s2', (i for i in range(100)))
     shower = ShowInputs('printer')
     shower.inputs.add(InputPort('in1'))
     summer = BroadcastApplyFunction('summer', adder)
     summer.inputs.add(InputPort('g1'))
     summer.inputs.add(InputPort('g2'))
     summer.outputs.add(OutputPort('sum'))
     graph = Multigraph()
     graph.connect(source1.outputs.OUT, summer.inputs.g1)
     graph.connect(source2.outputs.OUT, summer.inputs.g2)
     graph.connect(summer.outputs.sum, shower.inputs.in1)
     with open('/home/baffelli/sum.dot', 'w+') as outfile:
         outfile.write(graph.dot())
     graph()
 def testRecursivePipeline(self):
     source1 = GeneratorSource('s1', (i for i in range(1000)))
     shower = ShowInputs('printer')
     shower.inputs.add(InputPort('in1'))
     summer = BroadcastApplyFunction('summer', adder)
     summer.inputs.add(InputPort('g1'))
     summer.inputs.add(InputPort('recursion'))
     summer.outputs.add(OutputPort('sum'))
     graph = Multigraph()
     graph.connect(source1.outputs.OUT, summer.inputs.g1)
     graph.connect(summer.outputs.sum, shower.inputs.in1)
     graph.connect(summer.outputs.sum, summer.inputs.recursion)
     #Add a kickstarter to a port
     graph.set_kickstarter(summer.inputs.recursion)
     with open('/home/baffelli/recursion.dot', 'w+') as outfile:
         outfile.write(graph.dot())
     graph()
 def testProduct(self):
     source1 = GeneratorSource('s1')
     source2 = GeneratorSource('s2')
     range(5) >> source1.inputs.gen
     range(5) >> source2.inputs.gen
     p = components.Product('prod')
     printer = ShowInputs('printer')
     printer.inputs.add(InputPort('IN'))
     p.inputs.add(InputPort('i'))
     p.inputs.add(InputPort('j'))
     p.outputs.add(OutputPort('OUT'))
     g = Multigraph('cul')
     g.connect(source1.outputs.OUT, p.inputs.i)
     g.connect(source2.outputs.OUT, p.inputs.j)
     g.connect(p.outputs.OUT, printer.inputs.IN)
     print(list(g.iterarcs()))
     print(g.dot())
     g()