Skip to content

test: bound the monotonicity enumeration by its work - #111

Merged
Mearman merged 2 commits into
mainfrom
fix/monotonicity-test-work
Oct 29, 2026
Merged

Mearman merged 2 commits into
mainfrom
fix/monotonicity-test-work

Conversation

@Mearman

@Mearman Mearman commented Oct 29, 2026

Copy link
Copy Markdown
Member

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 firstIndeterminate ranking of not-yet-known still fails the predicate, first and unique tests.

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.
@Mearman
Mearman marked this pull request as ready for review October 29, 2026 08:41
@Mearman

Mearman commented Oct 29, 2026

Copy link
Copy Markdown
Member Author

@codex security review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
🔒 Security Review ✅ Completed 2026-10-29T08:43:49.128044Z b5dc370 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review

Security review completed. No security issues were found in this pull request.

Reviewed commit: b5dc370d96

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@Mearman
Mearman merged commit 5e48d96 into main Oct 29, 2026
14 checks passed
@Mearman
Mearman deleted the fix/monotonicity-test-work branch October 29, 2026 08:45
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in trilean@1.11.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant