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

Function direct_sum_test_impl

tests/python/test_dynamics.py:25–57  ·  view source on GitHub ↗
(f, g)

Source from the content-addressed store, hash-verified

23
24
25def direct_sum_test_impl(f, g):
26 dm = dynamics.directSum(f, g)
27 dd = dm.createData()
28 print(dd)
29 space = dm.space_next
30 print(space)
31 assert space.num_components == 2
32
33 x0 = space.rand()
34 u0 = np.random.randn(dm.nu)
35 dm.forward(x0, u0, dd)
36 print(dd.xnext)
37
38 dd1 = f.createData()
39 dd2 = g.createData()
40 x01, x02 = space.split(x0).tolist()
41 u01, u02 = u0[: f.nu], u0[f.nu :]
42 f.forward(x01, u01, dd1)
43 g.forward(x02, u02, dd2)
44 assert np.allclose(dd1.xnext, dd.data1.xnext)
45 assert np.allclose(dd2.xnext, dd.data2.xnext)
46
47 dm.dForward(x0, u0, dd)
48 f.dForward(x01, u01, dd1)
49 g.dForward(x02, u02, dd2)
50 print(dd.Jx)
51 print(dd.data1.Jx)
52 print(dd.data2.Jx)
53 assert np.allclose(dd1.Jx, dd.data1.Jx)
54 assert np.allclose(dd1.Ju, dd.data1.Ju)
55
56 assert np.allclose(dd2.Jx, dd.data2.Jx)
57 assert np.allclose(dd2.Ju, dd.data2.Ju)
58
59
60@pytest.mark.skipif(

Callers 2

test_mb_direct_sumFunction · 0.85
test_direct_sumMethod · 0.85

Calls 5

randMethod · 0.80
splitMethod · 0.80
createDataMethod · 0.45
forwardMethod · 0.45
dForwardMethod · 0.45

Tested by

no test coverage detected