bench: add optional CP-SAT reference

Provide a separately installed OR-Tools model to compare a generic constraint solver with the native first-solution path without adding a production or default-test dependency.

Use no-overlap, exact-fill, edge and equal-copy symmetry constraints, validate placements independently, and record model size, memory, worker count and timings for orders 8 and 9. Keep the tool only as a reference and defer DLX absent new evidence.

Tests: Release CTest (9 passed)

Tests: Python reference tests and compilation checks

Tests: independently validated CP-SAT orders 8 and 9

Refs: #5
This commit was merged in pull request #22.
This commit is contained in:
Codex instance
2026-07-30 17:40:17 +01:00
parent 3e667d6de0
commit 0a7ce1e49e
11 changed files with 660 additions and 0 deletions
+5
View File
@@ -17,6 +17,11 @@ checks that its search counters exactly match order 8. The rendering test also
formats the known order-8 solution and checks the resulting grid dimensions and
coverage.
When Python is available, `reference-support` also tests the dependency-free
placement JSON validator. If the optional OR-Tools package is present, it
additionally builds and solves the trivial order-1 CP-SAT model; otherwise that
part is skipped without changing the default test result.
## Debug and sanitizers
Use a separate build directory for each configuration: