1 #include <boost/test/unit_test.hpp>
7 BOOST_AUTO_TEST_SUITE(bignum_tests)
17 #define NOINLINE __attribute__((noinline))
18 #elif defined(_MSC_VER)
19 #define NOINLINE __declspec(noinline)
22 #warning You should define NOINLINE for your compiler.
103 BOOST_CHECK(num.
ToString() ==
"-5");
106 n = std::numeric_limits<int64>::min();
108 BOOST_CHECK(num.
ToString() ==
"-9223372036854775808");
112 BOOST_CHECK(num.
ToString() ==
"-9223372036854775808");
115 n = std::numeric_limits<int64>::max();
117 BOOST_CHECK(num.
ToString() ==
"9223372036854775807");
121 BOOST_CHECK(num.
ToString() ==
"9223372036854775807");
130 BOOST_CHECK_EQUAL(num.
GetHex(),
"0");
134 BOOST_CHECK_EQUAL(num.
GetHex(),
"0");
138 BOOST_CHECK_EQUAL(num.
GetHex(),
"12");
139 BOOST_CHECK_EQUAL(num.
GetCompact(), 0x01120000U);
143 BOOST_CHECK_EQUAL(num.GetCompact(), 0x02008000U);
146 BOOST_CHECK_EQUAL(num.GetHex(),
"-7e");
147 BOOST_CHECK_EQUAL(num.GetCompact(), 0x01fe0000U);
150 BOOST_CHECK_EQUAL(num.GetHex(),
"1234");
151 BOOST_CHECK_EQUAL(num.GetCompact(), 0x02123400U);
154 BOOST_CHECK_EQUAL(num.GetHex(),
"123456");
155 BOOST_CHECK_EQUAL(num.GetCompact(), 0x03123456U);
158 BOOST_CHECK_EQUAL(num.GetHex(),
"12345600");
159 BOOST_CHECK_EQUAL(num.GetCompact(), 0x04123456U);
162 BOOST_CHECK_EQUAL(num.GetHex(),
"-12345600");
163 BOOST_CHECK_EQUAL(num.GetCompact(), 0x04923456U);
166 BOOST_CHECK_EQUAL(num.GetHex(),
"92340000");
167 BOOST_CHECK_EQUAL(num.GetCompact(), 0x05009234U);
170 BOOST_CHECK_EQUAL(num.GetHex(),
"1234560000000000000000000000000000000000000000000000000000000000");
171 BOOST_CHECK_EQUAL(num.GetCompact(), 0x20123456U);
174 BOOST_CHECK_EQUAL(num.GetHex(),
"123456000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
175 BOOST_CHECK_EQUAL(num.GetCompact(), 0xff123456U);
178 BOOST_AUTO_TEST_SUITE_END()
std::string GetHex() const
void setulong(unsigned long n)
CBigNum & SetCompact(unsigned int nCompact)
C++ wrapper for BIGNUM (OpenSSL bignum)
BOOST_AUTO_TEST_CASE(bignum_setint64)
NOINLINE void mysetint64(CBigNum &num, int64 n)
unsigned int GetCompact() const
std::string ToString(int nBase=10) const