fix(simulation): address PR #85 review — warnings and polish items
- Ticker rotation: document sliding-window semantics (vs modulus-aligned) - Ticker zone ID: add warning about Gauntlet vs production zone ID mismatch - Proof-room movement profile: respect archetype instead of hardcoding smuggler - Storyteller tie-break: use exact f32 equality (inputs are discrete integers) - Observer: .map().flatten() → .and_then() (clippy strict) - Content loader: remove dangling doc comment before section header - Tests: replace assert!(false, ...) with TODO comments in ignored tests - Tests: add frame limiter note on 302-update loop in tell expiry test Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -564,9 +564,11 @@ pub fn activation_pass(
|
||||
// Step 5: select best candidate; SimRng tie-break among equal top scores (D-010)
|
||||
candidates.sort_by(|a, b| b.2.partial_cmp(&a.2).unwrap_or(std::cmp::Ordering::Equal));
|
||||
let top_score = candidates[0].2;
|
||||
// Exact equality: all inputs are discrete integers cast to f32, so scores
|
||||
// derived from integer tick counts will compare exactly. No epsilon needed.
|
||||
let top_count = candidates
|
||||
.iter()
|
||||
.take_while(|(_, _, s)| (*s - top_score).abs() <= f32::EPSILON * top_score.abs().max(1.0))
|
||||
.take_while(|(_, _, s)| *s == top_score)
|
||||
.count();
|
||||
let selected_idx = if top_count > 1 {
|
||||
rng.rng.random_range(0..top_count)
|
||||
|
||||
Reference in New Issue
Block a user