46 const std::string& tag,
47 Teuchos::FancyOStream& out) {
50 typedef Teuchos::SerializationTraits<Ordinal,TayType> SerT;
54 Ordinal bytes = SerT::fromCountToIndirectBytes(count, &x[0]);
55 char *charBuffer =
new char[bytes];
56 SerT::serialize(count, &x[0], bytes, charBuffer);
59 Ordinal count2 = SerT::fromIndirectBytesToCount(bytes, charBuffer);
60 Teuchos::Array<TayType> x2(count2);
61 SerT::deserialize(bytes, charBuffer, count2, &x2[0]);
66 bool success = (count == count2);
67 out << tag <<
" serialize/deserialize count test";
72 out <<
": \n\tExpected: " << count <<
", \n\tGot: " << count2 <<
"."
76 for (
Ordinal i=0; i<count; i++) {
78 out << tag <<
" serialize/deserialize taylor test " << i;
83 out <<
": \n\tExpected: " << x[i] <<
", \n\tGot: " << x2[i]
85 success = success && success2;
93 Teuchos::Array<TayType>& x,
94 const std::string& tag,
95 Teuchos::FancyOStream& out) {
101 Ordinal bytes = serializer.fromCountToIndirectBytes(count, &x[0]);
102 char *charBuffer =
new char[bytes];
103 serializer.serialize(count, &x[0], bytes, charBuffer);
106 Ordinal sz = serializer.getSerializerSize();
107 for (
Ordinal i=0; i<count; i++)
108 x[i].resize(sz-1,
true);
111 Ordinal count2 = serializer.fromIndirectBytesToCount(bytes, charBuffer);
112 Teuchos::Array<TayType> x2(count2);
113 serializer.deserialize(bytes, charBuffer, count2, &x2[0]);
115 delete [] charBuffer;
118 bool success = (count == count2);
119 out << tag <<
" serialize/deserialize count test";
124 out <<
": \n\tExpected: " << count <<
", \n\tGot: " << count2 <<
"."
128 for (
Ordinal i=0; i<count; i++) {
130 out << tag <<
" serialize/deserialize taylor test " << i;
135 out <<
": \n\tExpected: " << x[i] <<
", \n\tGot: " << x2[i]
137 success = success && success2;
145 Teuchos::Array<TayType>& x,
146 const std::string& tag,
147 Teuchos::FancyOStream& out) {
153 Ordinal bytes = serializer.fromCountToIndirectBytes(count, &x[0]);
154 char *charBuffer =
new char[bytes];
155 serializer.serialize(count, &x[0], bytes, charBuffer);
158 Ordinal sz = serializer.getSerializerSize();
159 typedef typename Serializer::value_serializer_type VST;
160 RCP<const VST> vs = serializer.getValueSerializer();
161 Ordinal sz_inner = vs->getSerializerSize();
162 for (
Ordinal i=0; i<count; i++) {
163 x[i].resize(sz-1,
true);
165 x[i].fastAccessCoeff(j).resize(sz_inner-1,
true);
166 x[i].val().resize(sz_inner-1,
true);
170 Ordinal count2 = serializer.fromIndirectBytesToCount(bytes, charBuffer);
171 Teuchos::Array<TayType> x2(count2);
172 serializer.deserialize(bytes, charBuffer, count2, &x2[0]);
174 delete [] charBuffer;
177 bool success = (count == count2);
178 out << tag <<
" serialize/deserialize count test";
183 out <<
": \n\tExpected: " << count <<
", \n\tGot: " << count2 <<
"."
187 for (
Ordinal i=0; i<count; i++) {
189 out << tag <<
" serialize/deserialize taylor test " << i;
194 out <<
": \n\tExpected: " << x[i] <<
", \n\tGot: " << x2[i]
196 success = success && success2;
int main(int argc, char *argv[])