tsl-devkit/lsp-server/test/test_lsp_any/lsp_any_test.hpp

63 lines
2.1 KiB
C++

#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();
};
}