ProteoWizard
Classes | Functions | Variables
MSDataAnalyzerTest.cpp File Reference
#include "MSDataAnalyzer.hpp"
#include "pwiz/utility/misc/unit.hpp"
#include "pwiz/utility/misc/Std.hpp"
#include <cstring>

Go to the source code of this file.

Classes

struct  SimpleAnalyzer
 
struct  SimpleProgressCallback
 
struct  CancelProgressCallback
 

Functions

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

Variables

ostream * os_ = 0
 

Function Documentation

void test ( )

Definition at line 109 of file MSDataAnalyzerTest.cpp.

References anal(), pwiz::analysis::MSDataAnalyzerDriver::analyze(), SimpleAnalyzer::closed, SimpleProgressCallback::count, CancelProgressCallback::count, SimpleProgressCallback::iterationsPerCallback(), SimpleAnalyzer::opened, os_, pwiz::msdata::MSData::run, pwiz::msdata::Run::spectrumListPtr, Status_Ok, unit_assert, and SimpleAnalyzer::updateCount.

Referenced by main().

110 {
111  if (os_) *os_ << "test()\n";
112 
113  // set up analyzers
114 
115  MSDataAnalyzerContainer analyzers;
116  analyzers.push_back(MSDataAnalyzerPtr(new SimpleAnalyzer(23))); // request index 23
117  analyzers.push_back(MSDataAnalyzerPtr(new SimpleAnalyzer(17))); // request index 17
118 
119  unit_assert(analyzers.size() == 2);
120  for (MSDataAnalyzerContainer::const_iterator it=analyzers.begin(); it!=analyzers.end(); ++it)
121  {
122  const SimpleAnalyzer& anal = dynamic_cast<const SimpleAnalyzer&>(**it);
123  unit_assert(!anal.opened);
124  unit_assert(anal.updateCount == 0);
125  unit_assert(!anal.closed);
126  }
127 
128  // instantiate MSData object
129 
130  MSData dummy;
132  const int spectrumCount = 30;
133  for (int i=0; i<spectrumCount; i++)
134  {
135  sl->spectra.push_back(SpectrumPtr(new Spectrum));
136  sl->spectra.back()->index = i;
137  }
138  dummy.run.spectrumListPtr = sl;
139 
140  // run driver
141 
142  MSDataAnalyzerDriver driver(analyzers);
143  SimpleProgressCallback callback;
144  MSDataAnalyzerDriver::Status status = driver.analyze(dummy, &callback);
145 
147 
148  for (MSDataAnalyzerContainer::const_iterator it=analyzers.begin(); it!=analyzers.end(); ++it)
149  {
150  const SimpleAnalyzer& anal = dynamic_cast<const SimpleAnalyzer&>(**it);
151  unit_assert(anal.opened);
152  unit_assert(anal.updateCount == 1);
153  unit_assert(anal.closed);
154  }
155 
156  unit_assert(callback.count == spectrumCount/callback.iterationsPerCallback() + 1);
157 
158  // run driver again with cancel callback
159 
160  if (os_) *os_ << "testing cancel callback:\n";
161 
162  CancelProgressCallback cancelCallback;
163  status = driver.analyze(dummy, &cancelCallback);
164 
165  unit_assert(status == MSDataAnalyzerDriver::Status_Cancel);
166 
167  if (os_) *os_ << "cancelled!\n";
168 
169  for (MSDataAnalyzerContainer::const_iterator it=analyzers.begin(); it!=analyzers.end(); ++it)
170  {
171  const SimpleAnalyzer& anal = dynamic_cast<const SimpleAnalyzer&>(**it);
172  unit_assert(anal.opened);
173  unit_assert(anal.updateCount == 0);
174  unit_assert(!anal.closed);
175  }
176 
177  unit_assert(cancelCallback.count == 2);
178 }
virtual size_t iterationsPerCallback() const
Status_Ok
boost::shared_ptr< Spectrum > SpectrumPtr
Definition: MSData.hpp:569
boost::shared_ptr< MSDataAnalyzer > MSDataAnalyzerPtr
container of MSDataAnalyzer (composite pattern)
const char * anal(const CVParam &cvParam)
Run run
a run in mzML should correspond to a single, consecutive and coherent set of scans on an instrument...
Definition: MSData.hpp:882
event generator for MSDataAnalyzer
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
ostream * os_
boost::shared_ptr< SpectrumListSimple > SpectrumListSimplePtr
Definition: MSData.hpp:727
The structure that captures the generation of a peak list (including the underlying acquisitions) ...
Definition: MSData.hpp:504
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
int main ( int  argc,
char *  argv[] 
)

Definition at line 181 of file MSDataAnalyzerTest.cpp.

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

182 {
183  TEST_PROLOG(argc, argv)
184 
185  try
186  {
187  if (argc>1 && !strcmp(argv[1],"-v")) os_ = &cout;
188  test();
189  }
190  catch (exception& e)
191  {
192  TEST_FAILED(e.what())
193  }
194  catch (...)
195  {
196  TEST_FAILED("Caught unknown exception.")
197  }
198 
200 }
#define TEST_EPILOG
Definition: unit.hpp:173
void test()
#define TEST_FAILED(x)
Definition: unit.hpp:167
ostream * os_
#define TEST_PROLOG(argc, argv)
Definition: unit.hpp:165

Variable Documentation

ostream* os_ = 0