From 5b51015302227ab6939b0d97e22c46131c510aed Mon Sep 17 00:00:00 2001 From: matthewholman Date: Wed, 2 Sep 2026 14:48:43 -0400 Subject: [PATCH] Add the 55 X05 short arcs as an initial-orbit fixture These are Rubin-only arcs (obscode X05, 6-20 observations each) whose cold-start Gauss fit ran past a 420 s deadline and returned nothing -- the cases an alternative initial-orbit method exists to cover. Reference elements are MPCORB's, fitted to each object's full history rather than to the short arc, so they are an external check rather than a restatement of layup's own answer. Published semi-major axes run 2.10 to 3.93 au. That is the regime the Herget prototype's 40 au starting range does not reach, and the sample is the one that makes the choice of that range measurable. The test asserts only what must hold whatever the method does -- an arc that converges lands on the published orbit. It deliberately does not pin how many arcs converge, nor the initial-orbit state, because the starting range is open work and pinning either would fail on the improvement it exists to encourage. The fitting pass is opt-in via LAYUP_RUN_X05_FITS=1 and skips where no herget IOD is registered. --- tests/data/herget_x05/K06AB8N.obs80 | 6 + tests/data/herget_x05/K09VD3S.obs80 | 12 + tests/data/herget_x05/K10K87V.obs80 | 8 + tests/data/herget_x05/K11C31L.obs80 | 11 + tests/data/herget_x05/K11O79N.obs80 | 13 + tests/data/herget_x05/K12HA9X.obs80 | 7 + tests/data/herget_x05/K14HU6O.obs80 | 13 + tests/data/herget_x05/K14K04U.obs80 | 12 + tests/data/herget_x05/K14O32T.obs80 | 11 + tests/data/herget_x05/K15Kf6Z.obs80 | 9 + tests/data/herget_x05/K15OD3J.obs80 | 15 + tests/data/herget_x05/K15PT7W.obs80 | 13 + tests/data/herget_x05/K16CZ1P.obs80 | 9 + tests/data/herget_x05/K16W83O.obs80 | 6 + tests/data/herget_x05/K17T32E.obs80 | 12 + tests/data/herget_x05/K17UL2L.obs80 | 14 + tests/data/herget_x05/K19GI0M.obs80 | 10 + tests/data/herget_x05/K19J41C.obs80 | 11 + tests/data/herget_x05/K19J86V.obs80 | 13 + tests/data/herget_x05/K20HE8Y.obs80 | 9 + tests/data/herget_x05/K20R77A.obs80 | 11 + tests/data/herget_x05/K21GJ2P.obs80 | 16 + tests/data/herget_x05/K21N25S.obs80 | 20 + tests/data/herget_x05/K21Q85R.obs80 | 9 + tests/data/herget_x05/K21RO0K.obs80 | 7 + tests/data/herget_x05/K21S75J.obs80 | 6 + tests/data/herget_x05/K22S82V.obs80 | 8 + tests/data/herget_x05/K25K21T.obs80 | 13 + tests/data/herget_x05/K25MD6R.obs80 | 8 + tests/data/herget_x05/K25MG4B.obs80 | 14 + tests/data/herget_x05/K25MU3W.obs80 | 11 + tests/data/herget_x05/K25MU7M.obs80 | 8 + tests/data/herget_x05/K25MW3A.obs80 | 10 + tests/data/herget_x05/K25N36R.obs80 | 12 + tests/data/herget_x05/K25N39S.obs80 | 12 + tests/data/herget_x05/K25N50F.obs80 | 14 + tests/data/herget_x05/K25N52C.obs80 | 9 + tests/data/herget_x05/K25N53U.obs80 | 10 + tests/data/herget_x05/K25N75Q.obs80 | 8 + tests/data/herget_x05/K25NF1M.obs80 | 9 + tests/data/herget_x05/K25NF1Q.obs80 | 16 + tests/data/herget_x05/K25O89S.obs80 | 15 + tests/data/herget_x05/K25O98O.obs80 | 9 + tests/data/herget_x05/K25OB4H.obs80 | 9 + tests/data/herget_x05/K25OG1O.obs80 | 10 + tests/data/herget_x05/K25OK1O.obs80 | 16 + tests/data/herget_x05/K25ON4V.obs80 | 18 + tests/data/herget_x05/K25OP6H.obs80 | 15 + tests/data/herget_x05/K25OQ4S.obs80 | 20 + tests/data/herget_x05/K25OU0L.obs80 | 19 + tests/data/herget_x05/K25OX9M.obs80 | 15 + tests/data/herget_x05/K25P08B.obs80 | 17 + tests/data/herget_x05/K25P22E.obs80 | 9 + tests/data/herget_x05/K25P67P.obs80 | 17 + tests/data/herget_x05/K25P86E.obs80 | 15 + tests/data/herget_x05_truth.json | 768 ++++++++++++++++++++++++++++ tests/layup/test_herget_x05.py | 137 +++++ 57 files changed, 1554 insertions(+) create mode 100644 tests/data/herget_x05/K06AB8N.obs80 create mode 100644 tests/data/herget_x05/K09VD3S.obs80 create mode 100644 tests/data/herget_x05/K10K87V.obs80 create mode 100644 tests/data/herget_x05/K11C31L.obs80 create mode 100644 tests/data/herget_x05/K11O79N.obs80 create mode 100644 tests/data/herget_x05/K12HA9X.obs80 create mode 100644 tests/data/herget_x05/K14HU6O.obs80 create mode 100644 tests/data/herget_x05/K14K04U.obs80 create mode 100644 tests/data/herget_x05/K14O32T.obs80 create mode 100644 tests/data/herget_x05/K15Kf6Z.obs80 create mode 100644 tests/data/herget_x05/K15OD3J.obs80 create mode 100644 tests/data/herget_x05/K15PT7W.obs80 create mode 100644 tests/data/herget_x05/K16CZ1P.obs80 create mode 100644 tests/data/herget_x05/K16W83O.obs80 create mode 100644 tests/data/herget_x05/K17T32E.obs80 create mode 100644 tests/data/herget_x05/K17UL2L.obs80 create mode 100644 tests/data/herget_x05/K19GI0M.obs80 create mode 100644 tests/data/herget_x05/K19J41C.obs80 create mode 100644 tests/data/herget_x05/K19J86V.obs80 create mode 100644 tests/data/herget_x05/K20HE8Y.obs80 create mode 100644 tests/data/herget_x05/K20R77A.obs80 create mode 100644 tests/data/herget_x05/K21GJ2P.obs80 create mode 100644 tests/data/herget_x05/K21N25S.obs80 create mode 100644 tests/data/herget_x05/K21Q85R.obs80 create mode 100644 tests/data/herget_x05/K21RO0K.obs80 create mode 100644 tests/data/herget_x05/K21S75J.obs80 create mode 100644 tests/data/herget_x05/K22S82V.obs80 create mode 100644 tests/data/herget_x05/K25K21T.obs80 create mode 100644 tests/data/herget_x05/K25MD6R.obs80 create mode 100644 tests/data/herget_x05/K25MG4B.obs80 create mode 100644 tests/data/herget_x05/K25MU3W.obs80 create mode 100644 tests/data/herget_x05/K25MU7M.obs80 create mode 100644 tests/data/herget_x05/K25MW3A.obs80 create mode 100644 tests/data/herget_x05/K25N36R.obs80 create mode 100644 tests/data/herget_x05/K25N39S.obs80 create mode 100644 tests/data/herget_x05/K25N50F.obs80 create mode 100644 tests/data/herget_x05/K25N52C.obs80 create mode 100644 tests/data/herget_x05/K25N53U.obs80 create mode 100644 tests/data/herget_x05/K25N75Q.obs80 create mode 100644 tests/data/herget_x05/K25NF1M.obs80 create mode 100644 tests/data/herget_x05/K25NF1Q.obs80 create mode 100644 tests/data/herget_x05/K25O89S.obs80 create mode 100644 tests/data/herget_x05/K25O98O.obs80 create mode 100644 tests/data/herget_x05/K25OB4H.obs80 create mode 100644 tests/data/herget_x05/K25OG1O.obs80 create mode 100644 tests/data/herget_x05/K25OK1O.obs80 create mode 100644 tests/data/herget_x05/K25ON4V.obs80 create mode 100644 tests/data/herget_x05/K25OP6H.obs80 create mode 100644 tests/data/herget_x05/K25OQ4S.obs80 create mode 100644 tests/data/herget_x05/K25OU0L.obs80 create mode 100644 tests/data/herget_x05/K25OX9M.obs80 create mode 100644 tests/data/herget_x05/K25P08B.obs80 create mode 100644 tests/data/herget_x05/K25P22E.obs80 create mode 100644 tests/data/herget_x05/K25P67P.obs80 create mode 100644 tests/data/herget_x05/K25P86E.obs80 create mode 100644 tests/data/herget_x05_truth.json create mode 100644 tests/layup/test_herget_x05.py diff --git a/tests/data/herget_x05/K06AB8N.obs80 b/tests/data/herget_x05/K06AB8N.obs80 new file mode 100644 index 00000000..212d20b0 --- /dev/null +++ b/tests/data/herget_x05/K06AB8N.obs80 @@ -0,0 +1,6 @@ + K06AB8N 0C2025 07 04.36659020 40 14.514-20 46 24.39 23.09gW~9ab5X05 + K06AB8N 0C2025 07 04.39056420 40 13.455-20 46 23.99 22.59rW~9ab5X05 + K06AB8N 0C2025 07 18.34667820 29 07.447-20 44 49.20 22.02iW~9ab5X05 + K06AB8N 0C2025 07 18.37516620 29 05.975-20 44 48.73 22.23rW~9ab5X05 + K06AB8N 0C2025 07 29.36102120 19 35.316-20 42 11.87 21.95iW~9ab5X05 + K06AB8N 0C2025 07 29.38449120 19 34.089-20 42 11.31 22.00zW~9ab5X05 diff --git a/tests/data/herget_x05/K09VD3S.obs80 b/tests/data/herget_x05/K09VD3S.obs80 new file mode 100644 index 00000000..809671ac --- /dev/null +++ b/tests/data/herget_x05/K09VD3S.obs80 @@ -0,0 +1,12 @@ + K09VD3S 0C2025 07 01.36584120 02 18.692-24 23 42.32 21.67iW~9aeKX05 + K09VD3S 0C2025 07 01.38414620 02 17.755-24 23 49.04 21.73iW~9aeKX05 + K09VD3S 0C2025 07 07.09995119 57 14.548-24 59 55.31 21.67iW~9aeKX05 + K09VD3S 0C2025 07 07.12623619 57 12.975-25 00 05.61 21.92zW~9aeKX05 + K09VD3S 0C2025 07 14.32621919 49 53.613-25 45 17.34 21.41iW~9aeKX05 + K09VD3S 0C2025 07 14.32988719 49 53.368-25 45 18.61 21.57iW~9aeKX05 + K09VD3S 0C2025 07 14.35083619 49 51.991-25 45 26.19 21.21zW~9aeKX05 + K09VD3S 0C2025 07 14.35455219 49 51.740-25 45 27.39 21.66zW~9aeKX05 + K09VD3S 0C2025 07 14.38426519 49 49.786-25 45 37.99 21.60iW~9aeKX05 + K09VD3S 0C2025 07 18.33987819 45 32.675-26 09 20.59 21.75iW~9aeKX05 + K09VD3S 0C2025 07 18.34274719 45 32.489-26 09 21.56 21.72iW~9aeKX05 + K09VD3S 0C2025 07 18.36803719 45 30.775-26 09 29.93 21.83rW~9aeKX05 diff --git a/tests/data/herget_x05/K10K87V.obs80 b/tests/data/herget_x05/K10K87V.obs80 new file mode 100644 index 00000000..62d6233a --- /dev/null +++ b/tests/data/herget_x05/K10K87V.obs80 @@ -0,0 +1,8 @@ + K10K87V 0C2025 07 18.29519322 58 52.265+01 19 17.18 21.06rW~9af7X05 + K10K87V 0C2025 07 18.29620022 58 52.247+01 19 17.93 21.03rW~9af7X05 + K10K87V 0C2025 07 18.30870822 58 52.045+01 19 27.74 20.94iW~9af7X05 + K10K87V 0C2025 07 19.24630522 58 38.599+01 31 36.62 21.51gW~9af7X05 + K10K87V 0C2025 07 19.29139122 58 37.783+01 32 11.56 21.04rW~9af7X05 + K10K87V 0C2025 07 19.31720222 58 37.309+01 32 31.54 20.92iW~9af7X05 + K10K87V 0C2025 07 22.22664222 57 42.778+02 09 27.85 21.13gW~9af7X05 + K10K87V 0C2025 07 22.22754422 57 42.758+02 09 28.53 21.16gW~9af7X05 diff --git a/tests/data/herget_x05/K11C31L.obs80 b/tests/data/herget_x05/K11C31L.obs80 new file mode 100644 index 00000000..a4c4dbc7 --- /dev/null +++ b/tests/data/herget_x05/K11C31L.obs80 @@ -0,0 +1,11 @@ + K11C31L 0C2025 07 19.36684721 13 45.891-13 04 54.76 22.23rW~9afxX05 + K11C31L 0C2025 07 19.37496121 13 45.533-13 04 54.88 22.01iW~9afxX05 + K11C31L 0C2025 07 19.38338221 13 45.156-13 04 54.81 21.98iW~9afxX05 + K11C31L 0C2025 07 19.39310621 13 44.724-13 04 54.81 22.11iW~9afxX05 + K11C31L 0C2025 07 21.10459121 12 29.669-13 05 05.04 22.35rW~9afxX05 + K11C31L 0C2025 07 21.13807821 12 28.135-13 05 05.44 22.23iW~9afxX05 + K11C31L 0C2025 07 21.15216621 12 27.494-13 05 05.66 22.12iW~9afxX05 + K11C31L 0C2025 07 29.35368621 06 00.030-13 07 50.37 21.88iW~9afxX05 + K11C31L 0C2025 07 29.35415521 06 00.008-13 07 50.35 21.91iW~9afxX05 + K11C31L 0C2025 07 29.37721921 05 58.849-13 07 51.00 21.82zW~9afxX05 + K11C31L 0C2025 07 29.37769521 05 58.827-13 07 50.97 21.79zW~9afxX05 diff --git a/tests/data/herget_x05/K11O79N.obs80 b/tests/data/herget_x05/K11O79N.obs80 new file mode 100644 index 00000000..6f3ba1c8 --- /dev/null +++ b/tests/data/herget_x05/K11O79N.obs80 @@ -0,0 +1,13 @@ + K11O79N 0C2025 07 18.23048522 27 37.793-03 56 10.78 21.65rW~9agMX05 + K11O79N 0C2025 07 18.25106922 27 37.590-03 56 14.69 21.62iW~9agMX05 + K11O79N 0C2025 07 21.20603322 27 07.243-04 06 36.50 21.72rW~9agMX05 + K11O79N 0C2025 07 21.23134722 27 06.877-04 06 42.15 21.56iW~9agMX05 + K11O79N 0C2025 08 14.36212522 15 30.844-06 38 35.43 21.02iW~9agMX05 + K11O79N 0C2025 08 14.37318022 15 30.377-06 38 40.85 21.11rW~9agMX05 + K11O79N 0C2025 08 14.38584322 15 29.842-06 38 47.08 21.08rW~9agMX05 + K11O79N 0C2025 08 15.13855022 14 59.456-06 45 01.17 21.06rW~9agMX05 + K11O79N 0C2025 08 15.13990822 14 59.393-06 45 01.86 21.12rW~9agMX05 + K11O79N 0C2025 08 15.17903422 14 57.686-06 45 21.45 21.09rW~9agMX05 + K11O79N 0C2025 08 27.32905422 06 16.852-08 31 02.14 20.93iW~9agMX05 + K11O79N 0C2025 08 27.34024322 06 16.359-08 31 07.98 21.01rW~9agMX05 + K11O79N 0C2025 08 27.36690722 06 15.194-08 31 22.02 20.84iW~9agMX05 diff --git a/tests/data/herget_x05/K12HA9X.obs80 b/tests/data/herget_x05/K12HA9X.obs80 new file mode 100644 index 00000000..1244f5ed --- /dev/null +++ b/tests/data/herget_x05/K12HA9X.obs80 @@ -0,0 +1,7 @@ + K12HA9X 0C2025 07 11.29433323 29 31.099-14 26 13.37 22.19zW~9ahZX05 + K12HA9X 0C2025 07 11.32511923 29 31.160-14 26 17.97 22.42zW~9ahZX05 + K12HA9X 0C2025 07 19.25975923 29 20.225-14 49 11.14 22.84rW~9ahZX05 + K12HA9X 0C2025 07 19.30150023 29 19.929-14 49 19.48 23.11rW~9ahZX05 + K12HA9X 0C2025 07 22.24835023 28 57.113-14 59 29.06 22.88rW~9ahZX05 + K12HA9X 0C2025 07 22.26992823 28 56.884-14 59 33.79 22.85iW~9ahZX05 + K12HA9X 0C2025 07 22.27659923 28 56.819-14 59 35.27 23.48gW~9ahZX05 diff --git a/tests/data/herget_x05/K14HU6O.obs80 b/tests/data/herget_x05/K14HU6O.obs80 new file mode 100644 index 00000000..49b9ff07 --- /dev/null +++ b/tests/data/herget_x05/K14HU6O.obs80 @@ -0,0 +1,13 @@ + K14HU6O 0C2025 07 19.29645722 33 58.596-08 28 20.26 23.25rW~9al5X05 + K14HU6O 0C2025 07 19.32233622 33 58.040-08 28 24.28 23.16iW~9al5X05 + K14HU6O 0C2025 07 22.21500222 32 56.060-08 36 40.48 23.81gW~9al5X05 + K14HU6O 0C2025 07 22.24504922 32 55.275-08 36 46.21 22.92rW~9al5X05 + K14HU6O 0C2025 08 14.35989222 17 06.578-10 28 58.71 22.70iW~9al5X05 + K14HU6O 0C2025 08 14.37095422 17 05.959-10 29 02.71 22.87rW~9al5X05 + K14HU6O 0C2025 08 14.38049322 17 05.423-10 29 06.12 22.98rW~9al5X05 + K14HU6O 0C2025 08 14.38540322 17 05.146-10 29 07.98 22.68rW~9al5X05 + K14HU6O 0C2025 08 14.39175322 17 04.791-10 29 10.25 22.48iW~9al5X05 + K14HU6O 0C2025 08 15.12314622 16 25.177-10 33 42.53 22.60rW~9al5X05 + K14HU6O 0C2025 08 15.13945422 16 24.240-10 33 48.56 22.61rW~9al5X05 + K14HU6O 0C2025 08 17.34144422 14 20.533-10 47 38.44 22.71rW~9al5X05 + K14HU6O 0C2025 08 17.35283322 14 19.861-10 47 42.62 22.55iW~9al5X05 diff --git a/tests/data/herget_x05/K14K04U.obs80 b/tests/data/herget_x05/K14K04U.obs80 new file mode 100644 index 00000000..1949b7d8 --- /dev/null +++ b/tests/data/herget_x05/K14K04U.obs80 @@ -0,0 +1,12 @@ + K14K04U 0C2025 07 02.20600921 13 58.270-14 21 25.18 21.94rW~9alVX05 + K14K04U 0C2025 07 02.22383221 13 57.867-14 21 26.20 21.70rW~9alVX05 + K14K04U 0C2025 07 02.23111321 13 57.706-14 21 26.62 21.44iW~9alVX05 + K14K04U 0C2025 07 02.24488921 13 57.383-14 21 27.49 21.69rW~9alVX05 + K14K04U 0C2025 07 19.36684721 04 37.971-14 54 25.88 21.25rW~9alVX05 + K14K04U 0C2025 07 19.37496121 04 37.612-14 54 27.13 21.11iW~9alVX05 + K14K04U 0C2025 07 20.35087321 03 55.752-14 57 08.84 21.75gW~9alVX05 + K14K04U 0C2025 07 20.35132921 03 55.735-14 57 08.88 21.72gW~9alVX05 + K14K04U 0C2025 07 20.37438921 03 54.693-14 57 12.64 21.35rW~9alVX05 + K14K04U 0C2025 07 20.37485121 03 54.676-14 57 12.67 21.35rW~9alVX05 + K14K04U 0C2025 07 23.34949321 01 42.285-15 05 48.70 21.10iW~9alVX05 + K14K04U 0C2025 07 23.34995221 01 42.264-15 05 48.78 21.10iW~9alVX05 diff --git a/tests/data/herget_x05/K14O32T.obs80 b/tests/data/herget_x05/K14O32T.obs80 new file mode 100644 index 00000000..3d6c9921 --- /dev/null +++ b/tests/data/herget_x05/K14O32T.obs80 @@ -0,0 +1,11 @@ + K14O32T 0C2025 07 01.36121520 24 48.407-20 06 01.91 21.68iW~9alrX05 + K14O32T 0C2025 07 01.37816720 24 47.874-20 06 09.42 21.79iW~9alrX05 + K14O32T 0C2025 07 14.33605620 16 49.604-21 49 07.85 21.32iW~9alrX05 + K14O32T 0C2025 07 14.36069720 16 48.505-21 49 19.77 21.31zW~9alrX05 + K14O32T 0C2025 07 14.38292220 16 47.522-21 49 30.59 21.54iW~9alrX05 + K14O32T 0C2025 07 18.34476820 13 53.008-22 22 17.31 21.39iW~9alrX05 + K14O32T 0C2025 07 18.37330420 13 51.680-22 22 31.21 21.34rW~9alrX05 + K14O32T 0C2025 07 22.36919820 10 48.423-22 55 25.61 21.21rW~9alrX05 + K14O32T 0C2025 07 22.36966020 10 48.394-22 55 26.07 21.09rW~9alrX05 + K14O32T 0C2025 07 22.39022020 10 47.419-22 55 35.76 21.72gW~9alrX05 + K14O32T 0C2025 07 22.39068120 10 47.394-22 55 36.01 21.69gW~9alrX05 diff --git a/tests/data/herget_x05/K15Kf6Z.obs80 b/tests/data/herget_x05/K15Kf6Z.obs80 new file mode 100644 index 00000000..338f44bf --- /dev/null +++ b/tests/data/herget_x05/K15Kf6Z.obs80 @@ -0,0 +1,9 @@ + K15Kf6Z 0C2025 07 18.09627820 55 43.252-09 38 01.35 21.67gW~9atAX05 + K15Kf6Z 0C2025 07 18.09671920 55 43.231-09 38 01.30 21.68gW~9atAX05 + K15Kf6Z 0C2025 07 18.11962120 55 42.302-09 37 59.30 21.45rW~9atAX05 + K15Kf6Z 0C2025 07 18.12006120 55 42.284-09 37 59.26 21.42rW~9atAX05 + K15Kf6Z 0C2025 07 21.13147120 53 42.632-09 34 08.87 21.35rW~9atAX05 + K15Kf6Z 0C2025 07 21.15491920 53 41.563-09 34 07.67 21.28iW~9atAX05 + K15Kf6Z 0C2025 07 22.10247220 53 01.667-09 33 18.24 20.82iW~9atAX05 + K15Kf6Z 0C2025 07 22.10292620 53 01.647-09 33 18.21 20.74iW~9atAX05 + K15Kf6Z 0C2025 07 22.12273620 53 00.731-09 33 17.48 21.12zW~9atAX05 diff --git a/tests/data/herget_x05/K15OD3J.obs80 b/tests/data/herget_x05/K15OD3J.obs80 new file mode 100644 index 00000000..78936bf8 --- /dev/null +++ b/tests/data/herget_x05/K15OD3J.obs80 @@ -0,0 +1,15 @@ + K15OD3J 0C2025 07 18.09429920 41 38.080-16 27 51.79 21.96gW~9atsX05 + K15OD3J 0C2025 07 18.09531020 41 38.030-16 27 51.82 22.05gW~9atsX05 + K15OD3J 0C2025 07 18.11763920 41 36.901-16 27 51.98 21.43rW~9atsX05 + K15OD3J 0C2025 07 18.11865620 41 36.850-16 27 51.97 21.49rW~9atsX05 + K15OD3J 0C2025 07 18.35653120 41 24.737-16 27 52.23 21.33iW~9atsX05 + K15OD3J 0C2025 07 18.38461820 41 23.318-16 27 52.13 21.42rW~9atsX05 + K15OD3J 0C2025 07 18.38509420 41 23.296-16 27 52.12 21.55rW~9atsX05 + K15OD3J 0C2025 07 22.10708620 38 16.155-16 28 12.05 21.39iW~9atsX05 + K15OD3J 0C2025 07 22.10843920 38 16.084-16 28 12.07 21.33iW~9atsX05 + K15OD3J 0C2025 07 22.12740520 38 15.079-16 28 12.33 21.36zW~9atsX05 + K15OD3J 0C2025 07 22.12879420 38 15.004-16 28 12.38 21.40zW~9atsX05 + K15OD3J 0C2025 07 22.36604620 38 02.360-16 28 14.21 21.48rW~9atsX05 + K15OD3J 0C2025 07 22.38252220 38 01.489-16 28 14.30 21.98gW~9atsX05 + K15OD3J 0C2025 07 29.35875420 31 53.722-16 29 47.56 20.97iW~9atsX05 + K15OD3J 0C2025 07 29.38223020 31 52.448-16 29 47.79 20.95zW~9atsX05 diff --git a/tests/data/herget_x05/K15PT7W.obs80 b/tests/data/herget_x05/K15PT7W.obs80 new file mode 100644 index 00000000..97ec244d --- /dev/null +++ b/tests/data/herget_x05/K15PT7W.obs80 @@ -0,0 +1,13 @@ + K15PT7W 0C2025 07 11.25420123 19 05.334-05 52 57.11 21.49zW~9auBX05 + K15PT7W 0C2025 07 11.25466023 19 05.354-05 52 57.08 21.66zW~9auBX05 + K15PT7W 0C2025 07 11.28307123 19 07.429-05 53 00.14 21.41zW~9auBX05 + K15PT7W 0C2025 07 11.28352723 19 07.460-05 53 00.16 21.22zW~9auBX05 + K15PT7W 0C2025 07 11.34197423 19 11.670-05 53 06.25 22.04zW~9auBX05 + K15PT7W 0C2025 07 13.30372823 21 37.020-05 57 02.47 21.32iW~9auBX05 + K15PT7W 0C2025 07 13.32733223 21 38.648-05 57 05.82 21.32zW~9auBX05 + K15PT7W 0C2025 07 19.26072423 28 19.702-06 16 16.09 22.01rW~9auBX05 + K15PT7W 0C2025 07 19.30009723 28 22.019-06 16 26.06 21.31rW~9auBX05 + K15PT7W 0C2025 07 21.19835523 30 17.432-06 24 58.56 21.64rW~9auBX05 + K15PT7W 0C2025 07 21.22186723 30 18.739-06 25 05.51 21.44iW~9auBX05 + K15PT7W 0C2025 07 21.26353523 30 21.073-06 25 17.79 21.25rW~9auBX05 + K15PT7W 0C2025 07 21.29225623 30 22.650-06 25 26.36 21.76iW~9auBX05 diff --git a/tests/data/herget_x05/K16CZ1P.obs80 b/tests/data/herget_x05/K16CZ1P.obs80 new file mode 100644 index 00000000..690e9223 --- /dev/null +++ b/tests/data/herget_x05/K16CZ1P.obs80 @@ -0,0 +1,9 @@ + K16CZ1P 0C2025 07 01.36310520 09 31.449-15 58 16.58 21.85iW~9awGX05 + K16CZ1P 0C2025 07 01.38095820 09 30.572-15 58 18.77 21.74iW~9awGX05 + K16CZ1P 0C2025 07 14.33840519 58 05.996-16 32 05.72 21.62iW~9awGX05 + K16CZ1P 0C2025 07 14.36303719 58 04.568-16 32 09.89 21.42zW~9awGX05 + K16CZ1P 0C2025 07 14.38109319 58 03.538-16 32 13.39 21.09iW~9awGX05 + K16CZ1P 0C2025 07 18.08238919 54 33.585-16 43 26.07 22.08gW~9awGX05 + K16CZ1P 0C2025 07 18.10538319 54 32.234-16 43 30.46 21.58rW~9awGX05 + K16CZ1P 0C2025 07 18.36085519 54 17.155-16 44 17.47 21.36iW~9awGX05 + K16CZ1P 0C2025 07 18.38882819 54 15.527-16 44 22.39 21.50rW~9awGX05 diff --git a/tests/data/herget_x05/K16W83O.obs80 b/tests/data/herget_x05/K16W83O.obs80 new file mode 100644 index 00000000..bacaa23a --- /dev/null +++ b/tests/data/herget_x05/K16W83O.obs80 @@ -0,0 +1,6 @@ + K16W83O 0C2025 07 01.36310520 06 24.823-15 14 58.15 22.55iW~9azgX05 + K16W83O 0C2025 07 01.38095820 06 24.041-15 14 57.61 22.46iW~9azgX05 + K16W83O 0C2025 07 04.37085920 04 12.253-15 13 49.58 23.17gW~9azgX05 + K16W83O 0C2025 07 04.39475220 04 11.157-15 13 49.03 22.74rW~9azgX05 + K16W83O 0C2025 07 18.08143419 53 18.402-15 13 07.05 22.80gW~9azgX05 + K16W83O 0C2025 07 18.10436719 53 17.244-15 13 07.37 22.45rW~9azgX05 diff --git a/tests/data/herget_x05/K17T32E.obs80 b/tests/data/herget_x05/K17T32E.obs80 new file mode 100644 index 00000000..b8fba9e7 --- /dev/null +++ b/tests/data/herget_x05/K17T32E.obs80 @@ -0,0 +1,12 @@ + K17T32E 0C2025 08 07.36295621 36 07.145-11 56 39.01 21.30iW~9b2fX05 + K17T32E 0C2025 08 07.36523121 36 07.029-11 56 39.57 21.21iW~9b2fX05 + K17T32E 0C2025 08 07.37769121 36 06.385-11 56 43.62 21.73rW~9b2fX05 + K17T32E 0C2025 08 07.37996421 36 06.275-11 56 44.10 21.54rW~9b2fX05 + K17T32E 0C2025 08 13.38048621 31 00.133-12 28 40.25 21.14iW~9b2fX05 + K17T32E 0C2025 08 13.39155021 30 59.548-12 28 43.69 21.39rW~9b2fX05 + K17T32E 0C2025 08 14.33698421 30 10.565-12 33 52.85 21.36rW~9b2fX05 + K17T32E 0C2025 08 14.34904621 30 09.919-12 33 56.79 21.17iW~9b2fX05 + K17T32E 0C2025 08 15.14266521 29 29.081-12 38 17.04 21.37rW~9b2fX05 + K17T32E 0C2025 08 15.18783521 29 26.641-12 38 31.93 21.33iW~9b2fX05 + K17T32E 0C2025 08 17.30997421 27 36.145-12 50 08.74 21.28iW~9b2fX05 + K17T32E 0C2025 08 17.35830021 27 33.593-12 50 24.44 21.25iW~9b2fX05 diff --git a/tests/data/herget_x05/K17UL2L.obs80 b/tests/data/herget_x05/K17UL2L.obs80 new file mode 100644 index 00000000..1b3c01d9 --- /dev/null +++ b/tests/data/herget_x05/K17UL2L.obs80 @@ -0,0 +1,14 @@ + K17UL2L 0C2025 07 18.09531020 52 18.530-15 19 04.68 22.69gW~9b2tX05 + K17UL2L 0C2025 07 18.11865620 52 17.387-15 19 07.92 22.34rW~9b2tX05 + K17UL2L 0C2025 07 18.35653120 52 05.602-15 19 40.30 22.08iW~9b2tX05 + K17UL2L 0C2025 07 18.38461820 52 04.232-15 19 44.02 22.25rW~9b2tX05 + K17UL2L 0C2025 07 21.10414920 49 51.476-15 26 06.51 22.20rW~9b2tX05 + K17UL2L 0C2025 07 21.13761820 49 49.750-15 26 11.62 22.22iW~9b2tX05 + K17UL2L 0C2025 07 22.10755320 49 01.059-15 28 33.33 21.91iW~9b2tX05 + K17UL2L 0C2025 07 22.12788120 49 00.004-15 28 36.42 21.97zW~9b2tX05 + K17UL2L 0C2025 07 22.35085520 48 48.345-15 29 09.30 22.15rW~9b2tX05 + K17UL2L 0C2025 07 22.35131520 48 48.320-15 29 09.40 22.26rW~9b2tX05 + K17UL2L 0C2025 07 22.38207320 48 46.724-15 29 13.80 22.67gW~9b2tX05 + K17UL2L 0C2025 07 22.38252220 48 46.687-15 29 13.71 22.54gW~9b2tX05 + K17UL2L 0C2025 07 29.35920220 42 42.378-15 47 18.49 21.83iW~9b2tX05 + K17UL2L 0C2025 07 29.38270320 42 41.104-15 47 22.16 21.69zW~9b2tX05 diff --git a/tests/data/herget_x05/K19GI0M.obs80 b/tests/data/herget_x05/K19GI0M.obs80 new file mode 100644 index 00000000..bc47848c --- /dev/null +++ b/tests/data/herget_x05/K19GI0M.obs80 @@ -0,0 +1,10 @@ + K19GI0M 0C2025 07 19.36913921 14 05.683-19 52 08.53 21.93rW~9b62X05 + K19GI0M 0C2025 07 19.37699321 14 05.343-19 52 11.05 21.71iW~9b62X05 + K19GI0M 0C2025 07 20.29196621 13 26.727-19 57 13.06 22.73gW~9b62X05 + K19GI0M 0C2025 07 20.34773721 13 24.248-19 57 31.22 22.43gW~9b62X05 + K19GI0M 0C2025 07 20.37123221 13 23.204-19 57 38.85 21.91rW~9b63X05 + K19GI0M 0C2025 07 20.37393521 13 23.086-19 57 39.77 21.90rW~9b63X05 + K19GI0M 0C2025 07 22.34949621 11 56.904-20 08 35.20 21.90rW~9b63X05 + K19GI0M 0C2025 07 22.38069821 11 55.473-20 08 45.41 22.46gW~9b63X05 + K19GI0M 0C2025 07 29.34587321 06 30.284-20 47 24.80 21.70iW~9b63X05 + K19GI0M 0C2025 07 29.36950621 06 29.106-20 47 32.44 21.41zW~9b63X05 diff --git a/tests/data/herget_x05/K19J41C.obs80 b/tests/data/herget_x05/K19J41C.obs80 new file mode 100644 index 00000000..8ac2c77b --- /dev/null +++ b/tests/data/herget_x05/K19J41C.obs80 @@ -0,0 +1,11 @@ + K19J41C 0C2025 07 11.24331021 59 07.871-02 25 57.30 21.39zW~9b69X05 + K19J41C 0C2025 07 11.27112021 59 07.510-02 26 06.77 21.34zW~9b69X05 + K19J41C 0C2025 07 18.21090921 57 16.030-03 11 26.19 21.27rW~9b69X05 + K19J41C 0C2025 07 18.23187121 57 15.554-03 11 35.48 21.30rW~9b69X05 + K19J41C 0C2025 07 18.23412421 57 15.501-03 11 36.45 21.31rW~9b69X05 + K19J41C 0C2025 07 18.25247421 57 15.085-03 11 44.59 21.20iW~9b69X05 + K19J41C 0C2025 07 18.25479821 57 15.032-03 11 45.61 21.19iW~9b69X05 + K19J41C 0C2025 07 21.20832221 56 07.832-03 34 32.33 21.25rW~9b69X05 + K19J41C 0C2025 07 21.23369721 56 07.157-03 34 44.61 21.06iW~9b69X05 + K19J41C 0C2025 07 22.23771721 55 41.749-03 42 56.85 21.63rW~9b69X05 + K19J41C 0C2025 07 22.25911921 55 41.151-03 43 07.46 21.62iW~9b69X05 diff --git a/tests/data/herget_x05/K19J86V.obs80 b/tests/data/herget_x05/K19J86V.obs80 new file mode 100644 index 00000000..23d277f9 --- /dev/null +++ b/tests/data/herget_x05/K19J86V.obs80 @@ -0,0 +1,13 @@ + K19J86V 0C2025 06 21.23623720 28 02.425-13 01 18.11 21.73iW~9b6FX05 + K19J86V 0C2025 06 21.25996720 28 01.840-13 01 18.16 21.90rW~9b6FX05 + K19J86V 0C2025 07 02.21194920 22 33.166-13 07 38.99 21.62rW~9b6FX05 + K19J86V 0C2025 07 02.21243820 22 33.148-13 07 39.03 21.58rW~9b6FX05 + K19J86V 0C2025 07 02.23899420 22 32.128-13 07 40.92 21.53iW~9b6FX05 + K19J86V 0C2025 07 02.25281120 22 31.595-13 07 41.96 21.63rW~9b6FX05 + K19J86V 0C2025 07 14.29438320 14 07.516-13 29 00.04 21.35rW~9b6FX05 + K19J86V 0C2025 07 14.33791520 14 05.437-13 29 05.85 21.25iW~9b6FX05 + K19J86V 0C2025 07 14.36254120 14 04.273-13 29 09.14 21.08zW~9b6FX05 + K19J86V 0C2025 07 14.37879120 14 03.490-13 29 11.56 21.65iW~9b6FX05 + K19J86V 0C2025 07 14.39581520 14 02.700-13 29 13.55 21.00zW~9b6FX05 + K19J86V 0C2025 07 18.35943220 10 56.795-13 38 56.73 21.25iW~9b6FX05 + K19J86V 0C2025 07 18.38740520 10 55.433-13 39 00.98 21.26rW~9b6FX05 diff --git a/tests/data/herget_x05/K20HE8Y.obs80 b/tests/data/herget_x05/K20HE8Y.obs80 new file mode 100644 index 00000000..23052bb3 --- /dev/null +++ b/tests/data/herget_x05/K20HE8Y.obs80 @@ -0,0 +1,9 @@ + K20HE8Y 0C2025 07 18.28613723 07 06.494-11 41 22.58 22.54rW~9b93X05 + K20HE8Y 0C2025 07 18.29912023 07 06.402-11 41 26.99 22.57rW~9b93X05 + K20HE8Y 0C2025 07 18.31154423 07 06.316-11 41 31.24 22.55iW~9b93X05 + K20HE8Y 0C2025 07 19.24215623 07 00.591-11 46 52.58 23.31gW~9b93X05 + K20HE8Y 0C2025 07 19.29885723 07 00.098-11 47 12.57 22.58rW~9b93X05 + K20HE8Y 0C2025 07 21.19609523 06 43.993-11 58 35.44 22.60rW~9b93X05 + K20HE8Y 0C2025 07 21.21300223 06 43.809-11 58 41.56 22.72rW~9b93X05 + K20HE8Y 0C2025 07 24.26255223 06 05.735-12 18 12.77 22.90gW~9b93X05 + K20HE8Y 0C2025 07 24.26392423 06 05.712-12 18 13.39 22.92gW~9b93X05 diff --git a/tests/data/herget_x05/K20R77A.obs80 b/tests/data/herget_x05/K20R77A.obs80 new file mode 100644 index 00000000..f0354d52 --- /dev/null +++ b/tests/data/herget_x05/K20R77A.obs80 @@ -0,0 +1,11 @@ + K20R77A 0C2025 07 02.29061222 37 01.181-04 44 28.21 22.28rW~9b9vX05 + K20R77A 0C2025 07 02.33052122 37 01.491-04 44 19.41 21.83iW~9b9vX05 + K20R77A 0C2025 07 07.26995822 37 29.524-04 27 23.52 22.03iW~9b9vX05 + K20R77A 0C2025 07 07.30833122 37 29.540-04 27 16.06 21.88zW~9b9vX05 + K20R77A 0C2025 07 19.24809622 36 12.846-03 59 58.31 22.27gW~9b9vX05 + K20R77A 0C2025 07 19.24932522 36 12.827-03 59 58.21 22.31gW~9b9vX05 + K20R77A 0C2025 07 21.20465522 35 40.807-03 57 26.52 21.96rW~9b9vX05 + K20R77A 0C2025 07 21.20603322 35 40.776-03 57 26.39 21.98rW~9b9vX05 + K20R77A 0C2025 07 21.22994722 35 40.318-03 57 24.82 22.11iW~9b9vX05 + K20R77A 0C2025 07 22.21638222 35 22.058-03 56 21.35 22.26gW~9b9vX05 + K20R77A 0C2025 07 22.25487622 35 21.251-03 56 19.07 21.70iW~9b9vX05 diff --git a/tests/data/herget_x05/K21GJ2P.obs80 b/tests/data/herget_x05/K21GJ2P.obs80 new file mode 100644 index 00000000..19621fec --- /dev/null +++ b/tests/data/herget_x05/K21GJ2P.obs80 @@ -0,0 +1,16 @@ + K21GJ2P 0C2025 07 18.09429920 30 57.437-15 49 21.70 21.21gW~9bCPX05 + K21GJ2P 0C2025 07 18.09864120 30 57.193-15 49 21.76 21.16gW~9bCPX05 + K21GJ2P 0C2025 07 18.11763920 30 56.110-15 49 22.03 20.60rW~9bCPX05 + K21GJ2P 0C2025 07 18.12203620 30 55.860-15 49 22.11 20.61rW~9bCPX05 + K21GJ2P 0C2025 07 18.35700120 30 42.310-15 49 23.48 20.35iW~9bCPX05 + K21GJ2P 0C2025 07 18.38509420 30 40.713-15 49 23.36 20.63rW~9bCPX05 + K21GJ2P 0C2025 07 18.38600220 30 40.662-15 49 23.34 20.58rW~9bCPX05 + K21GJ2P 0C2025 07 21.10236820 28 10.555-15 49 59.48 20.55rW~9bCPX05 + K21GJ2P 0C2025 07 21.10281020 28 10.527-15 49 59.51 20.59rW~9bCPX05 + K21GJ2P 0C2025 07 21.13622120 28 08.542-15 50 00.41 20.39iW~9bCPX05 + K21GJ2P 0C2025 07 22.35407220 26 58.606-15 50 25.46 20.47rW~9bCPX05 + K21GJ2P 0C2025 07 22.38526120 26 56.764-15 50 25.80 21.13gW~9bCPX05 + K21GJ2P 0C2025 07 29.35783320 20 13.765-15 54 18.24 20.28iW~9bCPX05 + K21GJ2P 0C2025 07 29.35828320 20 13.738-15 54 18.25 20.29iW~9bCPX05 + K21GJ2P 0C2025 07 29.38133420 20 12.375-15 54 18.91 20.66zW~9bCPX05 + K21GJ2P 0C2025 07 29.38178220 20 12.349-15 54 18.88 20.61zW~9bCPX05 diff --git a/tests/data/herget_x05/K21N25S.obs80 b/tests/data/herget_x05/K21N25S.obs80 new file mode 100644 index 00000000..a8bbd5e0 --- /dev/null +++ b/tests/data/herget_x05/K21N25S.obs80 @@ -0,0 +1,20 @@ + K21N25S 0C2025 07 18.22131822 24 26.508-10 14 20.48 21.68rW~9bCuX05 + K21N25S 0C2025 07 18.22902522 24 26.316-10 14 17.02 21.74rW~9bCuX05 + K21N25S 0C2025 07 18.24957022 24 25.795-10 14 07.67 21.52iW~9bCuX05 + K21N25S 0C2025 07 21.20931122 23 09.380-09 51 57.67 21.59rW~9bCuX05 + K21N25S 0C2025 07 21.23471022 23 08.574-09 51 46.45 21.26iW~9bCuX05 + K21N25S 0C2025 07 22.21454322 22 39.199-09 44 34.45 22.18gW~9bCuX05 + K21N25S 0C2025 07 22.23449322 22 38.529-09 44 25.77 21.64rW~9bCuX05 + K21N25S 0C2025 07 22.24458022 22 38.185-09 44 21.37 21.59rW~9bCuX05 + K21N25S 0C2025 07 22.25576722 22 37.805-09 44 16.45 21.38iW~9bCuX05 + K21N25S 0C2025 08 14.36302522 02 52.266-07 14 49.62 20.83iW~9bCuX05 + K21N25S 0C2025 08 14.37408722 02 51.515-07 14 45.85 21.05rW~9bCuX05 + K21N25S 0C2025 08 14.38630422 02 50.689-07 14 41.68 21.02rW~9bCuX05 + K21N25S 0C2025 08 15.17903422 01 58.685-07 10 16.97 21.00rW~9bCuX05 + K21N25S 0C2025 08 15.17948322 01 58.655-07 10 16.83 20.97rW~9bCuX05 + K21N25S 0C2025 08 17.17976921 59 44.413-06 59 20.55 20.79iW~9bCuX05 + K21N25S 0C2025 08 17.22889421 59 40.934-06 59 04.63 20.88rW~9bCuX05 + K21N25S 0C2025 08 17.34326021 59 32.878-06 58 27.37 20.97rW~9bCvX05 + K21N25S 0C2025 08 17.35465321 59 32.073-06 58 23.68 20.75iW~9bCvX05 + K21N25S 0C2025 08 17.37334621 59 30.781-06 58 17.55 20.78iW~9bCvX05 + K21N25S 0C2025 08 17.38485721 59 30.006-06 58 13.76 20.77zW~9bCvX05 diff --git a/tests/data/herget_x05/K21Q85R.obs80 b/tests/data/herget_x05/K21Q85R.obs80 new file mode 100644 index 00000000..f80b52dd --- /dev/null +++ b/tests/data/herget_x05/K21Q85R.obs80 @@ -0,0 +1,9 @@ + K21Q85R 0C2025 07 07.26854922 56 06.444-09 34 05.97 22.52iW~9bDKX05 + K21Q85R 0C2025 07 07.32219522 56 07.955-09 34 18.17 22.08zW~9bDKX05 + K21Q85R 0C2025 07 18.28613723 00 03.960-10 29 17.76 22.40rW~9bDKX05 + K21Q85R 0C2025 07 18.29912023 00 04.087-10 29 22.73 22.27rW~9bDKX05 + K21Q85R 0C2025 07 18.31154423 00 04.221-10 29 27.35 21.91iW~9bDKX05 + K21Q85R 0C2025 07 19.29744723 00 15.922-10 35 48.26 22.13rW~9bDKX05 + K21Q85R 0C2025 07 19.32333323 00 16.141-10 35 58.46 22.20iW~9bDKX05 + K21Q85R 0C2025 07 21.21300223 00 34.103-10 48 47.78 22.12rW~9bDKX05 + K21Q85R 0C2025 07 21.23846423 00 34.251-10 48 58.58 22.04iW~9bDKX05 diff --git a/tests/data/herget_x05/K21RO0K.obs80 b/tests/data/herget_x05/K21RO0K.obs80 new file mode 100644 index 00000000..9f19d578 --- /dev/null +++ b/tests/data/herget_x05/K21RO0K.obs80 @@ -0,0 +1,7 @@ + K21RO0K 0C2025 07 01.36264720 11 58.569-16 40 11.16 22.08iW~9bDhX05 + K21RO0K 0C2025 07 01.37957020 11 57.803-16 40 11.41 22.03iW~9bDhX05 + K21RO0K 0C2025 07 01.38095820 11 57.741-16 40 11.50 22.19iW~9bDhX05 + K21RO0K 0C2025 07 04.36993320 09 42.604-16 41 28.14 22.95gW~9bDhX05 + K21RO0K 0C2025 07 04.39382320 09 41.466-16 41 28.70 22.39rW~9bDhX05 + K21RO0K 0C2025 07 14.29536620 01 23.856-16 48 58.49 21.96rW~9bDhX05 + K21RO0K 0C2025 07 14.33840520 01 21.512-16 49 00.85 21.74iW~9bDhX05 diff --git a/tests/data/herget_x05/K21S75J.obs80 b/tests/data/herget_x05/K21S75J.obs80 new file mode 100644 index 00000000..0721c7d2 --- /dev/null +++ b/tests/data/herget_x05/K21S75J.obs80 @@ -0,0 +1,6 @@ + K21S75J 0C2025 07 01.30354823 00 59.198-02 51 47.00 22.63rW~9bDsX05 + K21S75J 0C2025 07 01.35297223 00 59.965-02 51 37.93 22.58rW~9bDsX05 + K21S75J 0C2025 07 18.28324923 02 33.578-02 19 43.68 22.29rW~9bDsX05 + K21S75J 0C2025 07 18.30915023 02 33.367-02 19 42.68 22.01iW~9bDsX05 + K21S75J 0C2025 07 19.29090823 02 26.395-02 19 11.34 22.38rW~9bDsX05 + K21S75J 0C2025 07 19.31672123 02 26.144-02 19 10.70 22.09iW~9bDsX05 diff --git a/tests/data/herget_x05/K22S82V.obs80 b/tests/data/herget_x05/K22S82V.obs80 new file mode 100644 index 00000000..b0f91a31 --- /dev/null +++ b/tests/data/herget_x05/K22S82V.obs80 @@ -0,0 +1,8 @@ + K22S82V 0C2025 07 01.36763720 14 26.986-28 51 52.45 22.05iW~9bGqX05 + K22S82V 0C2025 07 01.36810320 14 26.963-28 51 52.62 22.05iW~9bGqX05 + K22S82V 0C2025 07 01.39184920 14 25.720-28 52 01.43 22.22iW~9bGqX05 + K22S82V 0C2025 07 01.39278520 14 25.672-28 52 01.72 22.18iW~9bGqX05 + K22S82V 0C2025 07 14.33181420 01 49.506-30 10 14.93 21.59iW~9bGqX05 + K22S82V 0C2025 07 14.35645920 01 47.863-30 10 22.94 21.52zW~9bGqX05 + K22S82V 0C2025 07 18.01485919 57 48.741-30 29 52.25 22.33gW~9bGqX05 + K22S82V 0C2025 07 18.03945719 57 47.076-30 30 00.11 21.80rW~9bGqX05 diff --git a/tests/data/herget_x05/K25K21T.obs80 b/tests/data/herget_x05/K25K21T.obs80 new file mode 100644 index 00000000..dda147dd --- /dev/null +++ b/tests/data/herget_x05/K25K21T.obs80 @@ -0,0 +1,13 @@ + K25K21T 0C2025 07 02.20554020 54 10.339-14 50 48.66 20.91rW~9bKCX05 + K25K21T 0C2025 07 02.24046120 54 09.275-14 50 50.57 20.75iW~9bKCX05 + K25K21T 0C2025 07 02.25432920 54 08.847-14 50 51.36 20.90rW~9bKCX05 + K25K21T 0C2025 07 07.11088220 51 33.162-14 56 42.77 20.73iW~9bKCX05 + K25K21T 0C2025 07 07.14157420 51 31.989-14 56 45.90 20.72zW~9bKCX05 + K25K21T 0C2025 07 18.09531020 43 29.979-15 20 36.15 21.26gW~9bKCX05 + K25K21T 0C2025 07 18.11865620 43 28.749-15 20 40.22 20.77rW~9bKCX05 + K25K21T 0C2025 07 18.35653120 43 16.023-15 21 19.35 20.48iW~9bKCX05 + K25K21T 0C2025 07 18.38461820 43 14.537-15 21 23.75 20.60rW~9bKCX05 + K25K21T 0C2025 07 21.10281020 40 54.191-15 29 11.14 20.90rW~9bKCX05 + K25K21T 0C2025 07 21.13622120 40 52.339-15 29 17.34 20.95iW~9bKCX05 + K25K21T 0C2025 07 22.35131520 39 46.882-15 32 56.32 20.48rW~9bKCX05 + K25K21T 0C2025 07 22.38252220 39 45.143-15 33 01.72 21.13gW~9bKCX05 diff --git a/tests/data/herget_x05/K25MD6R.obs80 b/tests/data/herget_x05/K25MD6R.obs80 new file mode 100644 index 00000000..336286c9 --- /dev/null +++ b/tests/data/herget_x05/K25MD6R.obs80 @@ -0,0 +1,8 @@ + K25MD6R*0C2025 06 21.24880121 21 57.169-12 59 45.56 22.97iW~9bNFX05 + K25MD6R 0C2025 06 21.28922021 21 56.756-12 59 48.93 23.08iW~9bNFX05 + K25MD6R 0C2025 07 02.22383221 18 47.618-13 23 52.32 23.23rW~9bNFX05 + K25MD6R 0C2025 07 02.24488921 18 47.045-13 23 56.21 23.22rW~9bNFX05 + K25MD6R 0C2025 07 20.35087321 07 19.351-14 37 44.88 23.31gW~9bNFX05 + K25MD6R 0C2025 07 20.37438921 07 18.176-14 37 51.90 22.90rW~9bNFX05 + K25MD6R 0C2025 07 22.34994021 05 41.490-14 47 49.40 22.83rW~9bNFX05 + K25MD6R 0C2025 07 22.38114321 05 39.896-14 47 58.73 23.12gW~9bNFX05 diff --git a/tests/data/herget_x05/K25MG4B.obs80 b/tests/data/herget_x05/K25MG4B.obs80 new file mode 100644 index 00000000..d49f9325 --- /dev/null +++ b/tests/data/herget_x05/K25MG4B.obs80 @@ -0,0 +1,14 @@ + K25MG4B*0C2025 06 21.28528220 26 38.317-16 24 17.34 20.78iW~9bOLX05 + K25MG4B 0C2025 06 21.30966120 26 37.259-16 24 07.29 20.79zW~9bOLX05 + K25MG4B 0C2025 07 01.36264720 18 27.438-15 17 29.42 21.02iW~9bOLX05 + K25MG4B 0C2025 07 01.37957020 18 26.468-15 17 22.83 21.07iW~9bOLX05 + K25MG4B 0C2025 07 01.38049120 18 26.415-15 17 22.51 21.02iW~9bOLX05 + K25MG4B 0C2025 07 02.21243820 17 40.221-15 12 06.41 20.82rW~9bOLX05 + K25MG4B 0C2025 07 02.21290920 17 40.194-15 12 06.25 20.82rW~9bOLX05 + K25MG4B 0C2025 07 14.33886120 05 13.893-13 59 53.91 20.53iW~9bOLX05 + K25MG4B 0C2025 07 14.36349820 05 12.257-13 59 45.56 20.51zW~9bOLX05 + K25MG4B 0C2025 07 14.38019420 05 11.156-13 59 39.78 20.35iW~9bOLX05 + K25MG4B 0C2025 07 18.08143420 01 10.023-13 39 32.70 20.94gW~9bOLX05 + K25MG4B 0C2025 07 18.10004120 01 08.773-13 39 26.84 20.96gW~9bOLX05 + K25MG4B 0C2025 07 18.10436720 01 08.482-13 39 25.50 20.52rW~9bOLX05 + K25MG4B 0C2025 07 18.12343320 01 07.199-13 39 19.51 20.59rW~9bOLX05 diff --git a/tests/data/herget_x05/K25MU3W.obs80 b/tests/data/herget_x05/K25MU3W.obs80 new file mode 100644 index 00000000..8e375f8c --- /dev/null +++ b/tests/data/herget_x05/K25MU3W.obs80 @@ -0,0 +1,11 @@ + K25MU3W*0C2025 06 21.24880121 30 34.444-14 04 35.85 23.04iW~9bTSX05 + K25MU3W 0C2025 06 21.28922021 30 34.178-14 04 37.36 23.09iW~9bTSX05 + K25MU3W 0C2025 07 19.36867321 20 14.739-15 00 10.31 22.64rW~9bTSX05 + K25MU3W 0C2025 07 19.37273921 20 14.585-15 00 11.22 22.68rW~9bTSX05 + K25MU3W 0C2025 07 19.38058321 20 14.278-15 00 12.48 22.77iW~9bTSX05 + K25MU3W 0C2025 07 19.39355221 20 13.789-15 00 14.83 22.70iW~9bTSX05 + K25MU3W 0C2025 07 19.39401521 20 13.775-15 00 14.99 22.66iW~9bTSX05 + K25MU3W 0C2025 07 22.34902521 18 20.939-15 09 54.03 22.69rW~9bTSX05 + K25MU3W 0C2025 07 22.38023721 18 19.695-15 10 00.32 23.15gW~9bTSX05 + K25MU3W 0C2025 07 29.35277721 13 28.662-15 34 32.00 22.38iW~9bTSX05 + K25MU3W 0C2025 07 29.37630921 13 27.610-15 34 37.10 22.48zW~9bTSX05 diff --git a/tests/data/herget_x05/K25MU7M.obs80 b/tests/data/herget_x05/K25MU7M.obs80 new file mode 100644 index 00000000..66914e55 --- /dev/null +++ b/tests/data/herget_x05/K25MU7M.obs80 @@ -0,0 +1,8 @@ + K25MU7M*0C2025 06 21.20055416 39 06.944-19 12 07.55 22.14zW~9bTZX05 + K25MU7M 0C2025 06 21.22658516 39 05.689-19 12 06.93 22.10iW~9bTZX05 + K25MU7M 0C2025 06 25.04316016 36 15.414-19 11 10.29 22.58gW~9bTZX05 + K25MU7M 0C2025 06 25.04561516 36 15.305-19 11 10.27 22.06rW~9bTZX05 + K25MU7M 0C2025 07 03.17012916 31 04.934-19 11 13.05 22.13iW~9bTZX05 + K25MU7M 0C2025 07 03.17157316 31 04.887-19 11 13.05 22.07iW~9bTZX05 + K25MU7M 0C2025 07 14.13699816 26 23.577-19 16 27.89 22.19rW~9bTZX05 + K25MU7M 0C2025 07 14.16169016 26 23.097-19 16 28.89 22.51iW~9bTZX05 diff --git a/tests/data/herget_x05/K25MW3A.obs80 b/tests/data/herget_x05/K25MW3A.obs80 new file mode 100644 index 00000000..a60f29e7 --- /dev/null +++ b/tests/data/herget_x05/K25MW3A.obs80 @@ -0,0 +1,10 @@ + K25MW3A*0C2025 06 21.24788521 46 46.788-16 53 42.44 22.56iW~9bU5X05 + K25MW3A 0C2025 06 21.27197921 46 46.737-16 53 42.13 22.84rW~9bU5X05 + K25MW3A 0C2025 07 19.37185121 36 30.620-17 23 15.87 22.43rW~9bU5X05 + K25MW3A 0C2025 07 19.37969221 36 30.285-17 23 16.96 22.19iW~9bU5X05 + K25MW3A 0C2025 07 20.22111921 35 55.153-17 25 07.44 22.91gW~9bU5X05 + K25MW3A 0C2025 07 20.22346721 35 55.050-17 25 07.74 22.88gW~9bU5X05 + K25MW3A 0C2025 07 20.34727621 35 49.547-17 25 24.05 22.98gW~9bU5X05 + K25MW3A 0C2025 07 20.37077921 35 48.499-17 25 27.07 22.42rW~9bU5X05 + K25MW3A 0C2025 07 29.35001921 28 43.165-17 46 47.16 21.91iW~9bU5X05 + K25MW3A 0C2025 07 29.37360421 28 41.926-17 46 50.49 21.90zW~9bU5X05 diff --git a/tests/data/herget_x05/K25N36R.obs80 b/tests/data/herget_x05/K25N36R.obs80 new file mode 100644 index 00000000..b3fae667 --- /dev/null +++ b/tests/data/herget_x05/K25N36R.obs80 @@ -0,0 +1,12 @@ + K25N36R*0C2025 07 02.24291521 12 31.957-19 17 16.81 22.02iW~9bWqX05 + K25N36R 0C2025 07 02.25685121 12 31.527-19 17 16.42 22.36rW~9bWqX05 + K25N36R 0C2025 07 18.35500421 01 34.531-19 15 56.74 21.85iW~9bWqX05 + K25N36R 0C2025 07 18.38320721 01 33.043-19 15 56.88 21.96rW~9bWqX05 + K25N36R 0C2025 07 20.29683420 59 54.217-19 16 20.44 22.48gW~9bWqX05 + K25N36R 0C2025 07 20.34863820 59 51.392-19 16 20.90 22.45gW~9bWqX05 + K25N36R 0C2025 07 22.36693820 58 03.461-19 16 47.19 21.88rW~9bWqX05 + K25N36R 0C2025 07 22.38798420 58 02.288-19 16 47.30 22.43gW~9bWqX05 + K25N36R 0C2025 07 29.35187620 51 31.177-19 18 08.34 21.47iW~9bWqX05 + K25N36R 0C2025 07 29.36240620 51 30.555-19 18 08.34 21.47iW~9bWqX05 + K25N36R 0C2025 07 29.37541220 51 29.789-19 18 08.27 21.48zW~9bWqX05 + K25N36R 0C2025 07 29.38588720 51 29.177-19 18 08.33 21.59zW~9bWqX05 diff --git a/tests/data/herget_x05/K25N39S.obs80 b/tests/data/herget_x05/K25N39S.obs80 new file mode 100644 index 00000000..84efc801 --- /dev/null +++ b/tests/data/herget_x05/K25N39S.obs80 @@ -0,0 +1,12 @@ + K25N39S*0C2025 07 02.24096720 55 59.787-18 20 05.43 22.14iW~9bWxX05 + K25N39S 0C2025 07 02.25484120 55 59.413-18 20 13.67 22.32rW~9bWxX05 + K25N39S 0C2025 07 07.10727720 53 40.483-19 09 49.53 22.18iW~9bWxX05 + K25N39S 0C2025 07 07.13406220 53 39.586-19 10 06.98 22.18zW~9bWxX05 + K25N39S 0C2025 07 18.09327920 46 22.144-21 14 16.53 22.70gW~9bWxX05 + K25N39S 0C2025 07 18.11667620 46 21.007-21 14 33.39 22.33rW~9bWxX05 + K25N39S 0C2025 07 18.35063220 46 09.531-21 17 20.27 21.62iW~9bWxX05 + K25N39S 0C2025 07 18.37897520 46 08.145-21 17 40.26 21.84rW~9bWxX05 + K25N39S 0C2025 07 20.34910020 44 33.586-21 41 13.49 22.46gW~9bWxX05 + K25N39S 0C2025 07 20.37257320 44 32.395-21 41 30.16 22.14rW~9bWxX05 + K25N39S 0C2025 07 22.37058320 42 52.658-22 05 34.03 21.55rW~9bWyX05 + K25N39S 0C2025 07 22.39160820 42 51.543-22 05 48.95 22.34gW~9bWyX05 diff --git a/tests/data/herget_x05/K25N50F.obs80 b/tests/data/herget_x05/K25N50F.obs80 new file mode 100644 index 00000000..8f742745 --- /dev/null +++ b/tests/data/herget_x05/K25N50F.obs80 @@ -0,0 +1,14 @@ + K25N50F*0C2025 07 04.36659020 41 11.019-19 27 28.77 23.78gW~9bXNX05 + K25N50F 0C2025 07 04.39056420 41 10.297-19 27 38.22 23.00rW~9bXNX05 + K25N50F 0C2025 07 18.08927520 32 30.820-21 10 10.28 23.14gW~9bXNX05 + K25N50F 0C2025 07 18.08977920 32 30.795-21 10 10.57 23.10gW~9bXNX05 + K25N50F 0C2025 07 18.11266520 32 29.711-21 10 21.69 22.53rW~9bXNX05 + K25N50F 0C2025 07 18.11316920 32 29.693-21 10 21.98 22.50rW~9bXNX05 + K25N50F 0C2025 07 18.34667820 32 18.495-21 12 13.42 22.37iW~9bXNX05 + K25N50F 0C2025 07 18.34967220 32 18.345-21 12 14.73 22.63iW~9bXNX05 + K25N50F 0C2025 07 18.37516620 32 17.139-21 12 26.68 22.68rW~9bXNX05 + K25N50F 0C2025 07 18.37806720 32 16.999-21 12 28.10 22.72rW~9bXNX05 + K25N50F 0C2025 07 20.35408220 30 45.050-21 28 15.10 23.18gW~9bXNX05 + K25N50F 0C2025 07 20.37758120 30 43.897-21 28 26.30 22.56rW~9bXNX05 + K25N50F 0C2025 07 29.36146320 23 18.911-22 40 09.00 22.39iW~9bXNX05 + K25N50F 0C2025 07 29.38493520 23 17.691-22 40 19.71 22.50zW~9bXNX05 diff --git a/tests/data/herget_x05/K25N52C.obs80 b/tests/data/herget_x05/K25N52C.obs80 new file mode 100644 index 00000000..668821f7 --- /dev/null +++ b/tests/data/herget_x05/K25N52C.obs80 @@ -0,0 +1,9 @@ + K25N52C*0C2025 07 02.22434421 17 16.438-17 16 56.83 23.11rW~9bXRX05 + K25N52C 0C2025 07 02.24291521 17 16.082-17 17 01.37 22.91iW~9bXRX05 + K25N52C 0C2025 07 02.25685121 17 15.821-17 17 04.73 23.20rW~9bXRX05 + K25N52C 0C2025 07 19.36913921 09 51.244-18 36 07.25 22.76rW~9bXRX05 + K25N52C 0C2025 07 19.37699321 09 50.982-18 36 09.62 22.56iW~9bXRX05 + K25N52C 0C2025 07 20.35043221 09 18.321-18 41 10.43 23.29gW~9bXRX05 + K25N52C 0C2025 07 20.37393521 09 17.505-18 41 17.51 22.81rW~9bXRX05 + K25N52C 0C2025 07 22.34949621 08 09.233-18 51 34.22 22.64rW~9bXRX05 + K25N52C 0C2025 07 22.38069821 08 08.116-18 51 43.67 23.49gW~9bXRX05 diff --git a/tests/data/herget_x05/K25N53U.obs80 b/tests/data/herget_x05/K25N53U.obs80 new file mode 100644 index 00000000..2d15cd6e --- /dev/null +++ b/tests/data/herget_x05/K25N53U.obs80 @@ -0,0 +1,10 @@ + K25N53U*0C2025 07 01.36995420 26 35.914-26 55 22.80 20.77iW~9bXUX05 + K25N53U 0C2025 07 01.37680420 26 35.712-26 55 28.36 20.80iW~9bXUX05 + K25N53U 0C2025 07 01.39324320 26 35.230-26 55 41.68 20.81iW~9bXUX05 + K25N53U 0C2025 07 07.10176520 23 36.064-28 15 01.82 20.66iW~9bXUX05 + K25N53U 0C2025 07 07.12807020 23 35.029-28 15 24.36 20.60zW~9bXUX05 + K25N53U 0C2025 07 14.33324120 18 31.853-29 54 07.89 20.52iW~9bXUX05 + K25N53U 0C2025 07 14.37380620 18 29.832-29 54 39.52 20.45iW~9bXUX05 + K25N53U 0C2025 07 14.39078720 18 29.006-29 54 52.78 20.50zW~9bXUX05 + K25N53U 0C2025 07 18.34369420 15 17.720-30 46 23.05 20.37iW~9bXUX05 + K25N53U 0C2025 07 18.37225520 15 16.210-30 46 44.22 20.56rW~9bXUX05 diff --git a/tests/data/herget_x05/K25N75Q.obs80 b/tests/data/herget_x05/K25N75Q.obs80 new file mode 100644 index 00000000..5f9fd2f1 --- /dev/null +++ b/tests/data/herget_x05/K25N75Q.obs80 @@ -0,0 +1,8 @@ + K25N75Q*0C2025 07 02.24096720 46 12.137-17 48 55.08 22.20iW~9bYFX05 + K25N75Q 0C2025 07 02.25484120 46 11.627-17 48 56.12 22.39rW~9bYFX05 + K25N75Q 0C2025 07 07.10727720 43 07.189-17 55 21.27 21.94iW~9bYFX05 + K25N75Q 0C2025 07 07.13361020 43 06.059-17 55 23.82 22.19zW~9bYFX05 + K25N75Q 0C2025 07 22.10843920 31 00.113-18 22 53.54 21.82iW~9bYFX05 + K25N75Q 0C2025 07 22.12879420 30 58.984-18 22 56.21 21.76zW~9bYFX05 + K25N75Q 0C2025 07 29.36057420 24 24.171-18 37 47.64 21.60iW~9bYFX05 + K25N75Q 0C2025 07 29.38404520 24 22.864-18 37 50.30 21.67zW~9bYFX05 diff --git a/tests/data/herget_x05/K25NF1M.obs80 b/tests/data/herget_x05/K25NF1M.obs80 new file mode 100644 index 00000000..349b9b83 --- /dev/null +++ b/tests/data/herget_x05/K25NF1M.obs80 @@ -0,0 +1,9 @@ + K25NF1M*0C2025 07 02.24096720 44 31.116-18 26 03.35 22.82iW~9balX05 + K25NF1M 0C2025 07 02.25484120 44 30.580-18 26 03.60 22.99rW~9balX05 + K25NF1M 0C2025 07 18.08927520 32 41.914-18 38 21.70 23.08gW~9balX05 + K25NF1M 0C2025 07 18.11266520 32 40.714-18 38 23.11 22.67rW~9balX05 + K25NF1M 0C2025 07 22.10843920 29 17.040-18 42 17.45 22.57iW~9balX05 + K25NF1M 0C2025 07 22.11037320 29 16.943-18 42 17.53 22.74zW~9balX05 + K25NF1M 0C2025 07 22.12879420 29 15.963-18 42 18.71 22.59zW~9balX05 + K25NF1M 0C2025 07 29.36057420 22 59.513-18 49 16.83 22.58iW~9balX05 + K25NF1M 0C2025 07 29.38404520 22 58.279-18 49 17.95 22.58zW~9balX05 diff --git a/tests/data/herget_x05/K25NF1Q.obs80 b/tests/data/herget_x05/K25NF1Q.obs80 new file mode 100644 index 00000000..facfecda --- /dev/null +++ b/tests/data/herget_x05/K25NF1Q.obs80 @@ -0,0 +1,16 @@ + K25NF1Q*0C2025 07 04.36706520 29 19.517-21 56 17.75 22.85gW~9balX05 + K25NF1Q 0C2025 07 04.39101720 29 18.818-21 56 25.49 22.01rW~9balX05 + K25NF1Q 0C2025 07 14.29245620 23 40.200-22 55 16.91 22.02rW~9balX05 + K25NF1Q 0C2025 07 14.33511320 23 38.279-22 55 32.15 21.67iW~9balX05 + K25NF1Q 0C2025 07 14.33558120 23 38.265-22 55 32.34 21.59iW~9balX05 + K25NF1Q 0C2025 07 14.35975820 23 37.192-22 55 40.83 21.84zW~9balX05 + K25NF1Q 0C2025 07 14.36021620 23 37.165-22 55 41.10 21.86zW~9balX05 + K25NF1Q 0C2025 07 14.37560720 23 36.489-22 55 46.49 21.50iW~9balX05 + K25NF1Q 0C2025 07 14.37652020 23 36.480-22 55 47.16 21.35iW~9balX05 + K25NF1Q 0C2025 07 14.39355020 23 35.719-22 55 52.81 21.75zW~9balX05 + K25NF1Q 0C2025 07 18.08877220 20 56.810-23 18 36.81 22.41gW~9balX05 + K25NF1Q 0C2025 07 18.11215320 20 55.684-23 18 45.73 21.74rW~9balX05 + K25NF1Q 0C2025 07 20.36139220 19 11.432-23 32 27.71 22.36gW~9balX05 + K25NF1Q 0C2025 07 20.38478420 19 10.281-23 32 35.89 21.76rW~9balX05 + K25NF1Q 0C2025 07 22.36966020 17 36.570-23 44 31.04 21.55rW~9balX05 + K25NF1Q 0C2025 07 22.39068120 17 35.516-23 44 38.11 22.47gW~9balX05 diff --git a/tests/data/herget_x05/K25O89S.obs80 b/tests/data/herget_x05/K25O89S.obs80 new file mode 100644 index 00000000..6b38cba5 --- /dev/null +++ b/tests/data/herget_x05/K25O89S.obs80 @@ -0,0 +1,15 @@ + K25O89S*0C2025 07 18.09429920 31 14.755-16 19 34.73 22.86gW~9bdlX05 + K25O89S 0C2025 07 18.11763920 31 13.457-16 19 43.30 22.33rW~9bdlX05 + K25O89S 0C2025 07 20.35316520 29 11.643-16 33 14.13 22.85gW~9bdlX05 + K25O89S 0C2025 07 20.35498120 29 11.536-16 33 14.78 22.65gW~9bdlX05 + K25O89S 0C2025 07 20.37667820 29 10.309-16 33 22.49 22.26rW~9bdlX05 + K25O89S 0C2025 07 20.37848820 29 10.209-16 33 23.12 22.07rW~9bdlX05 + K25O89S 0C2025 07 21.10236820 28 31.023-16 37 49.66 22.22rW~9bdlX05 + K25O89S 0C2025 07 21.13575820 28 29.099-16 38 02.11 22.09iW~9bdlX05 + K25O89S 0C2025 07 22.10843920 27 35.180-16 44 01.81 22.13iW~9bdlX05 + K25O89S 0C2025 07 22.12879420 27 33.996-16 44 09.49 21.98zW~9bdlX05 + K25O89S 0C2025 07 22.36560120 27 20.188-16 45 36.86 22.33rW~9bdlX05 + K25O89S 0C2025 07 22.36604620 27 20.168-16 45 36.88 22.30rW~9bdlX05 + K25O89S 0C2025 07 22.38709020 27 18.963-16 45 44.72 22.94gW~9bdlX05 + K25O89S 0C2025 07 29.35828320 20 46.534-17 29 20.30 21.92iW~9bdlX05 + K25O89S 0C2025 07 29.38178220 20 45.182-17 29 28.85 21.92zW~9bdlX05 diff --git a/tests/data/herget_x05/K25O98O.obs80 b/tests/data/herget_x05/K25O98O.obs80 new file mode 100644 index 00000000..d0464245 --- /dev/null +++ b/tests/data/herget_x05/K25O98O.obs80 @@ -0,0 +1,9 @@ + K25O98O*0C2025 07 18.22560422 45 38.655-15 16 57.72 21.54rW~9be4X05 + K25O98O 0C2025 07 18.22661622 45 38.674-15 16 58.38 21.53rW~9be4X05 + K25O98O 0C2025 07 18.24711322 45 39.092-15 17 12.27 21.38iW~9be4X05 + K25O98O 0C2025 07 19.22996122 46 00.754-15 28 20.31 21.49rW~9be4X05 + K25O98O 0C2025 07 19.23985622 46 00.935-15 28 27.18 21.92gW~9be4X05 + K25O98O 0C2025 07 21.21390422 46 39.275-15 51 37.09 21.37rW~9be4X05 + K25O98O 0C2025 07 21.23935122 46 39.661-15 51 55.55 21.32iW~9be4X05 + K25O98O 0C2025 07 22.22387522 46 56.170-16 03 52.46 21.96gW~9be4X05 + K25O98O 0C2025 07 22.24647822 46 56.468-16 04 09.23 21.34rW~9be4X05 diff --git a/tests/data/herget_x05/K25OB4H.obs80 b/tests/data/herget_x05/K25OB4H.obs80 new file mode 100644 index 00000000..533e2ec7 --- /dev/null +++ b/tests/data/herget_x05/K25OB4H.obs80 @@ -0,0 +1,9 @@ + K25OB4H*0C2025 07 18.08475520 24 07.125-16 07 36.87 23.04gW~9beVX05 + K25OB4H 0C2025 07 18.10794820 24 05.786-16 07 39.52 22.43rW~9beVX05 + K25OB4H 0C2025 07 18.12203620 24 04.972-16 07 41.18 22.34rW~9beVX05 + K25OB4H 0C2025 07 21.10236820 21 14.119-16 13 25.56 22.41rW~9beVX05 + K25OB4H 0C2025 07 21.13575820 21 12.113-16 13 29.58 22.14iW~9beVX05 + K25OB4H 0C2025 07 22.36560120 19 59.932-16 15 57.10 22.50rW~9beVX05 + K25OB4H 0C2025 07 22.38662420 19 58.678-16 15 59.49 22.76gW~9beVX05 + K25OB4H 0C2025 07 29.35828320 13 05.123-16 30 38.54 22.22iW~9beVX05 + K25OB4H 0C2025 07 29.38178220 13 03.703-16 30 41.39 22.26zW~9beVX05 diff --git a/tests/data/herget_x05/K25OG1O.obs80 b/tests/data/herget_x05/K25OG1O.obs80 new file mode 100644 index 00000000..7cba7d36 --- /dev/null +++ b/tests/data/herget_x05/K25OG1O.obs80 @@ -0,0 +1,10 @@ + K25OG1O*0C2025 07 18.35456221 12 18.126-21 36 44.91 22.47iW~9bfhX05 + K25OG1O 0C2025 07 18.38276021 12 16.913-21 36 49.94 22.60rW~9bfhX05 + K25OG1O 0C2025 07 20.34820321 10 54.374-21 43 09.14 23.09gW~9bfhX05 + K25OG1O 0C2025 07 20.37168221 10 53.286-21 43 13.42 22.53rW~9bfhX05 + K25OG1O 0C2025 07 22.37333721 09 23.892-21 49 40.91 22.39rW~9bfhX05 + K25OG1O 0C2025 07 22.39438121 09 22.881-21 49 44.43 23.03gW~9bfhX05 + K25OG1O 0C2025 07 29.34587321 03 40.686-22 11 30.95 22.66iW~9bfhX05 + K25OG1O 0C2025 07 29.36285121 03 39.768-22 11 33.62 22.41iW~9bfhX05 + K25OG1O 0C2025 07 29.36950621 03 39.414-22 11 34.89 22.41zW~9bfhX05 + K25OG1O 0C2025 07 29.38633121 03 38.512-22 11 37.65 22.30zW~9bfhX05 diff --git a/tests/data/herget_x05/K25OK1O.obs80 b/tests/data/herget_x05/K25OK1O.obs80 new file mode 100644 index 00000000..d92c3b03 --- /dev/null +++ b/tests/data/herget_x05/K25OK1O.obs80 @@ -0,0 +1,16 @@ + K25OK1O*0C2025 07 18.20806922 08 31.420-09 19 28.50 23.59rW~9bh8X05 + K25OK1O 0C2025 07 18.24172422 08 30.556-09 19 38.59 23.65rW~9bh8X05 + K25OK1O 0C2025 07 18.25059122 08 30.340-09 19 41.90 22.99iW~9bh8X05 + K25OK1O 0C2025 07 22.23540822 06 46.566-09 41 08.67 23.29rW~9bh8X05 + K25OK1O 0C2025 07 22.25673022 06 45.925-09 41 15.93 23.21iW~9bh8X05 + K25OK1O 0C2025 08 14.33606221 51 58.521-12 18 50.20 22.71rW~9bh8X05 + K25OK1O 0C2025 08 14.33652321 51 58.496-12 18 50.63 22.76rW~9bh8X05 + K25OK1O 0C2025 08 14.34811121 51 57.965-12 18 55.92 22.64iW~9bh8X05 + K25OK1O 0C2025 08 14.34857921 51 57.944-12 18 55.92 22.40iW~9bh8X05 + K25OK1O 0C2025 08 14.37455721 51 56.746-12 19 07.62 23.09rW~9bh8X05 + K25OK1O 0C2025 08 14.37685321 51 56.642-12 19 08.65 22.77rW~9bh8X05 + K25OK1O 0C2025 08 14.38721221 51 56.163-12 19 13.30 22.76rW~9bh8X05 + K25OK1O 0C2025 08 17.20695921 49 48.495-12 40 32.30 23.05gW~9bh8X05 + K25OK1O 0C2025 08 17.22987321 49 47.412-12 40 42.59 22.65rW~9bh8X05 + K25OK1O 0C2025 08 27.33178221 42 11.599-13 56 03.56 23.04iW~9bh8X05 + K25OK1O 0C2025 08 27.34300321 42 11.081-13 56 08.70 23.14rW~9bh8X05 diff --git a/tests/data/herget_x05/K25ON4V.obs80 b/tests/data/herget_x05/K25ON4V.obs80 new file mode 100644 index 00000000..ff8a0e12 --- /dev/null +++ b/tests/data/herget_x05/K25ON4V.obs80 @@ -0,0 +1,18 @@ + K25ON4V*0C2025 07 18.20852122 15 45.275-08 39 57.91 23.24rW~9biTX05 + K25ON4V 0C2025 07 18.22131822 15 45.012-08 40 03.12 23.28rW~9biTX05 + K25ON4V 0C2025 07 18.22902522 15 44.843-08 40 06.30 23.12rW~9biTX05 + K25ON4V 0C2025 07 18.24957022 15 44.412-08 40 14.77 22.64iW~9biTX05 + K25ON4V 0C2025 07 18.25059122 15 44.384-08 40 15.27 22.90iW~9biTX05 + K25ON4V 0C2025 07 22.23449322 14 16.692-09 09 06.01 23.01rW~9biTX05 + K25ON4V 0C2025 07 22.23540822 14 16.659-09 09 06.28 22.96rW~9biTX05 + K25ON4V 0C2025 07 22.25673022 14 16.131-09 09 16.11 22.59iW~9biTX05 + K25ON4V 0C2025 08 14.33562122 01 23.550-12 32 18.36 22.89rW~9biTX05 + K25ON4V 0C2025 08 14.35854422 01 22.592-12 32 31.82 22.59iW~9biTX05 + K25ON4V 0C2025 08 14.36960522 01 22.144-12 32 38.01 22.66rW~9biTX05 + K25ON4V 0C2025 08 14.38721222 01 21.412-12 32 48.07 22.57rW~9biTX05 + K25ON4V 0C2025 08 15.14126622 00 51.157-12 40 05.57 22.85rW~9biTX05 + K25ON4V 0C2025 08 15.18636222 00 49.249-12 40 31.89 22.67iW~9biTX05 + K25ON4V 0C2025 08 28.15534421 51 50.652-14 46 01.19 22.60iW~9biTX05 + K25ON4V 0C2025 08 28.17963421 51 49.619-14 46 14.93 22.58zW~9biTX05 + K25ON4V 0C2025 09 03.24878221 47 45.989-15 42 40.52 22.74iW~9biTX05 + K25ON4V 0C2025 09 03.25110121 47 45.879-15 42 41.88 22.54iW~9biTX05 diff --git a/tests/data/herget_x05/K25OP6H.obs80 b/tests/data/herget_x05/K25OP6H.obs80 new file mode 100644 index 00000000..f1178abf --- /dev/null +++ b/tests/data/herget_x05/K25OP6H.obs80 @@ -0,0 +1,15 @@ + K25OP6H*0C2025 07 18.20760422 02 22.345-11 46 51.34 22.88rW~9bjIX05 + K25OP6H 0C2025 07 18.24022722 02 21.259-11 46 55.54 23.08rW~9bjIX05 + K25OP6H 0C2025 07 18.26092422 02 20.566-11 46 58.05 22.74iW~9bjIX05 + K25OP6H 0C2025 07 22.24219322 00 02.875-11 56 07.55 22.50rW~9bjIX05 + K25OP6H 0C2025 07 22.26361522 00 02.028-11 56 10.90 22.54iW~9bjIX05 + K25OP6H 0C2025 08 07.36251321 47 14.341-12 49 58.05 21.97iW~9bjIX05 + K25OP6H 0C2025 08 07.37769121 47 13.476-12 50 01.45 22.08rW~9bjIX05 + K25OP6H 0C2025 08 14.33652321 40 31.715-13 18 17.67 21.87rW~9bjIX05 + K25OP6H 0C2025 08 14.33698421 40 31.682-13 18 17.83 21.82rW~9bjIX05 + K25OP6H 0C2025 08 14.34857921 40 30.981-13 18 20.71 21.80iW~9bjIX05 + K25OP6H 0C2025 08 14.34904621 40 30.951-13 18 20.71 21.71iW~9bjIX05 + K25OP6H 0C2025 08 17.30951621 37 34.847-13 30 37.80 21.57iW~9bjIX05 + K25OP6H 0C2025 08 17.34462821 37 32.699-13 30 46.29 21.93rW~9bjIX05 + K25OP6H 0C2025 08 27.33224221 27 46.969-14 10 49.77 22.79iW~9bjIX05 + K25OP6H 0C2025 08 27.34346621 27 46.325-14 10 52.46 22.76rW~9bjIX05 diff --git a/tests/data/herget_x05/K25OQ4S.obs80 b/tests/data/herget_x05/K25OQ4S.obs80 new file mode 100644 index 00000000..998300ce --- /dev/null +++ b/tests/data/herget_x05/K25OQ4S.obs80 @@ -0,0 +1,20 @@ + K25OQ4S*0C2025 07 18.20760421 58 44.959-13 12 49.68 21.51rW~9bjbX05 + K25OQ4S 0C2025 07 18.24022721 58 43.645-13 12 50.93 21.65rW~9bjbX05 + K25OQ4S 0C2025 07 18.26092421 58 42.803-13 12 51.79 21.35iW~9bjbX05 + K25OQ4S 0C2025 07 22.24171921 55 58.687-13 16 03.30 21.46rW~9bjbX05 + K25OQ4S 0C2025 07 22.26310821 55 57.704-13 16 04.58 21.39iW~9bjbX05 + K25OQ4S 0C2025 08 07.36251321 42 12.410-13 39 33.98 21.03iW~9bjbX05 + K25OQ4S 0C2025 08 07.36614321 42 12.198-13 39 34.35 21.10iW~9bjbX05 + K25OQ4S 0C2025 08 07.38086621 42 11.354-13 39 35.77 21.15rW~9bjbX05 + K25OQ4S 0C2025 08 13.38048621 36 31.970-13 50 12.95 20.98iW~9bjbX05 + K25OQ4S 0C2025 08 13.39155021 36 31.328-13 50 14.05 21.10rW~9bjbX05 + K25OQ4S 0C2025 08 14.33698421 35 37.928-13 51 54.03 20.94rW~9bjbX05 + K25OQ4S 0C2025 08 14.34904621 35 37.232-13 51 55.24 20.83iW~9bjbX05 + K25OQ4S 0C2025 08 27.33224221 24 02.573-14 12 10.00 21.27iW~9bjbX05 + K25OQ4S 0C2025 08 27.34346621 24 02.011-14 12 10.85 21.33rW~9bjbX05 + K25OQ4S 0C2025 09 03.23694721 18 51.568-14 19 26.61 21.67zW~9bjbX05 + K25OQ4S 0C2025 09 03.24289421 18 51.317-14 19 26.77 21.39zW~9bjbX05 + K25OQ4S 0C2025 09 03.24969421 18 51.033-14 19 27.11 21.62iW~9bjbX05 + K25OQ4S 0C2025 09 03.25288921 18 50.897-14 19 27.22 21.52iW~9bjbX05 + K25OQ4S 0C2025 09 03.26101721 18 50.532-14 19 27.66 21.36zW~9bjbX05 + K25OQ4S 0C2025 09 03.27900321 18 49.791-14 19 28.46 21.59zW~9bjbX05 diff --git a/tests/data/herget_x05/K25OU0L.obs80 b/tests/data/herget_x05/K25OU0L.obs80 new file mode 100644 index 00000000..fc2d30fd --- /dev/null +++ b/tests/data/herget_x05/K25OU0L.obs80 @@ -0,0 +1,19 @@ + K25OU0L*0C2025 07 18.20709622 11 34.082-12 30 26.97 22.44rW~9blSX05 + K25OU0L 0C2025 07 18.24126722 11 33.150-12 30 31.73 22.54rW~9blSX05 + K25OU0L 0C2025 07 18.26198822 11 32.587-12 30 34.67 22.44iW~9blSX05 + K25OU0L 0C2025 07 22.24267522 09 40.439-12 40 28.82 22.53rW~9blSX05 + K25OU0L 0C2025 07 22.26409322 09 39.760-12 40 32.29 22.09iW~9blSX05 + K25OU0L 0C2025 08 07.36023821 59 44.630-13 31 06.68 21.95iW~9blSX05 + K25OU0L 0C2025 08 07.37494921 59 43.990-13 31 09.65 22.09rW~9blSX05 + K25OU0L 0C2025 08 07.37632121 59 43.934-13 31 09.96 22.08rW~9blSX05 + K25OU0L 0C2025 08 14.34419121 54 39.012-13 55 52.12 21.93rW~9blSX05 + K25OU0L 0C2025 08 14.36916421 54 37.867-13 55 57.40 21.92rW~9blSX05 + K25OU0L 0C2025 08 14.37822521 54 37.460-13 55 59.30 21.93rW~9blSX05 + K25OU0L 0C2025 08 17.27007821 52 27.156-14 06 18.30 21.61iW~9blSX05 + K25OU0L 0C2025 08 17.28828421 52 26.300-14 06 22.05 21.64rW~9blSX05 + K25OU0L 0C2025 08 17.32278821 52 24.699-14 06 29.31 21.80zW~9blSX05 + K25OU0L 0C2025 08 17.33876021 52 23.961-14 06 32.76 21.82rW~9blSX05 + K25OU0L 0C2025 08 17.33920421 52 23.941-14 06 32.79 21.72rW~9blSX05 + K25OU0L 0C2025 08 17.35015821 52 23.434-14 06 35.11 21.70iW~9blSX05 + K25OU0L 0C2025 08 17.35060921 52 23.418-14 06 35.21 21.83iW~9blSX05 + K25OU0L 0C2025 08 17.36055621 52 22.948-14 06 37.40 21.35iW~9blSX05 diff --git a/tests/data/herget_x05/K25OX9M.obs80 b/tests/data/herget_x05/K25OX9M.obs80 new file mode 100644 index 00000000..f707947b --- /dev/null +++ b/tests/data/herget_x05/K25OX9M.obs80 @@ -0,0 +1,15 @@ + K25OX9M*0C2025 07 18.21743022 34 47.346-13 22 25.02 22.36rW~9bnKX05 + K25OX9M 0C2025 07 18.24318022 34 46.770-13 22 24.51 22.48rW~9bnKX05 + K25OX9M 0C2025 07 18.26406322 34 46.303-13 22 23.96 22.10iW~9bnKX05 + K25OX9M 0C2025 08 14.38049322 17 43.311-13 35 08.22 21.69rW~9bnKX05 + K25OX9M 0C2025 08 14.39175322 17 42.731-13 35 08.83 21.62iW~9bnKX05 + K25OX9M 0C2025 08 15.12268522 17 06.003-13 35 50.18 21.86rW~9bnKX05 + K25OX9M 0C2025 08 15.12361022 17 05.950-13 35 50.34 21.71rW~9bnKX05 + K25OX9M 0C2025 08 17.34099822 15 11.156-13 37 54.57 21.51rW~9bnKX05 + K25OX9M 0C2025 08 17.35238822 15 10.553-13 37 55.15 21.41iW~9bnKX05 + K25OX9M 0C2025 08 17.36193022 15 10.048-13 37 55.62 21.58iW~9bnKX05 + K25OX9M 0C2025 08 17.37648022 15 09.263-13 37 56.53 21.31iW~9bnKX05 + K25OX9M 0C2025 08 27.33448822 06 20.058-13 46 04.35 21.43iW~9bnKX05 + K25OX9M 0C2025 08 27.34570522 06 19.448-13 46 04.76 21.60rW~9bnKX05 + K25OX9M 0C2025 08 27.34754622 06 19.349-13 46 04.80 21.57rW~9bnKX05 + K25OX9M 0C2025 08 27.35872622 06 18.742-13 46 05.16 21.41iW~9bnKX05 diff --git a/tests/data/herget_x05/K25P08B.obs80 b/tests/data/herget_x05/K25P08B.obs80 new file mode 100644 index 00000000..4e63231d --- /dev/null +++ b/tests/data/herget_x05/K25P08B.obs80 @@ -0,0 +1,17 @@ + K25P08B 0C2025 07 11.20650823 39 25.868-01 13 09.31 21.11zW~9bo8X05 + K25P08B 0C2025 07 11.22938623 39 25.658-01 12 44.46 21.11zW~9bo8X05 + K25P08B 0C2025 07 11.25558023 39 25.408-01 12 15.82 20.99zW~9bo8X05 + K25P08B 0C2025 07 11.25696123 39 25.399-01 12 14.12 21.02zW~9bo8X05 + K25P08B 0C2025 07 11.25741923 39 25.388-01 12 13.66 21.10zW~9bo8X05 + K25P08B 0C2025 07 11.34152923 39 24.507-01 10 41.72 21.17zW~9bo8X05 + K25P08B 0C2025 07 11.34737323 39 24.444-01 10 35.32 21.20zW~9bo8X05 + K25P08B 0C2025 07 11.34781723 39 24.439-01 10 34.90 21.30zW~9bo8X05 + K25P08B 0C2025 07 13.30232523 39 03.557-00 34 56.98 21.16iW~9bo8X05 + K25P08B 0C2025 07 13.32587423 39 03.209-00 34 31.22 21.15zW~9bo8X05 + K25P08B 0C2025 07 18.27984123 37 31.985+00 55 41.85 21.18rW~9bo8X05 + K25P08B 0C2025 07 18.30613623 37 31.297+00 56 10.51 21.14rW~9bo8X05 + K25P08B 0C2025 07 18.31862123 37 30.967+00 56 24.17 20.99iW~9bo8X05 + K25P08B 0C2025 07 19.26254123 37 07.268+01 13 32.97 21.14rW~9bo8X05 + K25P08B 0C2025 07 19.28819923 37 06.539+01 14 00.95 21.14rW~9bo8X05 + K25P08B 0C2025 07 21.26081323 36 10.002+01 49 46.38 21.17rW~9bo8X05 + K25P08B 0C2025 07 21.28945423 36 09.054+01 50 17.53 20.98iW~9bo8X05 diff --git a/tests/data/herget_x05/K25P22E.obs80 b/tests/data/herget_x05/K25P22E.obs80 new file mode 100644 index 00000000..750ba94c --- /dev/null +++ b/tests/data/herget_x05/K25P22E.obs80 @@ -0,0 +1,9 @@ + K25P22E*0C2025 08 14.38403722 38 45.037-04 06 18.53 22.98rW~9boFX05 + K25P22E 0C2025 08 14.39530722 38 44.423-04 06 19.71 22.74iW~9boFX05 + K25P22E 0C2025 08 17.17693622 36 12.068-04 12 00.31 22.26iW~9boFX05 + K25P22E 0C2025 08 17.17738322 36 12.042-04 12 00.44 22.23iW~9boFX05 + K25P22E 0C2025 08 17.22707222 36 09.135-04 12 07.02 22.61rW~9boFX05 + K25P22E 0C2025 08 27.35478322 26 10.739-04 39 16.63 22.39rW~9boFX05 + K25P22E 0C2025 08 27.36597722 26 10.056-04 39 18.78 22.24iW~9boFX05 + K25P22E 0C2025 08 28.17302722 25 21.391-04 41 48.45 22.60iW~9boFX05 + K25P22E 0C2025 08 28.17350622 25 21.361-04 41 48.53 22.53iW~9boFX05 diff --git a/tests/data/herget_x05/K25P67P.obs80 b/tests/data/herget_x05/K25P67P.obs80 new file mode 100644 index 00000000..65fc1b52 --- /dev/null +++ b/tests/data/herget_x05/K25P67P.obs80 @@ -0,0 +1,17 @@ + K25P67P*0C2025 08 15.13003823 19 21.406-08 06 54.95 22.84rW~9bpbX05 + K25P67P 0C2025 08 15.16904823 19 19.702-08 06 56.61 22.80rW~9bpbX05 + K25P67P 0C2025 08 17.20092423 17 53.093-08 08 18.60 23.15gW~9bpbX05 + K25P67P 0C2025 08 17.21403523 17 52.457-08 08 19.23 22.71rW~9bpbX05 + K25P67P 0C2025 08 17.24429423 17 50.984-08 08 20.65 22.70rW~9bpbX05 + K25P67P 0C2025 08 17.25778223 17 50.325-08 08 21.32 22.72iW~9bpbX05 + K25P67P 0C2025 08 27.31233323 09 00.898-08 20 30.44 22.44zW~9bpbX05 + K25P67P 0C2025 08 27.32381623 09 00.175-08 20 31.59 22.32iW~9bpbX05 + K25P67P 0C2025 08 27.35114323 08 58.475-08 20 33.77 22.45rW~9bpbX05 + K25P67P 0C2025 08 27.36232523 08 57.784-08 20 34.75 22.25iW~9bpbX05 + K25P67P 0C2025 08 27.37139623 08 57.226-08 20 35.42 22.28iW~9bpbX05 + K25P67P 0C2025 08 27.38192723 08 56.585-08 20 36.39 22.45rW~9bpbX05 + K25P67P 0C2025 08 27.38787123 08 56.218-08 20 36.80 22.44rW~9bpbX05 + K25P67P 0C2025 08 27.38831923 08 56.192-08 20 36.93 22.41rW~9bpbX05 + K25P67P 0C2025 08 27.39498223 08 55.783-08 20 37.34 22.37iW~9bpbX05 + K25P67P 0C2025 08 28.15916623 08 11.192-08 21 46.43 22.45iW~9bpbX05 + K25P67P 0C2025 08 28.18367923 08 09.622-08 21 48.85 22.32zW~9bpbX05 diff --git a/tests/data/herget_x05/K25P86E.obs80 b/tests/data/herget_x05/K25P86E.obs80 new file mode 100644 index 00000000..2255914b --- /dev/null +++ b/tests/data/herget_x05/K25P86E.obs80 @@ -0,0 +1,15 @@ + K25P86E*0C2025 08 14.37408722 03 57.656-08 33 44.37 21.97rW~9bqDX05 + K25P86E 0C2025 08 14.38630422 03 56.983-08 33 44.73 22.00rW~9bqDX05 + K25P86E 0C2025 08 15.14035022 03 16.277-08 34 08.05 21.91rW~9bqDX05 + K25P86E 0C2025 08 15.17948322 03 14.050-08 34 09.35 21.89rW~9bqDX05 + K25P86E 0C2025 08 15.18591922 03 13.692-08 34 09.54 21.78iW~9bqDX05 + K25P86E 0C2025 08 17.18078922 01 23.895-08 35 19.54 21.80iW~9bqDX05 + K25P86E 0C2025 08 17.22889422 01 21.134-08 35 21.41 21.69rW~9bqDX05 + K25P86E 0C2025 08 17.34235422 01 14.654-08 35 25.72 21.73rW~9bqDX05 + K25P86E 0C2025 08 17.34326022 01 14.589-08 35 25.49 21.73rW~9bqDX05 + K25P86E 0C2025 08 17.35374122 01 13.986-08 35 25.71 21.56iW~9bqDX05 + K25P86E 0C2025 08 17.35465322 01 13.955-08 35 25.82 21.51iW~9bqDX05 + K25P86E 0C2025 08 17.37290222 01 12.922-08 35 26.62 21.47iW~9bqDX05 + K25P86E 0C2025 08 17.38440822 01 12.231-08 35 26.94 21.42zW~9bqDX05 + K25P86E 0C2025 08 27.32951421 52 03.646-08 43 25.14 21.74iW~9bqDX05 + K25P86E 0C2025 08 27.34071221 52 03.027-08 43 25.75 21.64rW~9bqDX05 diff --git a/tests/data/herget_x05_truth.json b/tests/data/herget_x05_truth.json new file mode 100644 index 00000000..0ff0eac6 --- /dev/null +++ b/tests/data/herget_x05_truth.json @@ -0,0 +1,768 @@ +{ + "K06AB8N": { + "a": 3.161116196563635, + "e": 0.1768152170274582, + "elements_epoch_jd": "2461200.5", + "i": 16.57106266298379, + "n_obs": 6, + "observed": { + "a_fit": 3.167999849849794, + "a_seed": null, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K09VD3S": { + "a": 2.217916626985931, + "e": 0.1626536124956487, + "elements_epoch_jd": "2461200.5", + "i": 5.018858432619887, + "n_obs": 12, + "observed": { + "a_fit": 2.228849610349773, + "a_seed": 2.255792997068363, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K10K87V": { + "a": 2.415107729998858, + "e": 0.1969398180229106, + "elements_epoch_jd": "2461200.5", + "i": 16.28724664031196, + "n_obs": 8, + "observed": { + "a_fit": 1.3657631799745014, + "a_seed": null, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K11C31L": { + "a": 3.149265306269409, + "e": 0.1517444199284688, + "elements_epoch_jd": "2461200.5", + "i": 11.69065689540154, + "n_obs": 11, + "observed": { + "a_fit": 3.15321841261573, + "a_seed": 3.325579882347845, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K11O79N": { + "a": 2.773114562351729, + "e": 0.2042244597475248, + "elements_epoch_jd": "2461200.5", + "i": 7.904891119562473, + "n_obs": 13, + "observed": { + "a_fit": 2.7774859615998855, + "a_seed": 2.7808719001183713, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K12HA9X": { + "a": 3.139499914553212, + "e": 0.1043385026546991, + "elements_epoch_jd": "2461200.5", + "i": 8.334703372275962, + "n_obs": 7, + "observed": { + "a_fit": 3.1386664203795873, + "a_seed": 2.962494517458447, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K14HU6O": { + "a": 2.236303198194276, + "e": 0.1064362252643278, + "elements_epoch_jd": "2461200.5", + "i": 2.00961206591884, + "n_obs": 13, + "observed": { + "a_fit": Infinity, + "a_seed": null, + "flag": 5, + "note": "KeplerConvergenceError" + }, + "sample": "known" + }, + "K14K04U": { + "a": 3.031590489770922, + "e": 0.2298023109589288, + "elements_epoch_jd": "2461200.5", + "i": 1.061274837770935, + "n_obs": 12, + "observed": { + "flag": null, + "note": "exceeded a 180 s deadline" + }, + "sample": "known" + }, + "K14O32T": { + "a": 3.125308546610731, + "e": 0.2077290474737711, + "elements_epoch_jd": "2461200.5", + "i": 11.81903254636751, + "n_obs": 11, + "observed": { + "a_fit": 3.140695052758827, + "a_seed": 3.053896270758441, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K15Kf6Z": { + "a": 2.188872384418546, + "e": 0.2208660758281282, + "elements_epoch_jd": "2461200.5", + "i": 3.68812866055403, + "n_obs": 9, + "observed": { + "a_fit": Infinity, + "a_seed": null, + "flag": 3, + "note": null + }, + "sample": "known" + }, + "K15OD3J": { + "a": 2.985143894934501, + "e": 0.1320030740699526, + "elements_epoch_jd": "2461200.5", + "i": 7.315814668130959, + "n_obs": 15, + "observed": { + "a_fit": 2.994704918561255, + "a_seed": null, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K15PT7W": { + "a": 2.231119237828294, + "e": 0.2626841054060727, + "elements_epoch_jd": "2461200.5", + "i": 8.157666505735207, + "n_obs": 13, + "observed": { + "a_fit": Infinity, + "a_seed": null, + "flag": 5, + "note": "KeplerConvergenceError" + }, + "sample": "known" + }, + "K16CZ1P": { + "a": 2.542579293590634, + "e": 0.1219844976283285, + "elements_epoch_jd": "2461200.5", + "i": 2.588224357770017, + "n_obs": 9, + "observed": { + "a_fit": 2.552881541673895, + "a_seed": 130.11552255330648, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K16W83O": { + "a": 3.087324636456137, + "e": 0.1530308482238943, + "elements_epoch_jd": "2461200.5", + "i": 11.0050141642466, + "n_obs": 6, + "observed": { + "a_fit": Infinity, + "a_seed": null, + "flag": 5, + "note": "KeplerConvergenceError" + }, + "sample": "known" + }, + "K17T32E": { + "a": 2.632826425207737, + "e": 0.1435327235686408, + "elements_epoch_jd": "2461200.5", + "i": 2.992624440009689, + "n_obs": 12, + "observed": { + "a_fit": 2.6384073262815595, + "a_seed": 3.320620953233787, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K17UL2L": { + "a": 2.733672101579406, + "e": 0.0591464833339289, + "elements_epoch_jd": "2461200.5", + "i": 2.467835088493656, + "n_obs": 14, + "observed": { + "a_fit": 2.7406549510255322, + "a_seed": 2.68343764224099, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K19GI0M": { + "a": 2.884543208537946, + "e": 0.03980847718600355, + "elements_epoch_jd": "2461200.5", + "i": 6.162728385068424, + "n_obs": 10, + "observed": { + "a_fit": 2.8920234538594816, + "a_seed": 1.816797758896234, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K19J41C": { + "a": 3.054801022668976, + "e": 0.2503600865348911, + "elements_epoch_jd": "2461200.5", + "i": 16.85013367888085, + "n_obs": 11, + "observed": { + "a_fit": 3.061274710962015, + "a_seed": 4.200357477047601, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K19J86V": { + "a": 3.039137563615234, + "e": 0.1315128466157189, + "elements_epoch_jd": "2461200.5", + "i": 3.938285401619057, + "n_obs": 13, + "observed": { + "a_fit": 3.053123522952841, + "a_seed": 3.005910401457702, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K20HE8Y": { + "a": 2.621155194946916, + "e": 0.1615604971726995, + "elements_epoch_jd": "2461200.5", + "i": 9.239674494737953, + "n_obs": 9, + "observed": { + "a_fit": 2.61421684536461, + "a_seed": 4.587143508102897, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K20R77A": { + "a": 3.010899824111909, + "e": 0.1342255367181345, + "elements_epoch_jd": "2461200.5", + "i": 4.834289411375117, + "n_obs": 11, + "observed": { + "a_fit": 3.018001341840878, + "a_seed": 2.9227411948903055, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K21GJ2P": { + "a": 2.292065358551803, + "e": 0.1552620042757995, + "elements_epoch_jd": "2461200.5", + "i": 3.49557164244088, + "n_obs": 16, + "observed": { + "a_fit": Infinity, + "a_seed": null, + "flag": 5, + "note": "KeplerConvergenceError" + }, + "sample": "known" + }, + "K21N25S": { + "a": 2.461265769392974, + "e": 0.1994649787923802, + "elements_epoch_jd": "2461200.5", + "i": 13.28244090193594, + "n_obs": 20, + "observed": { + "a_fit": 2.4654501855541593, + "a_seed": 2.37257229353269, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K21Q85R": { + "a": 2.564077600284814, + "e": 0.1630204508864477, + "elements_epoch_jd": "2461200.5", + "i": 10.52470447747633, + "n_obs": 9, + "observed": { + "a_fit": 2.5654712012330982, + "a_seed": 2.40760253501897, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K21RO0K": { + "a": 2.772867323400437, + "e": 0.0325830326095979, + "elements_epoch_jd": "2461200.5", + "i": 4.47341349712904, + "n_obs": 7, + "observed": { + "a_fit": Infinity, + "a_seed": null, + "flag": 5, + "note": "KeplerConvergenceError" + }, + "sample": "known" + }, + "K21S75J": { + "a": 2.702188456876323, + "e": 0.01877537952769989, + "elements_epoch_jd": "2461200.5", + "i": 2.511234636757905, + "n_obs": 6, + "observed": { + "a_fit": 2.694380464754968, + "a_seed": null, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K22S82V": { + "a": 2.33695777720597, + "e": 0.1226564832436923, + "elements_epoch_jd": "2461200.5", + "i": 7.248268278475362, + "n_obs": 8, + "observed": { + "a_fit": 2.3458754761506815, + "a_seed": 2.317330713559685, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K25K21T": { + "a": 2.415813033858341, + "e": 0.1678782641546467, + "elements_epoch_jd": "2461200.5", + "i": 1.423787289340253, + "n_obs": 13, + "observed": { + "a_fit": 2.427570990743153, + "a_seed": 2.373148179738615, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K25MD6R": { + "a": 2.587024017790521, + "e": 0.1387572455941655, + "elements_epoch_jd": "2461200.5", + "i": 4.121614185850031, + "n_obs": 8, + "observed": { + "a_fit": Infinity, + "a_seed": 2.757554801113005, + "flag": 3, + "note": null + }, + "sample": "disc" + }, + "K25MG4B": { + "a": 2.736729098413806, + "e": 0.1817021998249713, + "elements_epoch_jd": "2461200.5", + "i": 18.45720033558105, + "n_obs": 14, + "observed": { + "a_fit": 2.7500700446000277, + "a_seed": 2.7289963270397535, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K25MU3W": { + "a": 3.224320796813901, + "e": 0.1460096067600701, + "elements_epoch_jd": "2461200.5", + "i": 1.448647915084147, + "n_obs": 11, + "observed": { + "flag": null, + "note": "exceeded a 180 s deadline" + }, + "sample": "disc" + }, + "K25MU7M": { + "a": 2.844741352004724, + "e": 0.01818335255914256, + "elements_epoch_jd": "2461200.5", + "i": 3.15968580280611, + "n_obs": 8, + "observed": { + "a_fit": 2.861400923471896, + "a_seed": 2.8723172779145765, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K25MW3A": { + "a": 2.706013367388866, + "e": 0.03845850769921299, + "elements_epoch_jd": "2461200.5", + "i": 5.13528135527967, + "n_obs": 10, + "observed": { + "a_fit": Infinity, + "a_seed": null, + "flag": 3, + "note": null + }, + "sample": "known" + }, + "K25N36R": { + "a": 2.751692462071269, + "e": 0.1175530937602775, + "elements_epoch_jd": "2461200.5", + "i": 7.51877242729017, + "n_obs": 12, + "observed": { + "a_fit": 2.7618560709230735, + "a_seed": 2.931777719300472, + "flag": 0, + "note": null + }, + "sample": "disc" + }, + "K25N39S": { + "a": 2.571859166972524, + "e": 0.1721084691692732, + "elements_epoch_jd": "2461200.5", + "i": 17.1541785824756, + "n_obs": 12, + "observed": { + "a_fit": 2.580608930576848, + "a_seed": 2.547161999563795, + "flag": 0, + "note": null + }, + "sample": "disc" + }, + "K25N50F": { + "a": 2.786409066252536, + "e": 0.2193975907718938, + "elements_epoch_jd": "2461200.5", + "i": 9.002658603074655, + "n_obs": 14, + "observed": { + "a_fit": 2.7982613352227, + "a_seed": 2.745611886792335, + "flag": 0, + "note": null + }, + "sample": "disc" + }, + "K25N52C": { + "a": 3.93172388273956, + "e": 0.206150586193008, + "elements_epoch_jd": "2461200.5", + "i": 9.634256081325619, + "n_obs": 9, + "observed": { + "a_fit": Infinity, + "a_seed": null, + "flag": 5, + "note": "KeplerConvergenceError" + }, + "sample": "disc" + }, + "K25N53U": { + "a": 2.341784932108721, + "e": 0.2162993839116951, + "elements_epoch_jd": "2461200.5", + "i": 11.2521000152396, + "n_obs": 10, + "observed": { + "a_fit": 2.357178582630758, + "a_seed": 2.278471226068104, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K25N75Q": { + "a": 2.717118169787518, + "e": 0.06804508196667759, + "elements_epoch_jd": "2461200.5", + "i": 2.483522547049476, + "n_obs": 8, + "observed": { + "a_fit": 2.7273646865212986, + "a_seed": 2.709774036761285, + "flag": 0, + "note": null + }, + "sample": "disc" + }, + "K25NF1M": { + "a": 3.018607563200413, + "e": 0.06241819889113021, + "elements_epoch_jd": "2461200.5", + "i": 6.9186241278345, + "n_obs": 9, + "observed": { + "a_fit": 3.027990907465361, + "a_seed": 3.0173307007467067, + "flag": 0, + "note": null + }, + "sample": "disc" + }, + "K25NF1Q": { + "a": 2.383043438628714, + "e": 0.2355020792045378, + "elements_epoch_jd": "2461200.5", + "i": 3.540001541209632, + "n_obs": 16, + "observed": { + "a_fit": 2.397806374367746, + "a_seed": 2.330831925223798, + "flag": 0, + "note": null + }, + "sample": "disc" + }, + "K25O89S": { + "a": 2.354251179020059, + "e": 0.1085225551433115, + "elements_epoch_jd": "2461200.5", + "i": 4.783816515314046, + "n_obs": 15, + "observed": { + "a_fit": 2.3633180053766893, + "a_seed": 2.379339305081577, + "flag": 0, + "note": null + }, + "sample": "disc" + }, + "K25O98O": { + "a": 2.736794419760427, + "e": 0.2827762126959248, + "elements_epoch_jd": "2461200.5", + "i": 13.96490699947223, + "n_obs": 9, + "observed": { + "a_fit": 2.7398664337481735, + "a_seed": 1.2061434557599955, + "flag": 0, + "note": null + }, + "sample": "disc" + }, + "K25OB4H": { + "a": 2.543430913088268, + "e": 0.2177238736356421, + "elements_epoch_jd": "2461200.5", + "i": 3.584269818454136, + "n_obs": 9, + "observed": { + "a_fit": 2.5501063447805534, + "a_seed": 2.564832310801186, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K25OG1O": { + "a": 2.573785004100864, + "e": 0.1975468967463296, + "elements_epoch_jd": "2461200.5", + "i": 2.887331870888777, + "n_obs": 10, + "observed": { + "a_fit": Infinity, + "a_seed": null, + "flag": 5, + "note": "KeplerConvergenceError" + }, + "sample": "disc" + }, + "K25OK1O": { + "a": 2.855955155948049, + "e": 0.02283423044665433, + "elements_epoch_jd": "2461200.5", + "i": 10.95458437925899, + "n_obs": 16, + "observed": { + "a_fit": 2.859503016597892, + "a_seed": 2.8515600814177415, + "flag": 0, + "note": null + }, + "sample": "disc" + }, + "K25ON4V": { + "a": 3.225251389811068, + "e": 0.1559899634142333, + "elements_epoch_jd": "2461200.5", + "i": 24.33670459868394, + "n_obs": 18, + "observed": { + "a_fit": 3.2277505145662033, + "a_seed": 3.2144195306435566, + "flag": 0, + "note": null + }, + "sample": "disc" + }, + "K25OP6H": { + "a": 2.395904230132933, + "e": 0.174748714872464, + "elements_epoch_jd": "2461200.5", + "i": 1.800066266704946, + "n_obs": 15, + "observed": { + "a_fit": 2.398777840874591, + "a_seed": 2.399548091582158, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K25OQ4S": { + "a": 2.867157360663769, + "e": 0.2649179652419211, + "elements_epoch_jd": "2461200.5", + "i": 6.765272006935704, + "n_obs": 20, + "observed": { + "a_fit": 2.873605951750455, + "a_seed": 2.8562702896265653, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K25OU0L": { + "a": 3.191315284106366, + "e": 0.044633824457271, + "elements_epoch_jd": "2461200.5", + "i": 1.722062769296761, + "n_obs": 19, + "observed": { + "a_fit": 3.1947613453708414, + "a_seed": 3.1905336342612736, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K25OX9M": { + "a": 3.08600768928792, + "e": 0.1253307250541979, + "elements_epoch_jd": "2461200.5", + "i": 10.4138562453946, + "n_obs": 15, + "observed": { + "a_fit": 3.08913613930028, + "a_seed": null, + "flag": 0, + "note": null + }, + "sample": "disc" + }, + "K25P08B": { + "a": 2.595186718954775, + "e": 0.2483558319028266, + "elements_epoch_jd": "2461200.5", + "i": 32.49717377104682, + "n_obs": 17, + "observed": { + "a_fit": 2.595161528425703, + "a_seed": 2.3452280935173815, + "flag": 0, + "note": null + }, + "sample": "known" + }, + "K25P22E": { + "a": 2.326824587662738, + "e": 0.05186212821090863, + "elements_epoch_jd": "2461200.5", + "i": 6.425017655603037, + "n_obs": 9, + "observed": { + "a_fit": 2.3261494279758437, + "a_seed": 2.372173773447871, + "flag": 0, + "note": null + }, + "sample": "disc" + }, + "K25P67P": { + "a": 2.10147024178494, + "e": 0.1624565299041916, + "elements_epoch_jd": "2461200.5", + "i": 4.454043169783397, + "n_obs": 17, + "observed": { + "a_fit": 2.0992316163964824, + "a_seed": 2.130011576288284, + "flag": 0, + "note": null + }, + "sample": "disc" + }, + "K25P86E": { + "a": 2.802789805445242, + "e": 0.1104336816219419, + "elements_epoch_jd": "2461200.5", + "i": 9.149216349858978, + "n_obs": 15, + "observed": { + "a_fit": Infinity, + "a_seed": null, + "flag": 5, + "note": "KeplerConvergenceError" + }, + "sample": "disc" + } +} \ No newline at end of file diff --git a/tests/layup/test_herget_x05.py b/tests/layup/test_herget_x05.py new file mode 100644 index 00000000..d31a07c3 --- /dev/null +++ b/tests/layup/test_herget_x05.py @@ -0,0 +1,137 @@ +"""Inner-solar-system X05 arcs -- the regime a distant initial range misses. + +These 55 arcs are Rubin-only astrometry (MPC obscode X05) for objects whose +cold-start Gauss fit ran past a 420 s deadline and returned nothing. They are +the cases an alternative initial-orbit method exists to cover. Published +semi-major axes run from 2.10 to 3.93 au: 54 are main belt and one, K25N52C at +3.93 au, sits in the Hilda region near the 3:2 resonance. The Herget prototype +in #502 starts its range iteration at 40 au, a trans-Neptunian value, so this +sample is the one that exercises that choice. + +The reference elements are MPCORB's. They are fitted to each object's full +observation history rather than to these short arcs, so comparing against them +is an external check and not a restatement of layup's own answer. + +Two things are deliberately *not* asserted: + +* **How many arcs converge.** Choosing the initial range is open work, and a + test that pinned today's count would fail on the improvement it exists to + encourage. The count is reported instead. +* **The initial-orbit state itself.** It depends on the starting range, which + is exactly what is expected to change, so pinning it now would freeze a + number that is meant to move. + +What is asserted is the part that must hold whatever the method does: an arc +that converges has to land on the published orbit. +""" + +import json +import os +from pathlib import Path + +import numpy as np +import pytest + +from layup.utilities.data_utilities_for_tests import get_test_filepath + +ARC_DIR = Path(get_test_filepath("herget_x05")) +MANIFEST = Path(get_test_filepath("herget_x05_truth.json")) + +# Bounds on the published semi-major axes, wide enough to be a statement about +# the sample rather than a restatement of its extremes (measured 2.10 to 3.93). +A_MIN, A_MAX = 1.5, 4.5 + +# Agreement between a fit to a ~15 day arc and MPCORB's fit to the full history. +# The measured median over this sample is 2.6e-3. +MAX_DA_OVER_A = 0.05 + + +@pytest.fixture(scope="module") +def manifest(): + return json.loads(MANIFEST.read_text()) + + +def test_every_arc_has_reference_elements(manifest): + """A fixture arc with no published orbit could not be checked against + anything, so the pairing is verified rather than assumed.""" + on_disk = {p.stem for p in ARC_DIR.glob("*.obs80")} + assert on_disk, f"no arcs found in {ARC_DIR}" + assert on_disk == set(manifest), ( + f"arcs and manifest disagree: " + f"{sorted(on_disk - set(manifest))} unlisted, " + f"{sorted(set(manifest) - on_disk)} missing" + ) + for obj, entry in manifest.items(): + assert entry["a"] is not None, f"{obj} has no reference semi-major axis" + assert entry["n_obs"] == sum(1 for _ in open(ARC_DIR / f"{obj}.obs80")) + + +def test_the_sample_stays_in_the_inner_solar_system(manifest): + """The point of this fixture is the regime it covers, so the regime is + checked. A distant object added here later would quietly turn it back into + the case the 40 au starting range already handles.""" + a = np.array([e["a"] for e in manifest.values()]) + assert ( + (a > A_MIN) & (a < A_MAX) + ).all(), f"outside the sampled regime: {sorted(a[(a <= A_MIN) | (a >= A_MAX)])}" + assert len(a) >= 50, "the sample has been thinned; the regime claim weakens" + + +def test_the_arcs_are_short(manifest): + """Short arcs are the whole difficulty. A long arc slipping into this + fixture would make the sample easier without anyone noticing.""" + n = np.array([e["n_obs"] for e in manifest.values()]) + assert n.max() <= 30, f"an arc has {n.max()} observations; these should be short" + + +@pytest.mark.skipif( + os.environ.get("LAYUP_RUN_X05_FITS") != "1", + reason="fits 55 arcs; opt in with LAYUP_RUN_X05_FITS=1", +) +def test_converged_fits_agree_with_the_published_orbits(manifest, tmp_path): + """Whatever initial range is used, an arc that converges must reproduce the + published orbit. Arcs that do not converge are counted, not failed.""" + from layup.iod import iod_methods + + if "herget" not in iod_methods(): + pytest.skip("the herget IOD is not registered in this build") + + import spiceypy as spice + from numpy.lib import recfunctions as rfn + + from layup.orbitfit import _orbitfit + from layup.utilities.data_processing_utilities import LayupObservatory + from layup.utilities.file_io.Obs80Reader import Obs80DataReader + + GM = 2.9591220828559115e-4 + obsv = LayupObservatory() + checked, converged = 0, [] + + for obj, entry in sorted(manifest.items()): + rows = Obs80DataReader(str(ARC_DIR / f"{obj}.obs80")).read_rows() + et = np.array([spice.str2et(t) for t in rows["obsTime"]], dtype="= 0: + continue # an unbound fit has no semi-major axis to compare + a_fit = -GM / (2 * energy) + da = abs(a_fit - entry["a"]) / entry["a"] + converged.append(da) + assert da < MAX_DA_OVER_A, ( + f"{obj}: converged but a = {a_fit:.4f} against a published {entry['a']:.4f} " + f"(|da/a| = {da:.2e})" + ) + + assert converged, f"no arc converged out of {checked}; the method is not running" + print( + f"\n{len(converged)}/{checked} converged; " + f"median |da/a| = {np.median(converged):.2e}, worst = {max(converged):.2e}" + )