#pragma once #include "./test_framework.hpp" namespace lsp::test { // LSPAny 测试类 class LSPAnyTests { public: static void registerTests(TestRunner& runner); private: // 构造函数测试 static TestResult testDefaultConstructor(); static TestResult testDecimalConstructor(); static TestResult testBooleanConstructor(); static TestResult testStringConstructor(); static TestResult testCStringConstructor(); static TestResult testNullptrConstructor(); static TestResult testLSPObjectConstructor(); static TestResult testLSPArrayConstructor(); // 拷贝和移动测试 static TestResult testCopyConstructor(); static TestResult testMoveConstructor(); static TestResult testCopyAssignment(); static TestResult testMoveAssignment(); // 赋值操作符测试 static TestResult testIntegerAssignment(); static TestResult testUIntegerAssignment(); static TestResult testDecimalAssignment(); static TestResult testBooleanAssignment(); static TestResult testStringAssignment(); static TestResult testNullptrAssignment(); static TestResult testLSPObjectAssignment(); static TestResult testLSPArrayAssignment(); // 类型检查测试 static TestResult testIsMethod(); static TestResult testGetMethod(); // 访问者模式测试 static TestResult testVisitMethod(); // 整数模板测试 static TestResult testIntegerTemplateSignedTypes(); static TestResult testIntegerTemplateUnsignedTypes(); static TestResult testIntegerTemplateBoundaries(); // 复杂场景测试 static TestResult testNestedLSPObject(); static TestResult testNestedLSPArray(); static TestResult testMixedNesting(); static TestResult testTypeConversion(); // 边界情况测试 static TestResult testFloatPrecision(); static TestResult testLargeNumbers(); static TestResult testEmptyContainers(); }; }