grim/guifications3

moved testcolor.c to gtester

2010-12-22, Gary Kramlich
5c9fc134b59e
Parents a54947b5b3d2
Children 35f172415ece
moved testcolor.c to gtester

closes #674
--- a/gflib-ui/tests/testcolor.c Wed Dec 22 17:52:38 2010 -0600
+++ b/gflib-ui/tests/testcolor.c Wed Dec 22 22:50:19 2010 -0600
@@ -19,452 +19,230 @@
#include <gf_lib_ui.h>
/******************************************************************************
- * Structs
+ * RGB Tests
*****************************************************************************/
-typedef struct {
- guint8 red;
- guint8 green;
- guint8 blue;
-} TestGfColorRGBData;
-
-/******************************************************************************
- * Tests
- *****************************************************************************/
-static void
-test_gf_color_from_rgb(gconstpointer d) {
- TestGfColorRGBData **data = (TestGfColorRGBData **)d;
- GfColor c;
- gint i = 0;
-
- do {
- g_assert(gf_color_from_rgb(&c, data[i]->red, data[i]->green,
- data[i]->blue) == TRUE);
+struct TestGfColorRGBData {
+ guint8 r;
+ guint8 g;
+ guint8 b;
+};
- g_assert(c.red == data[i]->red &&
- c.green == data[i]->green &&
- c.blue == data[i]->blue);
- i++;
- } while(data[i]->red != 0 &&
- data[i]->green != 0 &&
- data[i]->blue != 0);
-}
+static struct TestGfColorRGBData test_rgb_data[] = {
+ { 0, 0, 0 },
+ { 127, 0, 0 },
+ { 127, 127, 0 },
+ { 0, 127, 0 },
+ { 0, 127, 127 },
+ { 0, 0, 127 },
+ { 127, 0, 127 },
+ { 127, 127, 127 },
+ { 255, 0, 0 },
+ { 255, 255, 0 },
+ { 0, 255, 0 },
+ { 0, 255, 255 },
+ { 0, 0, 255 },
+ { 255, 0, 255 },
+ { 255, 255, 255 },
+};
-#if 0
-/******************************************************************************
- * Color to RGB
- *****************************************************************************/
-#define COLOR_TO_RGB(r,g,b) { \
- GfColor c; \
- guint8 or, og, ob; \
- \
- or = og = ob = 0; \
- \
- c.red = r; \
- c.green = g; \
- c.blue = b; \
- \
- fail_unless(gf_color_to_rgb(&c, &or, &og, &ob), NULL); \
- \
- fail_unless(or == r && og == g && ob == b, NULL); \
+static void
+test_gf_color_from_rgb(void) {
+ GfColor c;
+ gint i, sz;
+
+ sz = G_N_ELEMENTS(test_rgb_data);
+
+ for(i = 0; i < sz; i++) {
+ g_assert(gf_color_from_rgb(&c, test_rgb_data[i].r,
+ test_rgb_data[i].g,
+ test_rgb_data[i].b) == TRUE);
+
+ g_assert(c.red == test_rgb_data[i].r &&
+ c.green == test_rgb_data[i].g &&
+ c.blue == test_rgb_data[i].b);
+
+ }
}
-START_TEST(test_color_to_rgb_black)
- COLOR_TO_RGB( 0, 0, 0);
-END_TEST
-
-START_TEST(test_color_to_rgb_dark_red)
- COLOR_TO_RGB(127, 0, 0);
-END_TEST
-
-START_TEST(test_color_to_rgb_dark_yellow)
- COLOR_TO_RGB(127, 127, 0);
-END_TEST
-
-START_TEST(test_color_to_rgb_dark_green)
- COLOR_TO_RGB( 0, 127, 0);
-END_TEST
-
-START_TEST(test_color_to_rgb_dark_cyan)
- COLOR_TO_RGB( 0, 127, 127);
-END_TEST
-
-START_TEST(test_color_to_rgb_dark_blue)
- COLOR_TO_RGB( 0, 0, 127);
-END_TEST
-
-START_TEST(test_color_to_rgb_purple)
- COLOR_TO_RGB(127, 0, 127);
-END_TEST
-
-START_TEST(test_color_to_rgb_gray)
- COLOR_TO_RGB(127, 127, 127);
-END_TEST
+static void
+test_gf_color_to_rgb(void) {
+ GfColor c;
+ gint i, sz;
+ guint8 r, g, b;
-START_TEST(test_color_to_rgb_red)
- COLOR_TO_RGB(255, 0, 0);
-END_TEST
-
-START_TEST(test_color_to_rgb_yellow)
- COLOR_TO_RGB(255, 255, 0);
-END_TEST
-
-START_TEST(test_color_to_rgb_green)
- COLOR_TO_RGB( 0, 255, 0);
-END_TEST
-
-START_TEST(test_color_to_rgb_cyan)
- COLOR_TO_RGB( 0, 255, 255);
-END_TEST
-
-START_TEST(test_color_to_rgb_blue)
- COLOR_TO_RGB( 0, 0, 255);
-END_TEST
-
-START_TEST(test_color_to_rgb_magenta)
- COLOR_TO_RGB(255, 0, 255);
-END_TEST
-
-START_TEST(test_color_to_rgb_white)
- COLOR_TO_RGB(255, 255, 255);
-END_TEST
-
-/******************************************************************************
- * Color from HSV
- *****************************************************************************/
-#define COLOR_FROM_HSV(h,s,v,r,g,b) { \
- GfColor c; \
- \
- fail_unless(gf_color_from_hsv(&c, h, s, v) == TRUE, NULL); \
- \
- fail_unless(c.red == r && c.green == g && c.blue == b, NULL); \
-}
+ sz = G_N_ELEMENTS(test_rgb_data);
-START_TEST(test_color_from_hsv_black)
- COLOR_FROM_HSV( 0, 0, 0, 0, 0, 0);
-END_TEST
-
-START_TEST(test_color_from_hsv_dark_red)
- COLOR_FROM_HSV( 0, 255, 127, 127, 0, 0);
-END_TEST
-
-START_TEST(test_color_from_hsv_dark_yellow)
- COLOR_FROM_HSV( 60, 255, 127, 127, 127, 0);
-END_TEST
-
-START_TEST(test_color_from_hsv_dark_green)
- COLOR_FROM_HSV(120, 255, 127, 0, 127, 0);
-END_TEST
-
-START_TEST(test_color_from_hsv_dark_cyan)
- COLOR_FROM_HSV(180, 255, 127, 0, 127, 127);
-END_TEST
-
-START_TEST(test_color_from_hsv_dark_blue)
- COLOR_FROM_HSV(240, 255, 127, 0, 0, 127);
-END_TEST
-
-START_TEST(test_color_from_hsv_purple)
- COLOR_FROM_HSV(300, 255, 127, 127, 0, 127);
-END_TEST
-
-START_TEST(test_color_from_hsv_gray)
- COLOR_FROM_HSV( 0, 0, 127, 127, 127, 127);
-END_TEST
-
-START_TEST(test_color_from_hsv_red)
- COLOR_FROM_HSV( 0, 255, 255, 255, 0, 0);
-END_TEST
+ for(i = 0; i < sz; i++) {
+ c.red = test_rgb_data[i].r;
+ c.green = test_rgb_data[i].g;
+ c.blue = test_rgb_data[i].b;
-START_TEST(test_color_from_hsv_yellow)
- COLOR_FROM_HSV( 60, 255, 255, 255, 255, 0);
-END_TEST
-
-START_TEST(test_color_from_hsv_green)
- COLOR_FROM_HSV(120, 255, 255, 0, 255, 0);
-END_TEST
-
-START_TEST(test_color_from_hsv_cyan)
- COLOR_FROM_HSV(180, 255, 255, 0, 255, 255);
-END_TEST
-
-START_TEST(test_color_from_hsv_blue)
- COLOR_FROM_HSV(240, 255, 255, 0, 0, 255);
-END_TEST
-
-START_TEST(test_color_from_hsv_magenta)
- COLOR_FROM_HSV(300, 255, 255, 255, 0, 255);
-END_TEST
+ g_assert(gf_color_to_rgb(&c, &r, &g, &b) == TRUE);
-START_TEST(test_color_from_hsv_white)
- COLOR_FROM_HSV( 0, 0, 255, 255, 255, 255);
-END_TEST
-
-/******************************************************************************
- * Color to HSV
- *****************************************************************************/
-#define COLOR_TO_HSV(r,g,b,h,s,v) { \
- GfColor c; \
- guint8 os, ov; \
- guint16 oh; \
- \
- oh = os = ov = 0; \
- \
- c.red = r; \
- c.green = g; \
- c.blue = b; \
- \
- fail_unless(gf_color_to_hsv(&c, &oh, &os, &ov), NULL); \
- \
- fail_unless(oh == h && os == s && ov == v, NULL); \
+ g_assert(r == test_rgb_data[i].r &&
+ g == test_rgb_data[i].g &&
+ b == test_rgb_data[i].b);
+ }
}
-START_TEST(test_color_to_hsv_black)
- COLOR_TO_HSV( 0, 0, 0, 0, 0, 0);
-END_TEST
-
-START_TEST(test_color_to_hsv_dark_red)
- COLOR_TO_HSV(128, 0, 0, 0, 255, 128);
-END_TEST
-
-START_TEST(test_color_to_hsv_dark_yellow)
- COLOR_TO_HSV(128, 128, 0, 60, 255, 128);
-END_TEST
-
-START_TEST(test_color_to_hsv_dark_green)
- COLOR_TO_HSV( 0, 128, 0, 120, 255, 128);
-END_TEST
+/******************************************************************************
+ * HSV Tests
+ *****************************************************************************/
+struct TestGfColorHSVData {
+ guint16 h;
+ guint8 s;
+ guint8 v;
-START_TEST(test_color_to_hsv_dark_cyan)
- COLOR_TO_HSV( 0, 128, 128, 180, 255, 128);
-END_TEST
-
-START_TEST(test_color_to_hsv_dark_blue)
- COLOR_TO_HSV( 0, 0, 128, 240, 255, 128);
-END_TEST
-
-START_TEST(test_color_to_hsv_purple)
- COLOR_TO_HSV(128, 0, 127, 300, 255, 128);
-END_TEST
-
-START_TEST(test_color_to_hsv_gray)
- COLOR_TO_HSV(128, 128, 128, 0, 0, 128);
-END_TEST
+ guint8 r;
+ guint8 g;
+ guint8 b;
+};
-START_TEST(test_color_to_hsv_red)
- COLOR_TO_HSV(255, 0, 0, 0, 255, 255);
-END_TEST
-
-START_TEST(test_color_to_hsv_yellow)
- COLOR_TO_HSV(255, 255, 0, 60, 255, 255);
-END_TEST
-
-START_TEST(test_color_to_hsv_green)
- COLOR_TO_HSV( 0, 255, 0, 120, 255, 255);
-END_TEST
-
-START_TEST(test_color_to_hsv_cyan)
- COLOR_TO_HSV( 0, 255, 255, 180, 255, 255);
-END_TEST
+static struct TestGfColorHSVData test_hsv_data[] = {
+ { 0, 0, 0, 0, 0, 0 }, /* black */
+ { 0, 255, 127, 127, 0, 0 }, /* dark red */
+ { 60, 255, 127, 127, 127, 0 }, /* dark yellow */
+ { 120, 255, 127, 0, 127, 0 }, /* dark green */
+ { 180, 255, 127, 0, 127, 127 }, /* dark cyan */
+ { 240, 255, 127, 0, 0, 127 }, /* dark blue */
+ { 300, 255, 127, 127, 0, 127 }, /* purple */
+ { 0, 0, 127, 127, 127, 127 }, /* gray */
+ { 0, 255, 255, 255, 0, 0 }, /* red */
+ { 60, 255, 255, 255, 255, 0 }, /* yellow */
+ { 120, 255, 255, 0, 255, 0 }, /* green */
+ { 180, 255, 255, 0, 255, 255 }, /* cyan */
+ { 240, 255, 255, 0, 0, 255 }, /* blue */
+ { 300, 255, 255, 255, 0, 255 }, /* magenta */
+ { 0, 0, 255, 255, 255, 255 }, /* white */
+};
-START_TEST(test_color_to_hsv_blue)
- COLOR_TO_HSV( 0, 0, 255, 240, 255, 255);
-END_TEST
+static void
+test_gf_color_from_hsv(void) {
+ GfColor c;
+ gint i, sz;
-START_TEST(test_color_to_hsv_magenta)
- COLOR_TO_HSV(255, 0, 255, 300, 255, 255);
-END_TEST
+ sz = G_N_ELEMENTS(test_hsv_data);
-START_TEST(test_color_to_hsv_white)
- COLOR_TO_HSV(255, 255, 255, 0, 0, 255);
-END_TEST
+ for(i = 0; i < sz; i++) {
+ g_assert(gf_color_from_hsv(&c, test_hsv_data[i].h,
+ test_hsv_data[i].s,
+ test_hsv_data[i].v) == TRUE);
-/******************************************************************************
- * HTML to GfColor
- *****************************************************************************/
-#define HTML_TO_COLOR(html,r,g,b) { \
- GfColor c; \
- \
- fail_unless(gf_color_from_html(&c, (html)), NULL); \
- \
- fail_unless(c.red == r && c.green == g && c.blue == b, NULL);\
+ g_assert(c.red == test_hsv_data[i].r &&
+ c.green == test_hsv_data[i].g &&
+ c.blue == test_hsv_data[i].b);
+ }
}
-START_TEST(test_html_to_color_black)
- HTML_TO_COLOR("#000000", 0, 0, 0);
-END_TEST
-
-START_TEST(test_html_to_color_dark_red)
- HTML_TO_COLOR("#7f0000", 127, 0, 0);
-END_TEST
-
-START_TEST(test_html_to_color_dark_yellow)
- HTML_TO_COLOR("#7f7f00", 127, 127, 0);
-END_TEST
+static void
+test_gf_color_to_hsv(void) {
+ GfColor c;
+ gint i, sz;
+ guint16 h;
+ guint8 s, v;
-START_TEST(test_html_to_color_dark_green)
- HTML_TO_COLOR("#007f00", 0, 127, 0);
-END_TEST
-
-START_TEST(test_html_to_color_dark_cyan)
- HTML_TO_COLOR("#007f7f", 0, 127, 127);
-END_TEST
-
-START_TEST(test_html_to_color_dark_blue)
- HTML_TO_COLOR("#00007f", 0, 0, 127);
-END_TEST
-
-START_TEST(test_html_to_color_purple)
- HTML_TO_COLOR("#7f007f", 127, 0, 127);
-END_TEST
+ sz = G_N_ELEMENTS(test_hsv_data);
-START_TEST(test_html_to_color_gray)
- HTML_TO_COLOR("#7f7f7f", 127, 127, 127);
-END_TEST
-
-START_TEST(test_html_to_color_red)
- HTML_TO_COLOR("#ff0000", 255, 0, 0);
-END_TEST
-
-START_TEST(test_html_to_color_yellow)
- HTML_TO_COLOR("#ffff00", 255, 255, 0);
-END_TEST
-
-START_TEST(test_html_to_color_green)
- HTML_TO_COLOR("#00ff00", 0, 255, 0);
-END_TEST
+ for(i = 0; i < sz; i++) {
+ c.red = test_hsv_data[i].r;
+ c.green = test_hsv_data[i].g;
+ c.blue = test_hsv_data[i].b;
-START_TEST(test_html_to_color_cyan)
- HTML_TO_COLOR("#00ffff", 0, 255, 255);
-END_TEST
-
-START_TEST(test_html_to_color_blue)
- HTML_TO_COLOR("#0000ff", 0, 0, 255);
-END_TEST
+ g_assert(gf_color_to_hsv(&c, &h, &s, &v) == TRUE);
-START_TEST(test_html_to_color_magenta)
- HTML_TO_COLOR("#ff00ff", 255, 0, 255);
-END_TEST
-
-START_TEST(test_html_to_color_white)
- HTML_TO_COLOR("#ffffff", 255, 255, 255);
-END_TEST
+ g_assert(h == test_hsv_data[i].h &&
+ s == test_hsv_data[i].s &&
+ v == test_hsv_data[i].v);
+ }
+}
/******************************************************************************
- * Color to HTML
+ * HTML Tests
*****************************************************************************/
-#define COLOR_TO_HTML(r,g,b,html) {\
- GfColor c; \
- gchar *h; \
- gint result; \
- \
- c.red = (r); \
- c.green = (g); \
- c.blue = (b); \
- \
- h = gf_color_to_html(&c); \
- \
- fail_unless(h != NULL, NULL); \
- \
- result = strcmp((html), h); \
- \
- g_free(h); \
- \
- fail_unless(result == 0, NULL); \
+struct TestGfColorHTMLData {
+ const gchar *html;
+ guint8 r;
+ guint8 g;
+ guint8 b;
+};
+
+static struct TestGfColorHTMLData test_html_data[] = {
+ { "#000000", 0, 0, 0 }, /* black */
+ { "#7f0000", 127, 0, 0 }, /* dark red */
+ { "#7f7f00", 127, 127, 0 }, /* dark yellow */
+ { "#007f00", 0, 127, 0 }, /* dark green */
+ { "#007f7f", 0, 127, 127 }, /* dark cyan */
+ { "#00007f", 0, 0, 127 }, /* dark blue */
+ { "#7f007f", 127, 0, 127 }, /* purple */
+ { "#7f7f7f", 127, 127, 127 }, /* gray */
+ { "#ff0000", 255, 0, 0 }, /* red */
+ { "#ffff00", 255, 255, 0 }, /* yellow */
+ { "#00ff00", 0, 255, 0 }, /* green */
+ { "#00ffff", 0, 255, 255 }, /* cyan */
+ { "#0000ff", 0, 0, 255 }, /* blue */
+ { "#ff00ff", 255, 0, 255 }, /* magenta */
+ { "#ffffff", 255, 255, 255 }, /* white */
+};
+
+static void
+test_gf_color_from_html(void) {
+ GfColor c;
+ gint i, sz;
+
+ sz = G_N_ELEMENTS(test_html_data);
+
+ for(i = 0; i < sz; i++) {
+ g_assert(gf_color_from_html(&c, test_html_data[i].html) == TRUE);
+
+ g_assert(c.red == test_html_data[i].r &&
+ c.green == test_html_data[i].g &&
+ c.blue == test_html_data[i].b);
+ }
}
-START_TEST(test_color_to_html_black)
- COLOR_TO_HTML( 0, 0, 0, "#000000");
-END_TEST
-
-START_TEST(test_color_to_html_dark_red)
- COLOR_TO_HTML(127, 0, 0, "#7f0000");
-END_TEST
-
-START_TEST(test_color_to_html_dark_yellow)
- COLOR_TO_HTML(127, 127, 0, "#7f7f00");
-END_TEST
+static void
+test_gf_color_to_html(void) {
+ GfColor c;
+ gint i, sz, r;
+ gchar *html = NULL;
-START_TEST(test_color_to_html_dark_green)
- COLOR_TO_HTML( 0, 127, 0, "#007f00");
-END_TEST
-
-START_TEST(test_color_to_html_dark_cyan)
- COLOR_TO_HTML( 0, 127, 127, "#007f7f");
-END_TEST
-
-START_TEST(test_color_to_html_dark_blue)
- COLOR_TO_HTML( 0, 0, 127, "#00007f");
-END_TEST
-
-START_TEST(test_color_to_html_purple)
- COLOR_TO_HTML(127, 0, 127, "#7f007f");
-END_TEST
+ sz = G_N_ELEMENTS(test_html_data);
-START_TEST(test_color_to_html_gray)
- COLOR_TO_HTML(127, 127, 127, "#7f7f7f");
-END_TEST
-
-START_TEST(test_color_to_html_red)
- COLOR_TO_HTML(255, 0, 0, "#ff0000");
-END_TEST
+ for(i = 0; i < sz; i++) {
+ c.red = test_html_data[i].r;
+ c.green = test_html_data[i].g;
+ c.blue = test_html_data[i].b;
-START_TEST(test_color_to_html_yellow)
- COLOR_TO_HTML(255, 255, 0, "#ffff00");
-END_TEST
-
-START_TEST(test_color_to_html_green)
- COLOR_TO_HTML( 0, 255, 0, "#00ff00");
-END_TEST
+ html = gf_color_to_html(&c);
-START_TEST(test_color_to_html_cyan)
- COLOR_TO_HTML( 0, 255, 255, "#00ffff");
-END_TEST
+ r = g_utf8_collate(html, test_html_data[i].html);
-START_TEST(test_color_to_html_blue)
- COLOR_TO_HTML( 0, 0, 255, "#0000ff");
-END_TEST
+ g_free(html);
-START_TEST(test_color_to_html_magenta)
- COLOR_TO_HTML(255, 0, 255, "#ff00ff");
-END_TEST
-
-START_TEST(test_color_to_html_white)
- COLOR_TO_HTML(255, 255, 255, "#ffffff");
-END_TEST
-#endif
+ g_assert(r == 0);
+ }
+}
/******************************************************************************
* Main
*****************************************************************************/
gint
main(gint argc, gchar **argv) {
- TestGfColorRGBData rgb_data[] = {
- { 0, 0, 0 },
- { 127, 0, 0 },
- { 127, 127, 0 },
- { 0, 127, 0 },
- { 0, 127, 127 },
- { 0, 0, 127 },
- { 127, 0, 127 },
- { 127, 127, 127 },
- { 255, 0, 0 },
- { 255, 255, 0 },
- { 0, 255, 0 },
- { 0, 255, 255 },
- { 0, 0, 255 },
- { 255, 0, 255 },
- { 255, 255, 255 },
- { 0, 0, 0 }, /* end point */
- };
-
g_test_init(&argc, &argv, NULL);
gf_lib_init(NULL, NULL);
- /* from rgb tests */
- g_test_add_data_func("/gfcolor/from_rgb/",
- rgb_data,
- test_gf_color_from_rgb);
+ /* rgb tests */
+ g_test_add_func("/gfcolor/rgb/from", test_gf_color_from_rgb);
+ g_test_add_func("/gfcolor/rgb/to", test_gf_color_to_rgb);
+
+ /* hsv tests */
+ g_test_add_func("/gfcolor/hsv/from", test_gf_color_from_hsv);
+ g_test_add_func("/gfcolor/hsv/to", test_gf_color_to_hsv);
+
+ /* html tests */
+ g_test_add_func("/gfcolor/html/from", test_gf_color_from_html);
+ g_test_add_func("/gfcolor/html/to", test_gf_color_to_html);
return g_test_run();
}