Skip to content

Add single-case benchmark runner#24

Merged
bernalde merged 1 commit into
pr/benchmarksfrom
feature/single-case-benchmark-runner
May 10, 2026
Merged

Add single-case benchmark runner#24
bernalde merged 1 commit into
pr/benchmarksfrom
feature/single-case-benchmark-runner

Conversation

@bernalde
Copy link
Copy Markdown
Member

Summary

  • Add benchmarks/run_single_case.py, a no-artifact single-case SciPy/Pyomo debug runner.
  • Reuse current benchmark scenarios, adapters, grid-style dotted parameter overrides, discretization flags, warmstart, ramp constraints, and solver time guards.
  • Wire solver verbosity through pyomo_adapter(..., tee=...) and document the new runner in benchmarks/README.md.
  • Add help/parser and monkeypatched adapter-level coverage for the new runner.

Tests run

  • python -m ruff check benchmarks/run_single_case.py benchmarks/adapters.py tests/test_benchmarks.py -> passed (All checks passed!)
  • python -m ruff format --check benchmarks/run_single_case.py benchmarks/adapters.py tests/test_benchmarks.py -> passed (3 files already formatted)
  • python -m pytest tests/test_benchmarks.py -q -> passed (17 passed in 5.64s)
  • python -m pytest tests/ -n auto -v -m "not notebook and not pyomo" --ignore=tests/test_pyomo_models -> passed (254 passed in 469.66s)

Notes

  • Did not run the Pyomo-marked live solver suite locally; it requires the optional IPOPT/IDAES stack and is treated as optional in CI. The new runner path is covered with monkeypatched adapter tests, and the adapter tee propagation is covered directly.
  • Did not run notebook-marked tests; this change does not touch notebooks.

Closes #17

Copy link
Copy Markdown
Member Author

@bernalde bernalde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the PR diff, benchmark adapters, runner code, tests, and benchmark documentation. I did not find blocking issues, nonblocking issues that need an inline comment, or open questions.

Tests run:

  • python -m ruff check benchmarks/run_single_case.py benchmarks/adapters.py tests/test_benchmarks.py -> passed
  • python -m ruff format --check benchmarks/run_single_case.py benchmarks/adapters.py tests/test_benchmarks.py -> passed
  • python -m pytest tests/test_benchmarks.py -q -> passed, 17 passed in 5.04s
  • python -m pytest tests/ -n auto -v -m "not notebook and not pyomo" --ignore=tests/test_pyomo_models -> passed, 254 passed in 383.22s

I did not run the Pyomo-marked live solver suite because it requires the optional IPOPT/IDAES solver stack and is handled separately in CI. The PR is merge-ready from this review.

@bernalde
Copy link
Copy Markdown
Member Author

Comment follow-up status:

  • Commits pushed: none in this pass; branch was already up to date. Existing PR commit remains 6dcf222 Add single-case benchmark runner (#17).
  • Main changes made: none. I fetched thread-aware review data and REST comment lists; there are no unresolved inline review threads and no top-level discussion comments to address.
  • Tests run and results: no tests run in this pass because no code or documentation changes were made.
  • Comments intentionally not addressed: the only review entry is the earlier self-authored review summary, which is informational and does not request changes.
  • Remaining risks or follow-up items: none from PR comments.

@bernalde bernalde merged commit 5172cb1 into pr/benchmarks May 10, 2026
2 checks passed
@bernalde bernalde deleted the feature/single-case-benchmark-runner branch May 10, 2026 20:09
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.

1 participant