15 #include "CUnit/Basic.h"
49 "POINT(1.1111111111111 1.1111111111111)",
55 "POINT(1.1111111111111 1.1111111111111)",
61 "LINESTRING(1.1111111111111 1.1111111111111,1.1111111111111 1.1111111111111)",
67 "LINESTRING(1.1111111111111 1.1111111111111,1.1111111111111 1.1111111111111)",
74 "POINT(1.2345678901234 1.2345678901234)",
75 "cx=\"1.23456789\" cy=\"-1.23456789\"",
80 "POINT(1.2345678901234 1.2345678901234)",
81 "x=\"1.23456789\" y=\"-1.23456789\"",
86 "LINESTRING(1.2345678901234 1.2345678901234,2.3456789012345 2.3456789012345)",
87 "M 1.23456789 -1.23456789 L 2.345678901 -2.345678901",
92 "LINESTRING(1.2345678901234 1.2345678901234,2.3456789012345 2.3456789012345)",
93 "M 1.23456789 -1.23456789 l 1.111111011 -1.111111011",
99 "POINT(1E300 -1E300)",
100 "cx=\"1e+300\" cy=\"1e+300\"",
105 "POINT(1E300 -1E300)",
106 "x=\"1e+300\" y=\"1e+300\"",
111 "LINESTRING(1E300 -1E300,1E301 -1E301)",
112 "M 1e+300 1e+300 L 1e+301 1e+301",
116 do_svg_test(
"LINESTRING(1E300 -1E300,1E301 -1E301)",
"M 1e+300 1e+300 l 9e+300 9e+300", 0, 1);
125 "cx=\"0\" cy=\"-1\"",
136 "LINESTRING(0 1 2 3,4 5 6 7)",
142 "LINESTRING(0 1 2 3,4 5 6 7)",
152 "LINESTRING(0 1,2 3,4 5)",
153 "M 0 -1 L 2 -3 4 -5",
158 "POLYGON((0 1,2 3,4 5,0 1))",
159 "M 0 -1 L 2 -3 4 -5 Z",
164 "POLYGON((0 1,2 3,4 5,0 1),(6 7,8 9,10 11,6 7))",
165 "M 0 -1 L 2 -3 4 -5 Z M 6 -7 L 8 -9 10 -11 Z",
170 "MULTIPOINT(0 1,2 3)",
171 "cx=\"0\" cy=\"-1\",cx=\"2\" cy=\"-3\"",
176 "MULTILINESTRING((0 1,2 3,4 5),(6 7,8 9,10 11))",
177 "M 0 -1 L 2 -3 4 -5 M 6 -7 L 8 -9 10 -11",
182 "MULTIPOLYGON(((0 1,2 3,4 5,0 1)),((6 7,8 9,10 11,6 7)))",
183 "M 0 -1 L 2 -3 4 -5 Z M 6 -7 L 8 -9 10 -11 Z",
188 "GEOMETRYCOLLECTION(POINT(0 1),LINESTRING(2 3,4 5))",
189 "cx=\"0\" cy=\"-1\";M 2 -3 L 4 -5",
194 "CIRCULARSTRING(-2 0,0 2,2 0,0 2,2 4)",
195 "M -2 0 A 2 2 0 0 1 2 0 A 2 2 0 0 1 2 -4",
200 "CIRCULARSTRING(4 2,-2 2,4 2)",
201 "M 1 -2 m 3 0 a 3 3 0 1 0 -6 0 a 3 3 0 1 0 6 0",
206 "COMPOUNDCURVE(CIRCULARSTRING(0 0,1 1,1 0),(1 0,0 1))",
207 "M 0 0 A 1 1 0 1 1 1 0 L 0 -1", 0, 0);
211 "MULTICURVE((5 5,3 5,3 3,0 3),CIRCULARSTRING(0 0,2 1,2 2))",
212 "M 5 -5 L 3 -5 3 -3 0 -3 M 0 0 A 2 2 0 0 0 2 -2", 0, 0);
216 "CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0))",
217 "M -2 0 A 1 1 0 0 0 0 0 A 1 1 0 0 0 2 0 A 2 2 0 0 0 -2 0 Z M -1 0 L 0 0 1 0 0 -1 -1 0 Z", 0, 0);
221 "MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0),(-1 0,0 0.5,1 0,0 1,-1 0)),((7 8,10 10,6 14,4 11,7 8)))",
222 "M -2 0 A 1 1 0 0 0 0 0 A 1 1 0 0 0 2 0 A 2 2 0 0 0 -2 0 Z M -1 0 L 0 0 1 0 0 -1 -1 0 Z M 7 -8 L 10 -10 6 -14 4 -11 Z", 0, 0);
226 "GEOMETRYCOLLECTION EMPTY",
232 "GEOMETRYCOLLECTION(POINT(0 1),GEOMETRYCOLLECTION(LINESTRING(2 3,4 5)))",
233 "assvg_geom_buf: 'GeometryCollection' geometry type not supported.");
241 "LINESTRING(0 1,2 3,4 5)",
242 "M 0 -1 l 2 -2 2 -2",
247 "POLYGON((0 1,2 3,4 5,0 1))",
248 "M 0 -1 l 2 -2 2 -2 z",
253 "POLYGON((0 1,2 3,4 5,0 1),(6 7,8 9,10 11,6 7))",
254 "M 0 -1 l 2 -2 2 -2 z M 6 -7 l 2 -2 2 -2 z",
259 "MULTIPOINT(0 1,2 3)",
260 "x=\"0\" y=\"-1\",x=\"2\" y=\"-3\"",
265 "MULTILINESTRING((0 1,2 3,4 5),(6 7,8 9,10 11))",
266 "M 0 -1 l 2 -2 2 -2 M 6 -7 l 2 -2 2 -2",
271 "MULTIPOLYGON(((0 1,2 3,4 5,0 1)),((6 7,8 9,10 11,6 7)))",
272 "M 0 -1 l 2 -2 2 -2 z M 6 -7 l 2 -2 2 -2 z",
277 "GEOMETRYCOLLECTION(POINT(0 1),LINESTRING(2 3,4 5))",
278 "x=\"0\" y=\"-1\";M 2 -3 l 2 -2",
286 "SRID=4326;POINT(0 1)",
287 "cx=\"0\" cy=\"-1\"",
292 "SRID=4326;POINT(0 1)",
298 "SRID=4326;LINESTRING(0 1,2 3)",
304 "SRID=4326;LINESTRING(0 1,2 3)",
315 CU_pSuite suite = CU_add_suite(
"svg_output", NULL, NULL);
static void out_svg_test_srid(void)
static void out_svg_test_geoms(void)
static void out_svg_test_relative(void)
static void do_svg_unsupported(char *in, char *out)
void out_svg_suite_setup(void)
static void out_svg_test_dims(void)
static void do_svg_test(char *in, char *out, int precision, int relative)
static void out_svg_test_precision(void)
void cu_error_msg_reset()
char cu_error_msg[MAX_CUNIT_ERROR_LENGTH+1]
#define ASSERT_VARLENA_EQUAL(v, s)
#define PG_ADD_TEST(suite, testfunc)
#define ASSERT_STRING_EQUAL(o, e)
lwvarlena_t * lwgeom_to_svg(const LWGEOM *geom, int precision, int relative)
Takes a GEOMETRY and returns a SVG representation.
void lwgeom_free(LWGEOM *geom)
#define LW_PARSER_CHECK_NONE
LWGEOM * lwgeom_from_wkt(const char *wkt, const char check)