28 const bool verbose =
false;
31 namespace serializationTestHelpers {
36 void roundtrip(
const T& input, T& output) {
38 std::string serialized = serialize(input);
39 if (verbose) std::cout << serialized << std::endl << std::endl;
41 deserialize(serialized, output);
46 bool equality(
const T& input = T()) {
48 roundtrip<T>(input,output);
54 bool equalsObj(
const T& input = T()) {
56 roundtrip<T>(input,output);
57 return input.equals(output);
62 bool equalsDereferenced(
const T& input) {
64 roundtrip<T>(input,output);
65 return input->equals(*output);
70 void roundtripXML(
const T& input, T& output) {
72 std::string serialized = serializeXML<T>(input);
73 if (verbose) std::cout << serialized << std::endl << std::endl;
76 deserializeXML(serialized, output);
81 bool equalityXML(
const T& input = T()) {
83 roundtripXML<T>(input,output);
89 bool equalsXML(
const T& input = T()) {
91 roundtripXML<T>(input,output);
92 return input.equals(output);
97 bool equalsDereferencedXML(
const T& input = T()) {
99 roundtripXML<T>(input,output);
100 return input->equals(*output);
105 void roundtripBinary(
const T& input, T& output) {
107 std::string serialized = serializeBinary<T>(input);
108 if (verbose) std::cout << serialized << std::endl << std::endl;
111 deserializeBinary(serialized, output);
116 bool equalityBinary(
const T& input = T()) {
118 roundtripBinary<T>(input,output);
119 return input==output;
124 bool equalsBinary(
const T& input = T()) {
126 roundtripBinary<T>(input,output);
127 return input.equals(output);
132 bool equalsDereferencedBinary(
const T& input = T()) {
134 roundtripBinary<T>(input,output);
135 return input->equals(*output);
Convenience functions for serializing data structures via boost.serialization.