mirror of
https://github.com/boostorg/geometry.git
synced 2025-05-11 13:34:10 +00:00
[relate][within] add tests for Linestrings with duplicated points
This commit is contained in:
parent
3b91c7ed34
commit
b6fc144de7
@ -863,6 +863,7 @@ struct linear_areal
|
||||
|
||||
if ( is_ip_qj )
|
||||
{
|
||||
// TODO: this won't work for duplicated points!!!
|
||||
std::size_t q_seg_jk = (q_seg_ij + 1) % seg_count2;
|
||||
BOOST_ASSERT(q_seg_jk + 1 < s2);
|
||||
point2_type const& qk = range::at(range2, q_seg_jk + 1);
|
||||
|
@ -433,6 +433,23 @@ void test_linestring_polygon()
|
||||
|
||||
// II IB0 IE
|
||||
test_geometry<ls, poly>("LINESTRING(5 5,10 5,15 10)", "POLYGON((0 0,0 10,10 10,10 0,0 0))", "1010F0212");
|
||||
test_geometry<ls, poly>("LINESTRING(5 5,5 5,5 5,10 5,10 5,10 5,15 10,15 10,15 10)",
|
||||
"POLYGON((0 0,0 0,0 0,0 10,0 10,0 10,10 10,10 10,10 10,10 0,10 0,10 0,0 0,0 0,0 0))",
|
||||
"1010F0212");
|
||||
test_geometry<ls, poly>("LINESTRING(5 5,5 5,5 5,10 0,10 0,10 0,15 10,15 10,15 10)",
|
||||
"POLYGON((0 0,0 0,0 0,0 10,0 10,0 10,10 10,10 10,10 10,10 0,10 0,10 0,0 0,0 0,0 0))",
|
||||
"1010F0212");
|
||||
// IE IB0 II
|
||||
test_geometry<ls, poly>("LINESTRING(15 10,15 10,15 10,10 5,10 5,10 5,5 5,5 5,5 5)",
|
||||
"POLYGON((0 0,0 0,0 0,0 10,0 10,0 10,10 10,10 10,10 10,10 0,10 0,10 0,0 0,0 0,0 0))",
|
||||
"1010F0212");
|
||||
test_geometry<ls, poly>("LINESTRING(15 10,15 10,15 10,10 0,10 0,10 0,5 5,5 5,5 5)",
|
||||
"POLYGON((0 0,0 0,0 0,0 10,0 10,0 10,10 10,10 10,10 10,10 0,10 0,10 0,0 0,0 0,0 0))",
|
||||
"1010F0212");
|
||||
|
||||
// TEST
|
||||
test_geometry<ls, poly>("LINESTRING(5 5,5 5,5 5)", "POLYGON((0 0,0 10,10 10,10 0,0 0))", "1010F0212");
|
||||
test_geometry<ls, poly>("LINESTRING(5 5,5 5,5 5,15 5,15 5,15 5)", "POLYGON((0 0,0 10,10 10,10 0,0 0))", "1010F0212");
|
||||
|
||||
// non-simple polygon with hole
|
||||
test_geometry<ls, poly>("LINESTRING(9 1,10 5,9 9)",
|
||||
|
@ -43,6 +43,9 @@ void test_linestring_linestring()
|
||||
test_geometry<ls, ls>("LINESTRING(1 1, 2 2, 2 2)", "LINESTRING(0 0, 2 2, 4 2)", true);
|
||||
test_geometry<ls, ls>("LINESTRING(1 1, 1 1, 2 2)", "LINESTRING(0 0, 2 2, 4 2)", true);
|
||||
|
||||
test_geometry<ls, ls>("LINESTRING(0 0, 0 0, 0 0, 1 1, 2 2, 2 2, 2 2, 2 2, 2 2, 2 2, 2 2, 2 2, 2 2, 2 2, 2 2, 2 2, 2 2, 2 2, 2 2, 2 2, 2 2, 2 2, 3 3)",
|
||||
"LINESTRING(0 0, 2 2, 4 2)", true);
|
||||
|
||||
// invalid linestrings
|
||||
// test_geometry<ls, ls>("LINESTRING(0 0)", "LINESTRING(0 0)", false);
|
||||
// test_geometry<ls, ls>("LINESTRING(1 1)", "LINESTRING(0 0, 2 2)", true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user