Repository navigation
test: bound the monotonicity enumeration by its work - #111
Conversation
The monotonicity enumeration evaluated every tree under all assignments of three references and compared each partial assignment with every completion through freshly built keys and serialised results, even where a tree mentions fewer than three references and so cannot depend on the rest. The enumeration now ranges over the mentioned references only, with the resolver throwing on any other so the independence is checked, each assignment is summarised once so the partial and completion comparisons are string and enum comparisons, and duplicate predicates are dropped. Each test's timeout is its evaluation count times a named per-evaluation allowance instead of the runner default.
A resolver receives a JSON value as the key, so the monotonicity resolver checks it is a string before looking it up among the mentioned references.
|
@codex security review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
🛡️ Codex Security ReviewSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
|
🎉 This PR is included in trilean@1.11.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
The monotonicity test evaluated every tree under all 64 assignments of three references and compared each partial assignment with its completions, even where a tree mentions fewer references and so cannot depend on the rest. It now enumerates over the mentioned references only (the resolver throws on any other, so that independence is checked), summarises each assignment once so the partial and completion comparisons are string and enum comparisons, and drops 32 duplicate predicates, taking the file from 205,824 evaluations and 607,824 partial and completion comparisons to 101,356 and 264,576 for the same tree shapes.
The evaluations are otherwise irreducible, so each test's timeout is now its evaluation count times a named per-evaluation allowance instead of the runner default, which a loaded host exceeded twice. Breaking the
firstIndeterminateranking ofnot-yet-knownstill fails the predicate, first and unique tests.