PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ 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:740
LWGEOM * lwgeom_from_hexwkb(const char *hexwkb, const char check)
Definition: lwin_wkb.c:849
void lwgeom_free(LWGEOM *geom)
Definition: lwgeom.c:1138
#define LW_PARSER_CHECK_NONE
Definition: liblwgeom.h:2060
LWGEOM * lwgeom_from_wkt(const char *wkt, const char check)
Definition: lwin_wkt.c:905
double ymax
Definition: liblwgeom.h:343
double xmin
Definition: liblwgeom.h:340

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: