|
|
|
@ -122,4 +122,57 @@ BOOST_AUTO_TEST_CASE(bignum_setint64)
@@ -122,4 +122,57 @@ BOOST_AUTO_TEST_CASE(bignum_setint64)
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(bignum_SetCompact) |
|
|
|
|
{ |
|
|
|
|
CBigNum num; |
|
|
|
|
num.SetCompact(0); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetHex(), "0"); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetCompact(), 0); |
|
|
|
|
|
|
|
|
|
num.SetCompact(0x00123456); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetHex(), "0"); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetCompact(), 0); |
|
|
|
|
|
|
|
|
|
num.SetCompact(0x01123456); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetHex(), "12"); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetCompact(), 0x01120000); |
|
|
|
|
|
|
|
|
|
// Make sure that we don't generate compacts with the 0x00800000 bit set
|
|
|
|
|
num = 0x80; |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetCompact(), 0x02008000); |
|
|
|
|
|
|
|
|
|
num.SetCompact(0x01fedcba); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetHex(), "-7e"); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetCompact(), 0x01fe0000); |
|
|
|
|
|
|
|
|
|
num.SetCompact(0x02123456); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetHex(), "1234"); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetCompact(), 0x02123400); |
|
|
|
|
|
|
|
|
|
num.SetCompact(0x03123456); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetHex(), "123456"); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetCompact(), 0x03123456); |
|
|
|
|
|
|
|
|
|
num.SetCompact(0x04123456); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetHex(), "12345600"); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetCompact(), 0x04123456); |
|
|
|
|
|
|
|
|
|
num.SetCompact(0x04923456); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetHex(), "-12345600"); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetCompact(), 0x04923456); |
|
|
|
|
|
|
|
|
|
num.SetCompact(0x05009234); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetHex(), "92340000"); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetCompact(), 0x05009234); |
|
|
|
|
|
|
|
|
|
num.SetCompact(0x20123456); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetHex(), "1234560000000000000000000000000000000000000000000000000000000000"); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetCompact(), 0x20123456); |
|
|
|
|
|
|
|
|
|
num.SetCompact(0xff123456); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetHex(), "123456000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"); |
|
|
|
|
BOOST_CHECK_EQUAL(num.GetCompact(), 0xff123456); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_SUITE_END() |
|
|
|
|