[test][set ops] clean up code; finish up unit test for L/L union;

This commit is contained in:
Menelaos Karavelas 2014-04-10 15:13:02 +03:00
parent 6646470a55
commit 63365a8208
4 changed files with 272 additions and 161 deletions

View File

@ -374,10 +374,6 @@ BOOST_AUTO_TEST_CASE( test_difference_linestring_linestring )
(10 0,10 -10,15 0))"), (10 0,10 -10,15 0))"),
"lldf20a"); "lldf20a");
#if !defined(BOOST_GEOMETRY_DIFFERENCE_DO_NOT_REMOVE_DUPLICATE_TURNS) \
|| defined(GEOMETRY_TEST_INCLUDE_FAILING_TESTS)
// the following example produces duplicate turns (when both are
// reversed)
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"),
from_wkt<L>("LINESTRING(2 2,5 -1,15 2,18 0,20 0)"), from_wkt<L>("LINESTRING(2 2,5 -1,15 2,18 0,20 0)"),
@ -385,15 +381,12 @@ BOOST_AUTO_TEST_CASE( test_difference_linestring_linestring )
"lldf21" "lldf21"
); );
// the following example produces duplicate turns (when the 2nd LS
// is reversed)
tester::apply tester::apply
(from_wkt<L>("LINESTRING(2 2,5 -1,15 2,18 0,20 0)"), (from_wkt<L>("LINESTRING(2 2,5 -1,15 2,18 0,20 0)"),
from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"), from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"),
from_wkt<ML>("MULTILINESTRING((2 2,5 -1,15 2,18 0))"), from_wkt<ML>("MULTILINESTRING((2 2,5 -1,15 2,18 0))"),
"lldf21a" "lldf21a"
); );
#endif
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,10 0)"), (from_wkt<L>("LINESTRING(0 0,10 0)"),
@ -592,10 +585,6 @@ BOOST_AUTO_TEST_CASE( test_difference_linestring_multilinestring )
"lmldf18a" "lmldf18a"
); );
#if !defined(BOOST_GEOMETRY_DIFFERENCE_DO_NOT_REMOVE_DUPLICATE_TURNS) \
|| defined(GEOMETRY_TEST_INCLUDE_FAILING_TESTS)
// the following example produces duplicate turns (when both
// are reversed)
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
@ -603,7 +592,6 @@ BOOST_AUTO_TEST_CASE( test_difference_linestring_multilinestring )
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(20 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,1 0),(20 0,30 0))"),
"lmldf18b" "lmldf18b"
); );
#endif
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"),

View File

@ -431,10 +431,7 @@ BOOST_AUTO_TEST_CASE( test_intersection_linestring_linestring )
#endif #endif
"lli20a"); "lli20a");
#if !defined(BOOST_GEOMETRY_DIFFERENCE_DO_NOT_REMOVE_DUPLICATE_TURNS) \
|| defined(GEOMETRY_TEST_INCLUDE_FAILING_TESTS)
// the following example produces duplicate turns (when the 2nd LS
// is reversed)
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"),
from_wkt<L>("LINESTRING(2 2,5 -1,15 2,18 0,20 0)"), from_wkt<L>("LINESTRING(2 2,5 -1,15 2,18 0,20 0)"),
@ -449,7 +446,6 @@ BOOST_AUTO_TEST_CASE( test_intersection_linestring_linestring )
#endif #endif
"lli21" "lli21"
); );
#endif
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,10 0)"), (from_wkt<L>("LINESTRING(0 0,10 0)"),

View File

@ -369,10 +369,6 @@ BOOST_AUTO_TEST_CASE( test_sym_difference_linestring_linestring )
(25 0,25 25,50 0,40 0))"), (25 0,25 25,50 0,40 0))"),
"llsdf20a"); "llsdf20a");
#if !defined(BOOST_GEOMETRY_DIFFERENCE_DO_NOT_REMOVE_DUPLICATE_TURNS) \
|| defined(GEOMETRY_TEST_INCLUDE_FAILING_TESTS)
// the following example produces duplicate turns (when the order
// is reversed and the 2nd LS is reversed)
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"),
from_wkt<L>("LINESTRING(2 2,5 -1,15 2,18 0,20 0)"), from_wkt<L>("LINESTRING(2 2,5 -1,15 2,18 0,20 0)"),
@ -380,7 +376,6 @@ BOOST_AUTO_TEST_CASE( test_sym_difference_linestring_linestring )
(2 2,5 -1,15 2,18 0))"), (2 2,5 -1,15 2,18 0))"),
"llsdf21" "llsdf21"
); );
#endif
} }
@ -596,9 +591,6 @@ BOOST_AUTO_TEST_CASE( test_sym_difference_linestring_multilinestring )
"lmlsdf18a" "lmlsdf18a"
); );
#if !defined(BOOST_GEOMETRY_DIFFERENCE_DO_NOT_REMOVE_DUPLICATE_TURNS) \
|| defined(GEOMETRY_TEST_INCLUDE_FAILING_TESTS)
// the following example produces duplicate turns
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
@ -607,7 +599,6 @@ BOOST_AUTO_TEST_CASE( test_sym_difference_linestring_multilinestring )
(0 1,1 0),(19 0,20 1),(2 2,5 -1,15 2,18 0))"), (0 1,1 0),(19 0,20 1),(2 2,5 -1,15 2,18 0))"),
"lmlsdf18b" "lmlsdf18b"
); );
#endif
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"),
@ -942,10 +933,6 @@ BOOST_AUTO_TEST_CASE( test_sym_difference_multilinestring_multilinestring )
"mlmlsdf18" "mlmlsdf18"
); );
#if !defined(BOOST_GEOMETRY_DIFFERENCE_DO_NOT_REMOVE_DUPLICATE_TURNS) \
|| defined(GEOMETRY_TEST_INCLUDE_FAILING_TESTS)
// the following example produces duplicate turns (when
// considering the difference of the ML minus the reversed L)
tester::apply tester::apply
(from_wkt<ML>("MULTILINESTRING((0 0,18 0,19 0,30 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,18 0,19 0,30 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
@ -954,5 +941,4 @@ BOOST_AUTO_TEST_CASE( test_sym_difference_multilinestring_multilinestring )
(0 1,1 0),(19 0,20 1),(2 2,5 -1,15 2,18 0))"), (0 1,1 0),(19 0,20 1),(2 2,5 -1,15 2,18 0))"),
"mlmlsdf18a" "mlmlsdf18a"
); );
#endif
} }

View File

@ -254,179 +254,217 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_linestring )
(-1 1,0 0),(2 0,3 0),(4 0,5 5,10 5,15 0),(30 0,31 1))"), (-1 1,0 0),(2 0,3 0),(4 0,5 5,10 5,15 0),(30 0,31 1))"),
"llu11"); "llu11");
#if 0
tester::apply tester::apply
(from_wkt<L>("LINESTRING(-1 1,0 0,1 0,4 0,5 5,10 5,15 0,31 0)"), (from_wkt<L>("LINESTRING(-1 1,0 0,1 0,4 0,5 5,10 5,15 0,31 0)"),
from_wkt<L>("LINESTRING(-1 -1,0 0,1 0,2 0,2.5 1,3 0,30 0)"), from_wkt<L>("LINESTRING(-1 -1,0 0,1 0,2 0,2.5 1,3 0,30 0)"),
from_wkt<ML>("MULTILINESTRING((-1 1,0 0),(2 0,3 0),\ from_wkt<ML>("MULTILINESTRING((-1 1,0 0,1 0,4 0,5 5,10 5,15 0,31 0),\
(4 0,5 5,10 5,15 0),(30 0,31 0))"), (-1 -1,0 0),(2 0,2.5 1,3 0),(4 0,15 0))"),
from_wkt<ML>("MULTILINESTRING((-1 -1,0 0,1 0,2 0,2.5 1,3 0,30 0),\
(-1 1,0 0),(2 0,3 0),(4 0,5 5,10 5,15 0),(30 0,31 0))"),
"llu11-1"); "llu11-1");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,2 0,3 1)"), (from_wkt<L>("LINESTRING(0 0,2 0,3 1)"),
from_wkt<L>("LINESTRING(0 0,2 0,3 1)"), from_wkt<L>("LINESTRING(0 0,2 0,3 1)"),
from_wkt<ML>("MULTILINESTRING()"), from_wkt<ML>("MULTILINESTRING((0 0,2 0,3 1))"),
"llu12"); "llu12");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,2 0,3 1)"), (from_wkt<L>("LINESTRING(0 0,2 0,3 1)"),
from_wkt<L>("LINESTRING(3 1,2 0,0 0)"), from_wkt<L>("LINESTRING(3 1,2 0,0 0)"),
from_wkt<ML>("MULTILINESTRING()"), from_wkt<ML>("MULTILINESTRING((0 0,2 0,3 1))"),
from_wkt<ML>("MULTILINESTRING((3 1,2 0,0 0))"),
"llu12-1"); "llu12-1");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,1 0,2 1,3 5,4 0)"), (from_wkt<L>("LINESTRING(0 0,1 0,2 1,3 5,4 0)"),
from_wkt<L>("LINESTRING(1 0,2 1,3 5,4 0,5 10)"), from_wkt<L>("LINESTRING(1 0,2 1,3 5,4 0,5 10)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0))"), from_wkt<ML>("MULTILINESTRING((0 0,1 0,2 1,3 5,4 0),(4 0,5 10))"),
from_wkt<ML>("MULTILINESTRING((1 0,2 1,3 5,4 0,5 10),(0 0,1 0))"),
"llu13"); "llu13");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,1 0,2 0,2.5 0,3 1)"), (from_wkt<L>("LINESTRING(0 0,1 0,2 0,2.5 0,3 1)"),
from_wkt<L>("LINESTRING(0 0,2 0,2.5 0,3 1)"), from_wkt<L>("LINESTRING(0 0,2 0,2.5 0,3 1)"),
from_wkt<ML>("MULTILINESTRING()"), from_wkt<ML>("MULTILINESTRING((0 0,1 0,2 0,2.5 0,3 1))"),
from_wkt<ML>("MULTILINESTRING((0 0,2 0,2.5 0,3 1))"),
"llu14"); "llu14");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,1 0,2 1,3 5,4 0)"), (from_wkt<L>("LINESTRING(0 0,1 0,2 1,3 5,4 0)"),
from_wkt<L>("LINESTRING(1 0,2 1,3 5)"), from_wkt<L>("LINESTRING(1 0,2 1,3 5)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(3 5,4 0))"), from_wkt<ML>("MULTILINESTRING((0 0,1 0,2 1,3 5,4 0))"),
from_wkt<ML>("MULTILINESTRING((1 0,2 1,3 5),(0 0,1 0),(3 5,4 0))"),
"llu15"); "llu15");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,1 0,2 1,3 2)"), (from_wkt<L>("LINESTRING(0 0,1 0,2 1,3 2)"),
from_wkt<L>("LINESTRING(0.5 0,1 0,3 2,4 5)"), from_wkt<L>("LINESTRING(0.5 0,1 0,3 2,4 5)"),
from_wkt<ML>("MULTILINESTRING((0 0,0.5 0))"), from_wkt<ML>("MULTILINESTRING((0 0,1 0,2 1,3 2),(3 2,4 5))"),
from_wkt<ML>("MULTILINESTRING((0.5 0,1 0,3 2,4 5),(0 0,0.5 0))"),
"llu16"); "llu16");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,1 0,2 1,3 2)"), (from_wkt<L>("LINESTRING(0 0,1 0,2 1,3 2)"),
from_wkt<L>("LINESTRING(4 5,3 2,1 0,0.5 0)"), from_wkt<L>("LINESTRING(4 5,3 2,1 0,0.5 0)"),
from_wkt<ML>("MULTILINESTRING((0 0,0.5 0))"), from_wkt<ML>("MULTILINESTRING((0 0,1 0,2 1,3 2),(4 5,3 2))"),
from_wkt<ML>("MULTILINESTRING((4 5,3 2,1 0,0.5 0),(0 0,0.5 0))"),
"llu16-r"); "llu16-r");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,10 0,20 1,30 1)"), (from_wkt<L>("LINESTRING(0 0,10 0,20 1,30 1)"),
from_wkt<L>("LINESTRING(1 1,2 0,3 1,20 1,25 1)"), from_wkt<L>("LINESTRING(1 1,2 0,3 1,20 1,25 1)"),
from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(25 1,30 1))"), from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1,30 1),(1 1,2 0,3 1,20 1))"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0,3 1,20 1,25 1),\
(0 0,10 0,20 1),(25 1,30 1))"),
"llu17"); "llu17");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,10 0,20 1,21 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,10 0,20 1,21 0,30 0)"),
from_wkt<L>("LINESTRING(1 1,2 0,3 1,20 1,25 0)"), from_wkt<L>("LINESTRING(1 1,2 0,3 1,20 1,25 0)"),
from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1,21 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1,21 0,30 0),\
(1 1,2 0,3 1,20 1,25 0))"),
"llu18"); "llu18");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,4 0,5 1)"), from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,4 0,5 1)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(5 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(5 0,20 1,4 1,4 0,5 1))"),
from_wkt<ML>("MULTILINESTRING((1 0,5 0,20 1,4 1,4 0,5 1),\
(0 0,1 0),(5 0,30 0))"),
"llu19"); "llu19");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<L>("LINESTRING(5 1,4 0,4 1,20 1,5 0,1 0)"), from_wkt<L>("LINESTRING(5 1,4 0,4 1,20 1,5 0,1 0)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(5 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(5 1,4 0,4 1,20 1,5 0))"),
from_wkt<ML>("MULTILINESTRING((5 1,4 0,4 1,20 1,5 0,1 0),\
(0 0,1 0),(5 0,30 0))"),
"llu19-r"); "llu19-r");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,4 0)"), from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,4 0)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(5 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(5 0,20 1,4 1,4 0))"),
from_wkt<ML>("MULTILINESTRING((1 0,5 0,20 1,4 1,4 0),(0 0,1 0),\
(5 0,30 0))"),
"llu19a"); "llu19a");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<L>("LINESTRING(4 0,4 1,20 1,5 0,1 0)"), from_wkt<L>("LINESTRING(4 0,4 1,20 1,5 0,1 0)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(5 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(4 0,4 1,20 1,5 0))"),
from_wkt<ML>("MULTILINESTRING((4 0,4 1,20 1,5 0,1 0),(0 0,1 0),\
(5 0,30 0))"),
"llu19a-r"); "llu19a-r");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,4 0,5 0)"), from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,4 0,5 0)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(5 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(5 0,20 1,4 1,4 0))"),
from_wkt<ML>("MULTILINESTRING((1 0,5 0,20 1,4 1,4 0,5 0),\
(0 0,1 0),(5 0,30 0))"),
"llu19b"); "llu19b");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,4 0,5 0,6 1)"), from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,4 0,5 0,6 1)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(5 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(5 0,20 1,4 1,4 0),(5 0,6 1))"),
from_wkt<ML>("MULTILINESTRING((1 0,5 0,20 1,4 1,4 0,5 0,6 1),\
(0 0,1 0),(5 0,30 0))"),
"llu19c"); "llu19c");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,4 0,3 0)"), from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,4 0,3 0)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(5 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(5 0,20 1,4 1,4 0))"),
from_wkt<ML>("MULTILINESTRING((1 0,5 0,20 1,4 1,4 0,3 0),\
(0 0,1 0),(5 0,30 0))"),
"llu19d"); "llu19d");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,4 0,3 0,3 1)"), from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,4 0,3 0,3 1)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(5 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(5 0,20 1,4 1,4 0),(3 0,3 1))"),
from_wkt<ML>("MULTILINESTRING((1 0,5 0,20 1,4 1,4 0,3 0,3 1),\
(0 0,1 0),(5 0,30 0))"),
"llu19e"); "llu19e");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,4 0,5 0,5 1)"), from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,4 0,5 0,5 1)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(5 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(5 0,20 1,4 1,4 0),(5 0,5 1))"),
from_wkt<ML>("MULTILINESTRING((1 0,5 0,20 1,4 1,4 0,5 0,5 1),\
(0 0,1 0),(5 0,30 0))"),
"llu19f"); "llu19f");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<L>("LINESTRING(5 1,5 0,4 0,4 1,20 1,5 0,1 0)"), from_wkt<L>("LINESTRING(5 1,5 0,4 0,4 1,20 1,5 0,1 0)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(5 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(5 1,5 0),\
(4 0,4 1,20 1,5 0))"),
from_wkt<ML>("MULTILINESTRING((5 1,5 0,4 0,4 1,20 1,5 0,1 0),\
(0 0,1 0),(5 0,30 0))"),
"llu19f-r"); "llu19f-r");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,5 0,5 1)"), from_wkt<L>("LINESTRING(1 0,5 0,20 1,4 1,5 0,5 1)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(5 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(5 0,20 1,4 1,5 0,5 1))"),
from_wkt<ML>("MULTILINESTRING((1 0,5 0,20 1,4 1,5 0,5 1),\
(0 0,1 0),(5 0,30 0))"),
"llu19g"); "llu19g");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<L>("LINESTRING(5 1,5 0,4 1,20 1,5 0,1 0)"), from_wkt<L>("LINESTRING(5 1,5 0,4 1,20 1,5 0,1 0)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(5 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(5 1,5 0,4 1,20 1,5 0))"),
from_wkt<ML>("MULTILINESTRING((5 1,5 0,4 1,20 1,5 0,1 0),\
(0 0,1 0),(5 0,30 0))"),
"llu19g-r"); "llu19g-r");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,30 0,30 30,10 30,10 -10,15 0,40 0)"), (from_wkt<L>("LINESTRING(0 0,30 0,30 30,10 30,10 -10,15 0,40 0)"),
from_wkt<L>("LINESTRING(5 5,10 0,10 30,20 0,25 0,25 25,50 0,35 0)"), from_wkt<L>("LINESTRING(5 5,10 0,10 30,20 0,25 0,25 25,50 0,35 0)"),
from_wkt<ML>("MULTILINESTRING((0 0,20 0),(25 0,30 0,30 30,10 30),\ from_wkt<ML>("MULTILINESTRING((0 0,30 0,30 30,10 30,10 -10,15 0,40 0),\
(5 5,10 0),(10 30,20 0),(25 0,25 25,50 0,40 0))"),
from_wkt<ML>("MULTILINESTRING((5 5,10 0,10 30,20 0,25 0,25 25,50 0,35 0),\
(0 0,20 0),(25 0,30 0,30 30,10 30),\
(10 0,10 -10,15 0,20 0),(25 0,35 0))"), (10 0,10 -10,15 0,20 0),(25 0,35 0))"),
"llu20"); "llu20");
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,30 0,30 30,10 30,10 -10,15 0,40 0)"), (from_wkt<L>("LINESTRING(0 0,30 0,30 30,10 30,10 -10,15 0,40 0)"),
from_wkt<L>("LINESTRING(5 5,10 0,10 30,20 0,25 0,25 25,50 0,15 0)"), from_wkt<L>("LINESTRING(5 5,10 0,10 30,20 0,25 0,25 25,50 0,15 0)"),
from_wkt<ML>("MULTILINESTRING((0 0,15 0),(30 0,30 30,10 30),\ from_wkt<ML>("MULTILINESTRING((0 0,30 0,30 30,10 30,10 -10,15 0,40 0),\
(10 0,10 -10,15 0))"), (5 5,10 0),(10 30,20 0),(25 0,25 25,50 0,40 0))"),
from_wkt<ML>("MULTILINESTRING((5 5,10 0,10 30,20 0,25 0,25 25,50 0,15 0),\
(0 0,15 0),(30 0,30 30,10 30),(10 0,10 -10,15 0))"),
"llu20a"); "llu20a");
#if !defined(BOOST_GEOMETRY_DIFFERENCE_DO_NOT_REMOVE_DUPLICATE_TURNS) \
|| defined(GEOMETRY_TEST_INCLUDE_FAILING_TESTS)
// the following example produces duplicate turns (when both are
// reversed)
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"),
from_wkt<L>("LINESTRING(2 2,5 -1,15 2,18 0,20 0)"), from_wkt<L>("LINESTRING(2 2,5 -1,15 2,18 0,20 0)"),
from_wkt<ML>("MULTILINESTRING((0 0,18 0),(20 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,18 0,19 0,30 0),\
(2 2,5 -1,15 2,18 0))"),
from_wkt<ML>("MULTILINESTRING((2 2,5 -1,15 2,18 0,20 0),\
(0 0,18 0),(20 0,30 0))"),
"llu21" "llu21"
); );
// the following example produces duplicate turns (when the 2nd LS
// is reversed)
tester::apply tester::apply
(from_wkt<L>("LINESTRING(2 2,5 -1,15 2,18 0,20 0)"), (from_wkt<L>("LINESTRING(2 2,5 -1,15 2,18 0,20 0)"),
from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"), from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"),
from_wkt<ML>("MULTILINESTRING((2 2,5 -1,15 2,18 0))"), from_wkt<ML>("MULTILINESTRING((2 2,5 -1,15 2,18 0,20 0),\
(0 0,18 0),(20 0,30 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,18 0,19 0,30 0),\
(2 2,5 -1,15 2,18 0))"),
"llu21a" "llu21a"
); );
#endif
#endif
} }
#if 0
BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring ) BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
{ {
#ifdef GEOMETRY_TEST_DEBUG #ifdef GEOMETRY_TEST_DEBUG
@ -445,35 +483,36 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,10 0,20 1)"), (from_wkt<L>("LINESTRING(0 0,10 0,20 1)"),
from_wkt<ML>("MULTILINESTRING((1 1,2 2,4 3),(1 1,2 2,5 3))"), from_wkt<ML>("MULTILINESTRING((1 1,2 2,4 3),(1 1,2 2,5 3))"),
from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1))"), from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 1,2 2,4 3),\
(1 1,2 2,5 3))"),
"lmlu01" "lmlu01"
); );
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,10 0,20 1)"), (from_wkt<L>("LINESTRING(0 0,10 0,20 1)"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),(1 1,3 0,4 0))"), from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),(1 1,3 0,4 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,2 0),(4 0,10 0,20 1))"), from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 1,2 0),(1 1,3 0))"),
"lmlu02" "lmlu02"
); );
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,10 0,20 1)"), (from_wkt<L>("LINESTRING(0 0,10 0,20 1)"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),(1 1,3 0,5 0))"), from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),(1 1,3 0,5 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,2 0),(5 0,10 0,20 1))"), from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 1,2 0),(1 1,3 0))"),
"lmlu03" "lmlu03"
); );
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,10 0,20 1)"), (from_wkt<L>("LINESTRING(0 0,10 0,20 1)"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0))"), from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,2 0),(4 0,10 0,20 1))"), from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 1,2 0))"),
"lmlu04" "lmlu04"
); );
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,101 0)"), (from_wkt<L>("LINESTRING(0 0,101 0)"),
from_wkt<ML>("MULTILINESTRING((-1 -1,1 0,101 0,200 -1))"), from_wkt<ML>("MULTILINESTRING((-1 -1,1 0,101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0))"), from_wkt<ML>("MULTILINESTRING((0 0,101 0),(-1 -1,1 0),(101 0,200 -1))"),
"lmlu07" "lmlu07"
); );
@ -481,7 +520,8 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(-1 1,0 0,101 0)"), (from_wkt<L>("LINESTRING(-1 1,0 0,101 0)"),
from_wkt<ML>("MULTILINESTRING((-1 -1,0 0,50 0),\ from_wkt<ML>("MULTILINESTRING((-1 -1,0 0,50 0),\
(19 -1,20 0,101 0,200 -1))"), (19 -1,20 0,101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((-1 1,0 0))"), from_wkt<ML>("MULTILINESTRING((-1 1,0 0,101 0),(-1 -1,0 0),\
(19 -1,20 0),(101 0,200 -1))"),
"lmlu07a" "lmlu07a"
); );
@ -489,7 +529,8 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(0 0,101 0)"), (from_wkt<L>("LINESTRING(0 0,101 0)"),
from_wkt<ML>("MULTILINESTRING((-1 -1,0 0,50 0),\ from_wkt<ML>("MULTILINESTRING((-1 -1,0 0,50 0),\
(19 -1,20 0,101 0,200 -1))"), (19 -1,20 0,101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING()"), from_wkt<ML>("MULTILINESTRING((0 0,101 0),(-1 -1,0 0),\
(19 -1,20 0),(101 0,200 -1))"),
"lmlu07b" "lmlu07b"
); );
@ -497,7 +538,8 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(0 0,101 0)"), (from_wkt<L>("LINESTRING(0 0,101 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 1,2 0),\ from_wkt<ML>("MULTILINESTRING((0 1,1 1,2 0),\
(-1 -1,1 0,101 0,200 -1))"), (-1 -1,1 0,101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0))"), from_wkt<ML>("MULTILINESTRING((0 0,101 0),(0 1,1 1,2 0),\
(-1 -1,1 0),(101 0,200 -1))"),
"lmlu08" "lmlu08"
); );
@ -505,7 +547,8 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(0 0,1 0,2 0.5,3 0,101 0)"), (from_wkt<L>("LINESTRING(0 0,1 0,2 0.5,3 0,101 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 1,2 0.5),\ from_wkt<ML>("MULTILINESTRING((0 1,1 1,2 0.5),\
(-1 -1,1 0,101 0,200 -1))"), (-1 -1,1 0,101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0,2 0.5,3 0))"), from_wkt<ML>("MULTILINESTRING((0 0,1 0,2 0.5,3 0,101 0),\
(0 1,1 1,2 0.5),(-1 -1,1 0,3 0),(101 0,200 -1))"),
"lmlu09" "lmlu09"
); );
@ -513,7 +556,9 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(0 0,1 0,1.5 0,2 0.5,3 0,101 0)"), (from_wkt<L>("LINESTRING(0 0,1 0,1.5 0,2 0.5,3 0,101 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 1,1 0,2 0.5),\ from_wkt<ML>("MULTILINESTRING((0 1,1 1,1 0,2 0.5),\
(-1 -1,1 0,101 0,200 -1))"), (-1 -1,1 0,101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(1.5 0,2 0.5,3 0))"), from_wkt<ML>("MULTILINESTRING((0 0,1 0,1.5 0,2 0.5,3 0,101 0),\
(0 1,1 1,1 0,2 0.5),(-1 -1,1 0),(1.5 0,3 0),\
(101 0,200 -1))"),
"lmlu10" "lmlu10"
); );
@ -522,7 +567,9 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(1 1,2 0,18 0,19 1),(2 1,3 0,17 0,18 1),\ (1 1,2 0,18 0,19 1),(2 1,3 0,17 0,18 1),\
(3 1,4 0,16 0,17 1))"), (3 1,4 0,16 0,17 1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 0,20 0),(0 1,1 0),(19 0,20 1),\
(1 1,2 0),(18 0,19 1),(2 1,3 0),(17 0,18 1),\
(3 1,4 0),(16 0,17 1))"),
"lmlu12" "lmlu12"
); );
@ -531,7 +578,8 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
from_wkt<ML>("MULTILINESTRING((1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((1 0,19 0,20 1),\
(2 0,18 0,19 1),(3 0,17 0,18 1),\ (2 0,18 0,19 1),(3 0,17 0,18 1),\
(4 0,16 0,17 1))"), (4 0,16 0,17 1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 0,20 0),(19 0,20 1),(18 0,19 1),\
(17 0,18 1),(16 0,17 1))"),
"lmlu13" "lmlu13"
); );
@ -539,7 +587,9 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(0 0,20 0)"), (from_wkt<L>("LINESTRING(0 0,20 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1,19 1,18 0,2 0,\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1,19 1,18 0,2 0,\
1 1,2 1,3 0,17 0,18 1,17 1,16 0,4 0,3 1))"), 1 1,2 1,3 0,17 0,18 1,17 1,16 0,4 0,3 1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 0,20 0),(0 1,1 0),\
(19 0,20 1,19 1,18 0),(2 0,1 1,2 1,3 0),\
(17 0,18 1,17 1,16 0),(4 0,3 1))"),
"lmlu14" "lmlu14"
); );
@ -547,7 +597,8 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(0 0,20 0)"), (from_wkt<L>("LINESTRING(0 0,20 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,4 2,6 0))"), (2 2,4 2,6 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 0,20 0),(0 1,1 0),(19 0,20 1),\
(2 2,4 2,6 0))"),
"lmlu15" "lmlu15"
); );
@ -555,7 +606,8 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(0 0,20 0)"), (from_wkt<L>("LINESTRING(0 0,20 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(6 0,4 2,2 2))"), (6 0,4 2,2 2))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 0,20 0),(0 1,1 0),(19 0,20 1),\
(6 0,4 2,2 2))"),
"lmlu15a" "lmlu15a"
); );
@ -563,7 +615,8 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(0 0,20 0)"), (from_wkt<L>("LINESTRING(0 0,20 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,4 2,5 0,6 0))"), (2 2,4 2,5 0,6 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 0,20 0),(0 1,1 0),(19 0,20 1),\
(2 2,4 2,5 0))"),
"lmlu16" "lmlu16"
); );
@ -571,7 +624,8 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(0 0,20 0)"), (from_wkt<L>("LINESTRING(0 0,20 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(6 0,5 0,4 2,2 2))"), (6 0,5 0,4 2,2 2))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 0,20 0),(0 1,1 0),(19 0,20 1),\
(5 0,4 2,2 2))"),
"lmlu16a" "lmlu16a"
); );
@ -579,7 +633,8 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,4 0,5 2,20 2,25 0))"), (2 2,4 0,5 2,20 2,25 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(0 1,1 0),(19 0,20 1),\
(2 2,4 0,5 2,20 2,25 0))"),
"lmlu17" "lmlu17"
); );
@ -587,7 +642,8 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,4 0,5 2,20 2,25 0,26 2))"), (2 2,4 0,5 2,20 2,25 0,26 2))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(0 1,1 0),(19 0,20 1),\
(2 2,4 0,5 2,20 2,25 0,26 2))"),
"lmlu17a" "lmlu17a"
); );
@ -595,7 +651,8 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(0 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,30 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,5 -1,15 2,18 0))"), (2 2,5 -1,15 2,18 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(0 1,1 0),(19 0,20 1),\
(2 2,5 -1,15 2,18 0))"),
"lmlu18" "lmlu18"
); );
@ -603,28 +660,26 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,5 -1,15 2,18 0))"), (2 2,5 -1,15 2,18 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,18 0,19 0,30 0),(0 1,1 0),\
(19 0,20 1),(2 2,5 -1,15 2,18 0))"),
"lmlu18a" "lmlu18a"
); );
#if !defined(BOOST_GEOMETRY_DIFFERENCE_DO_NOT_REMOVE_DUPLICATE_TURNS) \
|| defined(GEOMETRY_TEST_INCLUDE_FAILING_TESTS)
// the following example produces duplicate turns (when both
// are reversed)
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,5 -1,15 2,18 0,20 0))"), (2 2,5 -1,15 2,18 0,20 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(20 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,18 0,19 0,30 0),(0 1,1 0),\
(19 0,20 1),(2 2,5 -1,15 2,18 0))"),
"lmlu18b" "lmlu18b"
); );
#endif
tester::apply tester::apply
(from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,5 -1,15 2,25 0,26 0))"), (2 2,5 -1,15 2,25 0,26 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,25 0),(26 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,18 0,19 0,30 0),(0 1,1 0),\
(19 0,20 1),(2 2,5 -1,15 2,25 0))"),
"lmlu18c" "lmlu18c"
); );
@ -632,15 +687,14 @@ BOOST_AUTO_TEST_CASE( test_union_linestring_multilinestring )
(from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"), (from_wkt<L>("LINESTRING(0 0,18 0,19 0,30 0)"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,5 -1,15 2,25 0,21 0))"), (2 2,5 -1,15 2,25 0,21 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,21 0),(25 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,18 0,19 0,30 0),(0 1,1 0),\
(19 0,20 1),(2 2,5 -1,15 2,25 0))"),
"lmlu18d" "lmlu18d"
); );
} }
BOOST_AUTO_TEST_CASE( test_union_multilinestring_linestring ) BOOST_AUTO_TEST_CASE( test_union_multilinestring_linestring )
{ {
#ifdef GEOMETRY_TEST_DEBUG #ifdef GEOMETRY_TEST_DEBUG
@ -659,14 +713,14 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_linestring )
tester::apply tester::apply
(from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0))"),
from_wkt<L>("LINESTRING(1 1,2 2,4 3)"), from_wkt<L>("LINESTRING(1 1,2 2,4 3)"),
from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0))"), from_wkt<ML>("MULTILINESTRING((1 1,2 2,4 3),(0 0,10 0,20 1),(1 0,7 0))"),
"mllu01" "mllu01"
); );
tester::apply tester::apply
(from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0))"),
from_wkt<L>("LINESTRING(1 1,2 0,4 0)"), from_wkt<L>("LINESTRING(1 1,2 0,4 0)"),
from_wkt<ML>("MULTILINESTRING((0 0,2 0),(4 0,10 0,20 1),\ from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),(0 0,2 0),(4 0,10 0,20 1),\
(1 0,2 0),(4 0,7 0))"), (1 0,2 0),(4 0,7 0))"),
"mllu02" "mllu02"
); );
@ -674,7 +728,7 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_linestring )
tester::apply tester::apply
(from_wkt<ML>("MULTILINESTRING((0 0,101 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,101 0))"),
from_wkt<L>("LINESTRING(-1 -1,1 0,101 0,200 -1)"), from_wkt<L>("LINESTRING(-1 -1,1 0,101 0,200 -1)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0))"), from_wkt<ML>("MULTILINESTRING((-1 -1,1 0,101 0,200 -1),(0 0,1 0))"),
"mllu03" "mllu03"
); );
@ -682,7 +736,9 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_linestring )
(from_wkt<ML>("MULTILINESTRING((0 0,20 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,20 0))"),
from_wkt<L>("LINESTRING(0 1,1 0,19 0,20 1,19 1,18 0,2 0,\ from_wkt<L>("LINESTRING(0 1,1 0,19 0,20 1,19 1,18 0,2 0,\
1 1,2 1,3 0,17 0,18 1,17 1,16 0,4 0,3 1)"), 1 1,2 1,3 0,17 0,18 1,17 1,16 0,4 0,3 1)"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1,19 1,18 0,2 0,\
1 1,2 1,3 0,17 0,18 1,17 1,16 0,4 0,3 1),\
(0 0,1 0),(19 0,20 0))"),
"mllu04" "mllu04"
); );
} }
@ -710,31 +766,38 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
tester::apply tester::apply
(from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0))"),
from_wkt<ML>("MULTILINESTRING((1 1,2 2,4 3),(1 1,2 2,5 3))"), from_wkt<ML>("MULTILINESTRING((1 1,2 2,4 3),(1 1,2 2,5 3))"),
from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0))"), from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0),\
(1 1,2 2,4 3),(1 1,2 2,5 3))"),
"mlmlu01" "mlmlu01"
); );
tester::apply tester::apply
(from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0))"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),(1 1,3 0,4 0))"), from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),(1 1,3 0,4 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,2 0),(4 0,10 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0),\
(1 0,2 0),(4 0,7 0))"), (1 1,2 0),(1 1,3 0))"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),(1 1,3 0,4 0),\
(0 0,2 0),(4 0,10 0,20 1),(1 0,2 0),(4 0,7 0))"),
"mlmlu02" "mlmlu02"
); );
tester::apply tester::apply
(from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0))"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),(1 1,3 0,5 0))"), from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),(1 1,3 0,5 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,2 0),(5 0,10 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0),\
(1 0,2 0),(5 0,7 0))"), (1 1,2 0),(1 1,3 0))"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),(1 1,3 0,5 0),\
(0 0,2 0),(5 0,10 0,20 1),(1 0,2 0),(5 0,7 0))"),
"mlmlu03" "mlmlu03"
); );
tester::apply tester::apply
(from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0))"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0))"), from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,2 0),(4 0,10 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0),\
(1 0,2 0),(4 0,7 0))"), (1 1,2 0))"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),(0 0,2 0),\
(4 0,10 0,20 1),(1 0,2 0),(4 0,7 0))"),
"mlmlu04" "mlmlu04"
); );
@ -743,19 +806,30 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(10 10,20 10,30 20))"), (10 10,20 10,30 20))"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),\ from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),\
(10 20,15 10,25 10,30 15))"), (10 20,15 10,25 10,30 15))"),
from_wkt<ML>("MULTILINESTRING((0 0,2 0),(4 0,10 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 1),(1 0,7 0),\
(10 10,20 10,30 20),(1 1,2 0),(10 20,15 10),\
(20 10,25 10,30 15))"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),\
(10 20,15 10,25 10,30 15),(0 0,2 0),(4 0,10 0,20 1),\
(1 0,2 0),(4 0,7 0),(10 10,15 10),(20 10,30 20))"), (1 0,2 0),(4 0,7 0),(10 10,15 10),(20 10,30 20))"),
"mlmlu05" "mlmlu05"
); );
tester::apply tester::apply
(from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 10),(1 0,7 0),\ (from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 10),(1 0,7 0),\
(10 10,20 10,30 20))"), (10 10,20 10,30 20))"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),\ from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),\
(-1 -1,0 0,9 0,11 10,12 10,13 3,14 4,15 5),\ (-1 -1,0 0,9 0,11 10,12 10,13 3,14 4,15 5),\
(10 20,15 10,25 10,30 15))"), (10 20,15 10,25 10,30 15))"),
from_wkt<ML>("MULTILINESTRING((9 0,10 0,13 3),(15 5,20 10),\ from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 10),(1 0,7 0),\
(10 10,11 10),(12 10,15 10),(20 10,30 20))"), (10 10,20 10,30 20),(1 1,2 0),\
(-1 -1,0 0),(9 0,11 10),(12 10,13 3),(10 20,15 10),\
(20 10,25 10,30 15))"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),\
(-1 -1,0 0,9 0,11 10,12 10,13 3,14 4,15 5),\
(10 20,15 10,25 10,30 15),(9 0,10 0,13 3),\
(15 5,20 10),(10 10,11 10),(12 10,15 10),(20 10,30 20))"),
"mlmlu06" "mlmlu06"
); );
@ -765,15 +839,23 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(10 20,15 10,25 10,30 15))"), (10 20,15 10,25 10,30 15))"),
from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 10),(1 0,7 0),\ from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 10),(1 0,7 0),\
(10 10,20 10,30 20))"), (10 10,20 10,30 20))"),
from_wkt<ML>("MULTILINESTRING((1 1,2 0),(-1 -1,0 0),(9 0,11 10),\ from_wkt<ML>("MULTILINESTRING((1 1,2 0,4 0),\
(12 10,13 3),(10 20,15 10),(20 10,25 10,30 15))"), (-1 -1,0 0,9 0,11 10,12 10,13 3,14 4,15 5),\
(10 20,15 10,25 10,30 15),(9 0,10 0,13 3),\
(15 5,20 10),(10 10,11 10),(12 10,15 10),\
(20 10,30 20))"),
from_wkt<ML>("MULTILINESTRING((0 0,10 0,20 10),(1 0,7 0),\
(10 10,20 10,30 20),(1 1,2 0),(-1 -1,0 0), \
(9 0,11 10),(12 10,13 3),(10 20,15 10),\
(20 10,25 10,30 15))"),
"mlmlu06a" "mlmlu06a"
); );
tester::apply tester::apply
(from_wkt<ML>("MULTILINESTRING((0 0,101 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,101 0))"),
from_wkt<ML>("MULTILINESTRING((-1 -1,1 0,101 0,200 -1))"), from_wkt<ML>("MULTILINESTRING((-1 -1,1 0,101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0))"), from_wkt<ML>("MULTILINESTRING((0 0,101 0),(-1 -1,1 0),(101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((-1 -1,1 0,101 0,200 -1),(0 0,1 0))"),
"mlmlu07" "mlmlu07"
); );
@ -781,7 +863,10 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(from_wkt<ML>("MULTILINESTRING((-1 1,0 0,101 0))"), (from_wkt<ML>("MULTILINESTRING((-1 1,0 0,101 0))"),
from_wkt<ML>("MULTILINESTRING((-1 -1,0 0,50 0),\ from_wkt<ML>("MULTILINESTRING((-1 -1,0 0,50 0),\
(19 -1,20 0,101 0,200 -1))"), (19 -1,20 0,101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((-1 1,0 0))"), from_wkt<ML>("MULTILINESTRING((-1 1,0 0,101 0),(-1 -1,0 0),\
(19 -1,20 0),(101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((-1 -1,0 0,50 0),\
(19 -1,20 0,101 0,200 -1),(-1 1,0 0))"),
"mlmlu07a" "mlmlu07a"
); );
@ -789,7 +874,10 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(from_wkt<ML>("MULTILINESTRING((0 0,101 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,101 0))"),
from_wkt<ML>("MULTILINESTRING((-1 -1,0 0,50 0),\ from_wkt<ML>("MULTILINESTRING((-1 -1,0 0,50 0),\
(19 -1,20 0,101 0,200 -1))"), (19 -1,20 0,101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING()"), from_wkt<ML>("MULTILINESTRING((0 0,101 0),(-1 -1,0 0),\
(19 -1,20 0),(101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((-1 -1,0 0,50 0),\
(19 -1,20 0,101 0,200 -1))"),
"mlmlu07b" "mlmlu07b"
); );
@ -797,7 +885,10 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(from_wkt<ML>("MULTILINESTRING((0 0,101 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,101 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 1,2 0),\ from_wkt<ML>("MULTILINESTRING((0 1,1 1,2 0),\
(-1 -1,1 0,101 0,200 -1))"), (-1 -1,1 0,101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0))"), from_wkt<ML>("MULTILINESTRING((0 0,101 0),(0 1,1 1,2 0),\
(-1 -1,1 0),(101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 1,2 0),\
(-1 -1,1 0,101 0,200 -1),(0 0,1 0))"),
"mlmlu08" "mlmlu08"
); );
@ -805,7 +896,10 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(from_wkt<ML>("MULTILINESTRING((0 0,1 0,2 0.5,3 0,101 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,1 0,2 0.5,3 0,101 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 1,2 0.5),\ from_wkt<ML>("MULTILINESTRING((0 1,1 1,2 0.5),\
(-1 -1,1 0,101 0,200 -1))"), (-1 -1,1 0,101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0,2 0.5,3 0))"), from_wkt<ML>("MULTILINESTRING((0 0,1 0,2 0.5,3 0,101 0),\
(0 1,1 1,2 0.5),(-1 -1,1 0,3 0),(101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 1,2 0.5),\
(-1 -1,1 0,101 0,200 -1),(0 0,1 0,2 0.5,3 0))"),
"mlmlu09" "mlmlu09"
); );
@ -813,7 +907,11 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(from_wkt<ML>("MULTILINESTRING((0 0,1 0,1.5 0,2 0.5,3 0,101 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,1 0,1.5 0,2 0.5,3 0,101 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 1,1 0,2 0.5),\ from_wkt<ML>("MULTILINESTRING((0 1,1 1,1 0,2 0.5),\
(-1 -1,1 0,101 0,200 -1))"), (-1 -1,1 0,101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(1.5 0,2 0.5,3 0))"), from_wkt<ML>("MULTILINESTRING((0 0,1 0,1.5 0,2 0.5,3 0,101 0),\
(0 1,1 1,1 0,2 0.5),(-1 -1,1 0),(1.5 0,3 0),\
(101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 1,1 0,2 0.5),\
(-1 -1,1 0,101 0,200 -1),(0 0,1 0),(1.5 0,2 0.5,3 0))"),
"mlmlu10" "mlmlu10"
); );
@ -823,8 +921,14 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
from_wkt<ML>("MULTILINESTRING((1 0,1 1,2 1,3 0,4 0,5 1,6 1,\ from_wkt<ML>("MULTILINESTRING((1 0,1 1,2 1,3 0,4 0,5 1,6 1,\
7 0,8 0,9 1,10 1,11 0,12 0,13 1,14 1,15 0),\ 7 0,8 0,9 1,10 1,11 0,12 0,13 1,14 1,15 0),\
(-1 -1,1 0,101 0,200 -1))"), (-1 -1,1 0,101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 1),(2 1,5 1),(6 1,9 1),\ from_wkt<ML>("MULTILINESTRING((0 0,1 1,100 1,101 0),\
(10 1,13 1),(14 1,100 1,101 0),(0 0,1 0))"), (0 0,101 0),(1 0,1 1),(2 1,3 0),(4 0,5 1),(6 1,7 0),\
(8 0,9 1),(10 1,11 0),(12 0,13 1),(14 1,15 0),\
(-1 -1,1 0),(101 0,200 -1))"),
from_wkt<ML>("MULTILINESTRING((1 0,1 1,2 1,3 0,4 0,5 1,6 1,\
7 0,8 0,9 1,10 1,11 0,12 0,13 1,14 1,15 0),\
(-1 -1,1 0,101 0,200 -1),(0 0,1 1),(2 1,5 1),\
(6 1,9 1),(10 1,13 1),(14 1,100 1,101 0),(0 0,1 0))"),
"mlmlu11" "mlmlu11"
); );
@ -833,7 +937,12 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(1 1,2 0,18 0,19 1),(2 1,3 0,17 0,18 1),\ (1 1,2 0,18 0,19 1),(2 1,3 0,17 0,18 1),\
(3 1,4 0,16 0,17 1))"), (3 1,4 0,16 0,17 1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 0,20 0),(0 1,1 0),(19 0,20 1),\
(1 1,2 0),(18 0,19 1),(2 1,3 0),(17 0,18 1),\
(3 1,4 0),(16 0,17 1))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(1 1,2 0,18 0,19 1),(2 1,3 0,17 0,18 1),\
(3 1,4 0,16 0,17 1),(0 0,1 0),(19 0,20 0))"),
"mlmlu12" "mlmlu12"
); );
@ -842,7 +951,11 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
from_wkt<ML>("MULTILINESTRING((1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((1 0,19 0,20 1),\
(2 0,18 0,19 1),(3 0,17 0,18 1),\ (2 0,18 0,19 1),(3 0,17 0,18 1),\
(4 0,16 0,17 1))"), (4 0,16 0,17 1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 0,20 0),(19 0,20 1),(18 0,19 1),\
(17 0,18 1),(16 0,17 1))"),
from_wkt<ML>("MULTILINESTRING((1 0,19 0,20 1),\
(2 0,18 0,19 1),(3 0,17 0,18 1),\
(4 0,16 0,17 1),(0 0,1 0),(19 0,20 0))"),
"mlmlu13" "mlmlu13"
); );
@ -850,7 +963,12 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(from_wkt<ML>("MULTILINESTRING((0 0,20 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,20 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1,19 1,18 0,2 0,\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1,19 1,18 0,2 0,\
1 1,2 1,3 0,17 0,18 1,17 1,16 0,4 0,3 1))"), 1 1,2 1,3 0,17 0,18 1,17 1,16 0,4 0,3 1))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 0,20 0),(0 1,1 0),\
(19 0,20 1,19 1,18 0),(2 0,1 1,2 1,3 0),\
(17 0,18 1,17 1,16 0),(4 0,3 1))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1,19 1,18 0,2 0,\
1 1,2 1,3 0,17 0,18 1,17 1,16 0,4 0,3 1),\
(0 0,1 0),(19 0,20 0))"),
"mlmlu14" "mlmlu14"
); );
@ -858,7 +976,10 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(from_wkt<ML>("MULTILINESTRING((0 0,20 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,20 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,4 2,6 0))"), (2 2,4 2,6 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 0,20 0),(0 1,1 0),(19 0,20 1),\
(2 2,4 2,6 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,4 2,6 0),(0 0,1 0),(19 0,20 0))"),
"mlmlu15" "mlmlu15"
); );
@ -866,7 +987,10 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(from_wkt<ML>("MULTILINESTRING((0 0,20 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,20 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(6 0,4 2,2 2))"), (6 0,4 2,2 2))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 0,20 0),(0 1,1 0),(19 0,20 1),\
(6 0,4 2,2 2))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(6 0,4 2,2 2),(0 0,1 0),(19 0,20 0))"),
"mlmlu15a" "mlmlu15a"
); );
@ -874,7 +998,10 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(from_wkt<ML>("MULTILINESTRING((0 0,20 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,20 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,4 2,5 0,6 0))"), (2 2,4 2,5 0,6 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 0,20 0),(0 1,1 0),(19 0,20 1),\
(2 2,4 2,5 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,4 2,5 0,6 0),(0 0,1 0),(19 0,20 0))"),
"mlmlu16" "mlmlu16"
); );
@ -882,7 +1009,10 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(from_wkt<ML>("MULTILINESTRING((0 0,20 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,20 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(6 0,5 0,4 2,2 2))"), (6 0,5 0,4 2,2 2))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,20 0))"), from_wkt<ML>("MULTILINESTRING((0 0,20 0),(0 1,1 0),(19 0,20 1),\
(5 0,4 2,2 2))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(6 0,5 0,4 2,2 2),(0 0,1 0),(19 0,20 0))"),
"mlmlu16a" "mlmlu16a"
); );
@ -890,7 +1020,10 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(from_wkt<ML>("MULTILINESTRING((0 0,30 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,30 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,4 0,5 2,20 2,25 0))"), (2 2,4 0,5 2,20 2,25 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(0 1,1 0),(19 0,20 1),\
(2 2,4 0,5 2,20 2,25 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,4 0,5 2,20 2,25 0),(0 0,1 0),(19 0,30 0))"),
"mlmlu17" "mlmlu17"
); );
@ -898,7 +1031,10 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(from_wkt<ML>("MULTILINESTRING((0 0,30 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,30 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,4 0,5 2,20 2,25 0,26 2))"), (2 2,4 0,5 2,20 2,25 0,26 2))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(0 1,1 0),(19 0,20 1),\
(2 2,4 0,5 2,20 2,25 0,26 2))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,4 0,5 2,20 2,25 0,26 2),(0 0,1 0),(19 0,30 0))"),
"mlmlu17a" "mlmlu17a"
); );
@ -906,7 +1042,10 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(from_wkt<ML>("MULTILINESTRING((0 0,30 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,30 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,5 -1,15 2,18 0))"), (2 2,5 -1,15 2,18 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,30 0),(0 1,1 0),(19 0,20 1),\
(2 2,5 -1,15 2,18 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,5 -1,15 2,18 0),(0 0,1 0),(19 0,30 0))"),
"mlmlu18" "mlmlu18"
); );
@ -914,8 +1053,10 @@ BOOST_AUTO_TEST_CASE( test_union_multilinestring_multilinestring )
(from_wkt<ML>("MULTILINESTRING((0 0,18 0,19 0,30 0))"), (from_wkt<ML>("MULTILINESTRING((0 0,18 0,19 0,30 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\ from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,5 -1,15 2,18 0))"), (2 2,5 -1,15 2,18 0))"),
from_wkt<ML>("MULTILINESTRING((0 0,1 0),(19 0,30 0))"), from_wkt<ML>("MULTILINESTRING((0 0,18 0,19 0,30 0),(0 1,1 0),\
(19 0,20 1),(2 2,5 -1,15 2,18 0))"),
from_wkt<ML>("MULTILINESTRING((0 1,1 0,19 0,20 1),\
(2 2,5 -1,15 2,18 0),(0 0,1 0),(19 0,30 0))"),
"mlmlu18a" "mlmlu18a"
); );
} }
#endif