15 #include "CUnit/Basic.h"
23 static char *
s = NULL;
52 printf(
"error converting '%s' to lwgeom\n", wkt);
62 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"POINT(0.1111 0.1111 0.1111 0)",
WKT_ISO),
"POINT ZM (0.1111 0.1111 0.1111 0)");
64 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"POINT(0 0 0 0)",
WKT_SFSQL),
"POINT(0 0)");
66 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"POINTM(0 0 0)",
WKT_ISO),
"POINT M (0 0 0)");
68 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"POINTM(0 0 0)",
WKT_SFSQL),
"POINT(0 0)");
70 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"POINT(100 100)",
WKT_ISO),
"POINT(100 100)");
72 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"POINT(100 100)",
WKT_SFSQL),
"POINT(100 100)");
74 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"POINT(100.1 100 12 12)",
WKT_ISO),
"POINT ZM (100.1 100 12 12)");
75 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"POINT(100.1 100 12 12)",
WKT_EXTENDED),
"POINT(100.1 100 12 12)");
76 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"POINT(100.1 100 12 12)",
WKT_SFSQL),
"POINT(100.1 100)");
78 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"SRID=100;POINT(100.1 100 12 12)",
WKT_SFSQL),
"POINT(100.1 100)");
79 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"SRID=100;POINT(100.1 100 12 12)",
WKT_EXTENDED),
"SRID=100;POINT(100.1 100 12 12)");
83 "POINT(-123456789012345.12 -1.23456789e+15)");
87 "9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 "
88 "0.000000000000000000000000000001)",
90 "POINT(1e+100 1e-30)");
95 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"LINESTRING(1 2 3 4,5 6 7 8)",
WKT_ISO),
"LINESTRING ZM (1 2 3 4,5 6 7 8)");
96 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"LINESTRING(1 2 3,5 6 7)",
WKT_ISO),
"LINESTRING Z (1 2 3,5 6 7)");
97 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"LINESTRINGM(1 2 3,5 6 7)",
WKT_ISO),
"LINESTRING M (1 2 3,5 6 7)");
102 CU_ASSERT_STRING_EQUAL(
103 cu_wkt(
"POLYGON((100 100 2, 100 200 2, 200 200 2, 200 100 2, 100 100 2))",
WKT_ISO),
104 "POLYGON Z ((100 100 2,100 200 2,200 200 2,200 100 2,100 100 2))"
106 CU_ASSERT_STRING_EQUAL(
107 cu_wkt(
"POLYGON((100 100 2, 100 200 2, 200 200 2, 200 100 2, 100 100 2))",
WKT_EXTENDED),
108 "POLYGON((100 100 2,100 200 2,200 200 2,200 100 2,100 100 2))"
113 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"MULTIPOINT(1 2 3 4,5 6 7 8)",
WKT_ISO),
"MULTIPOINT ZM ((1 2 3 4),(5 6 7 8))");
114 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"MULTIPOINT(1 2 3,5 6 7)",
WKT_ISO),
"MULTIPOINT Z ((1 2 3),(5 6 7))");
115 CU_ASSERT_STRING_EQUAL(
cu_wkt(
"MULTIPOINTM(1 2 3,5 6 7)",
WKT_ISO),
"MULTIPOINT M ((1 2 3),(5 6 7))");
121 CU_ASSERT_STRING_EQUAL(
123 "MULTILINESTRING ZM ((1 2 3 4,5 6 7 8))"
125 CU_ASSERT_STRING_EQUAL(
127 "MULTILINESTRING Z ((1 2 3,5 6 7))"
129 CU_ASSERT_STRING_EQUAL(
131 "MULTILINESTRING M ((1 2 3,5 6 7))"
137 CU_ASSERT_STRING_EQUAL(
138 cu_wkt(
"MULTIPOLYGON(((100 100 2, 100 200 2, 200 200 2, 200 100 2, 100 100 2)))",
WKT_ISO),
139 "MULTIPOLYGON Z (((100 100 2,100 200 2,200 200 2,200 100 2,100 100 2)))"
141 CU_ASSERT_STRING_EQUAL(
142 cu_wkt(
"MULTIPOLYGON(((100 100 2, 100 200 2, 200 200 2, 200 100 2, 100 100 2)))",
WKT_EXTENDED),
143 "MULTIPOLYGON(((100 100 2,100 200 2,200 200 2,200 100 2,100 100 2)))"
150 CU_ASSERT_STRING_EQUAL(
151 cu_wkt(
"GEOMETRYCOLLECTION(POLYGON((100 100 2, 100 200 2, 200 200 2, 200 100 2, 100 100 2)),POINT(.5 .5 .5),CIRCULARSTRING(.8 .8 .8,.8 .8 .8,.8 .8 .8))",
WKT_ISO),
152 "GEOMETRYCOLLECTION Z (POLYGON Z ((100 100 2,100 200 2,200 200 2,200 100 2,100 100 2)),POINT Z (0.5 0.5 0.5),CIRCULARSTRING Z (0.8 0.8 0.8,0.8 0.8 0.8,0.8 0.8 0.8))"
154 CU_ASSERT_STRING_EQUAL(
155 cu_wkt(
"GEOMETRYCOLLECTION(MULTIPOLYGON(((100 100 2, 100 200 2, 200 200 2, 200 100 2, 100 100 2))),MULTIPOINT(.5 .5 .5,1 1 1),CURVEPOLYGON((.8 .8 .8,.8 .8 .8,.8 .8 .8)))",
WKT_ISO),
156 "GEOMETRYCOLLECTION Z (MULTIPOLYGON Z (((100 100 2,100 200 2,200 200 2,200 100 2,100 100 2))),MULTIPOINT Z ((0.5 0.5 0.5),(1 1 1)),CURVEPOLYGON Z ((0.8 0.8 0.8,0.8 0.8 0.8,0.8 0.8 0.8)))"
160 CU_ASSERT_STRING_EQUAL(
162 "GEOMETRYCOLLECTIONM(MULTIPOINTM(0 0 0),POINTM(1 1 1))"
168 CU_ASSERT_STRING_EQUAL(
170 "CIRCULARSTRING ZM (1 2 3 4,4 5 6 7,7 8 9 0)"
172 CU_ASSERT_STRING_EQUAL(
174 "CIRCULARSTRING(1 2 3 4,4 5 6 7,7 8 9 0)"
181 CU_ASSERT_STRING_EQUAL(
182 cu_wkt(
"COMPOUNDCURVE((1 2 3 4,4 5 6 7,7 8 9 0),CIRCULARSTRING(7 8 9 0,4 3 2 1,1 2 3 4,4 5 6 7,7 8 9 0))",
WKT_ISO),
183 "COMPOUNDCURVE ZM ((1 2 3 4,4 5 6 7,7 8 9 0),CIRCULARSTRING ZM (7 8 9 0,4 3 2 1,1 2 3 4,4 5 6 7,7 8 9 0))"
189 CU_ASSERT_STRING_EQUAL(
190 cu_wkt(
"CURVEPOLYGON((1 2 3 4,4 5 6 7,7 8 9 0),CIRCULARSTRING(7 8 9 0,1 2 1 1,1 2 3 4,4 5 6 7,7 8 9 0))",
WKT_ISO),
191 "CURVEPOLYGON ZM ((1 2 3 4,4 5 6 7,7 8 9 0),CIRCULARSTRING ZM (7 8 9 0,1 2 1 1,1 2 3 4,4 5 6 7,7 8 9 0))"
197 CU_ASSERT_STRING_EQUAL(
198 cu_wkt(
"MULTICURVE((1 2 3 4,4 5 6 7,7 8 9 0),CIRCULARSTRING(1 2 3 4,4 5 6 7,7 8 9 0))",
WKT_ISO),
199 "MULTICURVE ZM ((1 2 3 4,4 5 6 7,7 8 9 0),CIRCULARSTRING ZM (1 2 3 4,4 5 6 7,7 8 9 0))"
201 CU_ASSERT_STRING_EQUAL(
202 cu_wkt(
"MULTICURVE(COMPOUNDCURVE((1 2 3 4,4 5 6 7,7 8 9 0),CIRCULARSTRING(7 8 9 0,8 9 0 0,1 2 3 4,4 5 6 7,7 8 9 0)),(1 2 3 4,4 5 6 7,7 8 9 0),CIRCULARSTRING(1 2 3 4,4 5 6 7,7 8 9 0))",
WKT_ISO),
203 "MULTICURVE ZM (COMPOUNDCURVE ZM ((1 2 3 4,4 5 6 7,7 8 9 0),CIRCULARSTRING ZM (7 8 9 0,8 9 0 0,1 2 3 4,4 5 6 7,7 8 9 0)),(1 2 3 4,4 5 6 7,7 8 9 0),CIRCULARSTRING ZM (1 2 3 4,4 5 6 7,7 8 9 0))"
209 CU_ASSERT_STRING_EQUAL(
210 cu_wkt(
"MULTISURFACE(((1 2 3 4,4 5 6 7,7 8 9 0)),CURVEPOLYGON((1 2 3 4,4 5 6 7,7 8 9 0)))",
WKT_ISO),
211 "MULTISURFACE ZM (((1 2 3 4,4 5 6 7,7 8 9 0)),CURVEPOLYGON ZM ((1 2 3 4,4 5 6 7,7 8 9 0)))"
static int init_wkt_out_suite(void)
void wkt_out_suite_setup(void)
static int clean_wkt_out_suite(void)
static void test_wkt_out_circularstring(void)
static void test_wkt_out_polygon(void)
static void test_wkt_out_linestring(void)
static void test_wkt_out_collection(void)
static void test_wkt_out_curvpolygon(void)
static void test_wkt_out_multipolygon(void)
static void test_wkt_out_multipoint(void)
static void test_wkt_out_multisurface(void)
static void test_wkt_out_compoundcurve(void)
static void test_wkt_out_point(void)
static void test_wkt_out_multilinestring(void)
static char * cu_wkt(char *wkt, uint8_t variant)
static void test_wkt_out_multicurve(void)
#define PG_ADD_TEST(suite, testfunc)
#define ASSERT_STRING_EQUAL(o, e)
void lwgeom_free(LWGEOM *geom)
#define LW_PARSER_CHECK_NONE
char * lwgeom_to_wkt(const LWGEOM *geom, uint8_t variant, int precision, size_t *size_out)
WKT emitter function.
LWGEOM * lwgeom_from_wkt(const char *wkt, const char check)