grim/gplate

Parents bbab7cbd784c
Children 25055d09494c
overhauled test-variables again. This time we support floats and doubles without a bunch of crazy stuff. This won't show us all of the failures we have for the function, but it'll work for now.
--- a/tests/test-variables.c Sun Nov 15 01:23:15 2009 -0600
+++ b/tests/test-variables.c Sun Nov 15 01:47:59 2009 -0600
@@ -1,63 +1,83 @@
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif /* HAVE_CONFIG_H */
-
#include <gplate/gplate.h>
/******************************************************************************
- * Fixtures
- *****************************************************************************/
-typedef struct {
- GPlateVariable *variable;
-} GPlateVariableTestFixture;
-
-static void
-gplate_variable_test_teardown(GPlateVariableTestFixture *f, gconstpointer d) {
- g_object_unref(G_OBJECT(f->variable));
-}
-
-/******************************************************************************
* Tests
*****************************************************************************/
-static void
-gplate_variable_test_string(GPlateVariableTestFixture *f, gconstpointer d) {
- const gchar *input = (const gchar *)d;
- const gchar *output = NULL;
+#define gplate_variable_test_value(v, expected) \
+ G_STMT_START { \
+ g_assert_cmpstr(gplate_variable_get_value((v)), ==, (expected)); \
+ g_object_unref(G_OBJECT((v))); \
+ } G_STMT_END
+
+#define gplate_variable_test_from_string_helper(input, output) \
+ G_STMT_START { \
+ GPlateVariable *v = gplate_variable_new_from_string("test", (input)); \
+ gplate_variable_test_value(v, (output)); \
+ } G_STMT_END
- f->variable = gplate_variable_new_from_string("test", input);
+static void
+gplate_variable_test_from_string(void) {
+ gplate_variable_test_from_string_helper(NULL, NULL);
+ gplate_variable_test_from_string_helper("", "");
+ gplate_variable_test_from_string_helper(
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
+ gplate_variable_test_from_string_helper("☀☁☂☃☄", "☀☁☂☃☄");
+}
- output = gplate_variable_get_value(f->variable);
-
- g_assert_cmpstr(output, ==, input);
-}
+#define gplate_variable_test_from_boolean_helper(input, output) \
+ G_STMT_START { \
+ GPlateVariable *v = gplate_variable_new_from_boolean("test", (input)); \
+ gplate_variable_test_value(v, (output)); \
+ } G_STMT_END
static void
-gplate_variable_test_boolean(GPlateVariableTestFixture *f, gconstpointer d) {
- gboolean input = GPOINTER_TO_INT(d);
- const gchar *output = NULL, *expected = NULL;
-
- expected = (input) ? "TRUE" : "FALSE";
+gplate_variable_test_from_boolean(void) {
+ gplate_variable_test_from_boolean_helper(TRUE, "TRUE");
+ gplate_variable_test_from_boolean_helper(FALSE, "FALSE");
+}
- f->variable = gplate_variable_new_from_boolean("test", input);
+#define gplate_variable_test_from_integer_helper(input, output) \
+ G_STMT_START { \
+ GPlateVariable *v = gplate_variable_new_from_integer("test", (input)); \
+ gplate_variable_test_value(v, (output)); \
+ } G_STMT_END
- output = gplate_variable_get_value(f->variable);
-
- g_assert_cmpstr(output, ==, expected);
+static void
+gplate_variable_test_from_integer(void) {
+ gplate_variable_test_from_integer_helper(-1, "-1");
+ gplate_variable_test_from_integer_helper(0, "0");
+ gplate_variable_test_from_integer_helper(1, "1");
}
-static void
-gplate_variable_test_integer(GPlateVariableTestFixture *f, gconstpointer d) {
- gint input = GPOINTER_TO_INT(d), got = 0;
- const gchar *output = NULL;
-
- f->variable = gplate_variable_new_from_integer("test", input);
+#define gplate_variable_test_from_float_helper(input, output) \
+ G_STMT_START { \
+ GPlateVariable *v = gplate_variable_new_from_float("test", (input)); \
+ gplate_variable_test_value(v, (output)); \
+ } G_STMT_END
- output = gplate_variable_get_value(f->variable);
+static void
+gplate_variable_test_from_float(void) {
+ gplate_variable_test_from_float_helper(-1.0f, "-1.000000");
+ gplate_variable_test_from_float_helper(-0.5f, "-0.500000");
+ gplate_variable_test_from_float_helper(0.0f, "0.000000");
+ gplate_variable_test_from_float_helper(0.5f, "0.500000");
+ gplate_variable_test_from_float_helper(1.0f, "1.000000");
+}
- g_assert(output != NULL);
+#define gplate_variable_test_from_double_helper(input, output) \
+ G_STMT_START { \
+ GPlateVariable *v = gplate_variable_new_from_double("test", (input)); \
+ gplate_variable_test_value(v, (output)); \
+ } G_STMT_END
- got = atoi(output);
- g_assert_cmpint(input, ==, got);
+static void
+gplate_variable_test_from_double(void) {
+ gplate_variable_test_from_double_helper(-1.0, "-1");
+ gplate_variable_test_from_double_helper(-0.5, "-0.5");
+ gplate_variable_test_from_double_helper(0.0, "0");
+ gplate_variable_test_from_double_helper(0.5, "0.5");
+ gplate_variable_test_from_double_helper(1.0, "1");
}
/******************************************************************************
@@ -69,55 +89,12 @@
g_test_init(&argc, &argv, NULL);
- /* string tests */
- g_test_add("/string/null", GPlateVariableTestFixture,
- NULL,
- NULL, gplate_variable_test_string,
- gplate_variable_test_teardown);
-
- g_test_add("/string/empty", GPlateVariableTestFixture,
- "",
- NULL, gplate_variable_test_string,
- gplate_variable_test_teardown);
-
- g_test_add("/string/ascii", GPlateVariableTestFixture,
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
- NULL, gplate_variable_test_string,
- gplate_variable_test_teardown);
-
- g_test_add("/string/utf8", GPlateVariableTestFixture,
- "☀☁☂☃☄",
- NULL, gplate_variable_test_string,
- gplate_variable_test_teardown);
+ g_test_add_func("/variable/from_string", gplate_variable_test_from_string);
+ g_test_add_func("/variable/from_boolean", gplate_variable_test_from_boolean);
+ g_test_add_func("/variable/from_integer", gplate_variable_test_from_integer);
+ g_test_add_func("/variable/from_float", gplate_variable_test_from_float);
+ g_test_add_func("/variable/from_double", gplate_variable_test_from_double);
- /* boolean tests */
- g_test_add("/boolean/true", GPlateVariableTestFixture,
- GINT_TO_POINTER(TRUE),
- NULL, gplate_variable_test_boolean,
- gplate_variable_test_teardown);
-
- g_test_add("/boolean/false", GPlateVariableTestFixture,
- GINT_TO_POINTER(FALSE),
- NULL, gplate_variable_test_boolean,
- gplate_variable_test_teardown);
-
- /* integer tests */
- g_test_add("/integer/positive", GPlateVariableTestFixture,
- GINT_TO_POINTER(1),
- NULL, gplate_variable_test_integer,
- gplate_variable_test_teardown);
-
- g_test_add("/integer/zero", GPlateVariableTestFixture,
- GINT_TO_POINTER(0),
- NULL, gplate_variable_test_integer,
- gplate_variable_test_teardown);
-
- g_test_add("/integer/negative", GPlateVariableTestFixture,
- GINT_TO_POINTER(-1),
- NULL, gplate_variable_test_integer,
- gplate_variable_test_teardown);
-
- /* run 'em! */
return g_test_run();
}