ProteoWizard
Functions | Variables
TraDataFileTest.cpp File Reference
#include "TraDataFile.hpp"
#include "Diff.hpp"
#include "IO.hpp"
#include "examples.hpp"
#include "pwiz/utility/misc/unit.hpp"
#include "pwiz/utility/misc/Filesystem.hpp"
#include "pwiz/utility/misc/Std.hpp"
#include <boost/iostreams/filtering_stream.hpp>
#include <boost/iostreams/filter/gzip.hpp>
#include <boost/iostreams/device/file_descriptor.hpp>
#include <boost/iostreams/copy.hpp>

Go to the source code of this file.

Functions

void hackInMemoryTraData (TraData &td)
 
void test ()
 
int main (int argc, char *argv[])
 

Variables

ostream * os_ = 0
 
string filenameBase_ = "temp.TraDataFileTest"
 

Function Documentation

§ hackInMemoryTraData()

void hackInMemoryTraData ( TraData td)

Definition at line 47 of file TraDataFileTest.cpp.

References pwiz::tradata::TraData::softwarePtrs.

Referenced by test().

48 {
49  // remove metadata ptrs appended on read
50  //vector<SourceFilePtr>& sfs = msd.fileDescription.sourceFilePtrs;
51  //if (!sfs.empty()) sfs.erase(sfs.end()-1);
52  vector<SoftwarePtr>& sws = td.softwarePtrs;
53  if (!sws.empty()) sws.erase(sws.end()-1);
54 }
std::vector< SoftwarePtr > softwarePtrs
List of software packages used in the generation of one of more transitions described in the document...
Definition: TraData.hpp:369

§ test()

void test ( )

Definition at line 56 of file TraDataFileTest.cpp.

References diff(), filename1, filenameBase_, hackInMemoryTraData(), pwiz::identdata::examples::initializeTiny(), os_, unit_assert, pwiz::identdata::IO::write(), and pwiz::tradata::TraDataFile::write().

Referenced by main().

57 {
58  TraDataFile::WriteConfig writeConfig;
59 
60  if (os_) *os_ << "test()\n " << writeConfig << endl;
61 
62  string filename1 = filenameBase_ + ".1";
63  string filename2 = filenameBase_ + ".2";
64 
65  {
66  // create TraData object in memory
67  TraData tiny;
69 
70  // write to file #1 (static)
71  TraDataFile::write(tiny, filename1, writeConfig);
72 
73  // read back into an TraDataFile object
74  TraDataFile td1(filename1);
76 
77  // compare
79  if (diff && os_) *os_ << diff << endl;
80  unit_assert(!diff);
81 
82  // write to file #2 (member)
83  td1.write(filename2, writeConfig);
84 
85  // read back into another TraDataFile object
86  TraDataFile td2(filename2);
88 
89  // compare
90  diff(tiny, td2);
91  if (diff && os_) *os_ << diff << endl;
92  unit_assert(!diff);
93 
94  // now give the gzip read a workout
95  bio::filtering_istream tinyGZ(bio::gzip_compressor() | bio::file_descriptor_source(filename1));
96  bio::copy(tinyGZ, bio::file_descriptor_sink(filename1+".gz", ios::out|ios::binary));
97 
98  TraDataFile td3(filename1);
100 
101  // compare
102  diff(tiny, td3);
103  if (diff && os_) *os_ << diff << endl;
104  unit_assert(!diff);
105  }
106 
107  // remove temp files
108  boost::filesystem::remove(filename1);
109  boost::filesystem::remove(filename2);
110  boost::filesystem::remove(filename1 + ".gz");
111 }
Calculate diffs of objects in a ProteoWizard data model hierarchy.
Definition: diff_std.hpp:142
string filenameBase_
string filename1
ostream * os_
void diff(const string &filename1, const string &filename2)
TraData object plus file I/O.
Definition: TraDataFile.hpp:37
PWIZ_API_DECL void write(minimxml::XMLWriter &writer, const CV &cv)
void hackInMemoryTraData(TraData &td)
PWIZ_API_DECL void initializeTiny(IdentData &mzid)
configuration for write()
Definition: TraDataFile.hpp:48
#define unit_assert(x)
Definition: unit.hpp:85

§ main()

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

Definition at line 114 of file TraDataFileTest.cpp.

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

115 {
116  TEST_PROLOG(argc, argv)
117 
118  try
119  {
120  if (argc>1 && !strcmp(argv[1],"-v")) os_ = &cout;
121  test();
122  }
123  catch (exception& e)
124  {
125  TEST_FAILED(e.what())
126  }
127  catch (...)
128  {
129  TEST_FAILED("Caught unknown exception.")
130  }
131 
133 }
#define TEST_EPILOG
Definition: unit.hpp:182
ostream * os_
void test()
#define TEST_FAILED(x)
Definition: unit.hpp:176
#define TEST_PROLOG(argc, argv)
Definition: unit.hpp:174

Variable Documentation

§ os_

ostream* os_ = 0

Definition at line 42 of file TraDataFileTest.cpp.

Referenced by main(), and test().

§ filenameBase_

string filenameBase_ = "temp.TraDataFileTest"

Definition at line 45 of file TraDataFileTest.cpp.

Referenced by test().