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.

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

Variable Documentation

ostream* os_ = 0

Definition at line 34 of file MSDataAnalyzerTest.cpp.