ProteoWizard
Functions | Variables
Serializer_mzXML_Test.cpp File Reference
#include "Serializer_mzXML.hpp"
#include "Serializer_mzML.hpp"
#include "Diff.hpp"
#include "TextWriter.hpp"
#include "examples.hpp"
#include "pwiz/utility/misc/unit.hpp"
#include "boost/iostreams/positioning.hpp"
#include "pwiz/utility/misc/Std.hpp"
#include <cstring>

Go to the source code of this file.

Functions

void testWriteRead (const MSData &msd, const Serializer_mzXML::Config &config)
 
void testWriteRead ()
 
int main (int argc, char *argv[])
 

Variables

ostream * os_ = 0
 

Function Documentation

§ testWriteRead() [1/2]

void testWriteRead ( const MSData msd,
const Serializer_mzXML::Config config 
)

Definition at line 44 of file Serializer_mzXML_Test.cpp.

References diff(), pwiz::msdata::DiffConfig::ignoreChromatograms, pwiz::msdata::DiffConfig::ignoreMetadata, os_, pwiz::msdata::Serializer_mzXML::read(), unit_assert, pwiz::identdata::IO::write(), pwiz::msdata::Serializer_mzXML::write(), and pwiz::msdata::Serializer_mzML::write().

Referenced by main(), and testWriteRead().

45 {
46  if (os_) *os_ << "testWriteRead() " << config << endl;
47 
48  Serializer_mzXML mzxmlSerializer(config);
49 
50  ostringstream oss;
51  mzxmlSerializer.write(oss, msd);
52 
53  if (os_) *os_ << "oss:\n" << oss.str() << endl;
54 
55  shared_ptr<istringstream> iss(new istringstream(oss.str()));
56  MSData msd2;
57  mzxmlSerializer.read(iss, msd2);
58 
59  DiffConfig diffConfig;
60  diffConfig.ignoreMetadata = true;
61  diffConfig.ignoreChromatograms = true;
62 
63  Diff<MSData, DiffConfig> diff(msd, msd2, diffConfig);
64  if (os_ && diff) *os_ << diff << endl;
65  unit_assert(!diff);
66 
67  if (os_)
68  {
69  *os_ << "msd2:\n";
70  Serializer_mzML mzmlSerializer;
71  mzmlSerializer.write(*os_, msd2);
72  *os_ << endl;
73 
74  *os_ << "msd2::";
76  write(msd2);
77 
78  *os_ << endl;
79  }
80 }
MSData <-> mzML stream serialization.
bool ignoreMetadata
ignore all file level metadata, and most scan level metadata, i.e.
Definition: Diff.hpp:214
void write(std::ostream &os, const MSData &msd, const pwiz::util::IterationListenerRegistry *iterationListenerRegistry=0) const
write MSData object to ostream as mzML; iterationListenerRegistry may be used to receive progress upd...
Calculate diffs of objects in a ProteoWizard data model hierarchy.
Definition: diff_std.hpp:142
void diff(const string &filename1, const string &filename2)
PWIZ_API_DECL void write(minimxml::XMLWriter &writer, const CV &cv)
configuration struct for diffing MSData types
Definition: Diff.hpp:205
MSData <-> mzXML stream serialization.
ostream * os_
This is the root element of ProteoWizard; it represents the mzML element, defined as: intended to cap...
Definition: MSData.hpp:845
#define unit_assert(x)
Definition: unit.hpp:85

§ testWriteRead() [2/2]

void testWriteRead ( )

Definition at line 83 of file Serializer_mzXML_Test.cpp.

References pwiz::msdata::Serializer_mzXML::Config::binaryDataEncoderConfig, pwiz::msdata::Serializer_mzXML::Config::indexed, pwiz::identdata::examples::initializeTiny(), pwiz::msdata::BinaryDataEncoder::Config::precision, pwiz::msdata::MSData::run, pwiz::msdata::Run::spectrumListPtr, testWriteRead(), and unit_assert.

84 {
85  MSData msd;
87 
88  // remove s22 since it is not written to mzXML
89  static_cast<SpectrumListSimple&>(*msd.run.spectrumListPtr).spectra.pop_back();
90 
92  unit_assert(config.binaryDataEncoderConfig.precision == BinaryDataEncoder::Precision_64);
93  testWriteRead(msd, config);
94 
95  config.binaryDataEncoderConfig.precision = BinaryDataEncoder::Precision_32;
96  testWriteRead(msd, config);
97 
98  config.indexed = false;
99  testWriteRead(msd, config);
100 }
BinaryDataEncoder::Config binaryDataEncoderConfig
configuration for binary data encoding in write() note: byteOrder is ignored (mzXML always big endian...
Run run
a run in mzML should correspond to a single, consecutive and coherent set of scans on an instrument...
Definition: MSData.hpp:882
SpectrumListPtr spectrumListPtr
all mass spectra and the acquisitions underlying them are described and attached here. Subsidiary data arrays are also both described and attached here.
Definition: MSData.hpp:823
PWIZ_API_DECL void initializeTiny(IdentData &mzid)
void testWriteRead(const MSData &msd, const Serializer_mzXML::Config &config)
Serializer_mzXML configuration.
This is the root element of ProteoWizard; it represents the mzML element, defined as: intended to cap...
Definition: MSData.hpp:845
Simple writeable in-memory implementation of SpectrumList.
Definition: MSData.hpp:712
#define unit_assert(x)
Definition: unit.hpp:85
bool indexed
(indexed==true): read/write with <index>

§ main()

int main ( int  argc,
char *  argv[] 
)

Definition at line 103 of file Serializer_mzXML_Test.cpp.

References os_, TEST_EPILOG, TEST_FAILED, TEST_PROLOG, and testWriteRead().

104 {
105  TEST_PROLOG(argc, argv)
106 
107  try
108  {
109  if (argc>1 && !strcmp(argv[1],"-v")) os_ = &cout;
110  testWriteRead();
111  }
112  catch (exception& e)
113  {
114  TEST_FAILED(e.what())
115  }
116  catch (...)
117  {
118  TEST_FAILED("Caught unknown exception.")
119  }
120 
122 }
#define TEST_EPILOG
Definition: unit.hpp:182
#define TEST_FAILED(x)
Definition: unit.hpp:176
void testWriteRead(const MSData &msd, const Serializer_mzXML::Config &config)
#define TEST_PROLOG(argc, argv)
Definition: unit.hpp:174
ostream * os_

Variable Documentation

§ os_

ostream* os_ = 0

Definition at line 41 of file Serializer_mzXML_Test.cpp.

Referenced by main(), and testWriteRead().