[gtk/transform-tests: 4/4] gsk: Add some more transform tests
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/transform-tests: 4/4] gsk: Add some more transform tests
- Date: Mon, 3 Jun 2019 16:23:34 +0000 (UTC)
commit 2f7047147d14fdbdf1523aa084c542f27d4052fa
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Jun 3 16:18:55 2019 +0000
gsk: Add some more transform tests
Tests around identity. Seems trivial, but
still managed to find a bug.
testsuite/gsk/transform.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
---
diff --git a/testsuite/gsk/transform.c b/testsuite/gsk/transform.c
index 6026463b90..2fb57b7289 100644
--- a/testsuite/gsk/transform.c
+++ b/testsuite/gsk/transform.c
@@ -279,6 +279,59 @@ test_invert (void)
}
}
+/* some trivialities around identity transforms */
+static void
+test_identity (void)
+{
+ GskTransform *s, *t, *u, *v, *w, *x;
+ char *string;
+ float a, b, c, d, tx, ty;
+ gboolean res;
+
+ s = gsk_transform_new ();
+ t = gsk_transform_new ();
+ u = gsk_transform_transform (gsk_transform_ref (s), NULL);
+
+ g_assert_cmpint (gsk_transform_get_category (s), ==, GSK_TRANSFORM_CATEGORY_IDENTITY);
+ g_assert_cmpint (gsk_transform_get_category (t), ==, GSK_TRANSFORM_CATEGORY_IDENTITY);
+ g_assert_cmpint (gsk_transform_get_category (u), ==, GSK_TRANSFORM_CATEGORY_IDENTITY);
+
+ g_assert_true (gsk_transform_equal (s, t));
+ g_assert_true (gsk_transform_equal (t, u));
+ g_assert_true (gsk_transform_equal (s, u));
+
+ v = gsk_transform_transform (gsk_transform_ref (s), t);
+
+ g_assert_cmpint (gsk_transform_get_category (v), ==, GSK_TRANSFORM_CATEGORY_IDENTITY);
+
+ w = gsk_transform_invert (gsk_transform_ref (v));
+ g_assert_cmpint (gsk_transform_get_category (w), ==, GSK_TRANSFORM_CATEGORY_IDENTITY);
+
+ string = gsk_transform_to_string (s);
+ res = gsk_transform_parse (string, &x);
+
+ g_assert_true (res);
+ g_assert_cmpint (gsk_transform_get_category (x), ==, GSK_TRANSFORM_CATEGORY_IDENTITY);
+
+ gsk_transform_to_2d (s, &a, &b, &c, &d, &tx, &ty);
+
+ g_assert_cmpfloat (a, ==, 1.0f);
+ g_assert_cmpfloat (b, ==, 0.0f);
+ g_assert_cmpfloat (c, ==, 0.0f);
+ g_assert_cmpfloat (d, ==, 1.0f);
+ g_assert_cmpfloat (tx, ==, 0.0f);
+ g_assert_cmpfloat (ty, ==, 0.f);
+
+ gsk_transform_unref (s);
+ gsk_transform_unref (t);
+ gsk_transform_unref (u);
+ gsk_transform_unref (v);
+ gsk_transform_unref (w);
+ gsk_transform_unref (x);
+
+ g_free (string);
+}
+
int
main (int argc,
char *argv[])
@@ -288,6 +341,7 @@ main (int argc,
g_test_add_func ("/transform/conversions/simple", test_conversions_simple);
g_test_add_func ("/transform/conversions/transformed", test_conversions_transformed);
g_test_add_func ("/transform/invert", test_invert);
+ g_test_add_func ("/transform/identity", test_identity);
return g_test_run ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]