6 #include "../simpletest.h"
10 using namespace utakata;
12 bool bignum_test(smart_ptr<simpletest::SimpleTestAsserter> asserter)
14 // メモリの許す限り桁数を維持する整数オブジェクトのテストを行う。
15 numeric::Bignum a("1000");
16 numeric::Bignum b("2000");
20 asserter->check(a < b, true , "failure less than");
21 asserter->check(a > b, false, "failure greater than");
22 asserter->check(a <= b, true, "failure less equal");
23 asserter->check(a >= b, false, "failure greater equal");
24 asserter->check(a == b, false, "failure equal");
25 asserter->check(a != b, true, "failure not equal");
27 asserter->check(a.to_str(), "1000", "error to_str 1000");
28 asserter->check(b.to_str(), "2000", "error to_str 2000");
29 asserter->check(c.to_str(), "3000", "error to_str 3000");
32 asserter->check(c.to_str(), "-1000");
34 asserter->check(c.to_str(), "0");
37 asserter->check(c.to_str(), "2000000");
40 asserter->check(c.to_str(), "0");
42 asserter->check(c.to_str(), "2");
46 a = numeric::Bignum("100000000000");
47 b = numeric::Bignum("200100200032");
50 asserter->check(c.to_str(), "300100200032", "failure plus result not equal 300100200032");
53 asserter->check(c.to_str(), "-100100200032", "failure minus result not equal -100100200032");
56 asserter->check(c.to_str(), "20010020003200000000000");
59 asserter->check(c.to_str(), "0");
61 asserter->check(c.to_str(), "2");
63 return asserter->isOk();
66 int main(int argc, char *argv[])
68 simpletest::SimpleTestSuite suite("bignum test");
69 suite.addTester(sfcr::screate(bignum_test, suite.getAsserter()));