{"id":"v001","input":{"a_course":"90 deg","a_speed":"10 m/s","b_east":"1000 m","b_north":"1200 m","b_course":"180 deg","b_speed":"10 m/s"},"expect":{"result.time.value":110.00000000000001,"result.separation.value":141.42135623730934,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v002","input":{"a_course":"117.70375855249081 deg","a_speed":"49.913738371102596 m/s","b_east":"-18617.32739905847 m","b_north":"12555.56770285196 m","b_course":"219.698150467788 deg","b_speed":"33.33060572962526 m/s"},"expect":{"result.time.value":0.0,"result.separation.value":22455.448332746164,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v003","input":{"a_course":"249.70729353113427 deg","a_speed":"2.0939448778208782 m/s","b_east":"14523.850661166405 m","b_north":"-8449.027020052346 m","b_course":"143.83581989166177 deg","b_speed":"31.22406327889224 m/s"},"expect":{"result.time.value":0.0,"result.separation.value":16802.627640147195,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v004","input":{"a_course":"324.44702654263085 deg","a_speed":"14.441933164560213 m/s","b_east":"964.7784847855037 m","b_north":"19665.63405232803 m","b_course":"76.37864088293517 deg","b_speed":"39.22055477148741 m/s"},"expect":{"result.time.value":2.0940109506405378,"result.separation.value":19689.04378801865,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v005","input":{"a_course":"58.9807538962321 deg","a_speed":"34.46370006012494 m/s","b_east":"-2611.544726991975 m","b_north":"2622.4645804181127 m","b_course":"10.337394040493209 deg","b_speed":"12.920130698185858 m/s"},"expect":{"result.time.value":0.0,"result.separation.value":3701.011528842775,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v006","input":{"a_course":"324.20533853182155 deg","a_speed":"11.605108023631317 m/s","b_east":"-7981.145661690347 m","b_north":"19568.072819757122 m","b_course":"91.65559668812904 deg","b_speed":"35.2054970270975 m/s"},"expect":{"result.time.value":288.1572763911376,"result.separation.value":17066.113018827582,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v007","input":{"a_course":"155.02638141501518 deg","a_speed":"1.18995883336216 m/s","b_east":"5742.847036004183 m","b_north":"119.12327880426528 m","b_course":"337.29989377429456 deg","b_speed":"58.62289349979513 m/s"},"expect":{"result.time.value":35.28610992443103,"result.separation.value":5342.297585813126,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v008","input":{"a_course":"26.648023274757236 deg","a_speed":"35.70544695679595 m/s","b_east":"-6347.271074454191 m","b_north":"-14716.470099040336 m","b_course":"330.0939665764566 deg","b_speed":"6.368647506869768 m/s"},"expect":{"result.time.value":0.0,"result.separation.value":16026.925540120012,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v009","input":{"a_course":"180.70643795696157 deg","a_speed":"14.724630924198316 m/s","b_east":"2915.2743472576367 m","b_north":"-11664.057160774242 m","b_course":"307.7046867919303 deg","b_speed":"26.743862264392828 m/s"},"expect":{"result.time.value":301.32909514168966,"result.separation.value":4109.052370477588,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v010","input":{"a_course":"72.60339592577778 deg","a_speed":"48.238093392857266 m/s","b_east":"-14615.44737952423 m","b_north":"9526.084928933727 m","b_course":"89.43118439656833 deg","b_speed":"50.61316778885991 m/s"},"expect":{"result.time.value":929.1898689641392,"result.separation.value":10906.790101174976,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v011","input":{"a_course":"92.35033169704256 deg","a_speed":"39.43690902317859 m/s","b_east":"6890.0846841155835 m","b_north":"180.04981192320702 m","b_course":"313.44031383249444 deg","b_speed":"33.05006038813051 m/s"},"expect":{"result.time.value":93.762414215358,"result.separation.value":2637.7199788571943,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v012","input":{"a_course":"84.50640206472401 deg","a_speed":"31.944921459106585 m/s","b_east":"7483.90308171232 m","b_north":"-3160.111190250449 m","b_course":"188.7742528476187 deg","b_speed":"5.276455091354916 m/s"},"expect":{"result.time.value":192.55300619728317,"result.separation.value":4903.723210683765,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v013","input":{"a_course":"90.17905709633882 deg","a_speed":"46.260001780918174 m/s","b_east":"-6632.437260241466 m","b_north":"-12436.450392890558 m","b_course":"285.6462549122343 deg","b_speed":"2.746410195939219 m/s"},"expect":{"result.time.value":0.0,"result.separation.value":14094.485531081546,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v014","input":{"a_course":"13.76639334285862 deg","a_speed":"4.667052876921545 m/s","b_east":"-12415.062807438248 m","b_north":"-18001.100521373504 m","b_course":"105.4272191721369 deg","b_speed":"16.825365030120572 m/s"},"expect":{"result.time.value":82.10592052618755,"result.separation.value":21819.42816235026,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v015","input":{"a_course":"332.3257121583084 deg","a_speed":"16.040063631520027 m/s","b_east":"3090.1663095696094 m","b_north":"-8186.705650019643 m","b_course":"261.2488112690625 deg","b_speed":"7.7304957017186 m/s"},"expect":{"result.time.value":0.0,"result.separation.value":8750.501541103951,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v016","input":{"a_course":"124.04484555218932 deg","a_speed":"9.395257339619494 m/s","b_east":"-7797.612389666976 m","b_north":"-9584.875643815454 m","b_course":"162.86179229670648 deg","b_speed":"56.66937909679341 m/s"},"expect":{"result.time.value":0.0,"result.separation.value":12356.075432227446,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v017","input":{"a_course":"9.798400162024436 deg","a_speed":"14.664389597826032 m/s","b_east":"4330.665194487541 m","b_north":"13392.935353861205 m","b_course":"136.65215497092464 deg","b_speed":"22.17138039723333 m/s"},"expect":{"result.time.value":323.1447375250779,"result.separation.value":9144.024339794896,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v018","input":{"a_course":"114.47125971574766 deg","a_speed":"23.14071304688213 m/s","b_east":"1532.594011258865 m","b_north":"11191.891453880406 m","b_course":"7.753129083347363 deg","b_speed":"11.380599852657248 m/s"},"expect":{"result.time.value":0.0,"result.separation.value":11296.339173324595,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v019","input":{"a_course":"79.96289583803505 deg","a_speed":"37.62310690506729 m/s","b_east":"10421.544892017002 m","b_north":"-17181.656168398174 m","b_course":"0.2673878987131806 deg","b_speed":"7.723865671394537 m/s"},"expect":{"result.time.value":295.91640893812115,"result.separation.value":16844.800329317834,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v020","input":{"a_course":"156.90506479998902 deg","a_speed":"41.820638312378165 m/s","b_east":"18906.365849660666 m","b_north":"-5209.3802400919085 m","b_course":"152.54978895936623 deg","b_speed":"52.68875834476141 m/s"},"expect":{"result.time.value":0.0,"result.separation.value":19610.92328594131,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v021","input":{"a_course":"276.3627511360986 deg","a_speed":"54.35417616391668 m/s","b_east":"-9487.061999118116 m","b_north":"8483.008845112417 m","b_course":"291.0238412172185 deg","b_speed":"17.122994179568895 m/s"},"expect":{"result.time.value":248.71979055466656,"result.separation.value":8512.722767320143,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v022","input":{"a_course":"87.6509832083624 deg","a_speed":"55.88895618886204 m/s","b_east":"-11211.753407997026 m","b_north":"-6957.49085518155 m","b_course":"36.88869221175621 deg","b_speed":"52.70180605427911 m/s"},"expect":{"result.time.value":2.724052855385265,"result.separation.value":13194.466841033098,"ok":true},"source":"Relative motion in a flat plane: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-09},"result.separation.value":{"rel":1e-09,"abs":1e-09}}}
{"id":"v023","input":{"a_course":"360 deg","a_speed":"128.6111 m/s","b_east":"0 m","b_north":"37040 m","b_course":"180 deg","b_speed":"128.6111 m/s","b_up":"304.8 m","a_vertical_speed":"0 m/s","b_vertical_speed":"0 m/s"},"expect":{"result.time.value":144.00001244060584,"result.separation.value":304.8,"result.horizontal_separation.value":6.804137616062694e-12,"result.vertical_separation.value":1000.0,"ok":true},"source":"Relative motion in a local east-north-up frame: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-06},"result.separation.value":{"rel":1e-09,"abs":1e-06},"result.horizontal_separation.value":{"rel":1e-09,"abs":1e-06},"result.vertical_separation.value":{"rel":1e-09,"abs":1e-06}}}
{"id":"v024","input":{"a_course":"360 deg","a_speed":"100 m/s","b_east":"0 m","b_north":"10000 m","b_course":"180 deg","b_speed":"100 m/s","b_up":"-1000 m","a_vertical_speed":"-10 m/s","b_vertical_speed":"0 m/s"},"expect":{"result.time.value":50.12468827930174,"result.separation.value":499.3761694389223,"result.horizontal_separation.value":24.93765586034897,"result.vertical_separation.value":-1636.3291246948245,"ok":true},"source":"Relative motion in a local east-north-up frame: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-06},"result.separation.value":{"rel":1e-09,"abs":1e-06},"result.horizontal_separation.value":{"rel":1e-09,"abs":1e-06},"result.vertical_separation.value":{"rel":1e-09,"abs":1e-06}}}
{"id":"v025","input":{"a_course":"45 deg","a_speed":"60 m/s","b_east":"5000 m","b_north":"8000 m","b_course":"250 deg","b_speed":"55 m/s","b_up":"600 m","a_vertical_speed":"2.54 m/s","b_vertical_speed":"-5.08 m/s"},"expect":{"result.time.value":76.1976157002082,"result.separation.value":3978.4174762700663,"result.horizontal_separation.value":3978.3703016550976,"result.vertical_separation.value":63.56354450266875,"ok":true},"source":"Relative motion in a local east-north-up frame: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-06},"result.separation.value":{"rel":1e-09,"abs":1e-06},"result.horizontal_separation.value":{"rel":1e-09,"abs":1e-06},"result.vertical_separation.value":{"rel":1e-09,"abs":1e-06}}}
{"id":"v026","input":{"a_course":"270 deg","a_speed":"80 m/s","b_east":"-12000 m","b_north":"3000 m","b_course":"90 deg","b_speed":"20 m/s","b_up":"0 m","a_vertical_speed":"0 m/s","b_vertical_speed":"7.5 m/s"},"expect":{"result.time.value":119.32877563704164,"result.separation.value":3131.368588261376,"result.horizontal_separation.value":3000.750809623202,"result.vertical_separation.value":2936.2395579980716,"ok":true},"source":"Relative motion in a local east-north-up frame: t = -(r.v)/|v|^2, evaluated in Python","sourceVersion":"2026","tolerance":{"result.time.value":{"rel":1e-09,"abs":1e-06},"result.separation.value":{"rel":1e-09,"abs":1e-06},"result.horizontal_separation.value":{"rel":1e-09,"abs":1e-06},"result.vertical_separation.value":{"rel":1e-09,"abs":1e-06}}}
{"id": "v027", "input": {"a_course": "090 deg", "a_speed": "10 m/s", "b_east": "1000 m", "b_north": "1200 m", "b_course": "180 deg", "b_speed": "10 m/s", "options": {"outputUnits": {"separation": "m", "current_separation": "m", "time": "s"}}}, "expect": {"result.time.value": 110.0, "result.separation.value": 141.4213562373095, "result.bearing.value": 315.0, "result.current_separation.value": 1562.049935181331, "ok": true}, "source": "exactly solvable by hand: r = (1000, 1200) m and v = (-10, -10) m/s give t = -(r.v)/|v|^2 = 22000/200 = 110 s, relative position (-100, +100) m, separation 100*sqrt(2) on a bearing of 315 deg, present separation sqrt(1000^2 + 1200^2)", "sourceVersion": "closed form", "tolerance": {"result.time.value": {"rel": 1e-12}, "result.separation.value": {"rel": 1e-12}, "result.bearing.value": {"rel": 1e-12}, "result.current_separation.value": {"rel": 1e-12}}}
