#include #include #include "RichText.h" int main() { // 测试默认构造函数 RichText rt1; assert(rt1.plainText() == ""); // 测试赋值运算符= RichText rt2; rt2 = "Hello"; assert(rt2.plainText() == "Hello"); RichText rt3; rt3 = StringPart{"World", COLOR_RED}; assert(rt3.plainText() == "World"); // 测试加法运算符+ RichText rt4 = rt2 + rt3; assert(rt4.plainText() == "HelloWorld"); RichText rt5 = rt2 + "World"; assert(rt5.plainText() == "HelloWorld"); RichText rt6 = rt2 + StringPart{"World", COLOR_RED}; assert(rt6.plainText() == "HelloWorld"); // 测试加法赋值运算符+= rt2 += rt3; assert(rt2.plainText() == "HelloWorld"); rt2 += "World"; assert(rt2.plainText() == "HelloWorldWorld"); rt2 += StringPart{"World", COLOR_RED}; assert(rt2.plainText() == "HelloWorldWorldWorld"); // 测试substr()函数 RichText rt7 = rt2.substr(5, 5); assert(rt7.plainText() == "World"); assert(rt7.getParts()[0].color == COLOR_RED); // 测试text()函数 RichText rt8 = rt2; assert(rt8.plainText() == "HelloWorldWorldWorld"); assert(rt8.getParts()[0].color == COLOR_WHITE); // 测试plainText()函数 std::string plain = rt2.plainText(); assert(plain == "HelloWorldWorldWorld"); printf("All tests passed.\n"); return 0; }