{"id":"v001","input":{"polygon":[{"lat":40.0,"lon":-105.0},{"lat":40.004,"lon":-104.995},{"lat":40.0,"lon":-104.995},{"lat":40.004,"lon":-105.0}]},"expect":{"result.valid":"no","result.parts":2,"result.problem_count":1,"result.problems.0.problem":"self-intersection: edges 1 and 3 cross or touch","result.problems.0.lat.value":40.00200008566274,"result.problems.0.lon.value":-104.99750000000002,"result.area.value":0.0948140217,"meta.warnings.1.code":"GEOMETRY_INVALID","ok":true},"source":"add-navigation-and-geometry scenarios","sourceVersion":"GeodSolve: GeographicLib version 2.7","tolerance":{"result.parts":{"rel":1e-09,"abs":1e-09},"result.problem_count":{"rel":1e-09,"abs":1e-09},"result.problems.0.lat.value":{"rel":0,"abs":1e-08},"result.problems.0.lon.value":{"rel":0,"abs":1e-08},"result.area.value":{"rel":1e-06,"abs":0}},"supersededBy":"v022","reason":"Promotion to stable removed EXPERIMENTAL_TOOL, so GEOMETRY_INVALID moved from index 1 to index 0; the vector now names the warning by its code with the meta.warnings.*.code form, which no future warning can shift."}
{"id":"v002","input":{"polygon":[{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.008,"lon":-104.99},{"lat":40.008,"lon":-105.0},{"lat":40.002,"lon":-104.998,"ring":1},{"lat":40.006,"lon":-104.998,"ring":1},{"lat":40.006,"lon":-104.994,"ring":1},{"lat":40.002,"lon":-104.994,"ring":1}]},"expect":{"result.valid":"yes","result.problem_count":0,"result.parts":1,"result.area.value":0.6067922436,"ok":true},"source":"Areas by GeographicLib's Planimeter and crossings by GeodSolve (C++), via tools/vectors/gen_validity.py","sourceVersion":"GeodSolve: GeographicLib version 2.7","tolerance":{"result.problem_count":{"rel":1e-09,"abs":1e-09},"result.parts":{"rel":1e-09,"abs":1e-09},"result.area.value":{"rel":1e-09,"abs":0}}}
{"id":"v003","input":{"polygon":[{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.0,"lon":-104.99},{"lat":40.008,"lon":-104.99},{"lat":40.008,"lon":-105.0}]},"expect":{"result.valid":"no","result.problems.0.problem":"repeated corner","result.problems.0.corner":3,"result.area.value":0.7584903047,"ok":true},"source":"Areas by GeographicLib's Planimeter and crossings by GeodSolve (C++), via tools/vectors/gen_validity.py","sourceVersion":"GeodSolve: GeographicLib version 2.7","tolerance":{"result.problems.0.corner":{"rel":1e-09,"abs":1e-09},"result.area.value":{"rel":1e-09,"abs":0}}}
{"id":"v004","input":{"polygon":[{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.004,"lon":-104.99},{"lat":40.004,"lon":-104.98},{"lat":40.004,"lon":-104.99},{"lat":40.008,"lon":-104.99},{"lat":40.008,"lon":-105.0}]},"expect":{"result.valid":"no","result.problems.0.problem":"spike","result.problems.0.corner":4,"result.parts":1,"result.area.value":0.7584903047,"ok":true},"source":"Areas by GeographicLib's Planimeter and crossings by GeodSolve (C++), via tools/vectors/gen_validity.py","sourceVersion":"GeodSolve: GeographicLib version 2.7","tolerance":{"result.problems.0.corner":{"rel":1e-09,"abs":1e-09},"result.parts":{"rel":1e-09,"abs":1e-09},"result.area.value":{"rel":1e-06,"abs":0}}}
{"id":"v005","input":{"polygon":[{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.008,"lon":-104.99},{"lat":40.008,"lon":-105.0},{"lat":40.1,"lon":-105.0,"ring":1},{"lat":40.101,"lon":-105.0,"ring":1},{"lat":40.101,"lon":-104.999,"ring":1}]},"expect":{"result.valid":"no","result.problems.0.problem":"hole outside the outline","ok":true},"source":"Areas by GeographicLib's Planimeter and crossings by GeodSolve (C++), via tools/vectors/gen_validity.py","sourceVersion":"GeodSolve: GeographicLib version 2.7","tolerance":{}}
{"id":"v006","input":{"polygon":[{"lat":40.008,"lon":-105.0},{"lat":40.008,"lon":-104.99},{"lat":40.0,"lon":-104.99},{"lat":40.0,"lon":-105.0}]},"expect":{"result.valid":"yes","result.problem_count":0,"result.problems.0.problem":"note: outline runs clockwise (RFC 7946 wants counterclockwise)","ok":true},"source":"Areas by GeographicLib's Planimeter and crossings by GeodSolve (C++), via tools/vectors/gen_validity.py","sourceVersion":"GeodSolve: GeographicLib version 2.7","tolerance":{"result.problem_count":{"rel":1e-09,"abs":1e-09}}}
{"id":"v007","input":{"polygon":[{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99}]},"expect":{"ok":false,"error.code":"INVALID_INPUT"},"source":"add-navigation-and-geometry scenarios","sourceVersion":"GeodSolve: GeographicLib version 2.7","tolerance":{}}
{"id":"v022","input":{"polygon":[{"lat":40.0,"lon":-105.0},{"lat":40.004,"lon":-104.995},{"lat":40.0,"lon":-104.995},{"lat":40.004,"lon":-105.0}]},"expect":{"result.valid":"no","result.parts":2,"result.problem_count":1,"result.problems.0.problem":"self-intersection: edges 1 and 3 cross or touch","result.problems.0.lat.value":40.00200008566274,"result.problems.0.lon.value":-104.99750000000002,"result.area.value":0.0948140217,"meta.warnings.*.code":"GEOMETRY_INVALID","ok":true},"source":"add-navigation-and-geometry scenarios","sourceVersion":"GeodSolve: GeographicLib version 2.7","tolerance":{"result.parts":{"rel":1e-09,"abs":1e-09},"result.problem_count":{"rel":1e-09,"abs":1e-09},"result.problems.0.lat.value":{"rel":0,"abs":1e-08},"result.problems.0.lon.value":{"rel":0,"abs":1e-08},"result.area.value":{"rel":1e-06,"abs":0}}}
{"id":"v008","input":{"polygon":[{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.01,"lon":-104.99},{"lat":40.01,"lon":-105.0}],"options":{"outputUnits":{"area":"m2"}}},"expect":{"ok":true,"result.area.value":948099.21191468,"result.valid":"yes","result.parts":1},"source":"GEOS 3.11.4 through shapely: is_valid and make_valid on PROJ's azimuthal equidistant plane, with the repaired area measured on the ellipsoid by geographiclib's PolygonArea: a valid square","sourceVersion":"GEOS 3.11.4 / PROJ 9.3.0 / geographiclib 2.1","tolerance":{"result.area.value":{"rel":1e-08,"abs":1e-06},"result.valid":{"abs":0},"result.parts":{"abs":0}}}
{"id":"v009","input":{"polygon":[{"lat":40.01,"lon":-105.0},{"lat":40.01,"lon":-104.99},{"lat":40.0,"lon":-104.99},{"lat":40.0,"lon":-105.0}],"options":{"outputUnits":{"area":"m2"}}},"expect":{"ok":true,"result.area.value":948099.2119182134,"result.valid":"yes","result.parts":1},"source":"GEOS 3.11.4 through shapely: is_valid and make_valid on PROJ's azimuthal equidistant plane, with the repaired area measured on the ellipsoid by geographiclib's PolygonArea: a valid square, wound the other way","sourceVersion":"GEOS 3.11.4 / PROJ 9.3.0 / geographiclib 2.1","tolerance":{"result.area.value":{"rel":1e-08,"abs":1e-06},"result.valid":{"abs":0},"result.parts":{"abs":0}}}
{"id":"v010","input":{"polygon":[{"lat":40.0,"lon":-105.0},{"lat":40.01,"lon":-104.99},{"lat":40.0,"lon":-104.99},{"lat":40.01,"lon":-105.0}],"options":{"outputUnits":{"area":"m2"}}},"expect":{"ok":true,"result.area.value":474049.60383353475,"result.valid":"no","result.parts":2},"source":"GEOS 3.11.4 through shapely: is_valid and make_valid on PROJ's azimuthal equidistant plane, with the repaired area measured on the ellipsoid by geographiclib's PolygonArea: a bow tie","sourceVersion":"GEOS 3.11.4 / PROJ 9.3.0 / geographiclib 2.1","tolerance":{"result.area.value":{"rel":1e-08,"abs":1e-06},"result.valid":{"abs":0},"result.parts":{"abs":0}}}
{"id":"v011","input":{"polygon":[{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.98},{"lat":40.01,"lon":-104.98},{"lat":40.01,"lon":-104.99},{"lat":40.02,"lon":-104.99},{"lat":40.02,"lon":-105.0}],"options":{"outputUnits":{"area":"m2"}}},"expect":{"ok":true,"result.area.value":2844120.030576706,"result.valid":"yes","result.parts":1},"source":"GEOS 3.11.4 through shapely: is_valid and make_valid on PROJ's azimuthal equidistant plane, with the repaired area measured on the ellipsoid by geographiclib's PolygonArea: a valid L","sourceVersion":"GEOS 3.11.4 / PROJ 9.3.0 / geographiclib 2.1","tolerance":{"result.area.value":{"rel":1e-08,"abs":1e-06},"result.valid":{"abs":0},"result.parts":{"abs":0}}}
{"id":"v012","input":{"polygon":[{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.98},{"lat":40.01,"lon":-104.99},{"lat":40.02,"lon":-104.98},{"lat":40.02,"lon":-105.0},{"lat":40.01,"lon":-104.99}],"options":{"outputUnits":{"area":"m2"}}},"expect":{"ok":true,"result.area.value":1896061.7013969421,"result.valid":"no","result.parts":2},"source":"GEOS 3.11.4 through shapely: is_valid and make_valid on PROJ's azimuthal equidistant plane, with the repaired area measured on the ellipsoid by geographiclib's PolygonArea: a ring pinched to a point","sourceVersion":"GEOS 3.11.4 / PROJ 9.3.0 / geographiclib 2.1","tolerance":{"result.area.value":{"rel":1e-08,"abs":1e-06},"result.valid":{"abs":0},"result.parts":{"abs":0}}}
{"id":"v013","input":{"polygon":[{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.0,"lon":-104.99},{"lat":40.01,"lon":-104.99},{"lat":40.01,"lon":-105.0}],"options":{"outputUnits":{"area":"m2"}}},"expect":{"ok":true,"result.area.value":948099.2119172597},"source":"GEOS 3.11.4 through shapely: is_valid and make_valid on PROJ's azimuthal equidistant plane, with the repaired area measured on the ellipsoid by geographiclib's PolygonArea: a square with a repeated corner","sourceVersion":"GEOS 3.11.4 / PROJ 9.3.0 / geographiclib 2.1","tolerance":{"result.area.value":{"rel":1e-08,"abs":1e-06}}}
{"id":"v014","input":{"polygon":[{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.005,"lon":-104.97},{"lat":40.0,"lon":-104.99},{"lat":40.01,"lon":-104.99},{"lat":40.01,"lon":-105.0}],"options":{"outputUnits":{"area":"m2"}}},"expect":{"ok":true,"result.area.value":948099.2119159698},"source":"GEOS 3.11.4 through shapely: is_valid and make_valid on PROJ's azimuthal equidistant plane, with the repaired area measured on the ellipsoid by geographiclib's PolygonArea: a square with a spike","sourceVersion":"GEOS 3.11.4 / PROJ 9.3.0 / geographiclib 2.1","tolerance":{"result.area.value":{"rel":1e-08,"abs":1e-06}}}
{"id":"v015","input":{"polygon":[{"lat":-20.0,"lon":30.0},{"lat":-20.04,"lon":30.09},{"lat":-20.09,"lon":30.02}],"options":{"outputUnits":{"area":"m2"}}},"expect":{"ok":true,"result.area.value":42273763.74650574,"result.valid":"yes","result.parts":1},"source":"GEOS 3.11.4 through shapely: is_valid and make_valid on PROJ's azimuthal equidistant plane, with the repaired area measured on the ellipsoid by geographiclib's PolygonArea: a valid triangle","sourceVersion":"GEOS 3.11.4 / PROJ 9.3.0 / geographiclib 2.1","tolerance":{"result.area.value":{"rel":1e-08,"abs":1e-06},"result.valid":{"abs":0},"result.parts":{"abs":0}}}
{"id":"v016","input":{"polygon":[{"lat":-20.0,"lon":30.0},{"lat":-20.09,"lon":30.02},{"lat":-20.04,"lon":30.09},{"lat":-20.02,"lon":29.98}],"options":{"outputUnits":{"area":"m2"}}},"expect":{"ok":true,"result.area.value":34189138.96360642,"result.valid":"no","result.parts":2},"source":"GEOS 3.11.4 through shapely: is_valid and make_valid on PROJ's azimuthal equidistant plane, with the repaired area measured on the ellipsoid by geographiclib's PolygonArea: a crossed quadrilateral","sourceVersion":"GEOS 3.11.4 / PROJ 9.3.0 / geographiclib 2.1","tolerance":{"result.area.value":{"rel":1e-08,"abs":1e-06},"result.valid":{"abs":0},"result.parts":{"abs":0}}}
{"id":"v017","input":{"polygon":[{"lat":-0.01,"lon":-0.01},{"lat":-0.01,"lon":0.01},{"lat":0.01,"lon":0.01},{"lat":0.01,"lon":-0.01}],"options":{"outputUnits":{"area":"m2"}}},"expect":{"ok":true,"result.area.value":4923628.857721286,"result.valid":"yes","result.parts":1},"source":"GEOS 3.11.4 through shapely: is_valid and make_valid on PROJ's azimuthal equidistant plane, with the repaired area measured on the ellipsoid by geographiclib's PolygonArea: a valid square at the equator","sourceVersion":"GEOS 3.11.4 / PROJ 9.3.0 / geographiclib 2.1","tolerance":{"result.area.value":{"rel":1e-08,"abs":1e-06},"result.valid":{"abs":0},"result.parts":{"abs":0}}}
{"id":"v018","input":{"polygon":[{"lat":-0.01,"lon":-0.01},{"lat":0.01,"lon":0.01},{"lat":-0.01,"lon":0.01},{"lat":0.01,"lon":-0.01}],"options":{"outputUnits":{"area":"m2"}}},"expect":{"ok":true,"result.area.value":2461814.4286567774,"result.valid":"no","result.parts":2},"source":"GEOS 3.11.4 through shapely: is_valid and make_valid on PROJ's azimuthal equidistant plane, with the repaired area measured on the ellipsoid by geographiclib's PolygonArea: a bow tie at the equator","sourceVersion":"GEOS 3.11.4 / PROJ 9.3.0 / geographiclib 2.1","tolerance":{"result.area.value":{"rel":1e-08,"abs":1e-06},"result.valid":{"abs":0},"result.parts":{"abs":0}}}
{"id":"v019","input":{"polygon":[{"lat":-17.0,"lon":179.99},{"lat":-17.0,"lon":-179.99},{"lat":-16.99,"lon":-179.99},{"lat":-16.99,"lon":179.99}],"options":{"outputUnits":{"area":"m2"}}},"expect":{"ok":true,"result.area.value":2357002.9010682106,"result.valid":"yes","result.parts":1},"source":"GEOS 3.11.4 through shapely: is_valid and make_valid on PROJ's azimuthal equidistant plane, with the repaired area measured on the ellipsoid by geographiclib's PolygonArea: a valid square across the antimeridian","sourceVersion":"GEOS 3.11.4 / PROJ 9.3.0 / geographiclib 2.1","tolerance":{"result.area.value":{"rel":1e-08,"abs":1e-06},"result.valid":{"abs":0},"result.parts":{"abs":0}}}
{"id":"v020","input":{"polygon":[{"lat":-17.0,"lon":179.99},{"lat":-16.99,"lon":-179.99},{"lat":-17.0,"lon":-179.99},{"lat":-16.99,"lon":179.99}],"options":{"outputUnits":{"area":"m2"}}},"expect":{"ok":true,"result.area.value":1178501.4436421394,"result.valid":"no","result.parts":2},"source":"GEOS 3.11.4 through shapely: is_valid and make_valid on PROJ's azimuthal equidistant plane, with the repaired area measured on the ellipsoid by geographiclib's PolygonArea: a bow tie across the antimeridian","sourceVersion":"GEOS 3.11.4 / PROJ 9.3.0 / geographiclib 2.1","tolerance":{"result.area.value":{"rel":1e-08,"abs":1e-06},"result.valid":{"abs":0},"result.parts":{"abs":0}}}
{"id":"v021","input":{"polygon":[{"lat":70.0,"lon":25.0},{"lat":70.0,"lon":25.05},{"lat":70.02,"lon":25.05},{"lat":70.02,"lon":25.0}],"options":{"outputUnits":{"area":"m2"}}},"expect":{"ok":true,"result.area.value":4258130.9171562195,"result.valid":"yes","result.parts":1},"source":"GEOS 3.11.4 through shapely: is_valid and make_valid on PROJ's azimuthal equidistant plane, with the repaired area measured on the ellipsoid by geographiclib's PolygonArea: a valid square at 70 north","sourceVersion":"GEOS 3.11.4 / PROJ 9.3.0 / geographiclib 2.1","tolerance":{"result.area.value":{"rel":1e-08,"abs":1e-06},"result.valid":{"abs":0},"result.parts":{"abs":0}}}
