From: Sandro Santilli Date: Thu, 1 Mar 2012 12:25:58 +0000 (+0000) Subject: Add tests for ptarray_insert_point (see #1640) X-Git-Tag: 2.0.0beta2~63 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=febf179ddf4ba94bc36e80b49adcbd64083b54e1;p=postgis Add tests for ptarray_insert_point (see #1640) git-svn-id: http://svn.osgeo.org/postgis/trunk@9364 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/liblwgeom/cunit/cu_ptarray.c b/liblwgeom/cunit/cu_ptarray.c index e25484b53..47eeec89f 100644 --- a/liblwgeom/cunit/cu_ptarray.c +++ b/liblwgeom/cunit/cu_ptarray.c @@ -57,6 +57,51 @@ static void test_ptarray_append_point(void) lwline_free(line); } +static void test_ptarray_insert_point(void) +{ + LWLINE *line; + char *wkt; + POINT4D p; + + line = lwgeom_as_lwline(lwgeom_from_text("LINESTRING EMPTY")); + p.x = 1; + p.y = 1; + ptarray_insert_point(line->points, &p, 0); + wkt = lwgeom_to_text(lwline_as_lwgeom(line)); + CU_ASSERT_STRING_EQUAL(wkt,"LINESTRING(1 1)"); + lwfree(wkt); + + p.x = 2; + p.y = 20; + ptarray_insert_point(line->points, &p, 0); + wkt = lwgeom_to_text(lwline_as_lwgeom(line)); + CU_ASSERT_STRING_EQUAL(wkt,"LINESTRING(2 20,1 1)"); + lwfree(wkt); + + p.x = 3; + p.y = 30; + ptarray_insert_point(line->points, &p, 1); + wkt = lwgeom_to_text(lwline_as_lwgeom(line)); + CU_ASSERT_STRING_EQUAL(wkt,"LINESTRING(2 20,3 30,1 1)"); + lwfree(wkt); + + p.x = 4; + p.y = 40; + ptarray_insert_point(line->points, &p, 0); + wkt = lwgeom_to_text(lwline_as_lwgeom(line)); + CU_ASSERT_STRING_EQUAL(wkt,"LINESTRING(4 40,2 20,3 30,1 1)"); + lwfree(wkt); + + p.x = 5; + p.y = 50; + ptarray_insert_point(line->points, &p, 4); + wkt = lwgeom_to_text(lwline_as_lwgeom(line)); + CU_ASSERT_STRING_EQUAL(wkt,"LINESTRING(4 40,2 20,3 30,1 1,5 50)"); + lwfree(wkt); + + lwline_free(line); +} + static void test_ptarray_append_ptarray(void) { LWLINE *line1, *line2; @@ -329,6 +374,7 @@ CU_TestInfo ptarray_tests[] = PG_TEST(test_ptarray_locate_point), PG_TEST(test_ptarray_isccw), PG_TEST(test_ptarray_desegmentize), + PG_TEST(test_ptarray_insert_point), CU_TEST_INFO_NULL }; CU_SuiteInfo ptarray_suite = {"ptarray", NULL, NULL, ptarray_tests };