ProteoWizard
Main Page
Namespaces
Classes
Files
File List
File Members
pwiz
data
tradata
IOTest.cpp
Go to the documentation of this file.
1
//
2
// $Id: IOTest.cpp 4129 2012-11-20 00:05:37Z chambm $
3
//
4
//
5
// Original author: Matt Chambers <matt.chambers .@. vanderbilt.edu>
6
//
7
// Copyright 2009 Vanderbilt University - Nashville, TN 37232
8
//
9
// Licensed under the Apache License, Version 2.0 (the "License");
10
// you may not use this file except in compliance with the License.
11
// You may obtain a copy of the License at
12
//
13
// http://www.apache.org/licenses/LICENSE-2.0
14
//
15
// Unless required by applicable law or agreed to in writing, software
16
// distributed under the License is distributed on an "AS IS" BASIS,
17
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
// See the License for the specific language governing permissions and
19
// limitations under the License.
20
//
21
22
23
#include "
IO.hpp
"
24
#include "
Diff.hpp
"
25
#include "
examples.hpp
"
26
#include "
pwiz/utility/misc/unit.hpp
"
27
#include "
pwiz/utility/misc/Std.hpp
"
28
29
using namespace
pwiz::cv
;
30
using namespace
pwiz::util;
31
using namespace
pwiz::minimxml;
32
using namespace
pwiz::tradata;
33
using
boost::iostreams::stream_offset;
34
35
36
ostream*
os_
= 0;
37
38
39
template
<
typename
object
_type>
40
void
testObject
(
const
object_type& a)
41
{
42
if
(
os_
) *
os_
<<
"testObject(): "
<<
typeid
(a).name() << endl;
43
44
// write 'a' out to a stream
45
46
ostringstream oss;
47
XMLWriter
writer(oss);
48
IO::write
(writer, a);
49
if
(
os_
) *
os_
<< oss.str() << endl;
50
51
// read 'b' in from stream
52
53
object_type b;
54
istringstream iss(oss.str());
55
IO::read
(iss, b);
56
57
// compare 'a' and 'b'
58
59
Diff<object_type>
diff
(a,b);
60
if
(diff &&
os_
) *
os_
<<
"diff:\n"
<< diff << endl;
61
unit_assert
(!diff);
62
63
64
}
65
66
67
void
testCV
()
68
{
69
CV
a;
70
a.
URI
=
"abcd"
;
71
a.
id
=
"efgh"
;
72
a.
fullName
=
"ijkl"
;
73
a.
version
=
"mnop"
;
74
75
testObject
(a);
76
}
77
78
79
void
testUserParam
()
80
{
81
UserParam
a;
82
a.
name
=
"abcd"
;
83
a.
value
=
"efgh"
;
84
a.
type
=
"ijkl"
;
85
a.
units
=
UO_minute
;
86
87
testObject
(a);
88
}
89
90
91
void
testCVParam
()
92
{
93
CVParam
a(
MS_selected_ion_m_z
,
"810.48"
,
MS_m_z
);
94
testObject
(a);
95
96
CVParam
b(
UO_second
,
"123.45"
);
97
testObject
(b);
98
}
99
100
101
template
<
typename
object
_type>
102
void
testNamedParamContainer
()
103
{
104
object_type a;
105
a.userParams.push_back(
UserParam
(
"goober"
,
"goo"
,
"peanuts"
));
106
a.cvParams.push_back(
CVParam
(
MS_ionization_type
,
"420"
));
107
a.cvParams.push_back(
CVParam
(
MS_selected_ion_m_z
,
"666"
,
MS_m_z
));
108
testObject
(a);
109
}
110
111
112
void
testSoftware
()
113
{
114
Software
a;
115
a.
id
=
"goober"
;
116
a.
set
(
MS_ionization_type
);
117
a.
version
=
"4.20"
;
118
testObject
(a);
119
}
120
121
122
/*void testInstrument()
123
{
124
Instrument a;
125
a.id = "LCQ Deca";
126
a.cvParams.push_back(MS_LCQ_Deca);
127
a.cvParams.push_back(CVParam(MS_instrument_serial_number, 23433));
128
testObject(a);
129
}
130
131
void testConfiguration()
132
{
133
Configuration a;
134
a.instrumentPtr = "LCA Deca";
135
a.contactPtr = "Bob";
136
a.cvParams.push_back(CVParam(MS_ionization_type, "420"));
137
}*/
138
139
140
/*void testPrecursor()
141
{
142
Precursor a;
143
a.mz = 123.45;
144
a.charge = 2;
145
testObject(a);
146
147
Precursor b;
148
b.mz = 456.78;
149
testObject(b);
150
}
151
152
153
void testProduct()
154
{
155
Product a;
156
a.mz = 123.45;
157
a.charge = 2;
158
testObject(a);
159
160
Product b;
161
b.mz = 456.78;
162
testObject(b);
163
}*/
164
165
166
void
testTraData
()
167
{
168
if
(
os_
) *
os_
<<
"testTraData():\n"
;
169
170
TraData
a;
171
examples::initializeTiny
(a);
172
173
// write 'a' out to a stream
174
175
ostringstream oss;
176
XMLWriter
writer(oss);
177
IO::write
(writer, a);
178
if
(
os_
) *
os_
<< oss.str() << endl;
179
180
// read 'b' in from stream
181
182
TraData
b;
183
istringstream iss(oss.str());
184
IO::read
(iss, b);
185
186
// compare 'a' and 'b'
187
188
Diff<TraData, DiffConfig>
diff
(a,b);
189
if
(diff &&
os_
) *
os_
<<
"diff:\n"
<< diff << endl;
190
unit_assert
(!diff);
191
}
192
193
194
void
test
()
195
{
196
testCV
();
197
testUserParam
();
198
testCVParam
();
199
//testNamedParamContainer<Contact>();
200
//testNamedParamContainer<Publication>();
201
/*testInstrument();
202
testConfiguration();
203
testPrecursor();
204
testProduct();*/
205
testTraData
();
206
}
207
208
209
int
main
(
int
argc,
char
* argv[])
210
{
211
TEST_PROLOG_EX
(argc, argv,
"_TraData"
)
212
213
try
214
{
215
if
(argc>1 && !strcmp(argv[1],
"-v"
))
os_
= &cout;
216
test
();
217
}
218
catch
(exception&
e
)
219
{
220
TEST_FAILED
(e.what())
221
}
222
catch
(...)
223
{
224
TEST_FAILED
(
"Caught unknown exception."
)
225
}
226
227
TEST_EPILOG
228
}
229
Generated on Mon Nov 26 2012 18:05:48 for ProteoWizard by
1.8.1.1