From 47c0a93140cc5b4ed89a24b21ad25874ede9dde1 Mon Sep 17 00:00:00 2001 From: Matthias Grob Date: Wed, 14 Dec 2016 18:25:06 +0100 Subject: [PATCH] Quaternion: added tests for the corner cases of Dcm to quaternion conversion --- test/attitude.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/attitude.cpp b/test/attitude.cpp index c2606b9b00..c2c6089d5c 100644 --- a/test/attitude.cpp +++ b/test/attitude.cpp @@ -322,6 +322,17 @@ int main() Dcmf dcm4(Eulerf(4, 5, 6)); Dcmf dcm34 = dcm3 * dcm4; TEST(isEqual(Eulerf(Quatf(dcm4)*Quatf(dcm3)), Eulerf(dcm34))); + + // check corner cases of matrix to quaternion conversion + q = Quatf(0,1,0,0); // 180 degree rotation around the x axis + R = Dcmf(q); + TEST(isEqual(q, Quatf(R))); + q = Quatf(0,0,1,0); // 180 degree rotation around the y axis + R = Dcmf(q); + TEST(isEqual(q, Quatf(R))); + q = Quatf(0,0,0,1); // 180 degree rotation around the z axis + R = Dcmf(q); + TEST(isEqual(q, Quatf(R))); }; /* vim: set et fenc=utf-8 ff=unix sts=0 sw=4 ts=4 : */