PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ test_gserialized1_peek_gbox_p_gets_correct_box()

static void test_gserialized1_peek_gbox_p_gets_correct_box ( void  )
static

Definition at line 1121 of file cu_gserialized1.c.

1122{
1123 uint32_t i;
1124
1125 char *ewkt[] =
1126 {
1127 "POINT (2.2945672355 48.85822923236)",
1128 "POINTZ (2.2945672355 48.85822923236 15)",
1129 "POINTM (2.2945672355 48.85822923236 12)",
1130 "POINT ZM (2.2945672355 48.85822923236 12 2)",
1131 "MULTIPOINT ((-76.45402132523 44.225406213532))",
1132 "MULTIPOINT Z ((-76.45402132523 44.225406213532 112))",
1133 "MULTIPOINT ZM ((-76.45402132523 44.225406213532 112 44))",
1134 "LINESTRING (2.2945672355 48.85822923236, -76.45402132523 44.225406213532)",
1135 "LINESTRING Z (2.2945672355 48.85822923236 6, -76.45402132523 44.225406213532 8)",
1136 "LINESTRING ZM (2.2945672355 48.85822923236 3 2, -76.45402132523 44.225406213532 9 4)",
1137 "MULTILINESTRING ((2.2945672355 48.85822923236, -76.45402132523 44.225406213532))",
1138 "MULTILINESTRING Z ((2.2945672355 48.85822923236 4, -76.45402132523 44.225406213532 3))"
1139 };
1140
1141 for ( i = 0; i < (sizeof ewkt/sizeof(char*)); i++ )
1142 {
1144 GBOX box_from_peek;
1145 GBOX box_from_lwgeom;
1146 gbox_init(&box_from_peek);
1147 gbox_init(&box_from_lwgeom);
1148
1149 GSERIALIZED* gser = gserialized1_from_lwgeom(geom, NULL);
1150
1151 CU_ASSERT_FALSE(gserialized1_has_bbox(gser));
1152
1153 lwgeom_calculate_gbox(geom, &box_from_lwgeom);
1154 gserialized1_peek_gbox_p(gser, &box_from_peek);
1155
1156 gbox_float_round(&box_from_lwgeom);
1157
1158 CU_ASSERT_TRUE(gbox_same(&box_from_peek, &box_from_lwgeom));
1159
1160 lwgeom_free(geom);
1161 lwfree(gser);
1162 }
1163}
int gbox_same(const GBOX *g1, const GBOX *g2)
Check if 2 given Gbox are the same.
Definition gbox.c:164
void gbox_float_round(GBOX *gbox)
Round given GBOX to float boundaries.
Definition gbox.c:786
void gbox_init(GBOX *gbox)
Zero out all the entries in the GBOX.
Definition gbox.c:40
int gserialized1_peek_gbox_p(const GSERIALIZED *g, GBOX *gbox)
int gserialized1_has_bbox(const GSERIALIZED *gser)
Check if a GSERIALIZED has a bounding box without deserializing first.
GSERIALIZED * gserialized1_from_lwgeom(LWGEOM *geom, size_t *size)
Allocate a new GSERIALIZED from an LWGEOM.
void lwgeom_free(LWGEOM *geom)
Definition lwgeom.c:1246
#define LW_PARSER_CHECK_NONE
Definition liblwgeom.h:2149
void lwfree(void *mem)
Definition lwutil.c:248
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...
Definition lwgeom.c:783
LWGEOM * lwgeom_from_wkt(const char *wkt, const char check)
Definition lwin_wkt.c:940

References gbox_float_round(), gbox_init(), gbox_same(), gserialized1_from_lwgeom(), gserialized1_has_bbox(), gserialized1_peek_gbox_p(), LW_PARSER_CHECK_NONE, lwfree(), lwgeom_calculate_gbox(), lwgeom_free(), and lwgeom_from_wkt().

Referenced by gserialized1_suite_setup().

Here is the call graph for this function:
Here is the caller graph for this function: