]> granicus.if.org Git - postgis/commitdiff
Add missing MultiPoint test. Fix wrong LWGEOM type on cu_gml tests.
authorOlivier Courtin <olivier.courtin@camptocamp.com>
Sun, 21 Feb 2010 21:53:16 +0000 (21:53 +0000)
committerOlivier Courtin <olivier.courtin@camptocamp.com>
Sun, 21 Feb 2010 21:53:16 +0000 (21:53 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@5280 b70326c6-7e19-0410-871a-916f4a2858ee

liblwgeom/cunit/cu_out_gml.c
liblwgeom/cunit/cu_out_kml.c

index 108204b27fc7a4f1ef8b4b9e34f79df72c64e330..b1f60f6db3bbec1561e246e2c797ad73c4450a52 100644 (file)
@@ -59,16 +59,14 @@ int clean_out_gml_suite(void)
 
 static void do_gml2_test(char * in, char * out, char * srs, int precision)
 {
-       LWGEOM *g, *h;
+       LWGEOM *g;
+       char *h;
 
        g = lwgeom_from_ewkt(in, PARSER_CHECK_NONE);
        h = lwgeom_to_gml2(lwgeom_serialize(g), srs, precision);
 
-       if (strcmp(lwgeom_to_gml2(lwgeom_serialize(g), srs, precision), out))
-               fprintf(stderr, "\nIn:   %s\nOut:  %s\nTheo: %s\n",
-                       in,
-                       lwgeom_to_gml2(lwgeom_serialize(g), srs, precision),
-                       out);
+       if (strcmp(h, out))
+               fprintf(stderr, "\nIn:   %s\nOut:  %s\nTheo: %s\n", in, h, out);
 
        CU_ASSERT_STRING_EQUAL(h, out);
 
@@ -79,19 +77,14 @@ static void do_gml2_test(char * in, char * out, char * srs, int precision)
 
 static void do_gml3_test(char * in, char * out, char * srs, int precision, int is_geodetic)
 {
-       LWGEOM *g, *h;
+       LWGEOM *g;
+       char *h;
 
        g = lwgeom_from_ewkt(in, PARSER_CHECK_NONE);
        h = lwgeom_to_gml3(lwgeom_serialize(g), srs, precision, is_geodetic);
 
-       if (strcmp(
-                   lwgeom_to_gml3(lwgeom_serialize(g), srs, precision, is_geodetic),
-                   out))
-               fprintf(stderr, "\nIn:   %s\nOut:  %s\nTheo: %s\n",
-                       in,
-                       lwgeom_to_gml3(lwgeom_serialize(g),
-                                      srs, precision, is_geodetic),
-                       out);
+       if (strcmp(h, out))
+               fprintf(stderr, "\nIn:   %s\nOut:  %s\nTheo: %s\n", in, h, out);
 
        CU_ASSERT_STRING_EQUAL(h, out);
 
@@ -101,10 +94,10 @@ static void do_gml3_test(char * in, char * out, char * srs, int precision, int i
 
 static void do_gml2_unsupported(char * in, char * out)
 {
-       LWGEOM *g, *h;
+       LWGEOM *g;
+       char *h;
 
        g = lwgeom_from_ewkt(in, PARSER_CHECK_NONE);
-
        h = lwgeom_to_gml2(lwgeom_serialize(g), NULL, 0);
 
        if (strcmp(cu_error_msg, out))
@@ -119,7 +112,8 @@ static void do_gml2_unsupported(char * in, char * out)
 
 static void do_gml3_unsupported(char * in, char * out)
 {
-       LWGEOM *g, *h;
+       LWGEOM *g;
+       char *h;
 
        g = lwgeom_from_ewkt(in, PARSER_CHECK_NONE);
        h = lwgeom_to_gml3(lwgeom_serialize(g), NULL, 0, 0);
@@ -231,6 +225,19 @@ void out_gml_test_srid(void)
            "EPSG:4326", 0, 0);
 
 
+       /* GML2 MultiPoint with SRID */
+       do_gml2_test(
+           "MULTIPOINT(0 1,2 3)",
+           "<gml:MultiPoint srsName=\"EPSG:4326\"><gml:pointMember><gml:Point><gml:coordinates>0,1</gml:coordinates></gml:Point></gml:pointMember><gml:pointMember><gml:Point><gml:coordinates>2,3</gml:coordinates></gml:Point></gml:pointMember></gml:MultiPoint>",
+           "EPSG:4326", 0);
+
+       /* GML3 MultiPoint with SRID */
+       do_gml3_test(
+           "MULTIPOINT(0 1,2 3)",
+           "<gml:MultiPoint srsName=\"EPSG:4326\"><gml:pointMember><gml:Point><gml:pos srsDimension=\"2\">0 1</gml:pos></gml:Point></gml:pointMember><gml:pointMember><gml:Point><gml:pos srsDimension=\"2\">2 3</gml:pos></gml:Point></gml:pointMember></gml:MultiPoint>",
+           "EPSG:4326", 0, 0);
+
+
        /* GML2 Multiline with SRID */
        do_gml2_test(
            "MULTILINESTRING((0 1,2 3,4 5),(6 7,8 9,10 11))",
@@ -370,6 +377,19 @@ void out_gml_test_geoms(void)
            NULL, 0, 0);
 
 
+       /* GML2 MultiPoint */
+       do_gml2_test(
+           "MULTIPOINT(0 1,2 3)",
+           "<gml:MultiPoint><gml:pointMember><gml:Point><gml:coordinates>0,1</gml:coordinates></gml:Point></gml:pointMember><gml:pointMember><gml:Point><gml:coordinates>2,3</gml:coordinates></gml:Point></gml:pointMember></gml:MultiPoint>",
+           NULL, 0);
+
+       /* GML3 MultiPoint */
+       do_gml3_test(
+           "MULTIPOINT(0 1,2 3)",
+           "<gml:MultiPoint><gml:pointMember><gml:Point><gml:pos srsDimension=\"2\">0 1</gml:pos></gml:Point></gml:pointMember><gml:pointMember><gml:Point><gml:pos srsDimension=\"2\">2 3</gml:pos></gml:Point></gml:pointMember></gml:MultiPoint>",
+           NULL, 0, 0);
+
+
        /* GML2 Multiline */
        do_gml2_test(
            "MULTILINESTRING((0 1,2 3,4 5),(6 7,8 9,10 11))",
index 25d3c8f145c71624d105851ef7d1fee70578408d..4c0ab306c7c84aebf20ec7647d42623baf7441bb 100644 (file)
@@ -82,7 +82,7 @@ static void do_kml_unsupported(char * in, char * out)
        h = lwgeom_to_kml2(lwgeom_serialize(g), 0);
 
        if (strcmp(cu_error_msg, out))
-               fprintf(stderr, "\nGML 2 - In:   %s\nOut:  %s\nTheo: %s\n",
+               fprintf(stderr, "\nIn:   %s\nOut:  %s\nTheo: %s\n",
                        in, cu_error_msg, out);
 
        CU_ASSERT_STRING_EQUAL(out, cu_error_msg);
@@ -163,7 +163,13 @@ void out_kml_test_geoms(void)
            "<Polygon><outerBoundaryIs><LinearRing><coordinates>0,1 2,3 4,5 0,1</coordinates></LinearRing></outerBoundaryIs><innerBoundaryIs><LinearRing><coordinates>6,7 8,9 10,11 6,7</coordinates></LinearRing></innerBoundaryIs></Polygon>",
            0);
 
-       /* Multiline */
+       /* MultiPoint */
+       do_kml_test(
+           "MULTIPOINT(0 1,2 3)",
+           "<MultiGeometry><Point><coordinates>0,1</coordinates></Point><Point><coordinates>2,3</coordinates></Point></MultiGeometry>",
+           0);
+
+       /* MultiLine */
        do_kml_test(
            "MULTILINESTRING((0 1,2 3,4 5),(6 7,8 9,10 11))",
            "<MultiGeometry><LineString><coordinates>0,1 2,3 4,5</coordinates></LineString><LineString><coordinates>6,7 8,9 10,11</coordinates></LineString></MultiGeometry>",