MCPcopy Create free account
hub / github.com/Simple-Robotics/aligator / test_implicit_integrator

Function test_implicit_integrator

tests/python/test_integrators.py:136–155  ·  view source on GitHub ↗
(
    dae: dynamics.ContinuousDynamicsAbstract, integrator: dynamics.IntegratorAbstract
)

Source from the content-addressed store, hash-verified

134@pytest.mark.parametrize("dae", dae_list)
135@pytest.mark.parametrize("integrator", [dynamics.IntegratorMidpoint])
136def test_implicit_integrator(
137 dae: dynamics.ContinuousDynamicsAbstract, integrator: dynamics.IntegratorAbstract
138):
139 dt = 0.1
140 dyn = integrator(dae, dt)
141 x = dae.space.rand()
142 x = np.clip(x, -5, 5)
143 u = np.random.randn(dyn.nu)
144 data = dyn.createData()
145 dyn.evaluate(x, u, x, data)
146 assert isinstance(data, dynamics.IntegratorData)
147
148 Jx_nd, Ju_nd, Jy_nd = dynamics_finite_difference(dyn, dyn.space, x, u, eps=EPSILON)
149
150 dyn.evaluate(x, u, x, data)
151 dyn.computeJacobians(x, u, x, data)
152 atol = EPSILON**0.5
153 assert np.allclose(data.Jx, Jx_nd, atol=atol)
154 assert np.allclose(data.Ju, Ju_nd, atol=atol)
155 assert np.allclose(data.Jy, Jy_nd, atol=atol)
156
157
158def exp_dyn_fd_check(dyn: dynamics.ExplicitDynamicsModel, x, u, eps: float):

Callers

nothing calls this directly

Calls 5

randMethod · 0.80
createDataMethod · 0.45
evaluateMethod · 0.45
computeJacobiansMethod · 0.45

Tested by

no test coverage detected