diff --git a/python/test/test.py b/python/test/test.py index a368aa855fd87ccd7b6b79996e0bd334c2bffe21..4337a65ce064499390227ec15b2c85b5584f9a55 100644 --- a/python/test/test.py +++ b/python/test/test.py @@ -4,6 +4,7 @@ import unittest from numpy import matrix from numpy.linalg import norm +from numpy.testing import assert_allclose from hpp_spline import bezier, bezier6, curve_constraints, exact_cubic, from_bezier, polynom, spline_deriv_constraint @@ -22,7 +23,7 @@ class TestSpline(unittest.TestCase): a.min() a.max() a(0.4) - self.assertTrue((a.derivate(0.4, 0) == a(0.4)).all()) + assert_allclose(a.derivate(0.4, 0), a(0.4)) a.derivate(0.4, 2) a = a.compute_derivate(100) @@ -30,14 +31,14 @@ class TestSpline(unittest.TestCase): for i in range(10): t = float(i) / 10. - self.assertTrue((a(t) == prim.derivate(t, 1)).all()) - self.assertTrue((prim(0) == matrix([0., 0., 0.])).all()) + assert_allclose(a(t), prim.derivate(t, 1)) + assert_allclose(prim(0), matrix([0., 0., 0.]).T) prim = a.compute_primitive(2) for i in range(10): t = float(i) / 10. - self.assertTrue((a(t) == prim.derivate(t, 2)).all()) - self.assertTrue((prim(0) == matrix([0., 0., 0.])).all()) + assert_allclose(a(t), prim.derivate(t, 2)) + assert_allclose(prim(0), matrix([0., 0., 0.]).T) waypoints = matrix([[1., 2., 3.], [4., 5., 6.], [4., 5., 6.], [4., 5., 6.], [4., 5., 6.]]).T a0 = bezier(waypoints) @@ -47,11 +48,13 @@ class TestSpline(unittest.TestCase): for i in range(10): t = float(i) / 10. - self.assertAlmostEqual(norm(a0(t) - a1(3 * t)), 0) - self.assertAlmostEqual(norm(a0.derivate(t, 1) - a1.derivate(3 * t, 1) * 3.), 0) - self.assertAlmostEqual(norm(a0.derivate(t, 2) - a1.derivate(3 * t, 2) * 9.), 0) - self.assertAlmostEqual(norm(prim0(t) - prim1(t * 3) / 3.), 0) - self.assertTrue((prim(0) == matrix([0., 0., 0.]).T).all()) + assert_allclose(a0(t), a1(3 * t)) + assert_allclose(a0.derivate(t, 1), a1.derivate(3 * t, 1) * 3.) + assert_allclose(a0.derivate(t, 2), a1.derivate(3 * t, 2) * 9.) + assert_allclose(prim0(t), prim1(t * 3) / 3.) + assert_allclose(prim(0), matrix([0., 0., 0.]).T) + with self.assertRaises(AssertionError): + assert_allclose(prim(0), matrix([0., 0., 0.])) # testing bezier with constraints c = curve_constraints() @@ -62,8 +65,8 @@ class TestSpline(unittest.TestCase): waypoints = matrix([[1., 2., 3.], [4., 5., 6.]]).T a = bezier(waypoints, c) - self.assertAlmostEqual(norm(a.derivate(0, 1) - c.init_vel), 0) - self.assertAlmostEqual(norm(a.derivate(1, 2) - c.end_acc), 0) + assert_allclose(a.derivate(0, 1), c.init_vel) + assert_allclose(a.derivate(1, 2), c.end_acc) # testing polynom function a = polynom(waypoints) @@ -71,7 +74,7 @@ class TestSpline(unittest.TestCase): a.min() a.max() a(0.4) - self.assertTrue((a.derivate(0.4, 0) == a(0.4)).all()) + assert_allclose(a.derivate(0.4, 0), a(0.4)) a.derivate(0.4, 2) # testing exact_cubic function @@ -79,7 +82,7 @@ class TestSpline(unittest.TestCase): a.min() a.max() a(0.4) - self.assertTrue((a.derivate(0.4, 0) == a(0.4)).all()) + assert_allclose(a.derivate(0.4, 0), a(0.4)) a.derivate(0.4, 2) # testing spline_deriv_constraints @@ -101,7 +104,7 @@ class TestSpline(unittest.TestCase): a = bezier(waypoints) a_pol = from_bezier(a) - self.assertAlmostEqual(norm(a(0.3) - a_pol(0.3)), 0) + assert_allclose(a(0.3), a_pol(0.3)) if __name__ == '__main__':