Updates from BitShares FC #22
1 changed files with 43 additions and 8 deletions
|
|
@ -6,13 +6,29 @@
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE(varint_tests)
|
BOOST_AUTO_TEST_SUITE(varint_tests)
|
||||||
|
|
||||||
#define UINT_LENGTH (1 + 1 + 1 + 1 + 1 + 1 + 2 + 2 + 2 + 3 + 3 + 3 + 4 + 4 + 4 + 5 + 5)
|
#define UINT_LENGTH (1 + 5*1 + 3*2 + 3*3 + 3*4 + 2*5 + 3*6 + 3*7 + 3*8 + 3*9 + 2*10)
|
||||||
static const std::string EXPECTED_UINTS( "\020" // 16 = length of array
|
static const std::string EXPECTED_UINTS( "\036" // 30 = length of array
|
||||||
"\0\1\2\020\177\200\1\200\2\377\177"
|
"\0\1\2\020\177"
|
||||||
|
"\200\1\200\2\377\177"
|
||||||
"\200\200\1\200\200\2\377\377\177"
|
"\200\200\1\200\200\2\377\377\177"
|
||||||
"\200\200\200\1\200\200\200\2"
|
"\200\200\200\1\200\200\200\2\377\377\377\177"
|
||||||
"\377\377\377\177\200\200\200\200\1"
|
"\200\200\200\200\1"
|
||||||
"\252\325\252\325\012", UINT_LENGTH );
|
"\252\325\252\325\012"
|
||||||
|
"\200\200\200\200\200\1"
|
||||||
|
"\200\200\200\200\200\2"
|
||||||
|
"\377\377\377\377\377\177"
|
||||||
|
"\200\200\200\200\200\200\1"
|
||||||
|
"\200\200\200\200\200\200\2"
|
||||||
|
"\377\377\377\377\377\377\177"
|
||||||
|
"\200\200\200\200\200\200\200\1"
|
||||||
|
"\200\200\200\200\200\200\200\2"
|
||||||
|
"\377\377\377\377\377\377\377\177"
|
||||||
|
"\200\200\200\200\200\200\200\200\1"
|
||||||
|
"\200\200\200\200\200\200\200\200\2"
|
||||||
|
"\377\377\377\377\377\377\377\377\177"
|
||||||
|
"\200\200\200\200\200\200\200\200\200\1"
|
||||||
|
"\377\377\377\377\377\377\377\377\377\1",
|
||||||
|
UINT_LENGTH );
|
||||||
static const std::vector<fc::unsigned_int> TEST_U = {
|
static const std::vector<fc::unsigned_int> TEST_U = {
|
||||||
0, // \0
|
0, // \0
|
||||||
1, // \1
|
1, // \1
|
||||||
|
|
@ -29,7 +45,21 @@ static const std::vector<fc::unsigned_int> TEST_U = {
|
||||||
0x400000, // \200\200\200\2
|
0x400000, // \200\200\200\2
|
||||||
0xfffffff, // \377\377\377\177
|
0xfffffff, // \377\377\377\177
|
||||||
0x10000000, // \200\200\200\200\1
|
0x10000000, // \200\200\200\200\1
|
||||||
0xaaaaaaaa // \252\325\252\325\012
|
0xaaaaaaaa, // \252\325\252\325\012
|
||||||
|
0x800000000ULL, // \200\200\200\200\200\1
|
||||||
|
0x1000000000ULL, // \200\200\200\200\200\2
|
||||||
|
0x3ffffffffffULL, // \377\377\377\377\377\177
|
||||||
|
0x40000000000ULL, // \200\200\200\200\200\200\1
|
||||||
|
0x80000000000ULL, // \200\200\200\200\200\200\2
|
||||||
|
0x1ffffffffffffULL, // \377\377\377\377\377\377\177
|
||||||
|
0x2000000000000ULL, // \200\200\200\200\200\200\200\1
|
||||||
|
0x4000000000000ULL, // \200\200\200\200\200\200\200\2
|
||||||
|
0xffffffffffffffULL, // \377\377\377\377\377\377\377\177
|
||||||
|
0x100000000000000ULL, // \200\200\200\200\200\200\200\200\1
|
||||||
|
0x200000000000000ULL, // \200\200\200\200\200\200\200\200\2
|
||||||
|
0x7fffffffffffffffULL, // \377\377\377\377\377\377\377\377\177
|
||||||
|
0x8000000000000000ULL, // \200\200\200\200\200\200\200\200\200\1
|
||||||
|
0xffffffffffffffffULL // \377\377\377\377\377\377\377\377\377\1
|
||||||
};
|
};
|
||||||
BOOST_AUTO_TEST_CASE( test_unsigned )
|
BOOST_AUTO_TEST_CASE( test_unsigned )
|
||||||
{
|
{
|
||||||
|
|
@ -43,7 +73,12 @@ BOOST_AUTO_TEST_CASE( test_unsigned )
|
||||||
BOOST_CHECK_EQUAL( TEST_U[i].value, unpacked_u[i].value );
|
BOOST_CHECK_EQUAL( TEST_U[i].value, unpacked_u[i].value );
|
||||||
|
|
||||||
const std::string json_u = fc::json::to_string(fc::variant( TEST_U, 3 ));
|
const std::string json_u = fc::json::to_string(fc::variant( TEST_U, 3 ));
|
||||||
BOOST_CHECK_EQUAL( "[0,1,2,16,127,128,256,16383,16384,32768,2097151,2097152,4194304,268435455,268435456,2863311530]", json_u );
|
BOOST_CHECK_EQUAL( "[0,1,2,16,127,128,256,16383,16384,32768,2097151,2097152,4194304,268435455,268435456,2863311530,"
|
||||||
|
"\"34359738368\",\"68719476736\",\"4398046511103\",\"4398046511104\","
|
||||||
|
"\"8796093022208\",\"562949953421311\",\"562949953421312\","
|
||||||
|
"\"1125899906842624\",\"72057594037927935\",\"72057594037927936\","
|
||||||
|
"\"144115188075855872\",\"9223372036854775807\",\"9223372036854775808\","
|
||||||
|
"\"18446744073709551615\"]", json_u );
|
||||||
std::vector<fc::unsigned_int> unjson_u = fc::json::from_string( json_u ).as<std::vector<fc::unsigned_int>>( 3 );
|
std::vector<fc::unsigned_int> unjson_u = fc::json::from_string( json_u ).as<std::vector<fc::unsigned_int>>( 3 );
|
||||||
BOOST_CHECK_EQUAL( TEST_U.size(), unjson_u.size() );
|
BOOST_CHECK_EQUAL( TEST_U.size(), unjson_u.size() );
|
||||||
for( size_t i = 0; i < TEST_U.size(); i++ )
|
for( size_t i = 0; i < TEST_U.size(); i++ )
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue