Feathercoin  0.5.0
P2P Digital Currency
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
serialize_tests.cpp
Go to the documentation of this file.
1 #include <boost/test/unit_test.hpp>
2 
3 #include <string>
4 #include <vector>
5 
6 #include "serialize.h"
7 
8 using namespace std;
9 
10 BOOST_AUTO_TEST_SUITE(serialize_tests)
11 
13 {
14  // encode
15 
16  CDataStream ss(SER_DISK, 0);
17  CDataStream::size_type size = 0;
18  for (int i = 0; i < 100000; i++) {
19  ss << VARINT(i);
20  size += ::GetSerializeSize(VARINT(i), 0, 0);
21  BOOST_CHECK(size == ss.size());
22  }
23 
24  for (uint64 i = 0; i < 100000000000ULL; i += 999999937) {
25  ss << VARINT(i);
26  size += ::GetSerializeSize(VARINT(i), 0, 0);
27  BOOST_CHECK(size == ss.size());
28  }
29 
30  // decode
31  for (int i = 0; i < 100000; i++) {
32  int j = -1;
33  ss >> VARINT(j);
34  BOOST_CHECK_MESSAGE(i == j, "decoded:" << j << " expected:" << i);
35  }
36 
37  for (uint64 i = 0; i < 100000000000ULL; i += 999999937) {
38  uint64 j = -1;
39  ss >> VARINT(j);
40  BOOST_CHECK_MESSAGE(i == j, "decoded:" << j << " expected:" << i);
41  }
42 
43 }
44 
45 BOOST_AUTO_TEST_SUITE_END()
#define VARINT(obj)
Definition: serialize.h:305
vector_type::size_type size_type
Definition: serialize.h:812
Double ended buffer combining vector and stream-like interfaces.
Definition: serialize.h:799
unsigned long long uint64
Definition: serialize.h:26
unsigned int GetSerializeSize(char a, int, int=0)
Definition: serialize.h:106
size_type size() const
Definition: serialize.h:888
BOOST_AUTO_TEST_CASE(varints)