{"id":"v001","input":{"slant":"1.8 m","radius":"0.1 m","offset":"0.0 m"},"expect":{"result.vertical.value":1.797220075561143,"result.difference.value":0.0027799244388571065,"ok":true},"source":"add-practitioner-essentials GNSS scenarios (1.800 m slant, 0.100 m radius: about 1.7972 m)","sourceVersion":"2026","tolerance":{"result.vertical.value":{"rel":0,"abs":1e-09},"result.difference.value":{"rel":0,"abs":1e-09}}}
{"id":"v002","input":{"slant":"1.523 m","radius":"0.1692 m","offset":"0.0 m"},"expect":{"result.vertical.value":1.5135720531246604,"result.difference.value":0.009427946875339543,"ok":true},"source":"Worked by hand in Python (tools/vectors/gen_gnss.py)","sourceVersion":"2026","tolerance":{"result.vertical.value":{"rel":0,"abs":1e-09},"result.difference.value":{"rel":0,"abs":1e-09}}}
{"id":"v003","input":{"slant":"2.0 m","radius":"0.15 m","offset":"-0.035 m"},"expect":{"result.vertical.value":1.9593670675179131,"result.difference.value":0.04063293248208688,"ok":true},"source":"Worked by hand in Python (tools/vectors/gen_gnss.py)","sourceVersion":"2026","tolerance":{"result.vertical.value":{"rel":0,"abs":1e-09},"result.difference.value":{"rel":0,"abs":1e-09}}}
{"id":"v004","input":{"slant":"1.2 m","radius":"0.0835 m","offset":"0.0 m"},"expect":{"result.vertical.value":1.197091370781696,"result.difference.value":0.0029086292183040374,"ok":true},"source":"Worked by hand in Python (tools/vectors/gen_gnss.py)","sourceVersion":"2026","tolerance":{"result.vertical.value":{"rel":0,"abs":1e-09},"result.difference.value":{"rel":0,"abs":1e-09}}}
{"id":"v005","input":{"slant":"0.1 m","radius":"0.15 m"},"expect":{"ok":false,"error.code":"INVALID_INPUT"},"source":"Worked by hand in Python (tools/vectors/gen_gnss.py)","sourceVersion":"2026","tolerance":{}}
