ProteoWizard
Functions | Variables
SpectrumList_IonMobility_Test.cpp File Reference
#include "pwiz/utility/misc/unit.hpp"
#include "pwiz/utility/misc/Std.hpp"
#include "pwiz/utility/misc/almost_equal.hpp"
#include "pwiz/data/msdata/MSDataFile.hpp"
#include "pwiz/data/vendor_readers/ExtendedReaderList.hpp"
#include "SpectrumList_IonMobility.hpp"
#include "SpectrumList_Filter.hpp"
#include "boost/foreach_field.hpp"

Go to the source code of this file.

Functions

void test (const string &filepath, const ReaderList &readerList, int &testCount)
 
void parseArgs (const vector< string > &args, vector< string > &rawpaths)
 
int main (int argc, char *argv[])
 

Variables

ostream * os_ = 0
 
const int EXPECTED_TEST_COUNT = 4
 

Function Documentation

◆ test()

void test ( const string &  filepath,
const ReaderList readerList,
int &  testCount 
)

Definition at line 40 of file SpectrumList_IonMobility_Test.cpp.

41{
42 MSDataFile msd(filepath, &readerList);
43 const double EPSILON = 1e-4;
44 ostringstream failedTests;
45 SpectrumList_IonMobility slim(msd.run.spectrumListPtr);
46
48 SpectrumList_IonMobility slim2(slf);
49
50 unit_assert_to_stream(!slim.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::none), failedTests);
51
52 if (bal::ends_with(filepath, "ImsSynth_Chrom.d"))
53 {
54 unit_assert_to_stream(SpectrumList_IonMobility::IonMobilityUnits::drift_time_msec == slim.getIonMobilityUnits(), failedTests);
55 unit_assert_to_stream(slim.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::drift_time_msec), failedTests);
56 unit_assert_to_stream(!slim.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::inverse_reduced_ion_mobility_Vsec_per_cm2), failedTests);
57 unit_assert_equal_to_stream(242.55569, slim.ionMobilityToCCS(32.62, 922.01, 1), EPSILON, failedTests);
58 unit_assert_equal_to_stream(195.69509, slim.ionMobilityToCCS(25.78, 400.1755, 1), EPSILON, failedTests);
59 unit_assert_equal_to_stream(243.57694, slim.ionMobilityToCCS(31.55, 254.0593, 1), EPSILON, failedTests);
60 unit_assert_equal_to_stream(202.32441, slim.ionMobilityToCCS(26.98, 622.0291, 1), EPSILON, failedTests);
61 unit_assert_equal_to_stream(254.05743, slim.ionMobilityToCCS(33.92, 609.2808, 1), EPSILON, failedTests);
62 unit_assert_equal_to_stream(172.09947, slim.ionMobilityToCCS(22.38, 294.1601, 1), EPSILON, failedTests);
63
64 unit_assert_equal_to_stream(32.62, slim.ccsToIonMobility(242.55569, 922.01, 1), EPSILON, failedTests);
65 unit_assert_equal_to_stream(25.78, slim.ccsToIonMobility(195.69509, 400.1755, 1), EPSILON, failedTests);
66 unit_assert_equal_to_stream(31.55, slim.ccsToIonMobility(243.57694, 254.0593, 1), EPSILON, failedTests);
67 unit_assert_equal_to_stream(26.98, slim.ccsToIonMobility(202.32441, 622.0291, 1), EPSILON, failedTests);
68 unit_assert_equal_to_stream(33.92, slim.ccsToIonMobility(254.05743, 609.2808, 1), EPSILON, failedTests);
69 unit_assert_equal_to_stream(22.38, slim.ccsToIonMobility(172.09947, 294.1601, 1), EPSILON, failedTests);
70
71 unit_assert_to_stream(SpectrumList_IonMobility::IonMobilityUnits::drift_time_msec == slim2.getIonMobilityUnits(), failedTests);
72 unit_assert_to_stream(slim2.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::drift_time_msec), failedTests);
73 unit_assert_to_stream(!slim2.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::inverse_reduced_ion_mobility_Vsec_per_cm2), failedTests);
74 }
75 else if (bal::ends_with(filepath, "HDMSe_Short_noLM.raw"))
76 {
77 unit_assert_to_stream(SpectrumList_IonMobility::IonMobilityUnits::drift_time_msec == slim.getIonMobilityUnits(), failedTests);
78 unit_assert_to_stream(slim.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::drift_time_msec), failedTests);
79 unit_assert_to_stream(!slim.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::inverse_reduced_ion_mobility_Vsec_per_cm2), failedTests);
80 unit_assert_equal_to_stream(177.4365, slim.ionMobilityToCCS(3.1645, 336.18, 1), EPSILON, failedTests);
81 unit_assert_equal_to_stream(3.1645, slim.ccsToIonMobility(177.4365, 336.18, 1), EPSILON, failedTests);
82
83 /*unit_assert_equal_to_stream(179.48, slim.ionMobilityToCCS(3.2, 309.11, 1), EPSILON, failedTests);
84 unit_assert_equal_to_stream(158.09, slim.ionMobilityToCCS(2.71, 257.16, 1), EPSILON, failedTests);
85 unit_assert_equal_to_stream(202.56, slim.ionMobilityToCCS(3.77, 458.16, 1), EPSILON, failedTests);
86 unit_assert_equal_to_stream(173.46, slim.ionMobilityToCCS(3.11, 334.16, -1), EPSILON, failedTests);*/
87
88 unit_assert_to_stream(SpectrumList_IonMobility::IonMobilityUnits::drift_time_msec == slim2.getIonMobilityUnits(), failedTests);
89 unit_assert_to_stream(slim2.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::drift_time_msec), failedTests);
90 unit_assert_to_stream(!slim2.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::inverse_reduced_ion_mobility_Vsec_per_cm2), failedTests);
91 }
92 else if (bal::ends_with(filepath, "MSe_Short.raw"))
93 {
94 unit_assert_to_stream(!slim.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::drift_time_msec), failedTests);
95 unit_assert_to_stream(!slim.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::inverse_reduced_ion_mobility_Vsec_per_cm2), failedTests);
96 }
97 else if (bal::ends_with(filepath, "HDMSe_Short_noLM.mzML"))
98 {
99 unit_assert_operator_equal_to_stream((int) SpectrumList_IonMobility::IonMobilityUnits::drift_time_msec, (int) slim.getIonMobilityUnits(), failedTests);
100 unit_assert_to_stream(!slim.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::drift_time_msec), failedTests);
101 unit_assert_to_stream(!slim.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::inverse_reduced_ion_mobility_Vsec_per_cm2), failedTests);
102
103 unit_assert_operator_equal_to_stream((int) SpectrumList_IonMobility::IonMobilityUnits::drift_time_msec, (int) slim2.getIonMobilityUnits(), failedTests);
104 unit_assert_to_stream(!slim2.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::drift_time_msec), failedTests);
105 unit_assert_to_stream(!slim2.canConvertIonMobilityAndCCS(SpectrumList_IonMobility::IonMobilityUnits::inverse_reduced_ion_mobility_Vsec_per_cm2), failedTests);
106 }
107 else
108 throw runtime_error("Unhandled test file: " + filepath);
109
110 if (!failedTests.str().empty())
111 throw runtime_error(failedTests.str());
112
113 ++testCount;
114}
SpectrumList filter, for creating Spectrum sub-lists.
SpectrumList implementation that provides access to vendor-specific ion mobility functions.
a virtual container of integers, accessible via an iterator interface, stored as union of intervals
boost::shared_ptr< SpectrumList > SpectrumListPtr
Definition MSData.hpp:711
MSData object plus file I/O.
#define unit_assert_equal_to_stream(x, y, epsilon, os)
Definition unit.hpp:102
#define unit_assert_to_stream(x, os)
Definition unit.hpp:88
#define unit_assert_operator_equal_to_stream(expected, actual, os)
Definition unit.hpp:95

References pwiz::analysis::SpectrumList_IonMobility::canConvertIonMobilityAndCCS(), pwiz::analysis::SpectrumList_IonMobility::ccsToIonMobility(), pwiz::analysis::SpectrumList_IonMobility::getIonMobilityUnits(), pwiz::analysis::SpectrumList_IonMobility::ionMobilityToCCS(), pwiz::msdata::MSData::run, pwiz::msdata::Run::spectrumListPtr, unit_assert_equal_to_stream, unit_assert_operator_equal_to_stream, and unit_assert_to_stream.

◆ parseArgs()

void parseArgs ( const vector< string > &  args,
vector< string > &  rawpaths 
)

Definition at line 117 of file SpectrumList_IonMobility_Test.cpp.

118{
119 for (size_t i = 1; i < args.size(); ++i)
120 {
121 if (args[i] == "-v") os_ = &cout;
122 else if (bal::starts_with(args[i], "--")) continue;
123 else rawpaths.push_back(args[i]);
124 }
125}

References os_.

Referenced by main().

◆ main()

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

Definition at line 128 of file SpectrumList_IonMobility_Test.cpp.

129{
130 TEST_PROLOG(argc, argv)
131
132 try
133 {
134 vector<string> args(argv, argv+argc);
135 vector<string> rawpaths;
136 parseArgs(args, rawpaths);
137
138 ExtendedReaderList readerList;
139 int testCount = 0;
140
141 for (const string& filepath : rawpaths)
142 {
143 test(filepath, readerList, testCount);
144 }
145
147 }
148 catch (exception& e)
149 {
150 TEST_FAILED(e.what())
151 }
152 catch (...)
153 {
154 TEST_FAILED("Caught unknown exception.")
155 }
156
158}
const int EXPECTED_TEST_COUNT
void parseArgs(const vector< string > &args, vector< string > &rawpaths)
default ReaderList, extended to include vendor readers
#define TEST_EPILOG
Definition unit.hpp:183
#define TEST_FAILED(x)
Definition unit.hpp:177
#define unit_assert_operator_equal(expected, actual)
Definition unit.hpp:92
#define TEST_PROLOG(argc, argv)
Definition unit.hpp:175

References EXPECTED_TEST_COUNT, parseArgs(), test(), TEST_EPILOG, TEST_FAILED, TEST_PROLOG, and unit_assert_operator_equal.

Variable Documentation

◆ os_

ostream* os_ = 0

Definition at line 36 of file SpectrumList_IonMobility_Test.cpp.

Referenced by parseArgs().

◆ EXPECTED_TEST_COUNT

const int EXPECTED_TEST_COUNT = 4

Definition at line 38 of file SpectrumList_IonMobility_Test.cpp.

Referenced by main().