# tests/CMakeLists.txt
# Unit tests for Sovereign Engine

function(sovereign_test name sources)
    add_executable(${name} ${sources})
    target_link_libraries(${name}
        PRIVATE sovereign_core
                doctest::doctest
    )
    target_include_directories(${name}
        PRIVATE ${CMAKE_SOURCE_DIR}/include
    )
    if(MSVC)
        target_compile_options(${name} PRIVATE /W4)
    else()
        target_compile_options(${name} PRIVATE -Wall -Wextra -Wno-unused-parameter)
    endif()
    add_test(
        NAME    ${name}
        COMMAND ${name} --reporters=console --no-intro --success
    )
endfunction()

sovereign_test(test_format      test_format.cpp)
sovereign_test(test_quantizer   test_quantizer.cpp)
sovereign_test(test_kv_cache    test_kv_cache.cpp)
sovereign_test(test_engine      test_engine.cpp)

if(DEFINED ENV{SOVEREIGN_TEST_MODEL})
    sovereign_test(test_integration test_integration.cpp)
    target_compile_definitions(test_integration
        PRIVATE SOVEREIGN_TEST_MODEL="$ENV{SOVEREIGN_TEST_MODEL}"
    )
endif()
