Files
heuropt/src/operators
swaits f63b85900c test(real): pin exact outputs and algebraic invariants for every real-valued operator
Phase 1 of the mutation-testing campaign for src/operators/real.rs (the
file with the largest mutant surface — 128 missed mutants spread across
GaussianMutation, BoundedGaussianMutation, SBX, PolynomialMutation,
LevyMutation, and the Mantegna gamma/sigma helpers).

Added:
- Seed-pinned numerical snapshots for each operator's vary() output on
  a fixed parent and seed. Any arithmetic flip in the operator's math
  changes one of the snapshot values and fails the assertion. The
  snapshot tolerance is 1e-12 so even subtle FP drift is caught.
- An algebraic-identity test for SBX: c1 + c2 = p1 + p2 per dimension
  before clamping. This identity holds for any β and pins the
  (1+β)·p1 + (1-β)·p2 formula cleanly across 20 seeds.
- A scale-coupling test for PolynomialMutation: a 10× wider bound range
  produces a 10× larger perturbation step at the same seed. Catches any
  mutation that breaks the δ·(hi-lo) coupling.
- Three direct pin tests for mantegna_sigma_u (alpha = 1.5, 1.0, 2.0)
  exercising the gamma() Lanczos series and the formula's edge cases
  (alpha = 1.0 → Cauchy, alpha = 2.0 → Normal-limit where sin(π) ≈ 0).
- A monotonicity property test (sigma_u changes with alpha) to catch
  structural mutants that collapse the formula to a constant.
2026-05-13 22:58:16 -06:00
..