{"id":"v001","input":{"bearing":90,"variation":"12°W","direction":"true-to-magnetic"},"expect":{"result.result.value":102,"ok":true},"source":"Arithmetic of FAA-H-8083-25C (magnetic = true - east variation; east is least, west is best)","sourceVersion":"FAA-H-8083-25C (2023)","tolerance":{"result.result.value":{"abs":1e-09}}}
{"id":"v002","input":{"bearing":90,"variation":"12W","direction":"true-to-magnetic"},"expect":{"result.result.value":102,"ok":true},"source":"Arithmetic of FAA-H-8083-25C (magnetic = true - east variation; east is least, west is best)","sourceVersion":"FAA-H-8083-25C (2023)","tolerance":{"result.result.value":{"abs":1e-09}}}
{"id":"v003","input":{"bearing":355,"variation":"10 E","direction":"true-to-magnetic"},"expect":{"result.result.value":345,"ok":true},"source":"Arithmetic of FAA-H-8083-25C (magnetic = true - east variation; east is least, west is best)","sourceVersion":"FAA-H-8083-25C (2023)","tolerance":{"result.result.value":{"abs":1e-09}}}
{"id":"v004","input":{"bearing":5,"variation":"8°W","direction":"true-to-magnetic"},"expect":{"result.result.value":13,"ok":true},"source":"Arithmetic of FAA-H-8083-25C (magnetic = true - east variation; east is least, west is best)","sourceVersion":"FAA-H-8083-25C (2023)","tolerance":{"result.result.value":{"abs":1e-09}}}
{"id":"v005","input":{"bearing":102,"variation":"12°W","direction":"magnetic-to-true"},"expect":{"result.result.value":90,"ok":true},"source":"Arithmetic of FAA-H-8083-25C (magnetic = true - east variation; east is least, west is best)","sourceVersion":"FAA-H-8083-25C (2023)","tolerance":{"result.result.value":{"abs":1e-09}}}
{"id":"v006","input":{"bearing":3,"variation":"-7.5","direction":"true-to-magnetic"},"expect":{"result.result.value":10.5,"ok":true},"source":"Arithmetic of FAA-H-8083-25C (magnetic = true - east variation; east is least, west is best)","sourceVersion":"FAA-H-8083-25C (2023)","tolerance":{"result.result.value":{"abs":1e-09}}}
{"id": "v007", "input": {"bearing": 0.0, "direction": "true-to-magnetic", "lat": 40.446111, "lon": -79.982222, "date": "2026-07-02"}, "expect": {"ok": true, "result.result.value": 9.238955197908526, "result.variation_used.value": -9.238955197908526, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v008", "input": {"bearing": 90.0, "direction": "true-to-magnetic", "lat": 40.446111, "lon": -79.982222, "date": "2026-07-02"}, "expect": {"ok": true, "result.result.value": 99.23895519790852, "result.variation_used.value": -9.238955197908526, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v009", "input": {"bearing": 180.0, "direction": "true-to-magnetic", "lat": 51.5074, "lon": -0.1278, "date": "2026-01-15"}, "expect": {"ok": true, "result.result.value": 178.91667473736808, "result.variation_used.value": 1.083325262631923, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v010", "input": {"bearing": 270.0, "direction": "true-to-magnetic", "lat": 35.6762, "lon": 139.6503, "date": "2026-03-21"}, "expect": {"ok": true, "result.result.value": 277.92059054048036, "result.variation_used.value": -7.920590540480383, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v011", "input": {"bearing": 45.0, "direction": "magnetic-to-true", "lat": 40.446111, "lon": -79.982222, "date": "2026-07-02"}, "expect": {"ok": true, "result.result.value": 35.761044802091476, "result.variation_used.value": -9.238955197908526, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v012", "input": {"bearing": 315.0, "direction": "magnetic-to-true", "lat": -33.8688, "lon": 151.2093, "date": "2026-09-18"}, "expect": {"ok": true, "result.result.value": 327.8253050049635, "result.variation_used.value": 12.825305004963496, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v013", "input": {"bearing": 5.0, "direction": "true-to-magnetic", "lat": 64.1339, "lon": -21.8974, "date": "2026-08-08"}, "expect": {"ok": true, "result.result.value": 16.077135969497036, "result.variation_used.value": -11.077135969497037, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v014", "input": {"bearing": 355.0, "direction": "true-to-magnetic", "lat": 64.1339, "lon": -21.8974, "date": "2026-08-08"}, "expect": {"ok": true, "result.result.value": 6.0771359694970215, "result.variation_used.value": -11.077135969497037, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v015", "input": {"bearing": 120.0, "direction": "magnetic-to-true", "lat": 19.4326, "lon": -99.1332, "date": "2026-02-14"}, "expect": {"ok": true, "result.result.value": 123.92057656354989, "result.variation_used.value": 3.9205765635498806, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v016", "input": {"bearing": 240.0, "direction": "true-to-magnetic", "lat": 1.3521, "lon": 103.8198, "date": "2026-11-11"}, "expect": {"ok": true, "result.result.value": 239.7621747786141, "result.variation_used.value": 0.2378252213858843, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v017", "input": {"bearing": 359.0, "direction": "true-to-magnetic", "lat": -22.9068, "lon": -43.1729, "date": "2026-06-01"}, "expect": {"ok": true, "result.result.value": 22.006235091328392, "result.variation_used.value": -23.006235091328413, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v018", "input": {"bearing": 1.0, "direction": "magnetic-to-true", "lat": -22.9068, "lon": -43.1729, "date": "2026-06-01"}, "expect": {"ok": true, "result.result.value": 337.9937649086716, "result.variation_used.value": -23.006235091328413, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v019", "input": {"bearing": 30.0, "direction": "true-to-magnetic", "lat": 70.0, "lon": 25.0, "date": "2026-12-21"}, "expect": {"ok": true, "result.result.value": 15.17950266449259, "result.variation_used.value": 14.82049733550741, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v020", "input": {"bearing": 210.0, "direction": "magnetic-to-true", "lat": -45.0, "lon": 170.0, "date": "2026-04-10"}, "expect": {"ok": true, "result.result.value": 235.46352585662135, "result.variation_used.value": 25.463525856621334, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v021", "input": {"bearing": 60.0, "direction": "true-to-magnetic", "lat": 25.2048, "lon": 55.2708, "date": "2026-10-01"}, "expect": {"ok": true, "result.result.value": 57.76106795446214, "result.variation_used.value": 2.2389320455378607, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v022", "input": {"bearing": 300.0, "direction": "magnetic-to-true", "lat": -1.2921, "lon": 36.8219, "date": "2026-07-15"}, "expect": {"ok": true, "result.result.value": 300.2803830590222, "result.variation_used.value": 0.2803830590221974, "result.variation_source": "model"}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 0.0001}, "result.variation_used.value": {"abs": 0.0001}, "result.variation_source": {"abs": 0}}}
{"id": "v023", "input": {"bearing": 0.0, "direction": "true-to-magnetic", "variation": "9.2W", "lat": 40.446111, "lon": -79.982222, "date": "2026-07-02"}, "expect": {"ok": true, "result.result.value": 9.2, "result.variation_used.value": -9.2, "result.variation_source": "chart", "result.model_declination.value": -9.238955197908526, "result.model_result.value": 9.238955197908526, "result.difference.value": 0.03895519790852653}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 1e-09}, "result.variation_used.value": {"abs": 1e-09}, "result.variation_source": {"abs": 0}, "result.model_declination.value": {"abs": 0.0001}, "result.model_result.value": {"abs": 0.0001}, "result.difference.value": {"abs": 0.0001}}}
{"id": "v024", "input": {"bearing": 90.0, "direction": "magnetic-to-true", "variation": "1E", "lat": 51.5074, "lon": -0.1278, "date": "2026-01-15"}, "expect": {"ok": true, "result.result.value": 91.0, "result.variation_used.value": 1.0, "result.variation_source": "chart", "result.model_declination.value": 1.083325262631923, "result.model_result.value": 91.08332526263192, "result.difference.value": -0.08332526263192297}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 1e-09}, "result.variation_used.value": {"abs": 1e-09}, "result.variation_source": {"abs": 0}, "result.model_declination.value": {"abs": 0.0001}, "result.model_result.value": {"abs": 0.0001}, "result.difference.value": {"abs": 0.0001}}}
{"id": "v025", "input": {"bearing": 270.0, "direction": "true-to-magnetic", "variation": "12E", "lat": 64.1339, "lon": -21.8974, "date": "2026-08-08"}, "expect": {"ok": true, "result.result.value": 258.0, "result.variation_used.value": 12.0, "result.variation_source": "chart", "result.model_declination.value": -11.077135969497037, "result.model_result.value": 281.077135969497, "result.difference.value": 23.077135969497036}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 1e-09}, "result.variation_used.value": {"abs": 1e-09}, "result.variation_source": {"abs": 0}, "result.model_declination.value": {"abs": 0.0001}, "result.model_result.value": {"abs": 0.0001}, "result.difference.value": {"abs": 0.0001}}}
{"id": "v026", "input": {"bearing": 180.0, "direction": "true-to-magnetic", "variation": "13E", "lat": -33.8688, "lon": 151.2093, "date": "2026-09-18"}, "expect": {"ok": true, "result.result.value": 167.0, "result.variation_used.value": 13.0, "result.variation_source": "chart", "result.model_declination.value": 12.825305004963496, "result.model_result.value": 167.1746949950365, "result.difference.value": 0.17469499503650354}, "source": "Declination from pygeomag (an independent WMM2025 implementation) and grid convergence from PROJ's Proj.get_factors; grivation G = D - gamma and magnetic = true - variation, east positive", "sourceVersion": "pygeomag / PROJ 9.3.0", "tolerance": {"result.result.value": {"abs": 1e-09}, "result.variation_used.value": {"abs": 1e-09}, "result.variation_source": {"abs": 0}, "result.model_declination.value": {"abs": 0.0001}, "result.model_result.value": {"abs": 0.0001}, "result.difference.value": {"abs": 0.0001}}}
