···212212 let dy = interp.y -. truth.y in
213213 let dz = interp.z -. truth.z in
214214 let err = Float.sqrt ((dx *. dx) +. (dy *. dy) +. (dz *. dz)) in
215215- Printf.printf " Perigee radius: %.1f km, velocity: ~%.1f km/s\n" !min_r
215215+ Fmt.pr " Perigee radius: %.1f km, velocity: ~%.1f km/s\n" !min_r
216216 (vec3_norm svs.(i).vel);
217217- Printf.printf " Interpolation error at perigee node: %.9f km (%.3f mm)\n"
217217+ Fmt.pr " Interpolation error at perigee node: %.9f km (%.3f mm)\n"
218218 err (err *. 1e6);
219219 if err > 1e-6 then
220220 Alcotest.failf "interpolation at perigee node off by %.6f km (%.1f m)"
···264264 svs;
265265 let variation = !max_r -. !min_r in
266266 Alcotest.(check bool) "radius variation < 50 km" true (variation < 50.0);
267267- Printf.printf " GEO radius variation: %.3f km\n" variation
267267+ Fmt.pr " GEO radius variation: %.3f km\n" variation
268268269269let test_geo_no_nan_or_inf () =
270270 let oem = parse_oem "geo_3day.oem" in
···312312 Alcotest.(check bool)
313313 "apogee ~46000 km" true
314314 (!max_r > 44000.0 && !max_r < 48000.0);
315315- Printf.printf " Molniya: perigee %.1f km, apogee %.1f km\n" !min_r !max_r
315315+ Fmt.pr " Molniya: perigee %.1f km, apogee %.1f km\n" !min_r !max_r
316316317317let test_molniya_velocity_range () =
318318 let oem = parse_oem "molniya_2day.oem" in
···373373 let a0 = 1.0 /. ((2.0 /. r0) -. (v0 *. v0 /. mu)) in
374374 (* SMA should be ~26600 km *)
375375 Alcotest.(check bool) "SMA ~26600 km" true (a0 > 26000.0 && a0 < 27200.0);
376376- Printf.printf " Molniya SMA from vis-viva: %.1f km (expected ~26600)\n" a0;
376376+ Fmt.pr " Molniya SMA from vis-viva: %.1f km (expected ~26600)\n" a0;
377377 (* Check vis-viva consistency across all points.
378378 Allow 2% for J2/lunisolar perturbations — Molniya's high eccentricity
379379 means J2 secular effects on SMA are significant (apsidal precession). *)
+1-1
test/test_odm.ml
···297297 let seg = List.hd oem.segments in
298298 let ndata = Array.length seg.data in
299299 let ncov = List.length seg.covariances in
300300- Printf.printf " data=%d covs=%d\n" ndata ncov;
300300+ Fmt.pr " data=%d covs=%d\n" ndata ncov;
301301 Alcotest.(check int) "has state vectors" 2 ndata;
302302 Alcotest.(check int) "has 1 covariance entry" 1 ncov;
303303 let cov = List.hd seg.covariances in
+1-1
test/test_vectors.ml
···2222let skip_if_no_vectors () =
2323 match vectors_dir with
2424 | None ->
2525- Printf.printf "SKIP: test vectors not found\n";
2525+ Fmt.pr "SKIP: test vectors not found\n";
2626 true
2727 | Some _ -> false
2828