123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674 |
- // Boost.Geometry (aka GGL, Generic Geometry Library)
- // Copyright (c) 2015, Oracle and/or its affiliates.
- // Licensed under the Boost Software License version 1.0.
- // http://www.boost.org/users/license.html
- // Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
- #ifndef BOOST_TEST_MODULE
- #define BOOST_TEST_MODULE test_difference_pointlike_linear
- #endif
- #include <iostream>
- #include <algorithm>
- #include <boost/test/included/unit_test.hpp>
- #include "../test_set_ops_pointlike.hpp"
- #include <boost/geometry/geometries/point.hpp>
- #include <boost/geometry/geometries/linestring.hpp>
- #include <boost/geometry/geometries/segment.hpp>
- #include <boost/geometry/geometries/multi_point.hpp>
- #include <boost/geometry/geometries/multi_linestring.hpp>
- typedef bg::model::point<double, 2, bg::cs::cartesian> point_type;
- typedef bg::model::segment<point_type> segment_type;
- typedef bg::model::linestring<point_type> linestring_type;
- typedef bg::model::multi_point<point_type> multi_point_type;
- typedef bg::model::multi_linestring<linestring_type> multi_linestring_type;
- //===========================================================================
- //===========================================================================
- //===========================================================================
- BOOST_AUTO_TEST_CASE( test_difference_point_segment )
- {
- #ifdef BOOST_GEOMETRY_TEST_DEBUG
- std::cout << "size of std::size_t: " << sizeof(std::size_t) << std::endl;
- std::cout << "size of range_iterator<multipoint>: "
- << sizeof(boost::range_iterator<multi_point_type>::type)
- << std::endl;
- std::cout << "size of range_iterator<multilinestring>: "
- << sizeof(boost::range_iterator<multi_linestring_type>::type)
- << std::endl;
- std::cout << "size of point_iterator<multipoint>: "
- << sizeof(bg::point_iterator<multi_point_type>) << std::endl;
- std::cout << "size of point_iterator<linestring>: "
- << sizeof(bg::point_iterator<linestring_type>) << std::endl;
- std::cout << "size of point_iterator<multilinestring>: "
- << sizeof(bg::point_iterator<multi_linestring_type>) << std::endl;
- std::cout << "size of segment_iterator<linestring>: "
- << sizeof(bg::segment_iterator<linestring_type>) << std::endl;
- std::cout << "size of segment_iterator<multilinestring>: "
- << sizeof(bg::segment_iterator<multi_linestring_type>) << std::endl;
- std::cout << std::endl << std::endl << std::endl;
- std::cout << "*** POINT / SEGMENT DIFFERENCE ***" << std::endl;
- std::cout << std::endl;
- #endif
- typedef point_type P;
- typedef segment_type S;
- typedef multi_point_type MP;
- typedef test_set_op_of_pointlike_geometries
- <
- P, S, MP, bg::overlay_difference
- > tester;
- tester::apply
- ("psdf01",
- from_wkt<P>("POINT(0 0)"),
- from_wkt<S>("SEGMENT(1 1,2 2)"),
- from_wkt<MP>("MULTIPOINT(0 0)")
- );
- tester::apply
- ("psdf02",
- from_wkt<P>("POINT(0 0)"),
- from_wkt<S>("SEGMENT(0 0,1 1)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("psdf03",
- from_wkt<P>("POINT(1 1)"),
- from_wkt<S>("SEGMENT(0 0,2 2)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("psdf04",
- from_wkt<P>("POINT(3 3)"),
- from_wkt<S>("SEGMENT(0 0,2 2)"),
- from_wkt<MP>("MULTIPOINT(3 3)")
- );
- }
- BOOST_AUTO_TEST_CASE( test_difference_point_linestring )
- {
- #ifdef BOOST_GEOMETRY_TEST_DEBUG
- std::cout << std::endl << std::endl << std::endl;
- std::cout << "*** POINT / LINESTRING DIFFERENCE ***" << std::endl;
- std::cout << std::endl;
- #endif
- typedef point_type P;
- typedef linestring_type L;
- typedef multi_point_type MP;
- typedef test_set_op_of_pointlike_geometries
- <
- P, L, MP, bg::overlay_difference
- > tester;
- tester::apply
- ("pldf01",
- from_wkt<P>("POINT(0 0)"),
- from_wkt<L>("LINESTRING(1 1,2 2)"),
- from_wkt<MP>("MULTIPOINT(0 0)")
- );
- tester::apply
- ("pldf02",
- from_wkt<P>("POINT(0 0)"),
- from_wkt<L>("LINESTRING(0 0,1 1)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("pldf03",
- from_wkt<P>("POINT(1 1)"),
- from_wkt<L>("LINESTRING(0 0,2 2)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("pldf04",
- from_wkt<P>("POINT(3 3)"),
- from_wkt<L>("LINESTRING(0 0,2 2)"),
- from_wkt<MP>("MULTIPOINT(3 3)")
- );
- // linestrings with more than two points
- tester::apply
- ("pldf05",
- from_wkt<P>("POINT(1 1)"),
- from_wkt<L>("LINESTRING(0 0,1 1,2 2)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("pldf06",
- from_wkt<P>("POINT(2 2)"),
- from_wkt<L>("LINESTRING(0 0,1 1,4 4)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("pldf07",
- from_wkt<P>("POINT(10 10)"),
- from_wkt<L>("LINESTRING(0 0,1 1,4 4)"),
- from_wkt<MP>("MULTIPOINT(10 10)")
- );
- tester::apply
- ("pldf08",
- from_wkt<P>("POINT(0 1)"),
- from_wkt<L>("LINESTRING(0 0,1 1,4 4)"),
- from_wkt<MP>("MULTIPOINT(0 1)")
- );
- tester::apply
- ("pldf09",
- from_wkt<P>("POINT(4 4)"),
- from_wkt<L>("LINESTRING(0 0,1 1,4 4)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("pldf10",
- from_wkt<P>("POINT(0 0)"),
- from_wkt<L>("LINESTRING(0 0,1 1,4 4)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- }
- BOOST_AUTO_TEST_CASE( test_difference_point_multilinestring )
- {
- #ifdef BOOST_GEOMETRY_TEST_DEBUG
- std::cout << std::endl << std::endl << std::endl;
- std::cout << "*** POINT / MULTILINESTRING DIFFERENCE ***" << std::endl;
- std::cout << std::endl;
- #endif
- typedef point_type P;
- typedef multi_linestring_type ML;
- typedef multi_point_type MP;
- typedef test_set_op_of_pointlike_geometries
- <
- P, ML, MP, bg::overlay_difference
- > tester;
- tester::apply
- ("pmldf01",
- from_wkt<P>("POINT(0 0)"),
- from_wkt<ML>("MULTILINESTRING((1 1,2 2))"),
- from_wkt<MP>("MULTIPOINT(0 0)")
- );
- tester::apply
- ("pmldf02",
- from_wkt<P>("POINT(0 0)"),
- from_wkt<ML>("MULTILINESTRING((0 0,1 1))"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("pmldf03",
- from_wkt<P>("POINT(1 1)"),
- from_wkt<ML>("MULTILINESTRING((0 0,2 2))"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("pmldf04",
- from_wkt<P>("POINT(3 3)"),
- from_wkt<ML>("MULTILINESTRING((0 0,2 2))"),
- from_wkt<MP>("MULTIPOINT(3 3)")
- );
- // linestrings with more than two points
- tester::apply
- ("pmldf05",
- from_wkt<P>("POINT(1 1)"),
- from_wkt<ML>("MULTILINESTRING((0 0,1 1,2 2))"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("pmldf06",
- from_wkt<P>("POINT(2 2)"),
- from_wkt<ML>("MULTILINESTRING((0 0,1 1,4 4))"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("pmldf07",
- from_wkt<P>("POINT(10 10)"),
- from_wkt<ML>("MULTILINESTRING((0 0,1 1,4 4))"),
- from_wkt<MP>("MULTIPOINT(10 10)")
- );
- tester::apply
- ("pmldf08",
- from_wkt<P>("POINT(0 1)"),
- from_wkt<ML>("MULTILINESTRING((0 0,1 1,4 4))"),
- from_wkt<MP>("MULTIPOINT(0 1)")
- );
- tester::apply
- ("pmldf09",
- from_wkt<P>("POINT(4 4)"),
- from_wkt<ML>("MULTILINESTRING((0 0,1 1,4 4))"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("pmldf10",
- from_wkt<P>("POINT(0 0)"),
- from_wkt<ML>("MULTILINESTRING((0 0,1 1,4 4))"),
- from_wkt<MP>("MULTIPOINT()")
- );
- // multilinestrings with more than one linestring
- tester::apply
- ("pmldf11",
- from_wkt<P>("POINT(0 0)"),
- from_wkt<ML>("MULTILINESTRING((-10,-10),(0 0,1 1,4 4))"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("pmldf12",
- from_wkt<P>("POINT(0 0)"),
- from_wkt<ML>("MULTILINESTRING((-10 0,0 0,10 0),(0 0,1 1,4 4))"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("pmldf13",
- from_wkt<P>("POINT(0 0)"),
- from_wkt<ML>("MULTILINESTRING((-10 0,10 0),(0 0,1 1,4 4))"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("pmldf14",
- from_wkt<P>("POINT(-20 0)"),
- from_wkt<ML>("MULTILINESTRING((-10 0,10 0),(0 0,1 1,4 4))"),
- from_wkt<MP>("MULTIPOINT(-20 0)")
- );
- tester::apply
- ("pmldf15",
- from_wkt<P>("POINT(0 1)"),
- from_wkt<ML>("MULTILINESTRING((-10 0,10 0),(0 0,1 1,4 4))"),
- from_wkt<MP>("MULTIPOINT(0 1)")
- );
- }
- BOOST_AUTO_TEST_CASE( test_difference_multipoint_segment )
- {
- #ifdef BOOST_GEOMETRY_TEST_DEBUG
- std::cout << std::endl << std::endl << std::endl;
- std::cout << "*** MULTIPOINT / SEGMENT DIFFERENCE ***" << std::endl;
- std::cout << std::endl;
- #endif
- typedef multi_point_type MP;
- typedef segment_type S;
- typedef test_set_op_of_pointlike_geometries
- <
- MP, S, MP, bg::overlay_difference
- > tester;
- tester::apply
- ("mpsdf01",
- from_wkt<MP>("MULTIPOINT(0 0)"),
- from_wkt<S>("SEGMENT(1 1,2 2)"),
- from_wkt<MP>("MULTIPOINT(0 0)")
- );
- tester::apply
- ("mpsdf02",
- from_wkt<MP>("MULTIPOINT(0 0)"),
- from_wkt<S>("SEGMENT(0 0,1 1)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("mpsdf03",
- from_wkt<MP>("MULTIPOINT(0 0,0 0)"),
- from_wkt<S>("SEGMENT(1 1,2 2)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0)")
- );
- tester::apply
- ("mpsdf04",
- from_wkt<MP>("MULTIPOINT(0 0,0 0)"),
- from_wkt<S>("SEGMENT(0 0,1 1)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("mpsdf05",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,1 0)"),
- from_wkt<S>("SEGMENT(1 1,2 2)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0,1 0)")
- );
- tester::apply
- ("mpsf06",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,1 0)"),
- from_wkt<S>("SEGMENT(1 0,2 0)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0)")
- );
- tester::apply
- ("mpsdf07",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)"),
- from_wkt<S>("SEGMENT(0 0,1 0)"),
- from_wkt<MP>("MULTIPOINT(2 0)")
- );
- tester::apply
- ("mpsdf08",
- from_wkt<MP>("MULTIPOINT()"),
- from_wkt<S>("SEGMENT(0 0,1 1)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("mpsdf09",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)"),
- from_wkt<S>("SEGMENT(-1 0,1 0)"),
- from_wkt<MP>("MULTIPOINT(2 0)")
- );
- tester::apply
- ("mpsdf10",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)"),
- from_wkt<S>("SEGMENT(1 0,3 0)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0)")
- );
- tester::apply
- ("mpsdf11",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)"),
- from_wkt<S>("SEGMENT(-1 0,3 0)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("mpsdf12",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)"),
- from_wkt<S>("SEGMENT(3 0,3 0)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)")
- );
- tester::apply
- ("mpsdf12a",
- from_wkt<MP>("MULTIPOINT(0 0,2 0,0 0)"),
- from_wkt<S>("SEGMENT(3 0,3 0)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)")
- );
- tester::apply
- ("mpsdf12b",
- from_wkt<MP>("MULTIPOINT(0 0,2 0,0 0,2 0)"),
- from_wkt<S>("SEGMENT(3 0,3 0)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0,2 0)")
- );
- tester::apply
- ("mpsdf12c",
- from_wkt<MP>("MULTIPOINT(0 0,2 0,0 0,2 0,0 0)"),
- from_wkt<S>("SEGMENT(3 0,3 0)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0,0 0,2 0,2 0)")
- );
- tester::apply
- ("mpsdf13",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)"),
- from_wkt<S>("SEGMENT(2 0,2 0)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0)")
- );
- tester::apply
- ("mpsdf14",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)"),
- from_wkt<S>("SEGMENT(0 0,0 0)"),
- from_wkt<MP>("MULTIPOINT(2 0)")
- );
- tester::apply
- ("mpsdf15",
- from_wkt<MP>("MULTIPOINT()"),
- from_wkt<S>("SEGMENT(0 0,1 0)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- }
- BOOST_AUTO_TEST_CASE( test_difference_multipoint_linestring )
- {
- #ifdef BOOST_GEOMETRY_TEST_DEBUG
- std::cout << std::endl << std::endl << std::endl;
- std::cout << "*** MULTIPOINT / LINESTRING DIFFERENCE ***" << std::endl;
- std::cout << std::endl;
- #endif
- typedef multi_point_type MP;
- typedef linestring_type L;
- typedef test_set_op_of_pointlike_geometries
- <
- MP, L, MP, bg::overlay_difference
- > tester;
- tester::apply
- ("mpldf01",
- from_wkt<MP>("MULTIPOINT(0 0)"),
- from_wkt<L>("LINESTRING(1 1,2 2,3 3,4 4,5 5)"),
- from_wkt<MP>("MULTIPOINT(0 0)")
- );
- tester::apply
- ("mpldf02",
- from_wkt<MP>("MULTIPOINT(0 0)"),
- from_wkt<L>("LINESTRING(0 0,1 1)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("mpldf03",
- from_wkt<MP>("MULTIPOINT(0 0,0 0)"),
- from_wkt<L>("LINESTRING(1 1,2 2)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0)")
- );
- tester::apply
- ("mpldf04",
- from_wkt<MP>("MULTIPOINT(0 0,0 0)"),
- from_wkt<L>("LINESTRING(0 0,1 1)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("mpldf05",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,1 0)"),
- from_wkt<L>("LINESTRING(1 1,2 2)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0,1 0)")
- );
- tester::apply
- ("mplf06",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,1 0)"),
- from_wkt<L>("LINESTRING(1 0,2 0)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0)")
- );
- tester::apply
- ("mpldf07",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)"),
- from_wkt<L>("LINESTRING(0 0,1 0)"),
- from_wkt<MP>("MULTIPOINT(2 0)")
- );
- tester::apply
- ("mpldf08",
- from_wkt<MP>("MULTIPOINT()"),
- from_wkt<L>("LINESTRING(0 0,1 1)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("mpldf09",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)"),
- from_wkt<L>("LINESTRING(-1 0,1 0)"),
- from_wkt<MP>("MULTIPOINT(2 0)")
- );
- tester::apply
- ("mpldf10",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)"),
- from_wkt<L>("LINESTRING(1 0,3 0)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0)")
- );
- tester::apply
- ("mpldf11",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)"),
- from_wkt<L>("LINESTRING(-1 0,3 0)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("mpldf12",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)"),
- from_wkt<L>("LINESTRING(3 0,3 0)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)")
- );
- tester::apply
- ("mpldf13",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)"),
- from_wkt<L>("LINESTRING(2 0,2 0)"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0)")
- );
- tester::apply
- ("mpldf14",
- from_wkt<MP>("MULTIPOINT(0 0,0 0,2 0)"),
- from_wkt<L>("LINESTRING(0 0,0 0)"),
- from_wkt<MP>("MULTIPOINT(2 0)")
- );
- tester::apply
- ("mpldf15",
- from_wkt<MP>("MULTIPOINT()"),
- from_wkt<L>("LINESTRING(0 0,1 0,2 0,3 0)"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("mpldf16",
- from_wkt<MP>("MULTIPOINT()"),
- from_wkt<L>("LINESTRING()"),
- from_wkt<MP>("MULTIPOINT()")
- );
- }
- BOOST_AUTO_TEST_CASE( test_difference_multipoint_multilinestring )
- {
- #ifdef BOOST_GEOMETRY_TEST_DEBUG
- std::cout << std::endl << std::endl << std::endl;
- std::cout << "*** MULTIPOINT / MULTILINESTRING DIFFERENCE ***" << std::endl;
- std::cout << std::endl;
- #endif
- typedef multi_point_type MP;
- typedef multi_linestring_type ML;
- typedef test_set_op_of_pointlike_geometries
- <
- MP, ML, MP, bg::overlay_difference
- > tester;
- tester::apply
- ("mpmldf01",
- from_wkt<MP>("MULTIPOINT(0 0,1 0,2 0)"),
- from_wkt<ML>("MULTILINESTRING((1 0,1 1,1 1,4 4))"),
- from_wkt<MP>("MULTIPOINT(0 0,2 0)")
- );
- tester::apply
- ("mpmldf02",
- from_wkt<MP>("MULTIPOINT(2 2,3 3,0 0,0 0,2 2,1 1,1 1,1 0,1 0)"),
- from_wkt<ML>("MULTILINESTRING((1 0,1 1,1 1,4 4))"),
- from_wkt<MP>("MULTIPOINT(0 0,0 0)")
- );
- tester::apply
- ("mpmldf03",
- from_wkt<MP>("MULTIPOINT(5 5,3 3,0 0,0 0,5 5,1 1,1 1,1 0,1 0)"),
- from_wkt<ML>("MULTILINESTRING((1 0,1 1,1 1,4 4))"),
- from_wkt<MP>("MULTIPOINT(5 5,5 5,0 0,0 0)")
- );
- tester::apply
- ("mpmldf04",
- from_wkt<MP>("MULTIPOINT(0 0,1 1,1 0,1 1)"),
- from_wkt<ML>("MULTILINESTRING((1 0,0 0,1 1,0 0))"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("mpmldf05",
- from_wkt<MP>("MULTIPOINT(0 0,1 0,2 0,5 0)"),
- from_wkt<ML>("MULTILINESTRING((0 1,0 0,1 2,1 0),\
- (0 1,2 0,0 10,2 0,2 10,5 10,5 0,5 10))"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("mpmldf05a",
- from_wkt<MP>("MULTIPOINT(0 0,1 0,6 0,7 0,2 0,5 0,7 0,8 0)"),
- from_wkt<ML>("MULTILINESTRING((0 1,0 0,1 2,1 0),\
- (0 1,2 0,0 10,2 0,2 10,5 10,5 0,5 10))"),
- from_wkt<MP>("MULTIPOINT(7 0,7 0,8 0,6 0)")
- );
- tester::apply
- ("mpmldf06",
- from_wkt<MP>("MULTIPOINT(0 0,1 1,1 0,1 1)"),
- from_wkt<ML>("MULTILINESTRING(())"),
- from_wkt<MP>("MULTIPOINT(0 0,1 1,1 0,1 1)")
- );
- tester::apply
- ("mpmldf07",
- from_wkt<MP>("MULTIPOINT()"),
- from_wkt<ML>("MULTILINESTRING(())"),
- from_wkt<MP>("MULTIPOINT()")
- );
- tester::apply
- ("mpmldf08",
- from_wkt<MP>("MULTIPOINT()"),
- from_wkt<ML>("MULTILINESTRING((0 0,1 0),(9 0,10 0))"),
- from_wkt<MP>("MULTIPOINT()")
- );
- }
|