#pragma once #include "test_framework.hpp" namespace lsp::test { // Transformer 转换功能测试类 class TransformerTests { public: static void registerTests(TestRunner& runner); private: // ==================== ToLSPAny 基本类型测试 ==================== static TestResult testToLSPAnyBoolean(); static TestResult testToLSPAnyInteger(); static TestResult testToLSPAnyUInteger(); static TestResult testToLSPAnyFloat(); static TestResult testToLSPAnyDouble(); static TestResult testToLSPAnyString(); static TestResult testToLSPAnyCString(); // ==================== ToLSPAny 容器类型测试 ==================== static TestResult testToLSPAnyVector(); static TestResult testToLSPAnyMap(); static TestResult testToLSPAnyOptionalValue(); static TestResult testToLSPAnyOptionalNullopt(); // ==================== ToLSPAny LSP类型测试 ==================== static TestResult testToLSPAnyLSPObject(); static TestResult testToLSPAnyLSPArray(); static TestResult testToLSPAnyLSPAny(); // ==================== FromLSPAny 基本类型测试 ==================== static TestResult testFromLSPAnyBoolean(); static TestResult testFromLSPAnyInteger(); static TestResult testFromLSPAnyString(); static TestResult testFromLSPAnyDouble(); // ==================== FromLSPAny 容器类型测试 ==================== static TestResult testFromLSPAnyVector(); static TestResult testFromLSPAnyOptionalValue(); static TestResult testFromLSPAnyOptionalNull(); static TestResult testFromLSPAnyLSPObject(); static TestResult testFromLSPAnyLSPArray(); // ==================== 数字类型转换测试 ==================== static TestResult testExtractNumberFromInteger(); static TestResult testExtractNumberFromUInteger(); static TestResult testExtractNumberFromDecimal(); static TestResult testExtractNumberCrossType(); // ==================== 错误处理测试 ==================== static TestResult testFromLSPAnyTypeMismatch(); static TestResult testFromLSPAnyInvalidNumber(); static TestResult testFromLSPAnyInvalidArray(); // ==================== 嵌套结构测试 ==================== static TestResult testNestedVector(); static TestResult testNestedLSPObject(); static TestResult testMixedTypeNesting(); }; }