[babl] add n_components casting test



commit f366e8cde2ed8b9b42d4430088e2c007efc39da0
Author: Øyvind Kolås <pippin gimp org>
Date:   Mon Apr 28 15:49:39 2014 +0200

    add n_components casting test

 tests/Makefile.am         |    1 +
 tests/n_components_cast.c |   66 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+), 0 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 709bd84..2733a28 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -19,6 +19,7 @@ C_TESTS =                             \
        extract \
        nop \
        n_components            \
+       n_components_cast \
        models                  \
        cairo-RGB24             \
        $(CONCURRENCY_STRESS_TEST)
diff --git a/tests/n_components_cast.c b/tests/n_components_cast.c
new file mode 100644
index 0000000..307431a
--- /dev/null
+++ b/tests/n_components_cast.c
@@ -0,0 +1,66 @@
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * 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 3 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/>.
+ */
+
+#include "config.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <assert.h>
+#include "babl.h"
+#include "common.inc"
+
+int
+main (int    argc,
+      char **argv)
+{
+  int OK = 1;
+  babl_init ();
+  {
+    unsigned char in[][4]   = {{0,1,2,3  },{4,5,6,7    },{8,9,10,11  }};
+    unsigned char out1[][1]  = {{0},        {4},  {8}  };
+    unsigned char out2[][2]  = {{0,1},      {4,5},         {8,9}  };
+    unsigned char out4[][4]  = {{0,1,2,3},  {4,5,6,7},    {8,9,10,11}  };
+    //unsigned char out5[][5]  = {{0,1,2,3,0},  {4,5,6,7,0},{8,9,10,11,0}  };
+
+    CHECK_CONV("RGBAu8 to n1'", unsigned char,
+        babl_format("R'G'B'A u8"),
+        babl_format_n (babl_type ("u8"), 1),
+        in, out1);
+
+
+    CHECK_CONV("RGBAu8 to n2'", unsigned char,
+        babl_format("R'G'B'A u8"),
+        babl_format_n (babl_type ("u8"), 2),
+        in, out2);
+
+
+    CHECK_CONV("RGBAu8 to n4'", unsigned char,
+        babl_format("R'G'B'A u8"),
+        babl_format_n (babl_type ("u8"), 4),
+        in, out4);
+
+    /* XXX: uncomment this when it passes
+    CHECK_CONV("RGBAu8 to n5'", unsigned char,
+        babl_format("R'G'B'A u8"),
+        babl_format_n (babl_type ("u8"), 5),
+        in, out5);
+     */
+  }
+
+  babl_exit ();
+  return !OK;
+}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]