SHA256
65 lines
1.5 KiB
C++
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;
|
|
}
|