Commit 06e49fdd authored by Guilhem Saurel's avatar Guilhem Saurel
Browse files

flake8

parent 41868547
# Copyright (c) 2019, CNRS # Copyright (c) 2019, CNRS
# Authors: Pierre Fernbach <pfernbac@laas.fr> # Authors: Pierre Fernbach <pfernbac@laas.fr>
import unittest import unittest
from math import cos, sin, sqrt
from random import uniform
import numpy as np import numpy as np
from numpy import array, array_equal, random, isclose from curves import SE3Curve, bezier, piecewise, piecewise_SE3, polynomial
from random import uniform from numpy import array, array_equal, isclose, random
from math import sqrt, sin, cos
import pinocchio as pin import pinocchio as pin
from pinocchio import SE3, Quaternion
from curves import SE3Curve, polynomial, bezier, piecewise, piecewise_SE3
from multicontact_api import ContactModelPlanar, ContactPatch, ContactPhase, ContactSequence from multicontact_api import ContactModelPlanar, ContactPatch, ContactPhase, ContactSequence
from pinocchio import SE3, Quaternion
pin.switchToNumpyArray() pin.switchToNumpyArray()
...@@ -26,9 +26,11 @@ def randomQuaternion(): ...@@ -26,9 +26,11 @@ def randomQuaternion():
return q return q
# build random piecewise polynomial with 2 polynomial of degree 3
# between 01 and 12
def createRandomPiecewisePolynomial(dim, t_min=0, t_max=2): def createRandomPiecewisePolynomial(dim, t_min=0, t_max=2):
"""
Build random piecewise polynomial with 2 polynomial of degree 3
between 01 and 12
"""
t_mid = (t_min + t_max) / 2. t_mid = (t_min + t_max) / 2.
coefs0 = np.random.rand(dim, 4) # degree 3 coefs0 = np.random.rand(dim, 4) # degree 3
pol0 = polynomial(coefs0, t_min, t_mid) pol0 = polynomial(coefs0, t_min, t_mid)
...@@ -117,7 +119,7 @@ def addRandomContacts(cp): ...@@ -117,7 +119,7 @@ def addRandomContacts(cp):
def addRandomForcesTrajs(cp): def addRandomForcesTrajs(cp):
fR = createRandomPiecewisePolynomial(12) fR = createRandomPiecewisePolynomial(12)
fL = createRandomPiecewisePolynomial(12) fL = createRandomPiecewisePolynomial(12)
fL2 = createRandomPiecewisePolynomial(12) # fL2 = createRandomPiecewisePolynomial(12)
cp.addContactForceTrajectory("right-leg", fR) cp.addContactForceTrajectory("right-leg", fR)
cp.addContactForceTrajectory("left-leg", fL) cp.addContactForceTrajectory("left-leg", fL)
fR = createRandomPiecewisePolynomial(1) fR = createRandomPiecewisePolynomial(1)
...@@ -1213,25 +1215,25 @@ class ContactPhaseTest(unittest.TestCase): ...@@ -1213,25 +1215,25 @@ class ContactPhaseTest(unittest.TestCase):
time_points = array(random.rand(1, N)).T time_points = array(random.rand(1, N)).T
time_points.sort(0) time_points.sort(0)
cp = ContactPhase() cp = ContactPhase()
cp.setCOMtrajectoryFromPoints(points,points_derivative,points_second_derivative,time_points) cp.setCOMtrajectoryFromPoints(points, points_derivative, points_second_derivative, time_points)
self.assertEqual(cp.c_t.min(), time_points[0]) self.assertEqual(cp.c_t.min(), time_points[0])
self.assertEqual(cp.c_t.max(), time_points[-1]) self.assertEqual(cp.c_t.max(), time_points[-1])
self.assertEqual(cp.dc_t.dim(), 3) self.assertEqual(cp.dc_t.dim(), 3)
for i in range(N): for i in range(N):
self.assertTrue(isclose(cp.c_t(time_points[i, 0]), points[:,i]).all()) self.assertTrue(isclose(cp.c_t(time_points[i, 0]), points[:, i]).all())
self.assertTrue(isclose(cp.dc_t(time_points[i, 0]), points_derivative[:,i]).all()) self.assertTrue(isclose(cp.dc_t(time_points[i, 0]), points_derivative[:, i]).all())
self.assertTrue(isclose(cp.ddc_t(time_points[i, 0]), points_second_derivative[:,i]).all()) self.assertTrue(isclose(cp.ddc_t(time_points[i, 0]), points_second_derivative[:, i]).all())
cp.setAMtrajectoryFromPoints(points,points_derivative,time_points) cp.setAMtrajectoryFromPoints(points, points_derivative, time_points)
for i in range(N): for i in range(N):
self.assertTrue(isclose(cp.L_t(time_points[i, 0]), points[:,i]).all()) self.assertTrue(isclose(cp.L_t(time_points[i, 0]), points[:, i]).all())
self.assertTrue(isclose(cp.dL_t(time_points[i, 0]), points_derivative[:,i]).all()) self.assertTrue(isclose(cp.dL_t(time_points[i, 0]), points_derivative[:, i]).all())
cp.setJointsTrajectoryFromPoints(points,points_derivative,points_second_derivative,time_points) cp.setJointsTrajectoryFromPoints(points, points_derivative, points_second_derivative, time_points)
for i in range(N): for i in range(N):
self.assertTrue(isclose(cp.q_t(time_points[i, 0]), points[:,i]).all()) self.assertTrue(isclose(cp.q_t(time_points[i, 0]), points[:, i]).all())
self.assertTrue(isclose(cp.dq_t(time_points[i, 0]), points_derivative[:,i]).all()) self.assertTrue(isclose(cp.dq_t(time_points[i, 0]), points_derivative[:, i]).all())
self.assertTrue(isclose(cp.ddq_t(time_points[i, 0]), points_second_derivative[:,i]).all()) self.assertTrue(isclose(cp.ddq_t(time_points[i, 0]), points_second_derivative[:, i]).all())
class ContactSequenceTest(unittest.TestCase): class ContactSequenceTest(unittest.TestCase):
......
import pathlib
import unittest import unittest
import numpy as np
from numpy import array, array_equal
from random import uniform
from math import sqrt, sin, cos
import pathlib
import pinocchio as pin import pinocchio as pin
from pinocchio import SE3, Quaternion
import curves
from curves import SE3Curve, polynomial, bezier, piecewise, piecewise_SE3
from multicontact_api import ContactSequence from multicontact_api import ContactSequence
pin.switchToNumpyArray() pin.switchToNumpyArray()
...@@ -17,8 +10,7 @@ PATH = (pathlib.Path(__file__).parent.parent.parent / 'examples').absolute() ...@@ -17,8 +10,7 @@ PATH = (pathlib.Path(__file__).parent.parent.parent / 'examples').absolute()
print("PATH : ", PATH) print("PATH : ", PATH)
def assertTrajNotNone(testCase, phase, root, wholeBody):
def assertTrajNotNone(testCase, phase, root, wholeBody):
testCase.assertIsNotNone(phase.c_t) testCase.assertIsNotNone(phase.c_t)
testCase.assertIsNotNone(phase.dc_t) testCase.assertIsNotNone(phase.dc_t)
testCase.assertIsNotNone(phase.ddc_t) testCase.assertIsNotNone(phase.ddc_t)
...@@ -33,7 +25,7 @@ def assertTrajNotNone(testCase, phase, root, wholeBody): ...@@ -33,7 +25,7 @@ def assertTrajNotNone(testCase, phase, root, wholeBody):
testCase.assertIsNotNone(phase.tau_t) testCase.assertIsNotNone(phase.tau_t)
def testTrajMinMax(testCase, phase,root, wholeBody): def testTrajMinMax(testCase, phase, root, wholeBody):
testCase.assertTrue(phase.c_t.min() >= 0.) testCase.assertTrue(phase.c_t.min() >= 0.)
testCase.assertTrue(phase.dc_t.min() >= 0.) testCase.assertTrue(phase.dc_t.min() >= 0.)
testCase.assertTrue(phase.ddc_t.min() >= 0.) testCase.assertTrue(phase.ddc_t.min() >= 0.)
...@@ -57,13 +49,14 @@ def testTrajMinMax(testCase, phase,root, wholeBody): ...@@ -57,13 +49,14 @@ def testTrajMinMax(testCase, phase,root, wholeBody):
testCase.assertTrue(phase.ddq_t.min() >= 0.) testCase.assertTrue(phase.ddq_t.min() >= 0.)
testCase.assertTrue(phase.tau_t.min() >= 0.) testCase.assertTrue(phase.tau_t.min() >= 0.)
def testCallTraj(testCase, phase, root, quasistatic, wholeBody): def testCallTraj(testCase, phase, root, quasistatic, wholeBody):
testCase.assertTrue(phase.c_t((phase.c_t.max() + phase.c_t.min()) / 2.).any()) testCase.assertTrue(phase.c_t((phase.c_t.max() + phase.c_t.min()) / 2.).any())
if not quasistatic: if not quasistatic:
testCase.assertTrue(phase.dc_t((phase.dc_t.max() + phase.dc_t.min()) / 2.).any()) testCase.assertTrue(phase.dc_t((phase.dc_t.max() + phase.dc_t.min()) / 2.).any())
testCase.assertTrue(phase.ddc_t((phase.ddc_t.max() + phase.ddc_t.min()) / 2.).any()) testCase.assertTrue(phase.ddc_t((phase.ddc_t.max() + phase.ddc_t.min()) / 2.).any())
#testCase.assertTrue(phase.L_t((phase.L_t.max() + phase.L_t.min()) / 2.).any()) # testCase.assertTrue(phase.L_t((phase.L_t.max() + phase.L_t.min()) / 2.).any())
#testCase.assertTrue(phase.dL_t((phase.dL_t.max() + phase.dL_t.min()) / 2.).any()) # testCase.assertTrue(phase.dL_t((phase.dL_t.max() + phase.dL_t.min()) / 2.).any())
if root: if root:
testCase.assertTrue(phase.root_t.max() >= 0.) testCase.assertTrue(phase.root_t.max() >= 0.)
if wholeBody: if wholeBody:
...@@ -89,7 +82,7 @@ def testContactForce(testCase, phase): ...@@ -89,7 +82,7 @@ def testContactForce(testCase, phase):
testCase.assertTrue(traj((traj.min() + traj.max()) / 2.).any()) testCase.assertTrue(traj((traj.min() + traj.max()) / 2.).any())
def checkPhase(testCase, phase, root = False, quasistatic = False, effector = False, wholeBody = False): def checkPhase(testCase, phase, root=False, quasistatic=False, effector=False, wholeBody=False):
assertTrajNotNone(testCase, phase, root, wholeBody) assertTrajNotNone(testCase, phase, root, wholeBody)
testTrajMinMax(testCase, phase, root, wholeBody) testTrajMinMax(testCase, phase, root, wholeBody)
testCallTraj(testCase, phase, root, quasistatic, wholeBody) testCallTraj(testCase, phase, root, quasistatic, wholeBody)
...@@ -98,12 +91,13 @@ def checkPhase(testCase, phase, root = False, quasistatic = False, effector = Fa ...@@ -98,12 +91,13 @@ def checkPhase(testCase, phase, root = False, quasistatic = False, effector = Fa
if wholeBody: if wholeBody:
testContactForce(testCase, phase) testContactForce(testCase, phase)
def checkCS(testCase, cs, root = False, quasistatic = False, effector = False, wholeBody = False):
def checkCS(testCase, cs, root=False, quasistatic=False, effector=False, wholeBody=False):
for phase in cs.contactPhases: for phase in cs.contactPhases:
checkPhase(testCase, phase, root, quasistatic, effector, wholeBody) checkPhase(testCase, phase, root, quasistatic, effector, wholeBody)
class ExamplesSerialization(unittest.TestCase):
class ExamplesSerialization(unittest.TestCase):
def test_com_motion_above_feet_COM(self): def test_com_motion_above_feet_COM(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "com_motion_above_feet_COM.cs")) cs.loadFromBinary(str(PATH / "com_motion_above_feet_COM.cs"))
...@@ -114,11 +108,9 @@ class ExamplesSerialization(unittest.TestCase): ...@@ -114,11 +108,9 @@ class ExamplesSerialization(unittest.TestCase):
self.assertTrue(cs.haveCentroidalTrajectories()) self.assertTrue(cs.haveCentroidalTrajectories())
checkCS(self, cs) checkCS(self, cs)
def test_com_motion_above_feet_WB(self): def test_com_motion_above_feet_WB(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "com_motion_above_feet_WB.cs")) cs.loadFromBinary(str(PATH / "com_motion_above_feet_WB.cs"))
self.assertEqual(cs.size(), 1) self.assertEqual(cs.size(), 1)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
self.assertTrue(cs.haveTimings()) self.assertTrue(cs.haveTimings())
...@@ -128,44 +120,38 @@ class ExamplesSerialization(unittest.TestCase): ...@@ -128,44 +120,38 @@ class ExamplesSerialization(unittest.TestCase):
self.assertTrue(cs.haveJointsDerivativesTrajectories()) self.assertTrue(cs.haveJointsDerivativesTrajectories())
self.assertTrue(cs.haveContactForcesTrajectories()) self.assertTrue(cs.haveContactForcesTrajectories())
self.assertTrue(cs.haveZMPtrajectories()) self.assertTrue(cs.haveZMPtrajectories())
checkCS(self, cs, wholeBody = True) checkCS(self, cs, wholeBody=True)
def test_step_in_place(self): def test_step_in_place(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "step_in_place.cs")) cs.loadFromBinary(str(PATH / "step_in_place.cs"))
self.assertEqual(cs.size(), 9) self.assertEqual(cs.size(), 9)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
def test_step_in_place_COM(self): def test_step_in_place_COM(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "step_in_place_COM.cs")) cs.loadFromBinary(str(PATH / "step_in_place_COM.cs"))
self.assertEqual(cs.size(), 9) self.assertEqual(cs.size(), 9)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
self.assertTrue(cs.haveTimings()) self.assertTrue(cs.haveTimings())
self.assertTrue(cs.haveCentroidalValues()) self.assertTrue(cs.haveCentroidalValues())
self.assertTrue(cs.haveCentroidalTrajectories()) self.assertTrue(cs.haveCentroidalTrajectories())
checkCS(self, cs, effector = False, wholeBody = False) checkCS(self, cs, effector=False, wholeBody=False)
def test_step_in_place_REF(self): def test_step_in_place_REF(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "step_in_place_REF.cs")) cs.loadFromBinary(str(PATH / "step_in_place_REF.cs"))
self.assertEqual(cs.size(), 9) self.assertEqual(cs.size(), 9)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
self.assertTrue(cs.haveTimings()) self.assertTrue(cs.haveTimings())
self.assertTrue(cs.haveCentroidalValues()) self.assertTrue(cs.haveCentroidalValues())
self.assertTrue(cs.haveCentroidalTrajectories()) self.assertTrue(cs.haveCentroidalTrajectories())
self.assertTrue(cs.haveEffectorsTrajectories()) self.assertTrue(cs.haveEffectorsTrajectories())
checkCS(self, cs, root = True, effector = True, wholeBody = False) checkCS(self, cs, root=True, effector=True, wholeBody=False)
def test_step_in_place_WB(self): def test_step_in_place_WB(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "step_in_place_WB.cs")) cs.loadFromBinary(str(PATH / "step_in_place_WB.cs"))
self.assertEqual(cs.size(), 9) self.assertEqual(cs.size(), 9)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
self.assertTrue(cs.haveTimings()) self.assertTrue(cs.haveTimings())
...@@ -176,39 +162,38 @@ class ExamplesSerialization(unittest.TestCase): ...@@ -176,39 +162,38 @@ class ExamplesSerialization(unittest.TestCase):
self.assertTrue(cs.haveJointsDerivativesTrajectories()) self.assertTrue(cs.haveJointsDerivativesTrajectories())
self.assertTrue(cs.haveContactForcesTrajectories()) self.assertTrue(cs.haveContactForcesTrajectories())
self.assertTrue(cs.haveZMPtrajectories()) self.assertTrue(cs.haveZMPtrajectories())
checkCS(self, cs, effector = True, wholeBody = True) checkCS(self, cs, effector=True, wholeBody=True)
def test_step_in_place_quasistatic(self): def test_step_in_place_quasistatic(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "step_in_place_quasistatic.cs")) cs.loadFromBinary(str(PATH / "step_in_place_quasistatic.cs"))
self.assertEqual(cs.size(), 9) self.assertEqual(cs.size(), 9)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
def test_step_in_place_quasistatic_COM(self): def test_step_in_place_quasistatic_COM(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "step_in_place_quasistatic_COM.cs")) cs.loadFromBinary(str(PATH / "step_in_place_quasistatic_COM.cs"))
self.assertEqual(cs.size(), 9) self.assertEqual(cs.size(), 9)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
self.assertTrue(cs.haveTimings()) self.assertTrue(cs.haveTimings())
self.assertTrue(cs.haveCentroidalValues()) self.assertTrue(cs.haveCentroidalValues())
self.assertTrue(cs.haveCentroidalTrajectories()) self.assertTrue(cs.haveCentroidalTrajectories())
checkCS(self, cs, quasistatic = True, effector = False, wholeBody = False) checkCS(self, cs, quasistatic=True, effector=False, wholeBody=False)
def test_step_in_place_quasistatic_REF(self): def test_step_in_place_quasistatic_REF(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "step_in_place_quasistatic_REF.cs")) cs.loadFromBinary(str(PATH / "step_in_place_quasistatic_REF.cs"))
self.assertEqual(cs.size(), 9) self.assertEqual(cs.size(), 9)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
self.assertTrue(cs.haveTimings()) self.assertTrue(cs.haveTimings())
self.assertTrue(cs.haveCentroidalValues()) self.assertTrue(cs.haveCentroidalValues())
self.assertTrue(cs.haveCentroidalTrajectories()) self.assertTrue(cs.haveCentroidalTrajectories())
self.assertTrue(cs.haveEffectorsTrajectories()) self.assertTrue(cs.haveEffectorsTrajectories())
checkCS(self, cs, root = True, quasistatic = True, effector = True, wholeBody = False) checkCS(self, cs, root=True, quasistatic=True, effector=True, wholeBody=False)
def test_step_in_place_quasistatic_WB(self): def test_step_in_place_quasistatic_WB(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "step_in_place_quasistatic_WB.cs")) cs.loadFromBinary(str(PATH / "step_in_place_quasistatic_WB.cs"))
self.assertEqual(cs.size(), 9) self.assertEqual(cs.size(), 9)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
self.assertTrue(cs.haveTimings()) self.assertTrue(cs.haveTimings())
...@@ -219,39 +204,38 @@ class ExamplesSerialization(unittest.TestCase): ...@@ -219,39 +204,38 @@ class ExamplesSerialization(unittest.TestCase):
self.assertTrue(cs.haveJointsDerivativesTrajectories()) self.assertTrue(cs.haveJointsDerivativesTrajectories())
self.assertTrue(cs.haveContactForcesTrajectories()) self.assertTrue(cs.haveContactForcesTrajectories())
self.assertTrue(cs.haveZMPtrajectories()) self.assertTrue(cs.haveZMPtrajectories())
checkCS(self, cs, quasistatic = True, effector = True, wholeBody = True) checkCS(self, cs, quasistatic=True, effector=True, wholeBody=True)
def test_walk_20cm(self): def test_walk_20cm(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "walk_20cm.cs")) cs.loadFromBinary(str(PATH / "walk_20cm.cs"))
self.assertEqual(cs.size(), 23) self.assertEqual(cs.size(), 23)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
def test_walk_20cm_COM(self): def test_walk_20cm_COM(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "walk_20cm_COM.cs")) cs.loadFromBinary(str(PATH / "walk_20cm_COM.cs"))
self.assertEqual(cs.size(), 23) self.assertEqual(cs.size(), 23)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
self.assertTrue(cs.haveTimings()) self.assertTrue(cs.haveTimings())
self.assertTrue(cs.haveCentroidalValues()) self.assertTrue(cs.haveCentroidalValues())
self.assertTrue(cs.haveCentroidalTrajectories()) self.assertTrue(cs.haveCentroidalTrajectories())
checkCS(self, cs, effector = False, wholeBody = False) checkCS(self, cs, effector=False, wholeBody=False)
def test_walk_20cm_REF(self): def test_walk_20cm_REF(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "walk_20cm_REF.cs")) cs.loadFromBinary(str(PATH / "walk_20cm_REF.cs"))
self.assertEqual(cs.size(), 23) self.assertEqual(cs.size(), 23)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
self.assertTrue(cs.haveTimings()) self.assertTrue(cs.haveTimings())
self.assertTrue(cs.haveCentroidalValues()) self.assertTrue(cs.haveCentroidalValues())
self.assertTrue(cs.haveCentroidalTrajectories()) self.assertTrue(cs.haveCentroidalTrajectories())
self.assertTrue(cs.haveEffectorsTrajectories()) self.assertTrue(cs.haveEffectorsTrajectories())
checkCS(self, cs, root = True, effector = True, wholeBody = False) checkCS(self, cs, root=True, effector=True, wholeBody=False)
def test_walk_20cm_WB(self): def test_walk_20cm_WB(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "walk_20cm_WB.cs")) cs.loadFromBinary(str(PATH / "walk_20cm_WB.cs"))
self.assertEqual(cs.size(), 23) self.assertEqual(cs.size(), 23)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
self.assertTrue(cs.haveTimings()) self.assertTrue(cs.haveTimings())
...@@ -262,39 +246,38 @@ class ExamplesSerialization(unittest.TestCase): ...@@ -262,39 +246,38 @@ class ExamplesSerialization(unittest.TestCase):
self.assertTrue(cs.haveJointsDerivativesTrajectories()) self.assertTrue(cs.haveJointsDerivativesTrajectories())
self.assertTrue(cs.haveContactForcesTrajectories()) self.assertTrue(cs.haveContactForcesTrajectories())
self.assertTrue(cs.haveZMPtrajectories()) self.assertTrue(cs.haveZMPtrajectories())
checkCS(self, cs, effector = True, wholeBody = True) checkCS(self, cs, effector=True, wholeBody=True)
def test_walk_20cm_quasistatic(self): def test_walk_20cm_quasistatic(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "walk_20cm_quasistatic.cs")) cs.loadFromBinary(str(PATH / "walk_20cm_quasistatic.cs"))
self.assertEqual(cs.size(), 23) self.assertEqual(cs.size(), 23)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
def test_walk_20cm_quasistatic_COM(self): def test_walk_20cm_quasistatic_COM(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "walk_20cm_quasistatic_COM.cs")) cs.loadFromBinary(str(PATH / "walk_20cm_quasistatic_COM.cs"))
self.assertEqual(cs.size(), 23) self.assertEqual(cs.size(), 23)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
self.assertTrue(cs.haveTimings()) self.assertTrue(cs.haveTimings())
self.assertTrue(cs.haveCentroidalValues()) self.assertTrue(cs.haveCentroidalValues())
self.assertTrue(cs.haveCentroidalTrajectories()) self.assertTrue(cs.haveCentroidalTrajectories())
checkCS(self, cs, quasistatic = True, effector = False, wholeBody = False) checkCS(self, cs, quasistatic=True, effector=False, wholeBody=False)
def test_walk_20cm_quasistatic_REF(self): def test_walk_20cm_quasistatic_REF(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "walk_20cm_quasistatic_REF.cs")) cs.loadFromBinary(str(PATH / "walk_20cm_quasistatic_REF.cs"))
self.assertEqual(cs.size(), 23) self.assertEqual(cs.size(), 23)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
self.assertTrue(cs.haveTimings()) self.assertTrue(cs.haveTimings())
self.assertTrue(cs.haveCentroidalValues()) self.assertTrue(cs.haveCentroidalValues())
self.assertTrue(cs.haveCentroidalTrajectories()) self.assertTrue(cs.haveCentroidalTrajectories())
self.assertTrue(cs.haveEffectorsTrajectories()) self.assertTrue(cs.haveEffectorsTrajectories())
checkCS(self, cs, root = True, quasistatic = True, effector = True, wholeBody = False) checkCS(self, cs, root=True, quasistatic=True, effector=True, wholeBody=False)
def test_walk_20cm_quasistatic_WB(self): def test_walk_20cm_quasistatic_WB(self):
cs = ContactSequence() cs = ContactSequence()
cs.loadFromBinary(str(PATH / "walk_20cm_quasistatic_WB.cs")) cs.loadFromBinary(str(PATH / "walk_20cm_quasistatic_WB.cs"))
self.assertEqual(cs.size(), 23) self.assertEqual(cs.size(), 23)
self.assertTrue(cs.haveConsistentContacts()) self.assertTrue(cs.haveConsistentContacts())
self.assertTrue(cs.haveTimings()) self.assertTrue(cs.haveTimings())
...@@ -305,7 +288,8 @@ class ExamplesSerialization(unittest.TestCase): ...@@ -305,7 +288,8 @@ class ExamplesSerialization(unittest.TestCase):
self.assertTrue(cs.haveJointsDerivativesTrajectories()) self.assertTrue(cs.haveJointsDerivativesTrajectories())
self.assertTrue(cs.haveContactForcesTrajectories()) self.assertTrue(cs.haveContactForcesTrajectories())
self.assertTrue(cs.haveZMPtrajectories()) self.assertTrue(cs.haveZMPtrajectories())
checkCS(self, cs, quasistatic = True, effector = True, wholeBody = True) checkCS(self, cs, quasistatic=True, effector=True, wholeBody=True)
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment