PostGIS  3.1.6dev-r@@SVN_REVISION@@

◆ test_lwgeom_is_trajectory()

static void test_lwgeom_is_trajectory ( void  )
static

Definition at line 1498 of file cu_measures.c.

1499 {
1500  LWGEOM *g;
1501  int ret;
1502 
1503  g = lwgeom_from_wkt("POINT M(0 0 1)", LW_PARSER_CHECK_NONE);
1504  ret = lwgeom_is_trajectory(g);
1505  lwgeom_free(g);
1506  ASSERT_INT_EQUAL(ret, LW_FALSE); /* not a linestring */
1507 
1508  g = lwgeom_from_wkt("LINESTRING Z(0 0 1, 0 0 1)", LW_PARSER_CHECK_NONE);
1509  ret = lwgeom_is_trajectory(g);
1510  lwgeom_free(g);
1511  ASSERT_INT_EQUAL(ret, LW_FALSE); /* no measure */
1512 
1513  g = lwgeom_from_wkt("LINESTRING M(0 0 1, 0 0 1)", LW_PARSER_CHECK_NONE);
1514  ret = lwgeom_is_trajectory(g);
1515  lwgeom_free(g);
1516  ASSERT_INT_EQUAL(ret, LW_FALSE); /* same measure in two points */
1517 
1518  g = lwgeom_from_wkt("LINESTRING M(0 0 1, 0 0 0)", LW_PARSER_CHECK_NONE);
1519  ret = lwgeom_is_trajectory(g);
1520  lwgeom_free(g);
1521  ASSERT_INT_EQUAL(ret, LW_FALSE); /* backward measure */
1522 
1523  g = lwgeom_from_wkt("LINESTRING M(0 0 1, 1 0 3, 2 2 2)", LW_PARSER_CHECK_NONE);
1524  ret = lwgeom_is_trajectory(g);
1525  lwgeom_free(g);
1526  ASSERT_INT_EQUAL(ret, LW_FALSE); /* backward measure */
1527 
1528  g = lwgeom_from_wkt("LINESTRING M(0 0 1, 0 0 2)", LW_PARSER_CHECK_NONE);
1529  ret = lwgeom_is_trajectory(g);
1530  lwgeom_free(g);
1531  ASSERT_INT_EQUAL(ret, LW_TRUE); /* ok (still) */
1532 
1533  g = lwgeom_from_wkt("LINESTRING M EMPTY", LW_PARSER_CHECK_NONE);
1534  ret = lwgeom_is_trajectory(g);
1535  lwgeom_free(g);
1536  ASSERT_INT_EQUAL(ret, LW_TRUE); /* ok (empty) */
1537 
1538  g = lwgeom_from_wkt("LINESTRING M (0 0 1)", LW_PARSER_CHECK_NONE);
1539  ret = lwgeom_is_trajectory(g);
1540  lwgeom_free(g);
1541  ASSERT_INT_EQUAL(ret, LW_TRUE); /* ok (corner case) */
1542 }
#define ASSERT_INT_EQUAL(o, e)
#define LW_FALSE
Definition: liblwgeom.h:108
void lwgeom_free(LWGEOM *geom)
Definition: lwgeom.c:1138
#define LW_PARSER_CHECK_NONE
Definition: liblwgeom.h:2085
int lwgeom_is_trajectory(const LWGEOM *geom)
Return LW_TRUE or LW_FALSE depending on whether or not a geometry is a linestring with measure value ...
Definition: lwgeom.c:2473
LWGEOM * lwgeom_from_wkt(const char *wkt, const char check)
Definition: lwin_wkt.c:905
#define LW_TRUE
Return types for functions with status returns.
Definition: liblwgeom.h:107

References ASSERT_INT_EQUAL, LW_FALSE, LW_PARSER_CHECK_NONE, LW_TRUE, lwgeom_free(), lwgeom_from_wkt(), and lwgeom_is_trajectory().

Referenced by measures_suite_setup().

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