384{
385 uint32_t i;
386
387 char *ewkt[] =
388 {
389 "POINT (2.2945672355 48.85822923236)",
390 "POINTZ (2.2945672355 48.85822923236 15)",
391 "POINTM (2.2945672355 48.85822923236 12)",
392 "POINT ZM (2.2945672355 48.85822923236 12 2)",
393 "MULTIPOINT ((-76.45402132523 44.225406213532))",
394 "MULTIPOINT Z ((-76.45402132523 44.225406213532 112))",
395 "MULTIPOINT ZM ((-76.45402132523 44.225406213532 112 44))",
396 "LINESTRING (2.2945672355 48.85822923236, -76.45402132523 44.225406213532)",
397 "LINESTRING Z (2.2945672355 48.85822923236 6, -76.45402132523 44.225406213532 8)",
398 "LINESTRING ZM (2.2945672355 48.85822923236 3 2, -76.45402132523 44.225406213532 9 4)",
399 "MULTILINESTRING ((2.2945672355 48.85822923236, -76.45402132523 44.225406213532))",
400 "MULTILINESTRING Z ((2.2945672355 48.85822923236 4, -76.45402132523 44.225406213532 3))"
401 };
402
403 for ( i = 0; i < (sizeof ewkt/sizeof(char*)); i++ )
404 {
407 GBOX box_from_lwgeom;
410
412
414
417
419
420 CU_ASSERT_TRUE(
gbox_same(&box_from_peek, &box_from_lwgeom));
421
424 }
425}
int gbox_same(const GBOX *g1, const GBOX *g2)
Check if 2 given Gbox are the same.
void gbox_float_round(GBOX *gbox)
Round given GBOX to float boundaries.
void gbox_init(GBOX *gbox)
Zero out all the entries in the GBOX.
GSERIALIZED * gserialized2_from_lwgeom(LWGEOM *geom, size_t *size)
Allocate a new GSERIALIZED from an LWGEOM.
int gserialized2_peek_gbox_p(const GSERIALIZED *g, GBOX *gbox)
int gserialized2_has_bbox(const GSERIALIZED *g)
Check if a GSERIALIZED has a bounding box without deserializing first.
void lwgeom_free(LWGEOM *geom)
#define LW_PARSER_CHECK_NONE
int lwgeom_calculate_gbox(const LWGEOM *lwgeom, GBOX *gbox)
Calculate bounding box of a geometry, automatically taking into account whether it is cartesian or ge...
LWGEOM * lwgeom_from_wkt(const char *wkt, const char check)