Exemplo n.º 1
0
 def make_diagram():
     builder = DiagramBuilder()
     adder1 = builder.AddNamedSystem("adder1", Adder(2, 2))
     adder2 = builder.AddNamedSystem("adder2", Adder(1, 2))
     builder.Connect(adder1.get_output_port(), adder2.get_input_port())
     builder.ExportInput(adder1.get_input_port(0), "in0")
     builder.ExportInput(adder1.get_input_port(1), "in1")
     builder.ExportOutput(adder2.get_output_port(), "out")
     diagram = builder.Build()
     return adder1, adder2, diagram
Exemplo n.º 2
0
    def test_system_visitor(self):
        builder = DiagramBuilder()
        builder.AddNamedSystem("adder1", Adder(2, 2))
        builder.AddNamedSystem("adder2", Adder(2, 2))
        system = builder.Build()
        system.set_name("diagram")

        visited_systems = []
        visited_diagrams = []

        class MyVisitor(SystemVisitor):
            def VisitSystem(self, system):
                visited_systems.append(system.get_name())

            def VisitDiagram(self, diagram):
                visited_diagrams.append(diagram.get_name())
                for sys in diagram.GetSystems():
                    sys.Accept(self)

        visitor = MyVisitor()
        system.Accept(v=visitor)
        self.assertEqual(visited_systems, ["adder1", "adder2"])
        self.assertEqual(visited_diagrams, ["diagram"])
Exemplo n.º 3
0
 def test_add_named_system(self):
     builder = DiagramBuilder()
     adder1 = builder.AddNamedSystem("adder1", Adder(2, 3))
     self.assertEqual(adder1.get_name(), "adder1")
     adder2 = builder.AddNamedSystem(name="adder2", system=Adder(5, 8))
     self.assertEqual(adder2.get_name(), "adder2")