#include "app.hpp" #include #include /** * @brief 测试 add 函数 */ void testAddFunction() { std::cout << "Testing add function...\n"; // 测试基本加法 assert(add(0, 0) == 0); assert(add(5, 3) == 8); assert(add(-5, 10) == 5); assert(add(-3, -7) == -10); // 测试边界情况 assert(add(100, 200) == 300); std::cout << " add function tests passed!\n"; } /** * @brief 测试 multiply 函数 */ void testMultiplyFunction() { std::cout << "Testing multiply function...\n"; // 测试基本乘法 assert(multiply(0, 5) == 0); assert(multiply(5, 3) == 15); assert(multiply(-5, 3) == -15); assert(multiply(-4, -5) == 20); // 测试边界情况 assert(multiply(10, 10) == 100); std::cout << " multiply function tests passed!\n"; } /** * @brief 测试 SimpleApp 类的基本功能 */ void testSimpleAppBasic() { std::cout << "Testing SimpleApp basic functionality...\n"; // 测试构造函数和getter SimpleApp app("TestApp"); assert(app.getName() == "TestApp"); // 测试setter app.setName("RenamedApp"); assert(app.getName() == "RenamedApp"); // 测试添加数字和求和 assert(app.getSum() == 0); // 初始和为0 assert(app.getNumbers().empty()); app.addNumber(10); assert(app.getSum() == 10); assert(app.getNumbers().size() == 1); assert(app.getNumbers()[0] == 10); app.addNumber(20); assert(app.getSum() == 30); assert(app.getNumbers().size() == 2); std::cout << " SimpleApp basic tests passed!\n"; } /** * @brief 测试 SimpleApp 类的数字管理功能 */ void testSimpleAppNumberManagement() { std::cout << "Testing SimpleApp number management...\n"; SimpleApp app("NumberApp"); // 添加多个数字 for (int i = 1; i <= 5; ++i) { app.addNumber(i * 10); } // 验证数字 const auto& numbers = app.getNumbers(); assert(numbers.size() == 5); assert(numbers[0] == 10); assert(numbers[1] == 20); assert(numbers[2] == 30); assert(numbers[3] == 40); assert(numbers[4] == 50); // 验证总和 assert(app.getSum() == 150); // 10+20+30+40+50 = 150 // 测试清空功能 app.clearNumbers(); assert(app.getNumbers().empty()); assert(app.getSum() == 0); // 重新添加并验证 app.addNumber(100); app.addNumber(200); assert(app.getSum() == 300); assert(app.getNumbers().size() == 2); std::cout << " SimpleApp number management tests passed!\n"; } /** * @brief 测试 generateWelcomeMessage 函数 */ void testWelcomeMessage() { std::cout << "Testing generateWelcomeMessage function...\n"; std::string msg1 = generateWelcomeMessage("Alice"); assert(msg1.find("Alice") != std::string::npos); assert(msg1.find("Welcome") != std::string::npos); std::string msg2 = generateWelcomeMessage("Bob"); assert(msg2.find("Bob") != std::string::npos); std::string msg3 = generateWelcomeMessage(""); assert(msg3.find("Welcome") != std::string::npos); std::cout << " Welcome message tests passed!\n"; } /** * @brief 测试 SimpleApp 的信息生成功能 */ void testAppInfo() { std::cout << "Testing SimpleApp info generation...\n"; SimpleApp app("InfoApp"); // 空应用的信息 std::string emptyInfo = app.getInfo(); assert(emptyInfo.find("InfoApp") != std::string::npos); assert(emptyInfo.find("Numbers count: 0") != std::string::npos); // 添加数字后的信息 app.addNumber(1); app.addNumber(2); app.addNumber(3); std::string fullInfo = app.getInfo(); assert(fullInfo.find("InfoApp") != std::string::npos); assert(fullInfo.find("Numbers count: 3") != std::string::npos); assert(fullInfo.find("Sum of numbers: 6") != std::string::npos); assert(fullInfo.find("1, 2, 3") != std::string::npos); std::cout << " App info generation tests passed!\n"; } /** * @brief 主测试函数 */ int main() { std::cout << "=== Starting Basic Tests ===\n\n"; try { testAddFunction(); std::cout << "\n"; testMultiplyFunction(); std::cout << "\n"; testWelcomeMessage(); std::cout << "\n"; testSimpleAppBasic(); std::cout << "\n"; testSimpleAppNumberManagement(); std::cout << "\n"; testAppInfo(); std::cout << "\n=== All Tests Passed! ===\n"; return 0; } catch (const std::exception& e) { std::cerr << "Test failed with exception: " << e.what() << "\n"; return 1; } catch (...) { std::cerr << "Test failed with unknown exception\n"; return 1; } }