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
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"])
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")