# game/ai tests: the task vocabulary, the priority table read off the original, and the ranking.
add_executable(game_ai_test_tasks test_tasks.cpp)
target_link_libraries(game_ai_test_tasks PRIVATE sots_game_ai)
target_include_directories(game_ai_test_tasks PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_options(game_ai_test_tasks PRIVATE -Wall -Wextra -pedantic)
add_test(NAME game_ai_tasks COMMAND game_ai_test_tasks)

# The AI stepping order and the two-pass model: which AI players run, in what order, and which
# pass may write commands. Pure data -- the ModCount sequence, computed offline.
add_executable(game_ai_test_turn_order test_turn_order.cpp)
target_link_libraries(game_ai_test_turn_order PRIVATE sots_game_ai)
target_include_directories(game_ai_test_turn_order PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_options(game_ai_test_turn_order PRIVATE -Wall -Wextra -pedantic)
add_test(NAME game_ai_turn_order COMMAND game_ai_test_turn_order)

# The command block, the order API and the modification counter's arithmetic: what an order costs,
# which lists cost nothing, and the two reconstructions of the reference turn.
add_executable(game_ai_test_orders test_orders.cpp)
target_link_libraries(game_ai_test_orders PRIVATE sots_game_ai)
target_include_directories(game_ai_test_orders PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_options(game_ai_test_orders PRIVATE -Wall -Wextra -pedantic)
add_test(NAME game_ai_orders COMMAND game_ai_test_orders)

# The turn's phase list and the two-pass task walk: the dead tail after the submit, the one
# species-restricted phase, and the first pass writing nothing.
add_executable(game_ai_test_agent test_agent.cpp)
target_link_libraries(game_ai_test_agent PRIVATE sots_game_ai)
target_include_directories(game_ai_test_agent PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_options(game_ai_test_agent PRIVATE -Wall -Wextra -pedantic)
add_test(NAME game_ai_agent COMMAND game_ai_test_agent)
