--- 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 @@
/******************************************************************************
*****************************************************************************/
-/******************************************************************************
- *****************************************************************************/
-test_gf_color_from_rgb(gconstpointer d) {
- TestGfColorRGBData **data = (TestGfColorRGBData **)d;
- g_assert(gf_color_from_rgb(&c, data[i]->red, data[i]->green,
- data[i]->blue) == TRUE);
+struct TestGfColorRGBData { - g_assert(c.red == data[i]->red &&
- c.green == data[i]->green &&
- c.blue == data[i]->blue);
- } while(data[i]->red != 0 &&
+static struct TestGfColorRGBData test_rgb_data[] = {
-/******************************************************************************
- *****************************************************************************/
-#define COLOR_TO_RGB(r,g,b) { \
- fail_unless(gf_color_to_rgb(&c, &or, &og, &ob), NULL); \
- fail_unless(or == r && og == g && ob == b, NULL); \
+test_gf_color_from_rgb(void) { + 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].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);
-START_TEST(test_color_to_rgb_dark_red)
- COLOR_TO_RGB(127, 0, 0);
-START_TEST(test_color_to_rgb_dark_yellow)
- COLOR_TO_RGB(127, 127, 0);
-START_TEST(test_color_to_rgb_dark_green)
- COLOR_TO_RGB( 0, 127, 0);
-START_TEST(test_color_to_rgb_dark_cyan)
- COLOR_TO_RGB( 0, 127, 127);
-START_TEST(test_color_to_rgb_dark_blue)
- COLOR_TO_RGB( 0, 0, 127);
-START_TEST(test_color_to_rgb_purple)
- COLOR_TO_RGB(127, 0, 127);
-START_TEST(test_color_to_rgb_gray)
- COLOR_TO_RGB(127, 127, 127);
+test_gf_color_to_rgb(void) { -START_TEST(test_color_to_rgb_red)
- COLOR_TO_RGB(255, 0, 0);
-START_TEST(test_color_to_rgb_yellow)
- COLOR_TO_RGB(255, 255, 0);
-START_TEST(test_color_to_rgb_green)
- COLOR_TO_RGB( 0, 255, 0);
-START_TEST(test_color_to_rgb_cyan)
- COLOR_TO_RGB( 0, 255, 255);
-START_TEST(test_color_to_rgb_blue)
- COLOR_TO_RGB( 0, 0, 255);
-START_TEST(test_color_to_rgb_magenta)
- COLOR_TO_RGB(255, 0, 255);
-START_TEST(test_color_to_rgb_white)
- COLOR_TO_RGB(255, 255, 255);
-/******************************************************************************
- *****************************************************************************/
-#define COLOR_FROM_HSV(h,s,v,r,g,b) { \
- 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);
-START_TEST(test_color_from_hsv_dark_red)
- COLOR_FROM_HSV( 0, 255, 127, 127, 0, 0);
-START_TEST(test_color_from_hsv_dark_yellow)
- COLOR_FROM_HSV( 60, 255, 127, 127, 127, 0);
-START_TEST(test_color_from_hsv_dark_green)
- COLOR_FROM_HSV(120, 255, 127, 0, 127, 0);
-START_TEST(test_color_from_hsv_dark_cyan)
- COLOR_FROM_HSV(180, 255, 127, 0, 127, 127);
-START_TEST(test_color_from_hsv_dark_blue)
- COLOR_FROM_HSV(240, 255, 127, 0, 0, 127);
-START_TEST(test_color_from_hsv_purple)
- COLOR_FROM_HSV(300, 255, 127, 127, 0, 127);
-START_TEST(test_color_from_hsv_gray)
- COLOR_FROM_HSV( 0, 0, 127, 127, 127, 127);
-START_TEST(test_color_from_hsv_red)
- COLOR_FROM_HSV( 0, 255, 255, 255, 0, 0);
+ 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);
-START_TEST(test_color_from_hsv_green)
- COLOR_FROM_HSV(120, 255, 255, 0, 255, 0);
-START_TEST(test_color_from_hsv_cyan)
- COLOR_FROM_HSV(180, 255, 255, 0, 255, 255);
-START_TEST(test_color_from_hsv_blue)
- COLOR_FROM_HSV(240, 255, 255, 0, 0, 255);
-START_TEST(test_color_from_hsv_magenta)
- COLOR_FROM_HSV(300, 255, 255, 255, 0, 255);
+ 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);
-/******************************************************************************
- *****************************************************************************/
-#define COLOR_TO_HSV(r,g,b,h,s,v) { \
- 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);
-START_TEST(test_color_to_hsv_dark_red)
- COLOR_TO_HSV(128, 0, 0, 0, 255, 128);
-START_TEST(test_color_to_hsv_dark_yellow)
- COLOR_TO_HSV(128, 128, 0, 60, 255, 128);
-START_TEST(test_color_to_hsv_dark_green)
- COLOR_TO_HSV( 0, 128, 0, 120, 255, 128);
+/****************************************************************************** + *****************************************************************************/ +struct TestGfColorHSVData { -START_TEST(test_color_to_hsv_dark_cyan)
- COLOR_TO_HSV( 0, 128, 128, 180, 255, 128);
-START_TEST(test_color_to_hsv_dark_blue)
- COLOR_TO_HSV( 0, 0, 128, 240, 255, 128);
-START_TEST(test_color_to_hsv_purple)
- COLOR_TO_HSV(128, 0, 127, 300, 255, 128);
-START_TEST(test_color_to_hsv_gray)
- COLOR_TO_HSV(128, 128, 128, 0, 0, 128);
-START_TEST(test_color_to_hsv_red)
- COLOR_TO_HSV(255, 0, 0, 0, 255, 255);
-START_TEST(test_color_to_hsv_yellow)
- COLOR_TO_HSV(255, 255, 0, 60, 255, 255);
-START_TEST(test_color_to_hsv_green)
- COLOR_TO_HSV( 0, 255, 0, 120, 255, 255);
-START_TEST(test_color_to_hsv_cyan)
- COLOR_TO_HSV( 0, 255, 255, 180, 255, 255);
+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);
+test_gf_color_from_hsv(void) { -START_TEST(test_color_to_hsv_magenta)
- COLOR_TO_HSV(255, 0, 255, 300, 255, 255);
+ sz = G_N_ELEMENTS(test_hsv_data); -START_TEST(test_color_to_hsv_white)
- COLOR_TO_HSV(255, 255, 255, 0, 0, 255);
+ for(i = 0; i < sz; i++) { + g_assert(gf_color_from_hsv(&c, test_hsv_data[i].h, + test_hsv_data[i].v) == TRUE); -/******************************************************************************
- *****************************************************************************/
-#define HTML_TO_COLOR(html,r,g,b) { \
- 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);
-START_TEST(test_html_to_color_dark_red)
- HTML_TO_COLOR("#7f0000", 127, 0, 0);
-START_TEST(test_html_to_color_dark_yellow)
- HTML_TO_COLOR("#7f7f00", 127, 127, 0);
+test_gf_color_to_hsv(void) { -START_TEST(test_html_to_color_dark_green)
- HTML_TO_COLOR("#007f00", 0, 127, 0);
-START_TEST(test_html_to_color_dark_cyan)
- HTML_TO_COLOR("#007f7f", 0, 127, 127);
-START_TEST(test_html_to_color_dark_blue)
- HTML_TO_COLOR("#00007f", 0, 0, 127);
-START_TEST(test_html_to_color_purple)
- HTML_TO_COLOR("#7f007f", 127, 0, 127);
+ sz = G_N_ELEMENTS(test_hsv_data); -START_TEST(test_html_to_color_gray)
- HTML_TO_COLOR("#7f7f7f", 127, 127, 127);
-START_TEST(test_html_to_color_red)
- HTML_TO_COLOR("#ff0000", 255, 0, 0);
-START_TEST(test_html_to_color_yellow)
- HTML_TO_COLOR("#ffff00", 255, 255, 0);
-START_TEST(test_html_to_color_green)
- HTML_TO_COLOR("#00ff00", 0, 255, 0);
+ 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);
-START_TEST(test_html_to_color_blue)
- HTML_TO_COLOR("#0000ff", 0, 0, 255);
+ 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);
-START_TEST(test_html_to_color_white)
- HTML_TO_COLOR("#ffffff", 255, 255, 255);
+ g_assert(h == test_hsv_data[i].h && + s == test_hsv_data[i].s && + v == test_hsv_data[i].v); /******************************************************************************
*****************************************************************************/
-#define COLOR_TO_HTML(r,g,b,html) {\
- h = gf_color_to_html(&c); \
- fail_unless(h != NULL, NULL); \
- result = strcmp((html), h); \
- fail_unless(result == 0, NULL); \
+struct TestGfColorHTMLData { +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 */ +test_gf_color_from_html(void) { + 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");
-START_TEST(test_color_to_html_dark_red)
- COLOR_TO_HTML(127, 0, 0, "#7f0000");
-START_TEST(test_color_to_html_dark_yellow)
- COLOR_TO_HTML(127, 127, 0, "#7f7f00");
+test_gf_color_to_html(void) { -START_TEST(test_color_to_html_dark_green)
- COLOR_TO_HTML( 0, 127, 0, "#007f00");
-START_TEST(test_color_to_html_dark_cyan)
- COLOR_TO_HTML( 0, 127, 127, "#007f7f");
-START_TEST(test_color_to_html_dark_blue)
- COLOR_TO_HTML( 0, 0, 127, "#00007f");
-START_TEST(test_color_to_html_purple)
- COLOR_TO_HTML(127, 0, 127, "#7f007f");
+ sz = G_N_ELEMENTS(test_html_data); -START_TEST(test_color_to_html_gray)
- COLOR_TO_HTML(127, 127, 127, "#7f7f7f");
-START_TEST(test_color_to_html_red)
- COLOR_TO_HTML(255, 0, 0, "#ff0000");
+ 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");
-START_TEST(test_color_to_html_green)
- COLOR_TO_HTML( 0, 255, 0, "#00ff00");
+ html = gf_color_to_html(&c); -START_TEST(test_color_to_html_cyan)
- COLOR_TO_HTML( 0, 255, 255, "#00ffff");
+ r = g_utf8_collate(html, test_html_data[i].html); -START_TEST(test_color_to_html_blue)
- COLOR_TO_HTML( 0, 0, 255, "#0000ff");
-START_TEST(test_color_to_html_magenta)
- COLOR_TO_HTML(255, 0, 255, "#ff00ff");
-START_TEST(test_color_to_html_white)
- COLOR_TO_HTML(255, 255, 255, "#ffffff");
/******************************************************************************
*****************************************************************************/
main(gint argc, gchar **argv) {
- TestGfColorRGBData rgb_data[] = {
- { 0, 0, 0 }, /* end point */
g_test_init(&argc, &argv, NULL);
- g_test_add_data_func("/gfcolor/from_rgb/",
- test_gf_color_from_rgb);
+ g_test_add_func("/gfcolor/rgb/from", test_gf_color_from_rgb); + g_test_add_func("/gfcolor/rgb/to", test_gf_color_to_rgb); + g_test_add_func("/gfcolor/hsv/from", test_gf_color_from_hsv); + g_test_add_func("/gfcolor/hsv/to", test_gf_color_to_hsv); + g_test_add_func("/gfcolor/html/from", test_gf_color_from_html); + g_test_add_func("/gfcolor/html/to", test_gf_color_to_html);