Skip to content

A fixed duration is fixed whatever numpy's rounding; an always-up mission to rounding - #358

Merged
derrynknife merged 1 commit into
devfrom
fix/floors-rounding
Oct 16, 2026
Merged

derrynknife merged 1 commit into
devfrom
fix/floors-rounding

Conversation

@derrynknife

Copy link
Copy Markdown
Owner

Summary

The test (minimum dependencies) job on the release pull request (#353) failed four tests that no other job does. The job is new this cycle: at 0.13 it installed only the oldest surpyval, and now every dependency sits at its floor, so numpy 2.0.0 ran the suite for the first time. Reproduced in a Python 3.11 environment at the floors (numpy 2.0.0, scipy 1.13.0, networkx 3.0, surpyval 0.24, tqdm 4.64.0); both failures are there at 0.13 too, so they are rounding sensitivities exposed, not regressions.

  • A fixed maintenance duration refused (3 tests). A duration known exactly (ExactEventTime) is followed as a fixed time; it was told fixed from its variance, a difference of two numbers about the duration squared, against (1e-9 * top) ** 2, a few units of rounding wide. numpy 2.0 sums the moments to a variance of 7e-15 at a duration of 5 (newer numpy to exactly 0), so the component's exact and numerical analyses refused ("its later age replacements ... are too many ... to follow exactly"). The tolerance is now a millionth of the duration: rounding cannot cross it, and no spread duration meets it. A CHANGELOG entry under Fixed, as numpy 2.0 users meet it.
  • test_instant_repair_is_always_up asserted mission_availability(100.0) == 1.0 exactly, where the integral of a constant 1 sums the Gauss weights (1.9999999999999998 on numpy 2.0's build): to rounding, abs=1e-15.

At the floors: test_expected_window.py, test_start_from_state.py, test_point_availability.py, test_chains_over_time.py and test_condition_long_run.py pass (108 passed). Currently (numpy 2.4.6): those and test_hidden_failures_timed.py and test_messages.py pass (154 passed). black, flake8 and mypy clean.


Generated by Claude Code

…sion to rounding

The suite at every dependency's floor (numpy 2.0.0, new this cycle: the
job tested only the oldest surpyval before) failed four tests on the
release pull request (#353). Three refused a component maintained for an
exactly known time: the duration is told fixed from its variance, a
difference of two numbers about its square, against a tolerance of a
billionth of it squared, a few units of rounding wide, and numpy 2.0
sums the moments to a variance of 1e-15 at a duration of 5. The
tolerance is a millionth of the duration, which rounding cannot cross
and no spread duration meets. The fourth asserted that an always-up
unit's mission availability is exactly 1.0, where the integral of a
constant sums the quadrature's weights: to rounding now.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Ng6hwUY8zznhm1jRfZJqZ
@derrynknife
derrynknife merged commit f4a6053 into dev Oct 16, 2026
derrynknife added a commit that referenced this pull request Oct 16, 2026
…nding (#359)

With the fixed-duration tolerance rounding cannot cross (#358), a time
known exactly is told fixed on every numpy, but was given its mean,
which numpy 2.0 sums to 1.9999999999999996 for 2: it is now the time of
its one atom. The planned-outage test that compares a run's costs, the
exact means integrated by quadrature, with whole numbers compares them
to rounding: at the floors the integrals come out at 19.999999999999996
and 20.000000000000057 for 20. The full suite at the floors passes
locally (6605 passed).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Ng6hwUY8zznhm1jRfZJqZ
@derrynknife
derrynknife deleted the fix/floors-rounding branch October 16, 2026 21:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants