From fdecd5101406d424086a6478e7b7d0aa64fd6e9b Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Wed, 29 Apr 2026 09:32:54 -0500 Subject: [PATCH] fix(rust/scorer): sync recalibrated default weights with Elixir MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pre-existing CI failure (`tests/scorer_golden.rs`) — the Rust scorer was still on the pre-recalibration weight vector, while the Elixir side picked up new gradient-descent-fit weights in f98ee153. - Update `DEFAULT_WEIGHTS` in band_config.rs to match the new Elixir values (humidity 0.1262, time_of_day 0.0380, td_depression 0.1010, refractivity 0.0986, sky 0.0841, season 0.1134, wind 0.0841, rain 0.1431, pressure 0.0967, pwat 0.1147). - Loosen the sum-to-one tolerance in `default_weights_sum_to_one` from 1e-9 to 1e-3 to match Elixir's `assert_in_delta total, 1.0, 0.001` — gradient-descent fits land near 1.0 but not exact. - Regenerate `tests/scores.bincode` from `mix rust.golden` so the golden fixture reflects the recalibrated scorer outputs. `cargo clippy --all-targets -- -D warnings` clean. 139 Rust unit tests + golden fixture pass. 3072 Elixir tests pass. --- priv/rust_golden/scores.bincode | Bin 15069 -> 15069 bytes rust/prop_grid_rs/src/band_config.rs | 33 ++++++++++++++----------- rust/prop_grid_rs/tests/scores.bincode | Bin 15069 -> 15069 bytes 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/priv/rust_golden/scores.bincode b/priv/rust_golden/scores.bincode index 1a8be7f1bb9f6e95246f7bffdbb66d8b7c72cffa..1ab625630583bf2f2f275ea922fefecaac7be5a4 100644 GIT binary patch delta 556 zcmXw$&q@Me6vgkI`MyE>J4A>uVHRN#f*DaQEX*{tRV`aYv{Y0p-QruA##(W*DTTo%=dfS4s0sDGr)4^oZhAYKSY9>_pGLclcN0)Ac zzB3Bjp(Gj~!pcU6kd$0vOhX$AlIJ=?QYX^5PNZ?20xjhmM7a*un8N-> L-yY-hR@V6gCbX!O delta 549 zcmXYu!Ab&g5Qk^n|B4BgMJ%Re24PDCW`uRItOTu~EV_2+5cmRKcem{z9RzJo-iqiL zDEk1_BXkTBI(04Ipq<&hef!Pq?(fHpTBFwB4rxZSy;!7!y<6LxRUO1y4=u_?6&^D@ zMca7jgWml@IAT-TQdpy6%%w-&jxlKwGtr5P~K}irRXDJ(|2BBnXZzS z_c`^f6B@QGp0eUiJYmwd^U-_5p=3c}gL)}T-vEF;p>9Yn2G0Wo*yjl~CRON?IzUAn z|4*iodV;3sZgj^0sLF?uD*!t}ZSqQ0&p=c18y%Qr2^-d3LW=K)7T7pT`+lP%Z7&MfJ4A>uVHRN#f*DaQEX*{tRV`aYv{Y0p-QruA##(W*DTTo%=dfS4s0sDGr)4^oZhAYKSY9>_pGLclcN0)Ac zzB3Bjp(Gj~!pcU6kd$0vOhX$AlIJ=?QYX^5PNZ?20xjhmM7a*un8N-> L-yY-hR@V6gCbX!O delta 549 zcmXYu!Ab&g5Qk^n|B4BgMJ%Re24PDCW`uRItOTu~EV_2+5cmRKcem{z9RzJo-iqiL zDEk1_BXkTBI(04Ipq<&hef!Pq?(fHpTBFwB4rxZSy;!7!y<6LxRUO1y4=u_?6&^D@ zMca7jgWml@IAT-TQdpy6%%w-&jxlKwGtr5P~K}irRXDJ(|2BBnXZzS z_c`^f6B@QGp0eUiJYmwd^U-_5p=3c}gL)}T-vEF;p>9Yn2G0Wo*yjl~CRON?IzUAn z|4*iodV;3sZgj^0sLF?uD*!t}ZSqQ0&p=c18y%Qr2^-d3LW=K)7T7pT`+lP%Z7&Mf