{"id":"v001","input":{"minutes":"2 min","bearing_change":"10 deg","groundspeed":"120 kt"},"expect":{"result.time.value":11.517540966287267,"result.time_rule.value":12.0,"result.distance.value":23.035081932574535,"result.distance_rule.value":24.0,"ok":true},"source":"Right-triangle and turn geometry worked in Python (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":0,"abs":1e-09},"result.time_rule.value":{"rel":0,"abs":1e-09},"result.distance.value":{"rel":0,"abs":1e-09},"result.distance_rule.value":{"rel":0,"abs":1e-09}}}
{"id":"v002","input":{"minutes":"1.5 min","bearing_change":"5 deg","groundspeed":"90 kt"},"expect":{"result.time.value":17.210569868504784,"result.time_rule.value":18.0,"result.distance.value":25.815854802757176,"result.distance_rule.value":27.0,"ok":true},"source":"Right-triangle and turn geometry worked in Python (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":0,"abs":1e-09},"result.time_rule.value":{"rel":0,"abs":1e-09},"result.distance.value":{"rel":0,"abs":1e-09},"result.distance_rule.value":{"rel":0,"abs":1e-09}}}
{"id":"v003","input":{"minutes":"3 min","bearing_change":"15 deg","groundspeed":"150 kt"},"expect":{"result.time.value":11.59110991546882,"result.time_rule.value":12.0,"result.distance.value":28.97777478867205,"result.distance_rule.value":30.0,"ok":true},"source":"Right-triangle and turn geometry worked in Python (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":0,"abs":1e-09},"result.time_rule.value":{"rel":0,"abs":1e-09},"result.distance.value":{"rel":0,"abs":1e-09},"result.distance_rule.value":{"rel":0,"abs":1e-09}}}
{"id":"v004","input":{"minutes":"4 min","bearing_change":"20 deg"},"expect":{"result.time.value":11.69521760065235,"result.time_rule.value":12.0,"ok":true},"source":"Right-triangle and turn geometry worked in Python (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":0,"abs":1e-09},"result.time_rule.value":{"rel":0,"abs":1e-09}}}
{"id":"v005","input":{"minutes":"1 min","bearing_change":"1 deg","groundspeed":"100 kt"},"expect":{"result.time.value":57.298688498550185,"result.time_rule.value":60.0,"result.distance.value":95.4978141642503,"result.distance_rule.value":100.0,"ok":true},"source":"Right-triangle and turn geometry worked in Python (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":0,"abs":1e-09},"result.time_rule.value":{"rel":0,"abs":1e-09},"result.distance.value":{"rel":0,"abs":1e-09},"result.distance_rule.value":{"rel":0,"abs":1e-09}}}
{"id":"v006","input":{"minutes":"2.25 min","bearing_change":"12.5 deg","groundspeed":"135 kt"},"expect":{"result.time.value":10.395509209526923,"result.time_rule.value":10.8,"result.distance.value":23.389895721435575,"result.distance_rule.value":24.3,"ok":true},"source":"Right-triangle and turn geometry worked in Python (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":0,"abs":1e-09},"result.time_rule.value":{"rel":0,"abs":1e-09},"result.distance.value":{"rel":0,"abs":1e-09},"result.distance_rule.value":{"rel":0,"abs":1e-09}}}
{"id":"v007","input":{"minutes":"2 min","bearing_change":"95 deg"},"expect":{"ok":false,"error.code":"INVALID_INPUT"},"source":"Right-triangle and turn geometry worked in Python (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{}}
