The project currently has no automated test target. Solver changes need independent validation because area equality alone does not prove a valid tiling, and current Debug/sanitizer failures demonstrate that Release-only runs are insufficient.
Proposed work
Add a CTest-backed automated test suite.
Implement an independent placement validator checking:
board dimensions and bounds;
exactly k squares of side k;
no overlaps;
complete coverage.
Test trivial and known unsatisfiable small orders without making the suite slow.
Test a known order-8 solution and the even-to-odd construction.
Exercise Debug, AddressSanitizer and UndefinedBehaviorSanitizer configurations where supported.
Add focused tests for skyline update/undo, pruning rules, symmetry and parallel cancellation as those features land.
Acceptance criteria
The smallest relevant tests run quickly and deterministically.
At least one end-to-end feasible solution is independently validated.
Invalid placements are rejected with useful diagnostics.
Debug and sanitizer test instructions are documented.
Timing thresholds are not used as correctness assertions.
## Background
The project currently has no automated test target. Solver changes need independent validation because area equality alone does not prove a valid tiling, and current Debug/sanitizer failures demonstrate that Release-only runs are insufficient.
## Proposed work
- Add a CTest-backed automated test suite.
- Implement an independent placement validator checking:
- board dimensions and bounds;
- exactly `k` squares of side `k`;
- no overlaps;
- complete coverage.
- Test trivial and known unsatisfiable small orders without making the suite slow.
- Test a known order-8 solution and the even-to-odd construction.
- Exercise Debug, AddressSanitizer and UndefinedBehaviorSanitizer configurations where supported.
- Add focused tests for skyline update/undo, pruning rules, symmetry and parallel cancellation as those features land.
## Acceptance criteria
- The smallest relevant tests run quickly and deterministically.
- At least one end-to-end feasible solution is independently validated.
- Invalid placements are rejected with useful diagnostics.
- Debug and sanitizer test instructions are documented.
- Timing thresholds are not used as correctness assertions.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Background
The project currently has no automated test target. Solver changes need independent validation because area equality alone does not prove a valid tiling, and current Debug/sanitizer failures demonstrate that Release-only runs are insufficient.
Proposed work
ksquares of sidek;Acceptance criteria