[babl] tests: add a test verifying that buffers are converted between RGB spaces
- From: Øyvind Kolås <ok src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [babl] tests: add a test verifying that buffers are converted between RGB spaces
- Date: Fri, 18 Aug 2017 21:32:41 +0000 (UTC)
commit e07f0e02458dd17ddf7a47592516748237bc55b3
Author: Øyvind Kolås <pippin gimp org>
Date: Fri Aug 18 23:31:59 2017 +0200
tests: add a test verifying that buffers are converted between RGB spaces
tests/Makefile.am | 1 +
tests/chromaticities.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 78 insertions(+), 0 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 0db0ccd..4c3841f 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -6,6 +6,7 @@ endif
C_TESTS = \
grayscale_to_rgb \
+ chromaticities \
rgb_to_bgr \
rgb_to_ycbcr \
srgb_to_lab_u8 \
diff --git a/tests/chromaticities.c b/tests/chromaticities.c
new file mode 100644
index 0000000..2c8364a
--- /dev/null
+++ b/tests/chromaticities.c
@@ -0,0 +1,77 @@
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, 2017 Ø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 <math.h>
+#include "babl-internal.h"
+
+#define PIXELS 6
+#define TOLERANCE 0
+
+unsigned char source_buf [PIXELS * 3] =
+{ 0, 0, 0,
+ 127, 127, 127,
+ 255, 255, 255,
+ 255, 0.0, 0.0,
+ 0.0, 255, 0.0,
+ 0.0, 0.0, 255 };
+
+unsigned char reference_buf [PIXELS * 3] =
+{ 0, 0, 0,
+ 145, 145, 145,
+ 255, 255, 255,
+ 255, 43, 6,
+ 0.0, 250, 48,
+ 25, 34, 251};
+
+unsigned char destination_buf [PIXELS * 3];
+
+static int
+test (void)
+{
+ int i;
+ int OK = 1;
+
+ babl_process (babl_fish (babl_format_with_space ("R'G'B' u8", babl_space("Apple")), "R'G'B' u8"),
+ source_buf, destination_buf,
+ PIXELS);
+
+ for (i = 0; i < PIXELS * 3; i++)
+ {
+ if (abs (destination_buf[i] - reference_buf[i]) > TOLERANCE)
+ {
+ babl_log ("%2i (%2i%%3=%i, %2i/3=%i) is %i should be %i",
+ i, i, i % 3, i, i / 3, destination_buf[i], reference_buf[i]);
+ OK = 0;
+ }
+ }
+ if (!OK)
+ return -1;
+ return 0;
+}
+
+int
+main (int argc,
+ char **argv)
+{
+ babl_init ();
+ if (test ())
+ return -1;
+ babl_exit ();
+ return 0;
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]