30#include <boost/filesystem/operations.hpp>
42 ifstream file1(
filename1.c_str()), file2(filename2.c_str());
44 while (getline(file1, line1) && getline(file2, line2))
46 if (
os_) *
os_ <<
"diff " <<
filename1 <<
" " << filename2 <<
": success\n";
58 for (
int i=-5; i<=5; i++)
78 string filename2 =
"FrequencyDataTest.output2.txt";
93 if (
os_) *
os_ <<
"Writing " << filename2 << endl;
94 fd2.
write(filename2, FrequencyData::Text);
98 string filename3 =
"FrequencyDataTest.output3.txt";
100 if (
os_) *
os_ <<
"Writing " << filename3 << endl;
101 fd3.
write(filename3, FrequencyData::Text);
103 ofstream os(filename3.c_str(), ios::app);
104 fd4.
write(os, FrequencyData::Text);
114 string filename4a =
"FrequencyDataTest.output4a.txt";
115 if (
os_) *
os_ <<
"Writing " << filename4a << endl;
116 fd.
write(filename4a, FrequencyData::Text);
117 string filenameBinary1 =
"FrequencyDataTest.output1.cfd";
118 if (
os_) *
os_ <<
"Writing " << filenameBinary1 << endl;
119 fd.
write(filenameBinary1);
130 string filename4b =
"FrequencyDataTest.output4b.txt";
131 if (
os_) *
os_ <<
"Writing " << filename4b << endl;
132 fd5.
write(filename4b, FrequencyData::Text);
133 diff(filename4a, filename4b);
140 string filename5 =
"FrequencyDataTest.output5.txt";
141 if (
os_) *
os_ <<
"Writing " << filename5 << endl;
142 ofstream os5(filename5.c_str());
143 window1.
write(os5, FrequencyData::Text);
144 window2.
write(os5, FrequencyData::Text);
145 window3.
write(os5, FrequencyData::Text);
205 if (
os_) *
os_ <<
"Deleting FrequencyDataTest.output*.txt\n";
206 vector<bfs::path> filepaths;
208 for (
size_t i=0; i < filepaths.size(); ++i)
209 boost::filesystem::remove(filepaths[i]);
215 if (
os_) *
os_ <<
"testNoiseFloorVarianceCalculation()\n";
216 if (
os_) *
os_ << setprecision(10);
220 string filename =
"FrequencyDataTest.cfd.temp.txt";
221 ofstream temp(filename.c_str());
226 boost::filesystem::remove(filename);
229 if (
os_) *
os_ <<
"result: " << result << endl;
242 if (
os_) *
os_ <<
"result2: " << result2 << endl;
247int main(
int argc,
char* argv[])
253 if (argc>1 && !strcmp(argv[1],
"-v"))
256 if (
os_) *
os_ <<
"FrequencyDataTest\n";
265 if (
os_) *
os_ <<
"success\n";
int main(int argc, char *argv[])
void diff(const string &filename1, const string &filename2)
void testNoiseFloorVarianceCalculation()
RawMassDatum sampleMassData_[]
const unsigned int sampleMassDataSize_
const char * sampleFrequencyData_
Class for binary storage of complex frequency data.
double observationDuration() const
const_iterator max() const
returns an iterator to FrequencyDatum with highest magnitude
double meanSquare() const
container::const_iterator const_iterator
void transform(double shift, std::complex< double > scale)
transform all underlying data: (x,y) -> (x+shift,y*scale)
double sumSquares() const
std::complex< double > scale() const
return current scale of data (compared to original)
void write(const std::string &filename, IOMode mode=Binary) const
const_iterator findNearest(double frequency) const
Finds the FrequencyDatum nearest the desired frequency.
double shift() const
return current shift of data (compared to original)
double observationDurationEstimatedFromData() const
calculation of the observation duration from the data
double cutoffNoiseFloor() const
special calculation of noise floor for data with zero holes, e.g.
double retentionTime() const
const CalibrationParameters & calibrationParameters() const
void analyze()
recache statistics calculations after any direct data changes via non-const data()
const container & data() const
const access to underlying data
std::vector< FrequencyDatum > container
void normalize()
normalize by transform( -max.x, 1/abs(max.y) )
double noiseFloor() const
SampleDatum< double, std::complex< double > > FrequencyDatum
PWIZ_API_DECL int expand_pathmask(const bfs::path &pathmask, vector< bfs::path > &matchingPaths)
expands (aka globs) a pathmask to zero or more matching paths and returns the number of matching path...
static CalibrationParameters thermo_FT()
double frequency(double mz) const
#define unit_assert_equal(x, y, epsilon)
#define TEST_PROLOG(argc, argv)