Beispiel #1
0
 def test_ctor_api(self):
     """Tests construction of systems for systems whose executions semantics
     are not tested above.
     """
     ConstantValueSource(AbstractValue.Make("Hello world"))
     ConstantVectorSource(source_value=[1., 2.])
     ZeroOrderHold(period_sec=0.1, vector_size=2)
     ZeroOrderHold(period_sec=0.1,
                   abstract_model_value=AbstractValue.Make("Hello world"))
Beispiel #2
0
 def test_ctor_api(self):
     """Tests construction of systems for systems whose executions semantics
     are not tested above.
     """
     ConstantValueSource(AbstractValue.Make("Hello world"))
     DiscreteTimeDelay(update_sec=0.1, delay_timesteps=5, vector_size=2)
     DiscreteTimeDelay(
         update_sec=0.1,
         delay_timesteps=5,
         abstract_model_value=AbstractValue.Make("Hello world"))
     ZeroOrderHold(period_sec=0.1, vector_size=2)
     ZeroOrderHold(period_sec=0.1,
                   abstract_model_value=AbstractValue.Make("Hello world"))
Beispiel #3
0
 def test_context_fix_input_port(self):
     # WARNING: This is not the recommend workflow; instead, use
     # `InputPort.FixValue` instead. This is here just for testing /
     # coverage purposes.
     dt = 0.1  # Arbitrary.
     system_vec = ZeroOrderHold(period_sec=dt, vector_size=1)
     context_vec = system_vec.CreateDefaultContext()
     context_vec.FixInputPort(index=0, data=[0.])
     context_vec.FixInputPort(index=0, vec=BasicVector([0.]))
     # Test abstract.
     model_value = AbstractValue.Make("Hello")
     system_abstract = ZeroOrderHold(
         period_sec=dt, abstract_model_value=model_value.Clone())
     context_abstract = system_abstract.CreateDefaultContext()
     context_abstract.FixInputPort(index=0, value=model_value.Clone())
Beispiel #4
0
    def test_event_status(self):
        system = ZeroOrderHold(period_sec=0.1, vector_size=1)
        # Existence check.
        EventStatus.Severity.kDidNothing
        EventStatus.Severity.kSucceeded
        EventStatus.Severity.kReachedTermination
        EventStatus.Severity.kFailed

        self.assertIsInstance(EventStatus.DidNothing(), EventStatus)
        self.assertIsInstance(EventStatus.Succeeded(), EventStatus)
        status = EventStatus.ReachedTermination(system=system, message="done")
        # Check API.
        self.assertIsInstance(status, EventStatus)
        self.assertEqual(
            status.severity(), EventStatus.Severity.kReachedTermination)
        self.assertIs(status.system(), system)
        self.assertEqual(status.message(), "done")
        self.assertIsInstance(
            status.KeepMoreSevere(candidate=status), EventStatus)
        status = EventStatus.Failed(system=system, message="failed")
        self.assertIsInstance(status, EventStatus)
    def test_adder_simulation(self):
        builder = DiagramBuilder()
        adder = builder.AddSystem(self._create_adder_system())
        adder.set_name("custom_adder")
        # Add ZOH so we can easily extract state.
        zoh = builder.AddSystem(ZeroOrderHold(0.1, 3))
        zoh.set_name("zoh")

        builder.ExportInput(adder.get_input_port(0))
        builder.ExportInput(adder.get_input_port(1))
        builder.Connect(adder.get_output_port(0), zoh.get_input_port(0))
        diagram = builder.Build()
        context = diagram.CreateDefaultContext()
        self._fix_adder_inputs(context)

        simulator = Simulator(diagram, context)
        simulator.Initialize()
        simulator.AdvanceTo(1)
        # Ensure that we have the outputs we want.
        value = (diagram.GetMutableSubsystemContext(
            zoh, context).get_discrete_state_vector().get_value())
        self.assertTrue(np.allclose([5, 7, 9], value))
 def test_generate_html(self):
     system = ZeroOrderHold(period_sec=0.1, vector_size=1)
     system.set_name("zoh")
     html = GenerateHtml(system, initial_depth=2)
     self.assertRegex(html, r'key: "zoh"')