cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=6afb497d915e85cb943ff8ffe086acad572025e9

commit 6afb497d915e85cb943ff8ffe086acad572025e9
Author: Subhransu Mohanty <sub.moha...@samsung.com>
Date:   Sun Jul 12 15:39:09 2015 +0900

    eina: add test for Eina_Bezier.
---
 src/Makefile_Eina.am              |   3 +-
 src/tests/eina/eina_suite.c       |   1 +
 src/tests/eina/eina_suite.h       |   1 +
 src/tests/eina/eina_test_bezier.c | 187 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 191 insertions(+), 1 deletion(-)

diff --git a/src/Makefile_Eina.am b/src/Makefile_Eina.am
index 0f1542d..7537e8a 100644
--- a/src/Makefile_Eina.am
+++ b/src/Makefile_Eina.am
@@ -317,7 +317,8 @@ tests/eina/eina_test_xattr.c \
 tests/eina/eina_test_crc.c \
 tests/eina/eina_test_quad.c \
 tests/eina/eina_test_matrix.c \
-tests/eina/eina_test_quaternion.c
+tests/eina/eina_test_quaternion.c \
+tests/eina/eina_test_bezier.c
 
 tests_eina_eina_suite_CPPFLAGS = -I$(top_builddir)/src/lib/efl \
 -DTESTS_WD=\"`pwd`\" \
diff --git a/src/tests/eina/eina_suite.c b/src/tests/eina/eina_suite.c
index 5caa536..42b9006 100644
--- a/src/tests/eina/eina_suite.c
+++ b/src/tests/eina/eina_suite.c
@@ -83,6 +83,7 @@ static const Eina_Test_Case etc[] = {
    { "Quad", eina_test_quad },
    { "Matrix", eina_test_matrix },
    { "Quaternion", eina_test_quaternion },
+   { "Bezier", eina_test_bezier },
    { NULL, NULL }
 };
 
diff --git a/src/tests/eina/eina_suite.h b/src/tests/eina/eina_suite.h
index 845ec9d..b7f2726 100644
--- a/src/tests/eina/eina_suite.h
+++ b/src/tests/eina/eina_suite.h
@@ -68,5 +68,6 @@ void eina_test_crc(TCase *tc);
 void eina_test_quad(TCase *tc);
 void eina_test_matrix(TCase *tc);
 void eina_test_quaternion(TCase *tc);
+void eina_test_bezier(TCase *tc);
 
 #endif /* EINA_SUITE_H_ */
diff --git a/src/tests/eina/eina_test_bezier.c 
b/src/tests/eina/eina_test_bezier.c
new file mode 100644
index 0000000..a7ad8f2
--- /dev/null
+++ b/src/tests/eina/eina_test_bezier.c
@@ -0,0 +1,187 @@
+/* EINA - EFL data type library
+ * Copyright (C) 2015 Subhransu Mohanty <sub.moha...@samsung.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library;
+ * if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <math.h>
+#include <stdio.h>
+
+#include "eina_suite.h"
+#include "Eina.h"
+
+START_TEST(eina_bezier_test_values)
+{
+   Eina_Bezier b;
+   double sx, sy, cx1, cy1, cx2, cy2, ex, ey;
+
+   eina_init();
+   eina_bezier_values_set(&b,
+                          1, 2,
+                          3, 4,
+                          5, 6,
+                          7, 8);
+   eina_bezier_values_get(&b,
+                          &sx, &sy,
+                          &cx1, &cy1,
+                          &cx2, &cy2,
+                          &ex, &ey);
+   fail_if(sx != 1 ||
+           sy != 2 ||
+           cx1 != 3 ||
+           cy1 != 4 ||
+           cx2 != 5 ||
+           cy2 != 6 ||
+           ex != 7 ||
+           ey != 8);
+   eina_shutdown();
+}
+END_TEST
+
+START_TEST(eina_bezier_test_angle)
+{
+   Eina_Bezier b;
+   double angle;
+
+   eina_init();
+   eina_bezier_values_set(&b,
+                          1, 1,
+                          3, 1,
+                          5, 1,
+                          7, 1);
+   angle = eina_bezier_angle_at(&b, 0.5);
+
+   fail_if(angle != 0);
+
+   eina_bezier_values_set(&b,
+                          1, 2,
+                          1, 4,
+                          1, 6,
+                          1, 8);
+   angle = eina_bezier_angle_at(&b, 0.5);
+   fail_if(floor(angle) != 90);
+
+   eina_shutdown();
+}
+END_TEST
+
+START_TEST(eina_bezier_test_length)
+{
+   Eina_Bezier b;
+   double length;
+
+   eina_init();
+   eina_bezier_values_set(&b,
+                          1, 1,
+                          3, 1,
+                          5, 1,
+                          7, 1);
+   length = eina_bezier_length_get(&b);
+   fail_if(floor(length) != 6);
+
+   eina_bezier_values_set(&b,
+                          1, 1,
+                          1, 1,
+                          1, 1,
+                          1, 1);
+   length = eina_bezier_length_get(&b);
+   fail_if(length != 0);
+
+   eina_shutdown();
+}
+END_TEST
+
+START_TEST(eina_bezier_test_t_at)
+{
+   Eina_Bezier b;
+   double length, t;
+
+   eina_init();
+   eina_bezier_values_set(&b,
+                          1, 1,
+                          3, 1,
+                          5, 1,
+                          7, 1);
+   length = eina_bezier_length_get(&b);
+   t = eina_bezier_t_at(&b, 0);
+   fail_if(floor(t) != 0);
+
+   t = eina_bezier_t_at(&b, length);
+   fail_if(t != 1);
+
+   eina_shutdown();
+}
+END_TEST
+
+START_TEST(eina_bezier_test_point_at)
+{
+   Eina_Bezier b;
+   double x, y;
+
+   eina_init();
+   eina_bezier_values_set(&b,
+                          1, 2,
+                          3, 4,
+                          5, 6,
+                          7, 8);
+   eina_bezier_point_at(&b, 0, &x , &y);
+   fail_if(x != 1 ||
+           y != 2);
+
+   eina_bezier_point_at(&b, 1, &x , &y);
+
+   fail_if(x != 7 ||
+           y != 8);
+
+   eina_shutdown();
+}
+END_TEST
+
+START_TEST(eina_bezier_test_split_at_length)
+{
+   Eina_Bezier b, l , r;
+   double len, len1, len2;
+
+   eina_init();
+   eina_bezier_values_set(&b,
+                          1, 2,
+                          3, 4,
+                          5, 6,
+                          7, 8);
+   len = eina_bezier_length_get(&b);
+   eina_bezier_split_at_length(&b, len/3, &l, &r);
+   len1 = eina_bezier_length_get(&l);
+   len2 = eina_bezier_length_get(&r);
+
+   fail_if(len != (len1 + len2));
+
+   eina_shutdown();
+}
+END_TEST
+
+void
+eina_test_bezier(TCase *tc)
+{
+   tcase_add_test(tc, eina_bezier_test_values);
+   tcase_add_test(tc, eina_bezier_test_angle);
+   tcase_add_test(tc, eina_bezier_test_length);
+   tcase_add_test(tc, eina_bezier_test_t_at);
+   tcase_add_test(tc, eina_bezier_test_point_at);
+   tcase_add_test(tc, eina_bezier_test_split_at_length);
+}

-- 


Reply via email to