genesis 1 #include <boost/test/unit_test.hpp>
genesis 2
genesis 3 #include "../util.h"
genesis 4
genesis 5 BOOST_AUTO_TEST_SUITE(base58_tests)
genesis 6
genesis 7
genesis 8
genesis 9
genesis 10
genesis 11
genesis 12
genesis 13
genesis 14
genesis 15
genesis 16
genesis 17
genesis 18
genesis 19
genesis 20
genesis 21
genesis 22
genesis 23
genesis 24
genesis 25
genesis 26
genesis 27
genesis 28
genesis 29
genesis 30
genesis 31
genesis 32 #define U(x) (reinterpret_cast<const unsigned char*>(x))
genesis 33 static struct {
genesis 34 const unsigned char *data;
genesis 35 int size;
genesis 36 } vstrIn[] = {
genesis 37 {U(""), 0},
genesis 38 {U("\x61"), 1},
genesis 39 {U("\x62\x62\x62"), 3},
genesis 40 {U("\x63\x63\x63"), 3},
genesis 41 {U("\x73\x69\x6d\x70\x6c\x79\x20\x61\x20\x6c\x6f\x6e\x67\x20\x73\x74\x72\x69\x6e\x67"), 20},
genesis 42 {U("\x00\xeb\x15\x23\x1d\xfc\xeb\x60\x92\x58\x86\xb6\x7d\x06\x52\x99\x92\x59\x15\xae\xb1\x72\xc0\x66\x47"), 25},
genesis 43 {U("\x51\x6b\x6f\xcd\x0f"), 5},
genesis 44 {U("\xbf\x4f\x89\x00\x1e\x67\x02\x74\xdd"), 9},
genesis 45 {U("\x57\x2e\x47\x94"), 4},
genesis 46 {U("\xec\xac\x89\xca\xd9\x39\x23\xc0\x23\x21"), 10},
genesis 47 {U("\x10\xc8\x51\x1e"), 4},
genesis 48 {U("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), 10},
genesis 49 };
genesis 50
genesis 51 const char *vstrOut[] = {
genesis 52 "",
genesis 53 "2g",
genesis 54 "a3gV",
genesis 55 "aPEr",
genesis 56 "2cFupjhnEsSn59qHXstmK2ffpLv2",
genesis 57 "1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L",
genesis 58 "ABnLTmg",
genesis 59 "3SEo3LWLoPntC",
genesis 60 "3EFU7m",
genesis 61 "EJDM8drfXA6uyA",
genesis 62 "Rt5zm",
genesis 63 "1111111111"
genesis 64 };
genesis 65
genesis 66 BOOST_AUTO_TEST_CASE(base58_EncodeBase58)
genesis 67 {
genesis 68 for (int i=0; i<sizeof(vstrIn)/sizeof(vstrIn[0]); i++)
genesis 69 {
genesis 70 BOOST_CHECK_EQUAL(EncodeBase58(vstrIn[i].data, vstrIn[i].data + vstrIn[i].size), vstrOut[i]);
genesis 71 }
genesis 72 }
genesis 73
genesis 74 BOOST_AUTO_TEST_CASE(base58_DecodeBase58)
genesis 75 {
genesis 76 std::vector<unsigned char> result;
genesis 77 for (int i=0; i<sizeof(vstrIn)/sizeof(vstrIn[0]); i++)
genesis 78 {
genesis 79 std::vector<unsigned char> expected(vstrIn[i].data, vstrIn[i].data + vstrIn[i].size);
genesis 80 BOOST_CHECK(DecodeBase58(vstrOut[i], result));
genesis 81 BOOST_CHECK_EQUAL_COLLECTIONS(result.begin(), result.end(), expected.begin(), expected.end());
genesis 82 }
genesis 83 BOOST_CHECK(!DecodeBase58("invalid", result));
genesis 84 }
genesis 85
genesis 86 BOOST_AUTO_TEST_SUITE_END()
genesis 87