ProteoWizard
Functions | Variables
MSDataMergerTest.cpp File Reference
#include "pwiz/utility/misc/unit.hpp"
#include "MSDataMerger.hpp"
#include "examples.hpp"
#include "TextWriter.hpp"
#include "pwiz/utility/misc/Std.hpp"

Go to the source code of this file.

Functions

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

Variables

ostream * os_ = 0

Function Documentation

void test ( )

Definition at line 36 of file MSDataMergerTest.cpp.

References pwiz::msdata::FileDescription::fileContent, pwiz::msdata::MSData::fileDescription, pwiz::data::ParamContainer::hasCVParam(), pwiz::msdata::SpectrumIdentity::id, pwiz::msdata::Run::id, pwiz::msdata::MSData::id, pwiz::msdata::SpectrumIdentity::index, pwiz::identdata::examples::initializeTiny(), boost::lexical_cast(), MS_centroid_spectrum, MS_MSn_spectrum, os_, pwiz::msdata::MSData::run, pwiz::msdata::SpectrumList::size(), pwiz::msdata::FileDescription::sourceFilePtrs, pwiz::msdata::SpectrumList::spectrum(), pwiz::msdata::SpectrumList::spectrumIdentity(), pwiz::msdata::Run::spectrumListPtr, and unit_assert.

{
MSData tinyReference;
examples::initializeTiny(tinyReference);
const size_t tinyCopyCount = 3;
vector<MSDataPtr> tinyExamples;
for (size_t i=0; i < tinyCopyCount; ++i)
{
tinyExamples.push_back(MSDataPtr(new MSData));
MSData& msd = *tinyExamples.back();
msd.id = msd.run.id = "tiny" + lexical_cast<string>(i);
}
MSDataMerger tinyMerged(tinyExamples);
if (os_)
{
TextWriter writer(*os_);
writer(tinyMerged);
}
unit_assert(tinyMerged.id == "tiny"); // longest common prefix of tiny[012]
unit_assert(tinyMerged.run.id == "tiny"); // longest common prefix of tiny[012]
unit_assert(tinyMerged.fileDescription.fileContent.hasCVParam(MS_MSn_spectrum));
unit_assert(tinyMerged.fileDescription.fileContent.hasCVParam(MS_centroid_spectrum));
unit_assert(tinyMerged.fileDescription.sourceFilePtrs.size() == tinyReference.fileDescription.sourceFilePtrs.size() * tinyCopyCount);
for (size_t i=0; i < tinyCopyCount; ++i)
for (size_t j=0; j < tinyReference.fileDescription.sourceFilePtrs.size(); ++j)
{
string expectedPrefix = "tiny" + lexical_cast<string>(i) + "_";
size_t expectedIndex = j + (i * tinyReference.fileDescription.sourceFilePtrs.size());
unit_assert(tinyMerged.fileDescription.sourceFilePtrs[expectedIndex]->id == expectedPrefix + tinyReference.fileDescription.sourceFilePtrs[j]->id);
}
//unit_assert(tinyMerged.fileDescription.contacts.size() == tinyReference.fileDescription.contacts.size());
SpectrumList& sl = *tinyMerged.run.spectrumListPtr;
unit_assert(sl.size() == 3 * tinyReference.run.spectrumListPtr->size());
for (size_t index=0; index < sl.size(); ++index)
{
size_t referenceIndex = index % tinyReference.run.spectrumListPtr->size();
const SpectrumIdentity& identity = sl.spectrumIdentity(index);
const SpectrumIdentity& referenceIdentity = tinyReference.run.spectrumListPtr->spectrumIdentity(referenceIndex);
unit_assert(identity.index == index);
unit_assert(identity.id == referenceIdentity.id);
SpectrumPtr spectrum = sl.spectrum(index);
SpectrumPtr referenceSpectrum = tinyReference.run.spectrumListPtr->spectrum(referenceIndex);
unit_assert(spectrum->index == index);
unit_assert(spectrum->id == referenceSpectrum->id);
vector<SourceFilePtr>::const_iterator foundSourceFile = find(tinyMerged.fileDescription.sourceFilePtrs.begin(),
tinyMerged.fileDescription.sourceFilePtrs.end(),
spectrum->sourceFilePtr);
unit_assert(foundSourceFile != tinyMerged.fileDescription.sourceFilePtrs.end());
}
}
int main ( int  argc,
char *  argv[] 
)

Definition at line 104 of file MSDataMergerTest.cpp.

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

{
TEST_PROLOG(argc, argv)
try
{
if (argc>1 && !strcmp(argv[1],"-v")) os_ = &cout;
test();
}
catch (exception& e)
{
TEST_FAILED(e.what())
}
catch (...)
{
TEST_FAILED("Caught unknown exception.")
}
}

Variable Documentation

ostream* os_ = 0

Definition at line 33 of file MSDataMergerTest.cpp.