[gnome-color-manager] Add some unit tests to GcmClut and fix up a small error
- From: Richard Hughes <rhughes src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-color-manager] Add some unit tests to GcmClut and fix up a small error
- Date: Fri, 27 Nov 2009 23:18:27 +0000 (UTC)
commit 1017ba1e884d53125ac7f88f23d35e18f55d7079
Author: Richard Hughes <richard hughsie com>
Date: Fri Nov 27 23:18:10 2009 +0000
Add some unit tests to GcmClut and fix up a small error
src/Makefile.am | 1 +
src/gcm-clut.c | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++-
src/gcm-self-test.c | 2 +
3 files changed, 122 insertions(+), 1 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index 68c368a..76796f2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -167,6 +167,7 @@ gcm_self_test_SOURCES = \
gcm-device.c \
gcm-profile.c \
gcm-brightness.c \
+ gcm-clut.c \
egg-test.h \
egg-test.c \
$(NULL)
diff --git a/src/gcm-clut.c b/src/gcm-clut.c
index 487dd34..7f26357 100644
--- a/src/gcm-clut.c
+++ b/src/gcm-clut.c
@@ -191,6 +191,7 @@ gcm_clut_get_array (GcmClut *clut)
min = clut->priv->brightness / 100.0f;
max = (1.0f - min) * (clut->priv->contrast / 100.0f) + min;
+ egg_debug ("min=%f,max=%f", min, max);
custom_gamma = clut->priv->gamma;
array = g_ptr_array_new_with_free_func (g_free);
@@ -198,7 +199,7 @@ gcm_clut_get_array (GcmClut *clut)
/* generate a dummy gamma */
egg_debug ("falling back to dummy gamma");
for (i=0; i<clut->priv->size; i++) {
- value = (i * 0xffff) / clut->priv->size;
+ value = (i * 0xffff) / (clut->priv->size - 1);
data = g_new0 (GcmClutData, 1);
data->red = gcm_clut_get_adjusted_value (value, min, max, custom_gamma);
data->green = gcm_clut_get_adjusted_value (value, min, max, custom_gamma);
@@ -406,3 +407,120 @@ gcm_clut_new (void)
return GCM_CLUT (clut);
}
+/***************************************************************************
+ *** MAKE CHECK TESTS ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+gcm_clut_test (EggTest *test)
+{
+ GcmClut *clut;
+ gboolean ret;
+ GError *error = NULL;
+ GPtrArray *array;
+ const GcmClutData *data;
+
+ if (!egg_test_start (test, "GcmClut"))
+ return;
+
+ /************************************************************/
+ egg_test_title (test, "get a clut object");
+ clut = gcm_clut_new ();
+ egg_test_assert (test, clut != NULL);
+
+ /* set some initial properties */
+ g_object_set (clut,
+ "size", 3,
+ "contrast", 100.0f,
+ "brightness", 0.0f,
+ NULL);
+
+ /************************************************************/
+ egg_test_title (test, "get array");
+ array = gcm_clut_get_array (clut);
+ if (array->len == 3)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "invalid size: %i", array->len);
+
+ /************************************************************/
+ egg_test_title (test, "check values for reset array");
+ data = g_ptr_array_index (array, 0);
+ if (data->red != 0 && data->green != 0 && data->blue != 0)
+ egg_test_failed (test, "invalid data [0]: %i, %i, %i", data->red, data->green, data->blue);
+ data = g_ptr_array_index (array, 1);
+ if (data->red != 32767 && data->green != 32767 && data->blue != 32767)
+ egg_test_failed (test, "invalid data [1]: %i, %i, %i", data->red, data->green, data->blue);
+ data = g_ptr_array_index (array, 2);
+ if (data->red != 65535 && data->green != 65535 && data->blue != 65535)
+ egg_test_failed (test, "invalid data [2]: %i, %i, %i", data->red, data->green, data->blue);
+ egg_test_success (test, NULL);
+
+ g_ptr_array_unref (array);
+
+ /* set some initial properties */
+ g_object_set (clut,
+ "contrast", 99.0f,
+ "brightness", 0.0f,
+ NULL);
+
+ /************************************************************/
+ egg_test_title (test, "get array");
+ array = gcm_clut_get_array (clut);
+ if (array->len == 3)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "invalid size: %i", array->len);
+
+ /************************************************************/
+ egg_test_title (test, "check values for contrast adjusted array");
+ data = g_ptr_array_index (array, 0);
+ if (data->red != 0 && data->green != 0 && data->blue != 0)
+ egg_test_failed (test, "invalid data [0]: %i, %i, %i", data->red, data->green, data->blue);
+ data = g_ptr_array_index (array, 1);
+ if (data->red != 32439 && data->green != 32439 && data->blue != 32439)
+ egg_test_failed (test, "invalid data [1]: %i, %i, %i", data->red, data->green, data->blue);
+ data = g_ptr_array_index (array, 2);
+ if (data->red != 64879 && data->green != 64879 && data->blue != 64879)
+ egg_test_failed (test, "invalid data [2]: %i, %i, %i", data->red, data->green, data->blue);
+ egg_test_success (test, NULL);
+
+ g_ptr_array_unref (array);
+
+ /* set some initial properties */
+ g_object_set (clut,
+ "contrast", 100.0f,
+ "brightness", 1.0f,
+ NULL);
+
+ /************************************************************/
+ egg_test_title (test, "get array");
+ array = gcm_clut_get_array (clut);
+ if (array->len == 3)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "invalid size: %i", array->len);
+
+ /************************************************************/
+ egg_test_title (test, "check values for brightness adjusted array");
+ data = g_ptr_array_index (array, 0);
+ if (data->red != 655 && data->green != 655 && data->blue != 655)
+ egg_test_failed (test, "invalid data [0]: %i, %i, %i", data->red, data->green, data->blue);
+ data = g_ptr_array_index (array, 1);
+ if (data->red != 33094 && data->green != 33094 && data->blue != 33094)
+ egg_test_failed (test, "invalid data [1]: %i, %i, %i", data->red, data->green, data->blue);
+ data = g_ptr_array_index (array, 2);
+ if (data->red != 65535 && data->green != 65535 && data->blue != 65535)
+ egg_test_failed (test, "invalid data [2]: %i, %i, %i", data->red, data->green, data->blue);
+ egg_test_success (test, NULL);
+
+ g_ptr_array_unref (array);
+
+ g_object_unref (clut);
+
+ egg_test_end (test);
+}
+#endif
+
diff --git a/src/gcm-self-test.c b/src/gcm-self-test.c
index acb3be2..0a4bbb4 100644
--- a/src/gcm-self-test.c
+++ b/src/gcm-self-test.c
@@ -30,6 +30,7 @@ void gcm_utils_test (EggTest *test);
void gcm_device_test (EggTest *test);
void gcm_profile_test (EggTest *test);
void gcm_brightness_test (EggTest *test);
+void gcm_clut_test (EggTest *test);
int
main (int argc, char **argv)
@@ -49,6 +50,7 @@ main (int argc, char **argv)
gcm_device_test (test);
gcm_profile_test (test);
gcm_brightness_test (test);
+ gcm_clut_test (test);
return (egg_test_finish (test));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]