PostGIS  3.4.0dev-r@@SVN_REVISION@@

◆ test_ptarray_scroll()

static void test_ptarray_scroll ( )
static

Definition at line 619 of file cu_ptarray.c.

620 {
621  LWLINE *line;
622  POINTARRAY *pa;
623  POINT4D scroll;
624  const char *wkt;
625  char *wktout;
626  int rv;
627 
628  wkt = "LINESTRING ZM (1 1 1 1,2 2 2 2,3 3 3 3,4 4 4 4,1 1 1 1)";
629  line = lwgeom_as_lwline(lwgeom_from_text(wkt));
630  pa = line->points;
631 
632  scroll.x = scroll.y = scroll.z = scroll.m = 2;
633  rv = ptarray_scroll_in_place(pa, &scroll);
634  CU_ASSERT_EQUAL(rv, LW_SUCCESS);
635  wktout = lwgeom_to_text(lwline_as_lwgeom(line));
636  wkt = "LINESTRING ZM (2 2 2 2,3 3 3 3,4 4 4 4,1 1 1 1,2 2 2 2)";
637  ASSERT_STRING_EQUAL(wktout, wkt);
638  lwfree(wktout);
639 
640  scroll.x = scroll.y = scroll.z = scroll.m = 1;
641  rv = ptarray_scroll_in_place(pa, &scroll);
642  CU_ASSERT_EQUAL(rv, LW_SUCCESS);
643  wktout = lwgeom_to_text(lwline_as_lwgeom(line));
644  wkt = "LINESTRING ZM (1 1 1 1,2 2 2 2,3 3 3 3,4 4 4 4,1 1 1 1)";
645  ASSERT_STRING_EQUAL(wktout, wkt);
646  lwfree(wktout);
647 
648  scroll.x = scroll.y = scroll.z = scroll.m = 9;
649  rv = ptarray_scroll_in_place(pa, &scroll);
650  CU_ASSERT_EQUAL(rv, LW_FAILURE);
651  ASSERT_STRING_EQUAL(cu_error_msg, "ptarray_scroll_in_place: input POINTARRAY does not contain the given point");
652 
653  lwline_free(line);
654 }
static char * lwgeom_to_text(const LWGEOM *geom)
Definition: cu_ptarray.c:32
static LWGEOM * lwgeom_from_text(const char *str)
Definition: cu_ptarray.c:24
char cu_error_msg[MAX_CUNIT_ERROR_LENGTH+1]
#define ASSERT_STRING_EQUAL(o, e)
LWLINE * lwgeom_as_lwline(const LWGEOM *lwgeom)
Definition: lwgeom.c:179
LWGEOM * lwline_as_lwgeom(const LWLINE *obj)
Definition: lwgeom.c:339
#define LW_FAILURE
Definition: liblwgeom.h:96
#define LW_SUCCESS
Definition: liblwgeom.h:97
void lwfree(void *mem)
Definition: lwutil.c:242
void lwline_free(LWLINE *line)
Definition: lwline.c:67
int ptarray_scroll_in_place(POINTARRAY *pa, const POINT4D *newbase)
Definition: ptarray.c:2181
POINTARRAY * points
Definition: liblwgeom.h:483
double m
Definition: liblwgeom.h:414
double x
Definition: liblwgeom.h:414
double z
Definition: liblwgeom.h:414
double y
Definition: liblwgeom.h:414

References ASSERT_STRING_EQUAL, cu_error_msg, LW_FAILURE, LW_SUCCESS, lwfree(), lwgeom_as_lwline(), lwgeom_from_text(), lwgeom_to_text(), lwline_as_lwgeom(), lwline_free(), POINT4D::m, LWLINE::points, ptarray_scroll_in_place(), POINT4D::x, POINT4D::y, and POINT4D::z.

Referenced by ptarray_suite_setup().

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