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

◆ test_lwgeom_calculate_gbox()

static void test_lwgeom_calculate_gbox ( void  )
static

Definition at line 195 of file cu_gserialized1.c.

196{
197 LWGEOM *g;
198 GBOX b;
199
200 g = lwgeom_from_wkt("POINT(0 0)", LW_PARSER_CHECK_NONE);
202 CU_ASSERT_DOUBLE_EQUAL(b.xmin, 0.0, 0.0000001);
203 lwgeom_free(g);
204
205 /* Inf = 0x7FF0000000000000 */
206 /* POINT(0 0) = 00 00000001 0000000000000000 0000000000000000 */
207 /* POINT(0 Inf) = 00 00000001 0000000000000000 7FF0000000000000 */
208 g = lwgeom_from_hexwkb("000000000100000000000000007FF0000000000000", LW_PARSER_CHECK_NONE);
210 CU_ASSERT_DOUBLE_EQUAL(b.xmin, 0.0, 0.0000001);
211 CU_ASSERT(isinf(b.ymax));
212 lwgeom_free(g);
213
214 /* LINESTRING(0 0, 0 Inf) = 00 00000002 00000002 0000000000000000 7FF0000000000000 0000000000000000 0000000000000000 */
215 /* Inf should show up in bbox */
216 g = lwgeom_from_hexwkb("00000000020000000200000000000000007FF000000000000000000000000000000000000000000000", LW_PARSER_CHECK_NONE);
218 CU_ASSERT_DOUBLE_EQUAL(b.xmin, 0.0, 0.0000001);
219 CU_ASSERT(isinf(b.ymax));
220 lwgeom_free(g);
221
222 /* Geometry with NaN 0101000020E8640000000000000000F8FF000000000000F8FF */
223 /* NaN should show up in bbox for "SRID=4326;POINT(0 NaN)" */
224 g = lwgeom_from_hexwkb("0101000020E86400000000000000000000000000000000F8FF", LW_PARSER_CHECK_NONE);
226 CU_ASSERT(isnan(b.ymax));
227 lwgeom_free(g);
228
229}
int lwgeom_calculate_gbox_cartesian(const LWGEOM *lwgeom, GBOX *gbox)
Calculate the 2-4D bounding box of a geometry.
Definition gbox.c:752
void lwgeom_free(LWGEOM *geom)
Definition lwgeom.c:1246
#define LW_PARSER_CHECK_NONE
Definition liblwgeom.h:2149
LWGEOM * lwgeom_from_hexwkb(const char *hexwkb, const char check)
Definition lwin_wkb.c:866
LWGEOM * lwgeom_from_wkt(const char *wkt, const char check)
Definition lwin_wkt.c:940
double ymax
Definition liblwgeom.h:357
double xmin
Definition liblwgeom.h:354

References LW_PARSER_CHECK_NONE, lwgeom_calculate_gbox_cartesian(), lwgeom_free(), lwgeom_from_hexwkb(), lwgeom_from_wkt(), GBOX::xmin, and GBOX::ymax.

Referenced by gserialized1_suite_setup().

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