Final coverage round: 84.44% → 86.18% (target was 85%). Two lib_ml/ tasks were stranded at 0% (1035 combined lines) because the qsos → contacts table rename left stale refs in PropagationAnalyze's SQL. Fixed: - `FROM qsos q` → `FROM contacts q` - `terrain_profiles tp ON tp.qso_id = q.id` → `tp.contact_id = q.id` Adds test/mix/tasks/propagation_ml_tasks_test.exs with 4 tests: - PropagationAnalyze end-to-end against empty DB (walks every section header: correlation, binned factor, interaction, close). - PropagationAnalyze with seeded contact + matching HRRR at both endpoints yields a 1-row dataset (exercises derive_averages + format_band + median + percentile helpers). - PropagationAnalyze with a pre-2016-06-30 contact is excluded by the WHERE clause. - PropagationTrain on empty hrrr_profiles raises the expected Nx "cannot build empty tensor" error after walking header + load path. 215 → 221 properties, 2812 → 2846 tests, 0 failures. |
||
|---|---|---|
| .. | ||
| propagation_ml_tasks_test.exs | ||
| reset_enrichment_test.exs | ||
| simple_tasks_test.exs | ||