mirror of
https://github.com/boostorg/geometry.git
synced 2025-05-12 14:01:47 +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 )
|
if ( is_ip_qj )
|
||||||
{
|
{
|
||||||
|
// TODO: this won't work for duplicated points!!!
|
||||||
std::size_t q_seg_jk = (q_seg_ij + 1) % seg_count2;
|
std::size_t q_seg_jk = (q_seg_ij + 1) % seg_count2;
|
||||||
BOOST_ASSERT(q_seg_jk + 1 < s2);
|
BOOST_ASSERT(q_seg_jk + 1 < s2);
|
||||||
point2_type const& qk = range::at(range2, q_seg_jk + 1);
|
point2_type const& qk = range::at(range2, q_seg_jk + 1);
|
||||||
|
@ -433,6 +433,23 @@ void test_linestring_polygon()
|
|||||||
|
|
||||||
// II IB0 IE
|
// 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,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
|
// non-simple polygon with hole
|
||||||
test_geometry<ls, poly>("LINESTRING(9 1,10 5,9 9)",
|
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, 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(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
|
// invalid linestrings
|
||||||
// test_geometry<ls, ls>("LINESTRING(0 0)", "LINESTRING(0 0)", false);
|
// test_geometry<ls, ls>("LINESTRING(0 0)", "LINESTRING(0 0)", false);
|
||||||
// test_geometry<ls, ls>("LINESTRING(1 1)", "LINESTRING(0 0, 2 2)", true);
|
// test_geometry<ls, ls>("LINESTRING(1 1)", "LINESTRING(0 0, 2 2)", true);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user