summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/qvm/test/roty_quat_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/qvm/test/roty_quat_test.cpp')
-rw-r--r--src/boost/libs/qvm/test/roty_quat_test.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/boost/libs/qvm/test/roty_quat_test.cpp b/src/boost/libs/qvm/test/roty_quat_test.cpp
new file mode 100644
index 000000000..0f88efe0c
--- /dev/null
+++ b/src/boost/libs/qvm/test/roty_quat_test.cpp
@@ -0,0 +1,45 @@
+//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+
+//Distributed under the Boost Software License, Version 1.0. (See accompanying
+//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include <boost/qvm/quat_operations.hpp>
+#include <boost/qvm/mat_operations.hpp>
+#include <boost/qvm/quat.hpp>
+#include "test_qvm_quaternion.hpp"
+#include "test_qvm_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ void
+ test()
+ {
+ using namespace boost::qvm;
+ for( float r=0; r<6.28f; r+=0.5f )
+ {
+ test_qvm::quaternion<Q1> q1=roty_quat(r);
+ test_qvm::matrix<M1,3,3> m1=convert_to< test_qvm::matrix<M1,3,3> >(q1);
+ test_qvm::rotation_y(m1.b,r);
+ BOOST_QVM_TEST_CLOSE(m1.a,m1.b,0.000001f);
+ test_qvm::quaternion<Q2> q2(42,1);
+ set_roty(q2,r);
+ test_qvm::matrix<M1,3,3> m2=convert_to< test_qvm::matrix<M1,3,3> >(q2);
+ test_qvm::rotation_y(m2.b,r);
+ BOOST_QVM_TEST_CLOSE(m2.a,m2.b,0.000001f);
+ test_qvm::quaternion<Q1> q3(42,1);
+ test_qvm::quaternion<Q1> r1=q3*q1;
+ rotate_y(q3,r);
+ BOOST_QVM_TEST_EQ(q3.a,r1.a);
+ }
+ roty_quat(0.0f)+roty_quat(0.0f);
+ -roty_quat(0.0f);
+ }
+ }
+
+int
+main()
+ {
+ test();
+ return boost::report_errors();
+ }