mirror of
https://github.com/boostorg/geometry.git
synced 2025-05-11 21:44:04 +00:00
relate(L,L) some tests added - tests for linear rings not passed, added note about the error
This commit is contained in:
parent
9fe9d7259c
commit
cea2384ad6
@ -132,13 +132,50 @@ void test_linestring_linestring()
|
||||
test_geometry<ls, ls>("LINESTRING(0 0,10 0)",
|
||||
"LINESTRING(1 1,1 0,6 0,6 1,4 1,4 0,9 0,9 1)", "1F1FF0102");
|
||||
|
||||
// self-touching
|
||||
// self-intersecting and self-touching equal
|
||||
test_geometry<ls, ls>("LINESTRING(0 5,5 5,10 5,10 10,5 10,5 5,5 0)",
|
||||
"LINESTRING(0 5,5 5,5 10,10 10,10 5,5 5,5 0)", "1FFF0FFF2");
|
||||
// self-intersecting loop and self-touching equal
|
||||
test_geometry<ls, ls>("LINESTRING(0 5,5 5,10 5,10 10,5 10,5 5,10 5,10 10,5 10,5 5,5 0)",
|
||||
"LINESTRING(0 5,5 5,5 10,10 10,10 5,5 5,5 0)", "1FFF0FFF2");
|
||||
|
||||
test_geometry<ls, ls>("LINESTRING(0 0,1 1)", "LINESTRING(0 1,1 0)", "0F1FF0102");
|
||||
test_geometry<ls, ls>("LINESTRING(0 0,1 1)", "LINESTRING(1 1,2 0)", "FF1F00102");
|
||||
test_geometry<ls, ls>("LINESTRING(0 0,1 1)", "LINESTRING(2 0,1 1)", "FF1F00102");
|
||||
|
||||
test_geometry<ls, ls>("LINESTRING(0 0,1 0,2 1,3 5,4 0)", "LINESTRING(1 0,2 1,3 5)", "101FF0FF2");
|
||||
test_geometry<ls, ls>("LINESTRING(0 0,1 0,2 1,3 5,4 0)", "LINESTRING(3 5,2 1,1 0)", "101FF0FF2");
|
||||
test_geometry<ls, ls>("LINESTRING(1 0,2 1,3 5)", "LINESTRING(4 0,3 5,2 1,1 0,0 0)", "1FF0FF102");
|
||||
test_geometry<ls, ls>("LINESTRING(3 5,2 1,1 0)", "LINESTRING(4 0,3 5,2 1,1 0,0 0)", "1FF0FF102");
|
||||
|
||||
test_geometry<ls, ls>("LINESTRING(0 0,10 0)", "LINESTRING(-1 -1,1 0,10 0,20 -1)", "1F10F0102");
|
||||
test_geometry<ls, ls>("LINESTRING(0 0,10 0)", "LINESTRING(20 -1,10 0,1 0,-1 -1)", "1F10F0102");
|
||||
|
||||
test_geometry<ls, ls>("LINESTRING(-1 1,0 0,1 0,5 0,5 5,10 5,15 0,31 0)",
|
||||
"LINESTRING(-1 -1,0 0,1 0,2 0,3 1,4 0,30 0)",
|
||||
"101FF0102");
|
||||
test_geometry<ls, ls>("LINESTRING(-1 1,0 0,1 0,5 0,5 5,10 5,15 0,31 0)",
|
||||
"LINESTRING(30 0,4 0,3 1,2 0,1 0,0 0,-1 -1)",
|
||||
"101FF0102");
|
||||
test_geometry<ls, ls>("LINESTRING(31 0,15 0,10 5,5 5,5 0,1 0,0 0,-1 1)",
|
||||
"LINESTRING(-1 -1,0 0,1 0,2 0,3 1,4 0,30 0)",
|
||||
"101FF0102");
|
||||
test_geometry<ls, ls>("LINESTRING(31 0,15 0,10 5,5 5,5 0,1 0,0 0,-1 1)",
|
||||
"LINESTRING(30 0,4 0,3 1,2 0,1 0,0 0,-1 -1)",
|
||||
"101FF0102");
|
||||
|
||||
// linear ring
|
||||
test_geometry<ls, ls>("LINESTRING(0 0,10 0)", "LINESTRING(5 0,9 0,5 5,1 0,5 0)", "1F1FF01F2");
|
||||
test_geometry<ls, ls>("LINESTRING(0 0,5 0,10 0)", "LINESTRING(5 0,9 0,5 5,1 0,5 0)", "1F1FF01F2");
|
||||
test_geometry<ls, ls>("LINESTRING(0 0,5 0,10 0)", "LINESTRING(5 0,10 0,5 5,1 0,5 0)", "1F10F01F2");
|
||||
|
||||
// ERROR: x/x and x/u are generated for one point, after handling of x the algorithm thinks that G1 is outside
|
||||
// and therefore thinks that it touches G2 at the next x
|
||||
test_geometry<ls, ls>("LINESTRING(0 0,5 0)", "LINESTRING(5 0,10 0,5 5,0 0,5 0)", "1FF0FF1F2");
|
||||
// AS ABOVE
|
||||
test_geometry<ls, ls>("LINESTRING(0 0,5 0)", "LINESTRING(5 0,10 0,5 5,5 0)", "FF00F01F2");
|
||||
|
||||
//to_svg<ls, ls>("LINESTRING(0 0,5 0)", "LINESTRING(5 0,10 0,5 5,0 0,5 0)", "test_relate_00.svg");
|
||||
}
|
||||
|
||||
template <typename P>
|
||||
|
Loading…
x
Reference in New Issue
Block a user