Represent partial placements as column heights and branch on the narrowest local valley. This removes the board-area cell state and makes first-solution search substantially smaller for feasible orders. Expose direct-search and candidate-order benchmark controls so the skyline core can be measured independently of odd-order construction. Document the completeness argument and the 10/11 test-tier decision. Tests: Release, Debug, ASan, and UBSan CTest (10 passed each) Refs: #4
38 lines
1.3 KiB
CMake
38 lines
1.3 KiB
CMake
cmake_minimum_required(VERSION 4.0)
|
|
project(partridge_cpp)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
|
|
add_executable(partridge_cpp
|
|
main.cc)
|
|
|
|
option(PARTRIDGE_BUILD_BENCHMARKS "Build the heavyweight benchmark probe" OFF)
|
|
if(PARTRIDGE_BUILD_BENCHMARKS)
|
|
add_executable(partridge_benchmark
|
|
benchmarks/benchmark.cc)
|
|
endif()
|
|
|
|
include(CTest)
|
|
|
|
if(BUILD_TESTING)
|
|
add_executable(partridge_tests
|
|
tests/tests.cc)
|
|
add_test(NAME validator COMMAND partridge_tests validator)
|
|
add_test(NAME construction COMMAND partridge_tests construction)
|
|
add_test(NAME solver-odd-route COMMAND partridge_tests solver-odd-route)
|
|
add_test(NAME rendering COMMAND partridge_tests rendering)
|
|
add_test(NAME solver-small COMMAND partridge_tests solver-small)
|
|
add_test(NAME solver-completion COMMAND partridge_tests solver-completion)
|
|
add_test(NAME search-counters COMMAND partridge_tests search-counters)
|
|
add_test(NAME skyline-search COMMAND partridge_tests skyline-search)
|
|
find_package(Python3 COMPONENTS Interpreter)
|
|
if(Python3_Interpreter_FOUND)
|
|
add_test(NAME benchmark-format
|
|
COMMAND "${Python3_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/run.py"
|
|
--self-test)
|
|
add_test(NAME reference-support
|
|
COMMAND "${Python3_EXECUTABLE}"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/tests/reference_test.py")
|
|
endif()
|
|
endif()
|