[test] make exceptions for invalid polygons or (union) 3 ccw cases which

are not yet created as valid
This commit is contained in:
Barend Gehrels
2016-06-29 14:08:05 +02:00
parent b46805107b
commit 6b7f5f484d
2 changed files with 53 additions and 11 deletions

View File

@@ -39,6 +39,8 @@ void test_areal()
ut_settings ignore_validity;
ignore_validity.test_validity = false;
bool const ccw = bg::point_order<Polygon>::value == bg::counterclockwise;
test_one<Polygon, Polygon, Polygon>("simplex_normal",
simplex_normal[0], simplex_normal[1],
1, 0, 13, 11.526367);
@@ -189,8 +191,17 @@ void test_areal()
test_one<Polygon, Polygon, Polygon>("59_iet",
case_59[0], case_59[2], 1, 1, 14, 17.20833);
test_one<Polygon, Polygon, Polygon>("80",
case_80[0], case_80[1], 2, 2, 18, 129.0);
if (! ccw)
{
test_one<Polygon, Polygon, Polygon>("80",
case_80[0], case_80[1], 2, 2, 18, 129.0);
}
else
{
test_one<Polygon, Polygon, Polygon>("80",
case_80[0], case_80[1], 2, 0, 18, 129.0,
ignore_validity);
}
test_one<Polygon, Polygon, Polygon>("81",
case_81[0], case_81[1], 1, 2, 15, 163.5);
@@ -444,12 +455,26 @@ void test_areal()
test_one<Polygon, Polygon, Polygon>("buffer_mp2", buffer_mp2[0], buffer_mp2[1],
1, 1, 217, 36.752837);
test_one<Polygon, Polygon, Polygon>("mysql_21964079_1",
mysql_21964079_1[0], mysql_21964079_1[1],
2, 1, -1, 234.5);
test_one<Polygon, Polygon, Polygon>("mysql_21964079_2",
mysql_21964079_2[0], mysql_21964079_2[1],
2, 1, -1, 112.0);
if (! ccw)
{
test_one<Polygon, Polygon, Polygon>("mysql_21964079_1",
mysql_21964079_1[0], mysql_21964079_1[1],
2, 1, -1, 234.5);
test_one<Polygon, Polygon, Polygon>("mysql_21964079_2",
mysql_21964079_2[0], mysql_21964079_2[1],
2, 1, -1, 112.0);
}
else
{
test_one<Polygon, Polygon, Polygon>("mysql_21964079_1",
mysql_21964079_1[0], mysql_21964079_1[1],
2, 0, -1, 234.5,
ignore_validity);
test_one<Polygon, Polygon, Polygon>("mysql_21964079_2",
mysql_21964079_2[0], mysql_21964079_2[1],
2, 0, -1, 112.0,
ignore_validity);
}
// #holes should be 1
test_one<Polygon, Polygon, Polygon>("mysql_21964049",
mysql_21964049[0], mysql_21964049[1],

View File

@@ -39,6 +39,9 @@ void test_areal()
ut_settings ignore_validity;
ignore_validity.test_validity = false;
// Some output is only invalid for CCW
bool const ccw = bg::point_order<Polygon>::value == bg::counterclockwise;
test_one<Polygon, MultiPolygon, MultiPolygon>("simplex_multi",
case_multi_simplex[0], case_multi_simplex[1],
1, 0, 20, 14.58);
@@ -229,6 +232,7 @@ void test_areal()
test_one<Polygon, MultiPolygon, MultiPolygon>("case_recursive_boxes_13",
case_recursive_boxes_13[0], case_recursive_boxes_13[1],
3, 0, -1, 10.25);
test_one<Polygon, MultiPolygon, MultiPolygon>("case_recursive_boxes_14",
case_recursive_boxes_14[0], case_recursive_boxes_14[1],
5, 0, -1, 4.5);
@@ -237,9 +241,22 @@ void test_areal()
test_one<Polygon, MultiPolygon, MultiPolygon>("case_recursive_boxes_12_invalid",
case_recursive_boxes_12_invalid[0], case_recursive_boxes_12_invalid[1],
6, 0, -1, 6.0);
test_one<Polygon, MultiPolygon, MultiPolygon>("case_recursive_boxes_13_invalid",
case_recursive_boxes_13_invalid[0], case_recursive_boxes_13_invalid[1],
3, 0, -1, 10.25);
if (! ccw)
{
// Handling this invalid input delivers invalid results for CCW
test_one<Polygon, MultiPolygon, MultiPolygon>("case_recursive_boxes_13_invalid",
case_recursive_boxes_13_invalid[0], case_recursive_boxes_13_invalid[1],
3, 0, -1, 10.25);
}
else
{
test_one<Polygon, MultiPolygon, MultiPolygon>("case_recursive_boxes_13_invalid",
case_recursive_boxes_13_invalid[0], case_recursive_boxes_13_invalid[1],
2, 0, -1, 10.25,
ignore_validity);
}
test_one<Polygon, MultiPolygon, MultiPolygon>("case_recursive_boxes_14_invalid",
case_recursive_boxes_14_invalid[0], case_recursive_boxes_14_invalid[1],
5, 0, -1, 4.5);