fun multipolygonTest()

in gis/src/commonTest/kotlin/org/jetbrains/letsPlot/gis/common/ParserTest.kt [128:245]


    fun multipolygonTest() {
        // SELECT encode(ST_AsTWKB('MULTIPOLYGON(((
        //						-71.103188 42.315277,
        //						-71.103162 42.315296,
        //            -71.102923 42.314915,
        //						-71.102309 42.315196,
        //            -71.101928 42.314738,
        //						-71.102505 42.314472,
        //            -71.102774 42.314165,
        //						-71.103113 42.314273,
        //            -71.103248 42.314024,
        //						-71.103300 42.314039,
        //            -71.103348 42.313949,
        //						-71.103396 42.313863,
        //            -71.104152 42.314115,
        //						-71.104141 42.314154,
        //            -71.104128 42.314211,
        //						-71.104118 42.314269,
        //            -71.104111 42.314327,
        //						-71.104107 42.314385,
        //            -71.104105 42.314443,
        //						-71.104106 42.314500,
        //            -71.104109 42.314558,
        //						-71.104116 42.314616,
        //            -71.104125 42.314674,
        //						-71.104137 42.314731,
        //            -71.104149 42.314771,
        //						-71.104159 42.314808,
        //            -71.104251 42.315128,
        //						-71.104117 42.315073,
        //            -71.104080 42.315134,
        //						-71.104043 42.315119,
        //            -71.104019 42.315183,
        //						-71.103873 42.315114,
        //            -71.103844 42.315100,
        //						-71.103831 42.315094,
        //            -71.103739 42.315054,
        //						-71.103544 42.315260,
        //            -71.103343 42.315164,
        //						-71.103258 42.315226,
        //            -71.103223 42.315251,
        //						-71.103188 42.315277)),
        //						((
        //            -71.104363 42.315113,
        //            -71.104358 42.315121,
        //						-71.104344 42.315067,
        //            -71.104385 42.315079,
        //            -71.104363 42.315113
        //            ))
        //					   )'::geometry, 6), 'hex'
        //			 );
        val data = parseHex(
            "c600020128a7cbe7439ab8ad283426de03f905cc09b204fa059307810993049904e504a505d8018d02f103671e5fb3015fab01e70bf803164e1a721" +
                    "4740e7408740474017205740d74117417721750134ab70180058c026d4a7a4a1d308001a40289013a1b1a0bb8014f86039c039203bf01aa017c463246340105ad12c7020a1" +
                    "01c6b51182c44"
        )
        val c = SimpleGeometryConsumer()
        Twkb.parse(data, c)

        assertEquals<List<List<List<Vec<Untyped>>?>?>?>(
            optionalListOf( // polygons
                optionalListOf( // polygon
                    optionalListOf( // ring
                        p(-71.103188, 42.315277),
                        p(-71.103162, 42.315296),
                        p(-71.102923, 42.314915),
                        p(-71.102309, 42.315196),
                        p(-71.101928, 42.314738),
                        p(-71.102505, 42.314472),
                        p(-71.102774, 42.314165),
                        p(-71.103113, 42.314273),
                        p(-71.103248, 42.314024),
                        p(-71.1033, 42.314039),
                        p(-71.103348, 42.313949),
                        p(-71.103396, 42.313863),
                        p(-71.104152, 42.314115),
                        p(-71.104141, 42.314154),
                        p(-71.104128, 42.314211),
                        p(-71.104118, 42.314269),
                        p(-71.104111, 42.314327),
                        p(-71.104107, 42.314385),
                        p(-71.104105, 42.314443),
                        p(-71.104106, 42.3145),
                        p(-71.104109, 42.314558),
                        p(-71.104116, 42.314616),
                        p(-71.104125, 42.314674),
                        p(-71.104137, 42.314731),
                        p(-71.104149, 42.314771),
                        p(-71.104159, 42.314808),
                        p(-71.104251, 42.315128),
                        p(-71.104117, 42.315073),
                        p(-71.10408, 42.315134),
                        p(-71.104043, 42.315119),
                        p(-71.104019, 42.315183),
                        p(-71.103873, 42.315114),
                        p(-71.103844, 42.3151),
                        p(-71.103831, 42.315094),
                        p(-71.103739, 42.315054),
                        p(-71.103544, 42.31526),
                        p(-71.103343, 42.315164),
                        p(-71.103258, 42.315226),
                        p(-71.103223, 42.315251),
                        p(-71.103188, 42.315277)
                    ) // ring
                ), // polygon
                optionalListOf( // polygon
                    optionalListOf( // ring
                        p(-71.104363, 42.315113),
                        p(-71.104358, 42.315121),
                        p(-71.104344, 42.315067),
                        p(-71.104385, 42.315079),
                        p(-71.104363, 42.315113)
                    ) // ring
                ) // polygon
            ), // polygons
            c.multiPolygon
        )
    }