#pragma once #include "test_framework.hpp" namespace lsp::test { // Common 类型特征测试类 class CommonTests { public: static void registerTests(TestRunner& runner); private: // ==================== is_lsp_basic_type 测试 ==================== static TestResult testIsLSPBasicInteger(); static TestResult testIsLSPBasicUInteger(); static TestResult testIsLSPBasicBoolean(); static TestResult testIsLSPBasicString(); static TestResult testIsLSPBasicDecimal(); static TestResult testIsLSPBasicNullptr(); static TestResult testIsLSPBasicNegativeCases(); // ==================== is_lsp_container_type 测试 ==================== static TestResult testIsLSPContainerObject(); static TestResult testIsLSPContainerArray(); static TestResult testIsLSPContainerAny(); static TestResult testIsLSPContainerNegativeCases(); // ==================== is_user_struct 测试 ==================== static TestResult testIsUserStructPositive(); static TestResult testIsUserStructExcludeArithmetic(); static TestResult testIsUserStructExcludeString(); static TestResult testIsUserStructExcludeLSPTypes(); static TestResult testIsUserStructExcludeVector(); static TestResult testIsUserStructExcludeMap(); static TestResult testIsUserStructExcludeOptional(); static TestResult testIsUserStructExcludeVariant(); static TestResult testIsUserStructExcludePointers(); }; }