#include #include #include #include #include #include int main() { using bstl::BigInteger; using bstl::BigDecimal; using bstl::String; // 测试 BigInteger 的 cout BigInteger bi1("12345678901234567890"); std::ostringstream oss1; oss1 << bi1; assert(oss1.str() == "12345678901234567890"); // 测试 BigInteger 的 cin std::istringstream iss1("987654321"); BigInteger bi2; iss1 >> bi2; assert(bi2.toString() == "987654321"); // 测试负数 std::istringstream iss2("-555"); BigInteger bi3; iss2 >> bi3; assert(bi3.toString() == "-555"); // 测试 BigDecimal 的 cout BigDecimal bd1("123.45"); std::ostringstream oss2; oss2 << bd1; assert(oss2.str() == "123.45"); // 测试 BigDecimal 的 cin std::istringstream iss3("67.89"); BigDecimal bd2; iss3 >> bd2; assert(bd2.toString() == "67.89"); // 测试负小数 std::istringstream iss4("-12.34"); BigDecimal bd3; iss4 >> bd3; assert(bd3.toString() == "-12.34"); // 测试 String 的 cout String s1("Hello World"); std::ostringstream oss3; oss3 << s1; assert(oss3.str() == "Hello World"); // 测试 String 的 cin std::istringstream iss5("HelloWorld"); String s2; iss5 >> s2; assert(s2.str() == "HelloWorld"); std::cout << "All cin/cout tests passed!\n"; return 0; }