eina_quaternion: add test cases for interpolation functions.

Summary:
Added test cases for quaternion_lerp, quaternion_slerp and quaternion_nlerp
functions

Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3209

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This commit is contained in:
Vivek Ellur 2015-10-22 12:23:00 -07:00 committed by Cedric BAIL
parent 444a0b11bc
commit ccd7c2b014
1 changed files with 37 additions and 1 deletions

View File

@ -259,7 +259,6 @@ START_TEST(eina_test_quaternion_mul)
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();
@ -379,6 +378,42 @@ START_TEST(eina_test_quaternion_f16p16_lerp)
}
END_TEST
START_TEST(eina_test_quaternion_lerp)
{
Eina_Quaternion rp = {0, 0, 1, 0};
Eina_Quaternion rq = {1, 0, 0, 0};
Eina_Quaternion rr, res = {0.5, 0.0, 0.5, 0.0};
eina_init();
eina_quaternion_lerp(&rr, &rp, &rq, 0.5);
fail_if(!eina_quaternion_cmp(&rr, &res));
eina_quaternion_set(&rp, 1, 1, 1, 0);
eina_quaternion_set(&rq, 0, 1, 1, 0);
eina_quaternion_set(&res, 0.5, 1.0, 1.0, 0.0);
eina_quaternion_lerp(&rr, &rp, &rq, 0.5);
fail_if(!eina_quaternion_cmp(&rr, &res));
eina_quaternion_set(&rp, 0, 0, 1, 0);
eina_quaternion_set(&rq, 1, 1, 1, 0);
eina_quaternion_set(&res, 0.5, 0.5, 1.0, 0.0);
eina_quaternion_slerp(&rr, &rp, &rq, 0.5);
fail_if(!eina_quaternion_cmp(&rr, &res));
eina_quaternion_set(&rp, 0, 0, 0, 0);
eina_quaternion_set(&rq, 1, 1, 1, 0);
eina_quaternion_set(&res, 1.0, 1.0, 1.0, 0.0);
eina_quaternion_nlerp(&rr, &rp, &rq, 1.0);
fail_if(!eina_quaternion_cmp(&rr, &res));
eina_shutdown();
}
END_TEST
void
eina_test_quaternion(TCase *tc)
{
@ -395,4 +430,5 @@ eina_test_quaternion(TCase *tc)
//tcase_add_test(tc, eina_test_matrix_quaternion);
tcase_add_test(tc, eina_test_matrix_recompose);
tcase_add_test(tc, eina_test_quaternion_f16p16_lerp);
tcase_add_test(tc, eina_test_quaternion_lerp);
}