fix: deterministic fusion tie-order + seeded random eval sampling
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+10
-2
@@ -37,12 +37,20 @@ enum Cmd {
|
||||
|
||||
fn run_eval(p: &Pipeline, m: Mode, cases: usize, seed: u64) -> (f64, f64) {
|
||||
use alpha_id::eval::{inject_errors, recall_at_k};
|
||||
let billable: Vec<_> = p.entries.iter().enumerate()
|
||||
use rand::SeedableRng;
|
||||
use rand::seq::SliceRandom;
|
||||
let all_billable: Vec<_> = p.entries.iter().enumerate()
|
||||
.filter(|(_, e)| e.valid)
|
||||
.filter(|(_, e)| alpha_id::corpus::primary_code(e)
|
||||
.and_then(|c| p.meta.get(c))
|
||||
.map(|mt| mt.para295 == "P").unwrap_or(false))
|
||||
.take(cases).collect();
|
||||
.collect();
|
||||
let mut rng = rand::rngs::StdRng::seed_from_u64(seed);
|
||||
let n = cases.min(all_billable.len());
|
||||
let billable: Vec<_> = all_billable
|
||||
.choose_multiple(&mut rng, n)
|
||||
.cloned()
|
||||
.collect();
|
||||
let mut sum = 0.0;
|
||||
for (k, (_, e)) in billable.iter().enumerate() {
|
||||
let code = alpha_id::corpus::primary_code(e).unwrap().to_string();
|
||||
|
||||
Reference in New Issue
Block a user