{"id":"v001","input":{"current_radial":"30 deg","desired_radial":"360 deg","direction":"inbound"},"expect":{"result.heading.value":240.0,"result.course.value":180.0,"result.intercept_angle.value":60.0,"result.angle_off.value":30.0,"ok":true},"source":"Plane geometry: the heading of course ± the angle whose track crosses the radial (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{"result.heading.value":{"rel":0,"abs":1e-09},"result.course.value":{"rel":0,"abs":1e-09},"result.intercept_angle.value":{"rel":0,"abs":1e-09},"result.angle_off.value":{"rel":0,"abs":1e-09}}}
{"id":"v002","input":{"current_radial":"30 deg","desired_radial":"360 deg","direction":"outbound"},"expect":{"result.heading.value":300.0,"result.course.value":0.0,"result.intercept_angle.value":60.0,"result.angle_off.value":30.0,"ok":true},"source":"Plane geometry: the heading of course ± the angle whose track crosses the radial (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{"result.heading.value":{"rel":0,"abs":1e-09},"result.course.value":{"rel":0,"abs":1e-09},"result.intercept_angle.value":{"rel":0,"abs":1e-09},"result.angle_off.value":{"rel":0,"abs":1e-09}}}
{"id":"v003","input":{"current_radial":"350 deg","desired_radial":"20 deg","direction":"inbound"},"expect":{"result.heading.value":140.0,"result.course.value":200.0,"result.intercept_angle.value":60.0,"result.angle_off.value":30.0,"ok":true},"source":"Plane geometry: the heading of course ± the angle whose track crosses the radial (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{"result.heading.value":{"rel":0,"abs":1e-09},"result.course.value":{"rel":0,"abs":1e-09},"result.intercept_angle.value":{"rel":0,"abs":1e-09},"result.angle_off.value":{"rel":0,"abs":1e-09}}}
{"id":"v004","input":{"current_radial":"100 deg","desired_radial":"90 deg","direction":"outbound"},"expect":{"result.heading.value":70.0,"result.course.value":90.0,"result.intercept_angle.value":20.0,"result.angle_off.value":10.0,"ok":true},"source":"Plane geometry: the heading of course ± the angle whose track crosses the radial (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{"result.heading.value":{"rel":0,"abs":1e-09},"result.course.value":{"rel":0,"abs":1e-09},"result.intercept_angle.value":{"rel":0,"abs":1e-09},"result.angle_off.value":{"rel":0,"abs":1e-09}}}
{"id":"v005","input":{"current_radial":"200 deg","desired_radial":"250 deg","direction":"inbound","intercept_angle":"45 deg"},"expect":{"ok":false,"error.code":"NO_SOLUTION"},"source":"Right-triangle and turn geometry worked in Python (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{}}
{"id":"v006","input":{"current_radial":"275 deg","desired_radial":"270 deg","direction":"inbound"},"expect":{"result.heading.value":110.0,"result.course.value":90.0,"result.intercept_angle.value":20.0,"result.angle_off.value":5.0,"ok":true},"source":"Plane geometry: the heading of course ± the angle whose track crosses the radial (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{"result.heading.value":{"rel":0,"abs":1e-09},"result.course.value":{"rel":0,"abs":1e-09},"result.intercept_angle.value":{"rel":0,"abs":1e-09},"result.angle_off.value":{"rel":0,"abs":1e-09}}}
{"id":"v007","input":{"current_radial":"5 deg","desired_radial":"355 deg","direction":"outbound","intercept_angle":"30 deg"},"expect":{"result.heading.value":325.0,"result.course.value":355.0,"result.intercept_angle.value":30.0,"result.angle_off.value":10.0,"ok":true},"source":"Plane geometry: the heading of course ± the angle whose track crosses the radial (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{"result.heading.value":{"rel":0,"abs":1e-09},"result.course.value":{"rel":0,"abs":1e-09},"result.intercept_angle.value":{"rel":0,"abs":1e-09},"result.angle_off.value":{"rel":0,"abs":1e-09}}}
{"id":"v008","input":{"current_radial":"180 deg","desired_radial":"180 deg","direction":"inbound"},"expect":{"result.heading.value":0.0,"result.course.value":0.0,"result.intercept_angle.value":20.0,"result.angle_off.value":0.0,"ok":true},"source":"Plane geometry: the heading of course ± the angle whose track crosses the radial (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{"result.heading.value":{"rel":0,"abs":1e-09},"result.course.value":{"rel":0,"abs":1e-09},"result.intercept_angle.value":{"rel":0,"abs":1e-09},"result.angle_off.value":{"rel":0,"abs":1e-09}}}
{"id":"v009","input":{"current_radial":"200 deg","desired_radial":"360 deg"},"expect":{"ok":false,"error.code":"NO_SOLUTION"},"source":"Right-triangle and turn geometry worked in Python (tools/vectors/gen_dme.py)","sourceVersion":"2026","tolerance":{}}
