15 #include "CUnit/Basic.h"
24 int num_old_failures, num_new_failures;
30 printf(
"\nAssert failed:\n\tFormat [%s] generated an error: %s\n", format,
cu_error_msg);
33 num_old_failures = CU_get_number_of_failures();
34 CU_ASSERT_STRING_EQUAL(actual, expected);
35 num_new_failures = CU_get_number_of_failures();
36 if (num_new_failures > num_old_failures)
38 printf(
"\nAssert failed:\n\t%s\t(actual)\n\t%s\t(expected)\n", actual, expected);
52 printf(
"\nAssert failed:\n\tFormat [%s] did not generate an error.\n", format);
71 "0'0.000\"N 0\xC2\xB0"
76 "20'44.412\"N 45\xC2\xB0"
81 "0'0.000\"N 180\xC2\xB0"
86 "0'0.000\"N 1\xC2\xB0"
91 "59'59.640\"N 0\xC2\xB0"
96 "20'44.412\"S 45\xC2\xB0"
101 "0'0.000\"S 180\xC2\xB0"
106 "0'0.000\"S 1\xC2\xB0"
111 "59'59.640\"S 0\xC2\xB0"
116 "20'44.412\"N 45\xC2\xB0"
121 "0'0.000\"N 180\xC2\xB0"
126 "0'0.000\"N 1\xC2\xB0"
131 "59'59.640\"N 0\xC2\xB0"
136 "20'44.412\"S 45\xC2\xB0"
141 "0'0.000\"S 180\xC2\xB0"
146 "0'0.000\"S 1\xC2\xB0"
151 "59'59.640\"S 0\xC2\xB0"
156 "39'4.356\"N 31\xC2\xB0"
162 "36'0.000\"S 76\xC2\xB0"
208 "D-M-S-C",
"1-0-0-N 22-0-0-E");
210 "D-M-S-C",
"1-0-0-N 22-0-0-E");
215 "POINT(-45.4545 -12.34567)",
"DD.DDD MM.MMM",
"-12.000 20.740 -45.000 27.270");
217 "POINT(-45.4545 -12.34567)",
"DD.DDD MM.MMM C",
"12.000 20.740 S 45.000 27.270 W");
219 "POINT(-45.4545 -12.34567)",
"DD.DDD MM.MMM SS.SSS",
"-12.000 20.000 44.412 -45.000 27.000 16.200");
221 "POINT(-45.4545 -12.34567)",
"DD.DDD MM.MMM SS.SSS C",
"12.000 20.000 44.412 S 45.000 27.000 16.200 W");
228 "POINT(-45.4545 -12.34567)",
"DD.DDDMM.MMMSS.SSSC",
"12.00020.00044.412S 45.00027.00016.200W");
260 "POINT(1.23456 7.89012)",
261 "DD.DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD");
263 "POINT(1.23456 7.89012)",
264 "DD.DDD jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj");
269 #define assert_lwprint_equal(d, precision, expected) \
270 lwprint_double((d), (precision), result); \
271 ASSERT_STRING_EQUAL(result, (expected));
276 static const int precision_start = -1;
280 for (
int i = precision_start; i < precision_end; i++)
287 for (
int i = precision_start; i < precision_end; i++)
297 for (
int i = 1; i < precision_end; i++)
305 for (
int i = 1; i < precision_end; i++)
370 for (
int i = 0; i < 15; i++)
372 for (
int i = 15; i < 20; i++)
375 for (
int i = 0; i < 16; i++)
377 for (
int i = 16; i < 20; i++)
382 for (
int i = 1; i < 15; i++)
392 for (
int i = 2; i < 15; i++)
442 assert_lwprint_equal(7000109.9999999990686774253845214843750000000000, 12,
"7000109.999999999");
445 const double d = 526355.92112222222;
446 const double gridsize = 0.00001;
447 const double gridded = rint(d / gridsize) * gridsize;
497 for (
int i = precision_start; i < precision_end; i++)
511 #define assert_lwprint_roundtrip(d) \
513 char s[OUT_DOUBLE_BUFFER_SIZE] = {0}; \
514 lwprint_double(d, OUT_MAX_DIGITS, s); \
515 ASSERT_DOUBLE_EQUAL(atof(s), d); \
575 CU_pSuite suite = CU_add_suite(
"printing", NULL, NULL);
static void test_lwpoint_to_latlon_default_format(void)
#define assert_lwprint_roundtrip(d)
static void test_lwpoint_to_latlon_oddball_formats(void)
static void test_lwpoint_to_latlon_bad_formats(void)
static void test_lwpoint_to_latlon_format_orders(void)
char result[OUT_DOUBLE_BUFFER_SIZE]
#define assert_lwprint_equal(d, precision, expected)
void print_suite_setup(void)
static void test_lwprint_roundtrip(void)
static void test_lwprint(void)
static void test_lwpoint_to_latlon_optional_format(void)
static void test_lwpoint_to_latlon_assert_error(char *point_wkt, const char *format)
static void test_lwpoint_to_latlon_assert_format(char *point_wkt, const char *format, const char *expected)
void cu_error_msg_reset()
char cu_error_msg[MAX_CUNIT_ERROR_LENGTH+1]
#define PG_ADD_TEST(suite, testfunc)
void lwpoint_free(LWPOINT *pt)
#define LW_PARSER_CHECK_NONE
char * lwpoint_to_latlon(const LWPOINT *p, const char *format)
LWGEOM * lwgeom_from_wkt(const char *wkt, const char check)
#define OUT_DEFAULT_DECIMAL_DIGITS
#define OUT_DOUBLE_BUFFER_SIZE
#define FP_TOLERANCE
Floating point comparators.