{"id":"v001","input":{"lat":39.8,"lon":-104.7,"radial":"98 deg","distance":"12.5 NM","variation":"11 deg","date":"2026-09-22"},"expect":{"result.fix_lat.value":39.73183735782921,"result.fix_lon.value":-104.44466865700703,"result.true_course.value":109,"result.wmm_declination.value":7.353641447334012,"result.variation_difference.value":3.646358552665988,"meta.warnings.1.code":"STATION_VARIATION_DIFFERS","ok":true},"source":"add-practitioner-essentials variation scenario (the station's variation is used, and a difference over 1° from WMM is warned)","sourceVersion":"GeodSolve: GeographicLib version 2.7","tolerance":{"result.fix_lat.value":{"rel":0,"abs":1e-09},"result.fix_lon.value":{"rel":0,"abs":1e-09},"result.true_course.value":{"rel":0,"abs":1e-09},"result.wmm_declination.value":{"rel":0,"abs":1e-09},"result.variation_difference.value":{"rel":0,"abs":1e-09}}}
{"id":"v002","input":{"lat":47.45,"lon":-122.3,"radial":"270 deg","distance":"30 NM","variation":"16 deg","date":"2026-09-22"},"expect":{"result.fix_lat.value":47.58554885397239,"result.fix_lon.value":-123.01001886301404,"result.true_course.value":286,"result.wmm_declination.value":14.837867042643614,"result.variation_difference.value":1.1621329573563859,"meta.warnings.1.code":"STATION_VARIATION_DIFFERS","ok":true},"source":"GeodSolve fixes and WMM2025 declinations (tools/vectors/gen_radial.py)","sourceVersion":"GeodSolve: GeographicLib version 2.7","tolerance":{"result.fix_lat.value":{"rel":0,"abs":1e-09},"result.fix_lon.value":{"rel":0,"abs":1e-09},"result.true_course.value":{"rel":0,"abs":1e-09},"result.wmm_declination.value":{"rel":0,"abs":1e-09},"result.variation_difference.value":{"rel":0,"abs":1e-09}}}
{"id":"v003","input":{"lat":25.8,"lon":-80.3,"radial":"45 deg","distance":"8 NM","variation":"-7 deg","date":"2026-09-22"},"expect":{"result.fix_lat.value":25.90535660402446,"result.fix_lon.value":-80.20896371118234,"result.true_course.value":38,"result.wmm_declination.value":-7.323346975644197,"result.variation_difference.value":0.32334697564419734,"ok":true},"source":"GeodSolve fixes and WMM2025 declinations (tools/vectors/gen_radial.py)","sourceVersion":"GeodSolve: GeographicLib version 2.7","tolerance":{"result.fix_lat.value":{"rel":0,"abs":1e-09},"result.fix_lon.value":{"rel":0,"abs":1e-09},"result.true_course.value":{"rel":0,"abs":1e-09},"result.wmm_declination.value":{"rel":0,"abs":1e-09},"result.variation_difference.value":{"rel":0,"abs":1e-09}}}
{"id":"v004","input":{"lat":64.8,"lon":-147.9,"radial":"180 deg","distance":"55 NM","variation":"15 deg","date":"2026-09-22"},"expect":{"result.fix_lat.value":63.91644925101623,"result.fix_lon.value":-148.43715895590105,"result.true_course.value":195,"result.wmm_declination.value":14.73049966298234,"result.variation_difference.value":0.26950033701766074,"ok":true},"source":"GeodSolve fixes and WMM2025 declinations (tools/vectors/gen_radial.py)","sourceVersion":"GeodSolve: GeographicLib version 2.7","tolerance":{"result.fix_lat.value":{"rel":0,"abs":1e-09},"result.fix_lon.value":{"rel":0,"abs":1e-09},"result.true_course.value":{"rel":0,"abs":1e-09},"result.wmm_declination.value":{"rel":0,"abs":1e-09},"result.variation_difference.value":{"rel":0,"abs":1e-09}}}
{"id":"v005","input":{"lat":39.8,"lon":-104.7,"radial":"98 deg","distance":"12.5 NM","variation":"11 deg"},"expect":{"result.fix_lat.value":39.73183735782921,"result.fix_lon.value":-104.44466865700703,"result.true_course.value":109.0,"ok":true},"source":"GeodSolve fixes and WMM2025 declinations (tools/vectors/gen_radial.py)","sourceVersion":"GeodSolve: GeographicLib version 2.7","tolerance":{"result.fix_lat.value":{"rel":0,"abs":1e-09},"result.fix_lon.value":{"rel":0,"abs":1e-09},"result.true_course.value":{"rel":0,"abs":1e-09}}}
{"id":"v006","input":{"lat":39.8,"lon":-104.7,"radial":"98 deg","distance":"12.5 NM","variation":"11 deg","date":"2035-01-01"},"expect":{"ok":false,"error.code":"OUT_OF_DOMAIN"},"source":"GeodSolve fixes and WMM2025 declinations (tools/vectors/gen_radial.py)","sourceVersion":"GeodSolve: GeographicLib version 2.7","tolerance":{}}
