{"id":"v001","input":{"x":3657660.66,"y":255768.55,"z":5201382.11,"tz":4.5,"rz":0.554,"scale":0.219,"convention":"position-vector"},"expect":{"result.x.value":3657660.78,"result.y.value":255778.43,"result.z.value":5201387.75,"ok":true},"source":"IOGP Guidance Note 7-2 worked example","sourceVersion":"IOGP 373-7-2, September 2019","tolerance":{"result.x.value":{"abs":0.01},"result.y.value":{"abs":0.01},"result.z.value":{"abs":0.01}}}
{"id":"v002","input":{"x":3657660.66,"y":255768.55,"z":5201382.11,"tz":4.5,"rz":-0.554,"scale":0.219,"convention":"coordinate-frame"},"expect":{"result.x.value":3657660.78,"result.y.value":255778.43,"result.z.value":5201387.75,"ok":true},"source":"IOGP Guidance Note 7-2 worked example","sourceVersion":"IOGP 373-7-2, September 2019","tolerance":{"result.x.value":{"abs":0.01},"result.y.value":{"abs":0.01},"result.z.value":{"abs":0.01}}}
{"id":"v003","input":{"x":-3789470.71,"y":4841770.404,"z":-1690893.952,"tx":"-84.68 mm","ty":"-19.42 mm","tz":"32.01 mm","rx":"-0.4254 mas","ry":"2.2578 mas","rz":"2.4015 mas","scale":"0.00971 ppm","tx_rate":"1.42 mm/yr","ty_rate":"1.34 mm/yr","tz_rate":"0.90 mm/yr","rx_rate":"1.5461 mas/yr","ry_rate":"1.1820 mas/yr","rz_rate":"1.1551 mas/yr","scale_rate":"0.000109 ppm/yr","reference_epoch":1994.0,"epoch":"2013.90","convention":"coordinate-frame"},"expect":{"result.x.value":-3789470.004,"result.y.value":4841770.686,"result.z.value":-1690895.108,"ok":true},"source":"IOGP Guidance Note 7-2 worked example","sourceVersion":"IOGP 373-7-2, September 2019","tolerance":{"result.x.value":{"abs":0.0006},"result.y.value":{"abs":0.0006},"result.z.value":{"abs":0.0006}}}
{"id":"v004","input":{"x":-3789470.004,"y":4841770.686,"z":-1690895.108,"tx":"-84.68 mm","ty":"-19.42 mm","tz":"32.01 mm","rx":"-0.4254 mas","ry":"2.2578 mas","rz":"2.4015 mas","scale":"0.00971 ppm","tx_rate":"1.42 mm/yr","ty_rate":"1.34 mm/yr","tz_rate":"0.90 mm/yr","rx_rate":"1.5461 mas/yr","ry_rate":"1.1820 mas/yr","rz_rate":"1.1551 mas/yr","scale_rate":"0.000109 ppm/yr","reference_epoch":1994.0,"epoch":"2013.90","convention":"coordinate-frame","direction":"reverse"},"expect":{"result.x.value":-3789470.71,"result.y.value":4841770.404,"result.z.value":-1690893.952,"ok":true},"source":"IOGP Guidance Note 7-2 worked example","sourceVersion":"IOGP 373-7-2, September 2019","tolerance":{"result.x.value":{"abs":0.0006},"result.y.value":{"abs":0.0006},"result.z.value":{"abs":0.0006}}}
{"id":"v005","input":{"x":538801.7869825211,"y":1043524.2396607053,"z":-6271115.14617007,"tx":80.09381487231428,"ty":183.83025236853848,"tz":-216.35207181435516,"rx":1.5486889145126534,"ry":4.886649535244105,"rz":2.6631407691960307,"scale":-3.910937988693206,"convention":"position-vector","tx_rate":0.0012077509284336794,"ty_rate":-0.00889117138453472,"tz_rate":-0.008748518313762662,"rx_rate":-0.008140805730531341,"ry_rate":-0.009550523319835018,"rz_rate":-0.0036394690589678126,"scale_rate":"0.00907565425133869 ppm/yr","reference_epoch":2010.0,"epoch":"1995.822"},"expect":{"result.x.value":538713.2667971675,"result.y.value":1043761.6659977754,"result.z.value":-6271310.740875532,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v006","input":{"x":-1845318.2419492279,"y":2127988.1481843055,"z":-5717231.464446499,"tx":278.82321156799424,"ty":-161.4109954177758,"tz":-285.86602240431347,"rx":3.2505418770367367,"ry":0.3712432955173792,"rz":2.0269184652837824,"scale":-6.997555949830936,"convention":"coordinate-frame","direction":"reverse"},"expect":{"result.x.value":-1845641.1832098903,"result.y.value":2128236.4082286297,"result.z.value":-5716948.742464838,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v007","input":{"x":5691194.758772761,"y":2567550.8882651534,"z":-1330831.1003855718,"tx":-174.8444758412503,"ty":-144.8070414877442,"tz":192.55476183091366,"rx":2.2433115164793636,"ry":-1.34483315265288,"rz":-2.4595777681722852,"scale":9.885923392419915,"convention":"position-vector"},"expect":{"result.x.value":5691115.470758733,"result.y.value":2567378.0733588114,"result.z.value":-1330586.6708763358,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v008","input":{"x":-4610601.373804798,"y":-1478307.4508220712,"z":4164723.281055759,"tx":-165.25533600876815,"ty":-259.21177886867144,"tz":-250.4107795030301,"rx":2.675021232721103,"ry":-3.1555346365992,"rz":-0.5807908066265455,"scale":14.900498384920283,"convention":"coordinate-frame","tx_rate":0.005361102814552069,"ty_rate":-0.005615722882474825,"tz_rate":-0.006293046093382491,"rx_rate":0.009543144192074198,"ry_rate":0.004586308745696866,"rz_rate":-0.0004881025230178155,"scale_rate":"0.007096376595195098 ppm/yr","reference_epoch":2010.0,"epoch":"2014.276"},"expect":{"result.x.value":-4610767.94996639,"result.y.value":-1478546.9516543674,"result.z.value":4164624.5887237564,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v009","input":{"x":3686204.893146167,"y":2872209.743041278,"z":4344439.071139513,"tx":45.52960782629049,"ty":-112.95301535420307,"tz":182.74689846665308,"rx":-0.6131012713002795,"ry":0.9812319814560038,"rz":-3.0283351898552002,"scale":-16.722983778457568,"convention":"position-vector"},"expect":{"result.x.value":3686251.613654434,"result.y.value":2872007.552142268,"result.z.value":4344523.093318831,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v010","input":{"x":-3749937.959121266,"y":-2061162.3561818453,"z":-4739081.753409959,"tx":22.022103129768027,"ty":-78.63743315391298,"tz":-261.7567367110811,"rx":-0.918609115906933,"ry":-1.993411725809704,"rz":0.5929675565678636,"scale":-4.027962162460149,"convention":"coordinate-frame","direction":"reverse"},"expect":{"result.x.value":-3749923.3627088405,"result.y.value":-2061123.9057260307,"result.z.value":-4738866.145741743,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v011","input":{"x":-4406982.922239193,"y":-446137.6544206748,"z":4594387.527969288,"tx":-242.77807034824232,"ty":200.13969829465788,"tz":-180.81480723345652,"rx":0.16108567325725165,"ry":1.9244798441217092,"rz":1.7546433354039692,"scale":-8.517595889017414,"convention":"position-vector","tx_rate":0.003300183518448555,"ty_rate":0.007139329073106276,"tz_rate":0.00820866933362543,"rx_rate":-0.0008977236950294554,"ry_rate":-0.008410165551669535,"rz_rate":0.004029885314605679,"scale_rate":"-0.00965231975873744 ppm/yr","reference_epoch":2010.0,"epoch":"2010.571"},"expect":{"result.x.value":-4407141.578153675,"result.y.value":-445974.82272600115,"result.z.value":4594208.226907405,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v012","input":{"x":-797251.0276137304,"y":-1801449.1849993009,"z":-6066704.928642564,"tx":-51.748788421401855,"ty":287.92653831642133,"tz":-112.16365078242367,"rx":2.1941387700302357,"ry":3.3064791330504057,"rz":-1.3250389412933137,"scale":-10.50569467840932,"convention":"coordinate-frame"},"expect":{"result.x.value":-797185.5785371327,"result.y.value":-1801211.9882531327,"result.z.value":-6066746.974665952,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v013","input":{"x":1103342.080624991,"y":3529108.3763245135,"z":-5195970.887924332,"tx":-158.64140389150577,"ty":24.70768989905548,"tz":267.62007395216074,"rx":1.4288000956208027,"ry":2.187234984708991,"rz":3.410816886720518,"scale":1.8743537035360731,"convention":"position-vector"},"expect":{"result.x.value":1103072.0511980245,"result.y.value":3529193.936481657,"result.z.value":-5195700.260570682,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v014","input":{"x":-3575689.0660472806,"y":-2928958.5001538326,"z":-4389565.614377354,"tx":-180.10981098040736,"ty":-196.3230900075019,"tz":-3.2705154974578363,"rx":-2.6458823599353885,"ry":0.7393438252972704,"rz":4.062960417457051,"scale":-4.37063516594705,"convention":"coordinate-frame","tx_rate":-0.0052947472136730235,"ty_rate":0.00885288657347476,"tz_rate":-0.007985892659899185,"rx_rate":-0.003054422878483061,"ry_rate":0.0017253675769227268,"rz_rate":0.006066988116738911,"scale_rate":"-0.006784229995591981 ppm/yr","reference_epoch":2010.0,"epoch":"2020.074","direction":"reverse"},"expect":{"result.x.value":-3575482.317685618,"result.y.value":-2928903.717538564,"result.z.value":-4389530.623544115,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v015","input":{"x":-5248569.218557761,"y":3607567.6391999847,"z":-376205.51781808306,"tx":14.245078280042833,"ty":-294.7104271687345,"tz":-4.837686631237318,"rx":-1.0475253176012025,"ry":-4.19039261882859,"rz":-1.900023166455144,"scale":9.545300953279007,"convention":"position-vector"},"expect":{"result.x.value":-5248564.198052536,"result.y.value":3607353.801532442,"result.z.value":-376338.89670621214,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v016","input":{"x":1074429.892286379,"y":-3752856.660338068,"z":5051673.332603314,"tx":52.07375395791064,"ty":-224.6937646202611,"tz":21.82599986362743,"rx":-2.377426322854763,"ry":-4.768701016849292,"rz":4.906866850836886,"scale":-15.249762350735958,"convention":"coordinate-frame"},"expect":{"result.x.value":1074493.094732661,"result.y.value":-3753107.9084710656,"result.z.value":5051550.026984379,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v017","input":{"x":-120551.2545333924,"y":-1624244.825316736,"z":6174629.411070443,"tx":114.32480496840873,"ty":-150.3782154611556,"tz":276.6330246659968,"rx":-1.7481632645971446,"ry":0.09125249602531404,"rz":1.317215062618887,"scale":-16.336691573547135,"convention":"position-vector","tx_rate":0.00487326017381883,"ty_rate":0.007081750047427794,"tz_rate":0.0096486608805778,"rx_rate":-0.002814832696761982,"ry_rate":0.002476838756120021,"rz_rate":-0.00823600974667293,"scale_rate":"0.0021632858674777815 ppm/yr","reference_epoch":2010.0,"epoch":"2010.51"},"expect":{"result.x.value":-120421.84926858738,"result.y.value":-1624317.0601338542,"result.z.value":6174819.0139796585,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v018","input":{"x":3239004.7143107955,"y":-1023076.0073867617,"z":-5398355.638525061,"tx":-33.20096273618151,"ty":-23.70243111819576,"tz":-100.16695997375643,"rx":2.413474633475392,"ry":2.315478236976805,"rz":1.5515667557892332,"scale":-15.019168750086216,"convention":"coordinate-frame","direction":"reverse"},"expect":{"result.x.value":3239033.6577829705,"result.y.value":-1022980.1401771791,"result.z.value":-5398384.880434382,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v019","input":{"x":-2659215.0286198845,"y":5199005.620811954,"z":2581803.813255523,"tx":-94.57743235389404,"ty":-36.253393816598134,"tz":-18.420412205346167,"rx":3.051952633487522,"ry":-2.3516259748112143,"rz":-4.6276062739724875,"scale":15.170742152178775,"convention":"position-vector"},"expect":{"result.x.value":-2659262.74106544,"result.y.value":5199069.699617892,"result.z.value":2581871.1696711564,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v020","input":{"x":-4594746.114173325,"y":778657.3228204622,"z":-4355042.120825336,"tx":104.64319725165092,"ty":244.57639803920233,"tz":211.29301887385463,"rx":1.5194626902785293,"ry":1.1404118637104244,"rz":3.5563607578072105,"scale":10.066348456264222,"convention":"coordinate-frame","tx_rate":0.00116885597468604,"ty_rate":-0.005962698502267041,"tz_rate":0.0052203690173931675,"rx_rate":0.005349021103144405,"ry_rate":-0.006272809629428007,"rz_rate":-0.009031390982462015,"scale_rate":"-0.001153423592815445 ppm/yr","reference_epoch":2010.0,"epoch":"1995.898"},"expect":{"result.x.value":-4594647.96173734,"result.y.value":778961.404113601,"result.z.value":-4354907.637512962,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v021","input":{"x":125863.41081498664,"y":4153867.229392094,"z":4840970.656818216,"tx":133.5258754404286,"ty":53.92469188884081,"tz":-192.9116958675183,"rx":-4.254151567376983,"ry":3.348846140679937,"rz":-4.1564570986474045,"scale":-3.6041336597984426,"convention":"position-vector"},"expect":{"result.x.value":126158.78373151593,"result.y.value":4154003.4899680107,"result.z.value":4840672.58215506,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v022","input":{"x":3907152.2269396894,"y":1902140.8453963331,"z":-4673876.6734899245,"tx":229.68478727007948,"ty":-161.59270480619534,"tz":-261.521557802485,"rx":-2.3225111216946495,"ry":3.4275820368727246,"rz":1.970877610284819,"scale":18.21832913852456,"convention":"coordinate-frame","direction":"reverse"},"expect":{"result.x.value":3906755.5263756043,"result.y.value":1902252.4871121428,"result.z.value":-4673616.347172141,"ok":true},"source":"PROJ +proj=helmert through pyproj","sourceVersion":"PROJ 9.3 (pyproj 3.6)","tolerance":{"result.x.value":{"abs":1e-06},"result.y.value":{"abs":1e-06},"result.z.value":{"abs":1e-06}}}
{"id":"v023","input":{"x":3657660.66,"y":255768.55,"z":5201382.11,"rz":0.554},"expect":{"error.code":"INVALID_INPUT","error.field":"/convention","ok":false},"source":"add-geodesy-suite input rules","sourceVersion":"2026-09"}
{"id":"v024","input":{"x":3657660.66,"y":255768.55,"z":5201382.11,"tx_rate":0.001,"convention":"position-vector"},"expect":{"error.code":"INVALID_INPUT","error.field":"/epoch","ok":false},"source":"add-geodesy-suite input rules","sourceVersion":"2026-09"}
