Files
BetterSTL/tests/IOTest.cpp
T
2026-08-16 16:28:12 +08:00

65 lines
1.5 KiB
C++

#include <bstl/big_integer.hpp>
#include <bstl/big_decimal.hpp>
#include <bstl/string.hpp>
#include <sstream>
#include <cassert>
#include <iostream>
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;
}