{"id":"v001","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.008983152841195215},{"lat":0.005426216862302293,"lon":0.008983152841195215},{"lat":0.005426216862302293,"lon":0.0}],"distance":"500 m"},"expect":{"result.area.value":2.985398163397448,"result.parts":1,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.002,"abs":1e-12},"result.parts":{"rel":1e-12,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":0.5}}}
{"id":"v002","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.001796630568239043},{"lat":0.0018087389541007644,"lon":0.001796630568239043},{"lat":0.0018087389541007644,"lon":0.0}],"distance":"50 m"},"expect":{"result.area.value":0.08785398163397448,"result.parts":1,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.002,"abs":1e-12},"result.parts":{"rel":1e-12,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":0.5}}}
{"id":"v003","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.01796630568239043},{"lat":0.0027131084311511466,"lon":0.01796630568239043},{"lat":0.0027131084311511466,"lon":0.0}],"distance":"100 m"},"expect":{"result.area.value":1.0914159265358978,"result.parts":1,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.002,"abs":1e-12},"result.parts":{"rel":1e-12,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":0.5}}}
{"id":"v004","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.004491576420597608},{"lat":0.004521847385251911,"lon":0.004491576420597608},{"lat":0.004521847385251911,"lon":0.0}],"distance":"1000 m"},"expect":{"result.area.value":5.391592653589792,"result.parts":1,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.002,"abs":1e-12},"result.parts":{"rel":1e-12,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":1.0}}}
{"id":"v005","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.0008983152841195215},{"lat":0.0036174779082015288,"lon":0.0008983152841195215},{"lat":0.0036174779082015288,"lon":0.0}],"distance":"20 m"},"expect":{"result.area.value":0.06125663706143592,"result.parts":1,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.002,"abs":1e-12},"result.parts":{"rel":1e-12,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":0.5}}}
{"id":"v006","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.008983152841195215},{"lat":0.005426216862302293,"lon":0.008983152841195215},{"lat":0.005426216862302293,"lon":0.0}],"distance":"100 m","join":"mitre"},"expect":{"result.area.value":0.96,"result.vertex_count":4,"ok":true},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.0001,"abs":1e-12},"result.vertex_count":{"rel":1e-12,"abs":1e-12}}}
{"id":"v007","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.008983152841195215},{"lat":0.005426216862302293,"lon":0.008983152841195215},{"lat":0.005426216862302293,"lon":0.0}],"distance":"100 m","join":"bevel"},"expect":{"result.area.value":0.94,"result.vertex_count":8,"ok":true},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.0001,"abs":1e-12},"result.vertex_count":{"rel":1e-12,"abs":1e-12}}}
{"id":"v008","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.002694945852358564},{"lat":0.0027131084311511466,"lon":0.002694945852358564},{"lat":0.0027131084311511466,"lon":0.0}],"distance":"30 m","join":"mitre"},"expect":{"result.area.value":0.1296,"result.vertex_count":4,"ok":true},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.0001,"abs":1e-12},"result.vertex_count":{"rel":1e-12,"abs":1e-12}}}
{"id":"v009","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.002694945852358564},{"lat":0.0027131084311511466,"lon":0.002694945852358564},{"lat":0.0027131084311511466,"lon":0.0}],"distance":"30 m","join":"bevel"},"expect":{"result.area.value":0.1278,"result.vertex_count":8,"ok":true},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.0001,"abs":1e-12},"result.vertex_count":{"rel":1e-12,"abs":1e-12}}}
{"id":"v010","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.007635679915015933},{"lat":0.0009043694770503822,"lon":0.007635679915015933},{"lat":0.0009043694770503822,"lon":0.0}],"distance":"-20 m"},"expect":{"result.area.value":0.0486,"result.parts":1,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.0001,"abs":1e-12},"result.parts":{"rel":1e-12,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":0.5}}}
{"id":"v011","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.004491576420597608},{"lat":0.0027131084311511466,"lon":0.004491576420597608},{"lat":0.0027131084311511466,"lon":0.0}],"distance":"-100 m"},"expect":{"result.area.value":0.03,"result.parts":1,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.0001,"abs":1e-12},"result.parts":{"rel":1e-12,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":0.5}}}
{"id":"v012","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.007635679915015933},{"lat":0.0009043694770503822,"lon":0.007635679915015933},{"lat":0.0009043694770503822,"lon":0.0}],"distance":"-60 m"},"expect":{"result.parts":0,"meta.warnings.0.code":"BUFFER_COLLAPSED","ok":true},"source":"add-navigation-and-geometry scenarios","sourceVersion":"2026","tolerance":{"result.parts":{"rel":1e-12,"abs":1e-12}}}
{"id":"v013","input":{"vertices":[{"lat":0,"lon":0}],"distance":"2000 m"},"expect":{"result.area.value":12.566370614359172,"result.parts":1,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.001,"abs":1e-12},"result.parts":{"rel":1e-12,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":2.0}}}
{"id":"v014","input":{"vertices":[{"lat":40,"lon":-105}],"distance":"500 m"},"expect":{"result.area.value":0.7853981633974483,"result.parts":1,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.001,"abs":1e-12},"result.parts":{"rel":1e-12,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":0.5}}}
{"id":"v015","input":{"vertices":[{"lat":0,"lon":179.9999}],"distance":"3000 m"},"expect":{"result.area.value":28.274333882308138,"result.parts":1,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.001,"abs":1e-12},"result.parts":{"rel":1e-12,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":3.0}}}
{"id":"v016","input":{"vertices":[{"lat":89.99,"lon":45}],"distance":"1000 m"},"expect":{"result.area.value":3.141592653589793,"result.parts":1,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.001,"abs":1e-12},"result.parts":{"rel":1e-12,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":1.0}}}
{"id":"v017","input":{"vertices":[{"lat":-45,"lon":170}],"distance":"10000 m"},"expect":{"result.area.value":314.1592653589793,"result.parts":1,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.001,"abs":1e-12},"result.parts":{"rel":1e-12,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":10.0}}}
{"id":"v018","input":{"vertices":[{"lat":0,"lon":0},{"lat":0,"lon":0.008983152841195215}],"distance":"50 m","cap":"flat"},"expect":{"result.area.value":0.1,"ok":true},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.0001,"abs":1e-12}}}
{"id":"v019","input":{"vertices":[{"lat":0,"lon":0},{"lat":0,"lon":0.008983152841195215}],"distance":"50 m","cap":"square"},"expect":{"result.area.value":0.11,"ok":true},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.0001,"abs":1e-12}}}
{"id":"v020","input":{"vertices":[{"lat":0,"lon":0},{"lat":0,"lon":0.008983152841195215}],"distance":"50 m"},"expect":{"result.area.value":0.10785398163397449,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.002,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":0.5}}}
{"id":"v021","input":{"vertices":[{"lat":0,"lon":0},{"lat":0,"lon":0.04491576420597607}],"distance":"200 m","cap":"flat"},"expect":{"result.area.value":2.0,"ok":true},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.0001,"abs":1e-12}}}
{"id":"v022","input":{"vertices":[{"lat":0,"lon":0},{"lat":0,"lon":0.04491576420597607}],"distance":"200 m","cap":"square"},"expect":{"result.area.value":2.16,"ok":true},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.0001,"abs":1e-12}}}
{"id":"v023","input":{"vertices":[{"lat":0,"lon":0},{"lat":0,"lon":0.04491576420597607}],"distance":"200 m"},"expect":{"result.area.value":2.1256637061435915,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.002,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":0.5}}}
{"id":"v024","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.008983152841195215},{"lat":0.009043694770503822,"lon":0.008983152841195215},{"lat":0.009043694770503822,"lon":0.0},{"lat":0.0027131084311511466,"lon":0.002694945852358564,"ring":1},{"lat":0.0027131084311511466,"lon":0.006288206988836651,"ring":1},{"lat":0.006330586339352675,"lon":0.006288206988836651,"ring":1},{"lat":0.006330586339352675,"lon":0.002694945852358564,"ring":1}],"distance":"50 m"},"expect":{"result.area.value":1.1178539816339745,"result.parts":1,"ok":true,"result.max_deviation.value":0.0},"source":"Steiner's formula and plane closed forms on small near-equator shapes, evaluated in Python (tools/vectors/gen_buffer.py)","sourceVersion":"2026","tolerance":{"result.area.value":{"rel":0.002,"abs":1e-12},"result.parts":{"rel":1e-12,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":0.5}}}
{"id":"v025","input":{"vertices":[{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0}],"distance":"500 m"},"expect":{"result.parts":1,"ok":true,"result.max_deviation.value":0.0},"source":"add-navigation-and-geometry scenarios","sourceVersion":"2026","tolerance":{"result.parts":{"rel":1e-12,"abs":1e-12},"result.max_deviation.value":{"rel":0,"abs":0.5}}}
{"id":"v026","input":{"vertices":[{"lat":0,"lon":0}],"distance":"10 m","cap":"flat"},"expect":{"ok":false,"error.code":"INVALID_INPUT"},"source":"add-navigation-and-geometry scenarios","sourceVersion":"2026","tolerance":{}}
{"id":"v027","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.0008983152841195215},{"lat":0.0009043694770503822,"lon":0.0008983152841195215},{"lat":0.0009043694770503822,"lon":0.0}],"distance":"0 m"},"expect":{"ok":false,"error.code":"INVALID_INPUT"},"source":"add-navigation-and-geometry scenarios","sourceVersion":"2026","tolerance":{}}
{"id":"v028","input":{"vertices":[{"lat":0.0,"lon":0.0},{"lat":0.0,"lon":0.0008983152841195215},{"lat":0.0009043694770503822,"lon":0.0008983152841195215},{"lat":0.0009043694770503822,"lon":0.0}],"distance":"1500 km"},"expect":{"ok":false,"error.code":"OUT_OF_DOMAIN"},"source":"add-navigation-and-geometry scenarios","sourceVersion":"2026","tolerance":{}}
{"id":"v029","input":{"vertices":[{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0},{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0},{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0},{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0},{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0},{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0},{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0},{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0},{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0},{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0},{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0},{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0},{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0},{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0},{"lat":40.0,"lon":-105.0},{"lat":40.0,"lon":-104.99},{"lat":40.006,"lon":-104.99},{"lat":40.006,"lon":-105.0}],"distance":"500 m"},"expect":{"ok":false,"error.code":"INVALID_INPUT"},"source":"add-navigation-and-geometry scenarios","sourceVersion":"2026","tolerance":{}}
{"id": "v030", "input": {"vertices": [{"lat": 40.0, "lon": -105.0}, {"lat": 40.0, "lon": -104.99}, {"lat": 40.006, "lon": -104.99}, {"lat": 40.006, "lon": -105.0}], "distance": "500 m", "options": {"outputUnits": {"max_deviation": "m"}}}, "expect": {"result.vertex_count": 157, "result.parts": 1, "result.max_deviation.value": 0.124103, "ok": true}, "source": "GeographicLib 2.7 GeodSolve against 8,004 points sampled along the input rectangle: every one of the 157 boundary vertices lies 500 m from it within 61 nanometres, and the deepest chord midpoint sags 0.124103 m inside, which is what max_deviation reports", "sourceVersion": "GeographicLib 2.7", "tolerance": {"result.vertex_count": {"abs": 0}, "result.parts": {"abs": 0}, "result.max_deviation.value": {"abs": 1e-06}}}
