63 lines
2.1 KiB
C++
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();
|
|
};
|
|
}
|