cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=df50704764e0fd75b4be70c36a85611d85446bff
commit df50704764e0fd75b4be70c36a85611d85446bff Author: Vivek Ellur <[email protected]> Date: Tue Jul 28 00:55:56 2015 +0200 eina_quaternion: add test cases for various eina quaternion operations Summary: Added test cases for scale, multiply, normalize,dot operations for quaternion Signed-off-by: Vivek Ellur <[email protected]> Reviewers: cedric Reviewed By: cedric Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2790 Signed-off-by: Cedric BAIL <[email protected]> --- src/tests/eina/eina_test_quaternion.c | 79 +++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/src/tests/eina/eina_test_quaternion.c b/src/tests/eina/eina_test_quaternion.c index 78d1e2e..2e47580 100644 --- a/src/tests/eina/eina_test_quaternion.c +++ b/src/tests/eina/eina_test_quaternion.c @@ -180,6 +180,80 @@ START_TEST(eina_test_quaternion_f16p16) } END_TEST +START_TEST(eina_test_quaternion_dot) +{ + Eina_Quaternion q = {1, 3, 4, 5}; + Eina_Quaternion r = {7, 9, 5, 1}; + double res; + + eina_init(); + + res = eina_quaternion_dot(&q, &r); + fail_if(res != 59); + + eina_shutdown(); +} +END_TEST + +START_TEST(eina_test_quaternion_scale) +{ + Eina_Quaternion q = {1, 3, 4, 5}; + double scale = 2; + Eina_Quaternion r, res = {2, 6, 8, 10}; + + eina_init(); + + eina_quaternion_scale(&r, &q, scale); + fail_if(!eina_quaternion_cmp(&r, &res)); + + eina_shutdown(); +} +END_TEST + +START_TEST(eina_test_quaternion_set) +{ + Eina_Quaternion q, r = {1, 3, 4, 5}; + + eina_init(); + + eina_quaternion_set(&q, 1, 3, 4, 5); + + fail_if(!eina_quaternion_cmp(&q, &r)); + + eina_shutdown(); +} +END_TEST + +START_TEST(eina_test_quaternion_mul) +{ + Eina_Quaternion p = {1, 3, 4, 5}; + Eina_Quaternion q = {7, 9, 5, 1}; + Eina_Quaternion r, res = {15, 71, 17, -49}; + + eina_init(); + + eina_quaternion_mul(&r, &p, &q); + fprintf(stderr, "%f %f %f %f\n", res.w, res.x, res.y, res.z); + fail_if(!eina_quaternion_cmp(&r, &res)); + + eina_shutdown(); +} +END_TEST + +START_TEST(eina_test_quaternion_normalized) +{ + Eina_Quaternion p = {1, 1, 1, 1}; + Eina_Quaternion res, q = {0.5, 0.5, 0.5, 0.5}; + + eina_init(); + + eina_quaternion_normalized(&res, &p); + fail_if(!eina_quaternion_cmp(&q, &res)); + + eina_shutdown(); +} +END_TEST + void eina_test_quaternion(TCase *tc) { @@ -188,4 +262,9 @@ eina_test_quaternion(TCase *tc) tcase_add_test(tc, eina_test_quaternion_matrix); tcase_add_test(tc, eina_test_quaternion_op); tcase_add_test(tc, eina_test_quaternion_f16p16); + tcase_add_test(tc, eina_test_quaternion_dot); + tcase_add_test(tc, eina_test_quaternion_scale); + tcase_add_test(tc, eina_test_quaternion_set); + tcase_add_test(tc, eina_test_quaternion_mul); + tcase_add_test(tc, eina_test_quaternion_normalized); } --
