From a126be0882f46336b06111995896ad85da97beef Mon Sep 17 00:00:00 2001 From: Matthias Grob Date: Tue, 14 Jul 2020 09:39:53 +0200 Subject: [PATCH] attitude test: refactoring to avoid identity quaternion confusion --- test/attitude.cpp | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/test/attitude.cpp b/test/attitude.cpp index 3e3c1d164c..cbdcf3d6df 100644 --- a/test/attitude.cpp +++ b/test/attitude.cpp @@ -307,30 +307,26 @@ int main() // quaternion setIdentity Quatf q_nonIdentity(-0.7f, 0.4f, 0.5f, -0.3f); - Quatf q_identity(1.0f, 0.0f, 0.0f, 0.0f); q_nonIdentity.setIdentity(); - TEST(isEqual(q_nonIdentity, q_identity)); + TEST(isEqual(q_nonIdentity, Quatf())); // non-unit quaternion invese - Quatf qI(1.0f, 0.0f, 0.0f, 0.0f); Quatf q_nonunit(0.1f, 0.2f, 0.3f, 0.4f); - TEST(isEqual(qI, q_nonunit*q_nonunit.inversed())); + TEST(isEqual(q_nonunit*q_nonunit.inversed(), Quatf())); // rotate quaternion (nonzero rotation) - Vector rot; - rot(0) = 1.0f; - rot(1) = rot(2) = 0.0f; - qI.rotate(rot); + Vector3f rot(1.f, 0.f, 0.f); + Quatf q_test; + q_test.rotate(rot); Quatf q_true(cos(1.0f / 2), sin(1.0f / 2), 0.0f, 0.0f); - TEST(isEqual(qI, q_true)); + TEST(isEqual(q_test, q_true)); // rotate quaternion (zero rotation) - qI = Quatf(1.0f, 0.0f, 0.0f, 0.0f); - rot(0) = 0.0f; - rot(1) = rot(2) = 0.0f; - qI.rotate(rot); + rot(0) = rot(1) = rot(2) = 0.0f; + q_test = Quatf(); + q_test.rotate(rot); q_true = Quatf(cos(0.0f), sin(0.0f), 0.0f, 0.0f); - TEST(isEqual(qI, q_true)); + TEST(isEqual(q_test, q_true)); // rotate quaternion (random non-commutating rotation) q = Quatf(AxisAnglef(5.1f, 3.2f, 8.4f));