ProteoWizard
Functions | Variables
IOTest.cpp File Reference
#include "IO.hpp"
#include "Diff.hpp"
#include "examples.hpp"
#include "pwiz/utility/misc/unit.hpp"
#include "pwiz/utility/misc/Std.hpp"

Go to the source code of this file.

Functions

template<typename object_type >
void testObject (const object_type &a)
 
void testCV ()
 
void testUserParam ()
 
void testCVParam ()
 
template<typename object_type >
void testNamedParamContainer ()
 
void testSoftware ()
 
void testTraData ()
 
void test ()
 
int main (int argc, char *argv[])
 

Variables

ostream * os_ = 0
 

Function Documentation

template<typename object_type >
void testObject ( const object_type &  a)

Definition at line 40 of file IOTest.cpp.

References diff(), os_, pwiz::identdata::IO::read(), unit_assert, and pwiz::identdata::IO::write().

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 
60  if (diff && os_) *os_ << "diff:\n" << diff << endl;
61  unit_assert(!diff);
62 
63 
64 }
void testCV ( )

Definition at line 67 of file IOTest.cpp.

References pwiz::cv::CV::fullName, pwiz::cv::CV::id, testObject(), pwiz::cv::CV::URI, and pwiz::cv::CV::version.

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 }
void testUserParam ( )

Definition at line 79 of file IOTest.cpp.

References pwiz::data::UserParam::name, testObject(), pwiz::data::UserParam::type, pwiz::data::UserParam::units, UO_minute, and pwiz::data::UserParam::value.

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 }
void testCVParam ( )

Definition at line 91 of file IOTest.cpp.

References MS_m_z, MS_selected_ion_m_z, testObject(), and UO_second.

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 }
template<typename object_type >
void testNamedParamContainer ( )

Definition at line 102 of file IOTest.cpp.

References MS_ionization_type, MS_m_z, MS_selected_ion_m_z, and testObject().

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 }
void testSoftware ( )

Definition at line 112 of file IOTest.cpp.

References pwiz::tradata::Software::id, MS_ionization_type, pwiz::data::ParamContainer::set(), testObject(), and pwiz::tradata::Software::version.

113 {
114  Software a;
115  a.id = "goober";
117  a.version = "4.20";
118  testObject(a);
119 }
void testTraData ( )

Definition at line 166 of file IOTest.cpp.

References diff(), pwiz::identdata::examples::initializeTiny(), os_, pwiz::identdata::IO::read(), unit_assert, and pwiz::identdata::IO::write().

167 {
168  if (os_) *os_ << "testTraData():\n";
169 
170  TraData 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 
189  if (diff && os_) *os_ << "diff:\n" << diff << endl;
190  unit_assert(!diff);
191 }
void test ( )

Definition at line 194 of file IOTest.cpp.

References testCV(), testCVParam(), testTraData(), and testUserParam().

195 {
196  testCV();
197  testUserParam();
198  testCVParam();
199  //testNamedParamContainer<Contact>();
200  //testNamedParamContainer<Publication>();
201  /*testInstrument();
202  testConfiguration();
203  testPrecursor();
204  testProduct();*/
205  testTraData();
206 }
int main ( int  argc,
char *  argv[] 
)

Definition at line 209 of file IOTest.cpp.

References os_, test(), TEST_EPILOG, TEST_FAILED, and TEST_PROLOG_EX.

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 
228 }

Variable Documentation

ostream* os_ = 0

Definition at line 36 of file IOTest.cpp.