eina: add all test cases for eina_vector2.
authorse.osadchy <se.osadchy@samsung.com>
Wed, 13 Jan 2016 14:43:23 +0000 (15:43 +0100)
committerStefan Schmidt <stefan@osg.samsung.com>
Wed, 13 Jan 2016 16:30:50 +0000 (17:30 +0100)
Summary: All tests passes for eina_vector2 functions.

Reviewers: cedric, stefan_schmidt

Subscribers: jpeg

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

src/tests/eina/eina_test_vector.c

index a45d1b5..57bc4bb 100644 (file)
 #include "eina_suite.h"
 #include "Eina.h"
 
-START_TEST(eina_test_vector_operations)
+START_TEST(eina_test_vector2_operations)
 {
-   Eina_Vector2 out;;
+   Eina_Vector2 v1;
+   Eina_Vector2 v2;
+   Eina_Vector2 v3;
+   Eina_Matrix2 m2;
+   Eina_Matrix3 m3;
    double x = 1;
    double y = 2;
+   double res = 0;
+   const double arr[] = {5, 5};
 
    eina_init();
 
-   eina_vector2_set(&out, x, y);
-   fail_if((out.x != 1) || (out.y != 2));
+   eina_vector2_set(&v1, x, y);
+   fail_if((v1.x != 1) || (v1.y != 2));
+
+   eina_vector2_array_set(&v2, &arr);
+   fail_if((v2.x != 5) || (v2.y != 5));
+
+   eina_vector2_copy(&v1, &v2);
+   fail_if((v1.x != 5) || (v1.y != 5));
+
+   eina_vector2_negate(&v1, &v2);
+   fail_if((v1.x != -5) || (v1.y != -5));
+
+   eina_vector2_set(&v1, x, y);
+   eina_vector2_add(&v3, &v1, &v2);
+   fail_if((v3.x != 6) || (v3.y != 7));
+
+   eina_vector2_subtract(&v3, &v2, &v1);
+   fail_if((v3.x != 4) || (v3.y != 3));
+
+   eina_vector2_scale(&v3, &v1, y);
+   fail_if((v3.x != 2) || (v3.y != 4));
+
+   res = eina_vector2_dot_product(&v1, &v2);
+   fail_if(res != 15);
+
+   res = eina_vector2_length_get(&v2);
+   fail_if((res - sqrt(50)) > DBL_EPSILON);
+
+   res = eina_vector2_length_square_get(&v2);
+   fail_if(res != 50);
+
+   res = eina_vector2_distance_get(&v2, &v1);
+   fail_if((res - sqrt(25)) > DBL_EPSILON);
+
+   res = eina_vector2_distance_square_get(&v2, &v1);
+   fail_if(res != 25);
+
+   eina_vector2_normalize(&v3, &v2);
+   fail_if((v3.x - v2.x / sqrt(50)) > DBL_EPSILON ||
+           (v3.y - v2.y / sqrt(50)) > DBL_EPSILON);
+
+   eina_matrix2_values_set(&m2,
+                          2, 2,
+                          2, 2);
+   eina_vector2_transform(&v3, &m2, &v1);
+   fail_if((v3.x != 6) || (v3.y != 6));
+
+   eina_matrix3_values_set(&m3,
+                          2, 2, 2,
+                          2, 2, 2,
+                          2, 2, 2);
+   eina_vector2_homogeneous_position_transform(&v3, &m3, &v1);
+   fail_if((v3.x != 1) || (v3.y != 1));
+
+   eina_vector2_homogeneous_direction_transform(&v3, &m3, &v1);
+   fail_if((v3.x != 6) || (v3.y != 6));
 
    eina_shutdown();
 }
@@ -45,5 +105,5 @@ END_TEST
 void
 eina_test_vector(TCase *tc)
 {
-   tcase_add_test(tc, eina_test_vector_operations);
+   tcase_add_test(tc, eina_test_vector2_operations);
 }