sots-engine/tests/game_sim/CMakeLists.txt
Alex 405ba41a1e U: the SetResearched unlock cascade, and the prediction for the run that checks it
Pure module game/sim/techgraph: PrereqsMet (AND of ORs, empty group fails),
SetResearched (stamps, child-cost sweep, sticky turnAvailable, zero-cost
recursion) and the newly-available collector, all read out of 0x00581e10,
0x0057d8e0 and 0x00587cc3.

Wired into the B3 hook in compare mode only, over the scratch node copies:
four more node write-backs, the EVENT_TECHS_UNLOCKED list (still an input,
still nullptr when it could not be computed), the de-duplicating observed-tech
append and the one RNG word RollResearchEvent draws.

docs/U-unlock.md section 4 is the prediction, written before the build was staged.
2026-09-08 06:26:00 -04:00

13 lines
807 B
CMake

# game/sim tests: four hand-computed suites + a real-save smoke test (skips unless SOTS_SAVES_JSON).
foreach(_t economy research colony movement techgraph)
add_executable(game_sim_test_${_t} test_${_t}.cpp)
target_link_libraries(game_sim_test_${_t} PRIVATE sots_game_sim)
target_include_directories(game_sim_test_${_t} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_options(game_sim_test_${_t} PRIVATE -Wall -Wextra -pedantic)
add_test(NAME game_sim_${_t} COMMAND game_sim_test_${_t})
endforeach()
add_executable(game_sim_smoke_real_save smoke_real_save.cpp)
target_link_libraries(game_sim_smoke_real_save PRIVATE sots_game_sim)
target_include_directories(game_sim_smoke_real_save PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
add_test(NAME game_sim_smoke_real_save COMMAND game_sim_smoke_real_save)