ProteoWizard
Functions | Variables
NoiseTest.cpp File Reference
#include "Noise.hpp"
#include "pwiz/utility/misc/unit.hpp"
#include <boost/random.hpp>
#include "pwiz/utility/misc/Std.hpp"
#include <cstring>

Go to the source code of this file.

Functions

void generateNoise ()
 
void test_2Pass_NoSignal ()
 
void test_2Pass ()
 
void test_pvalue ()
 
void test ()
 
int main (int argc, char *argv[])
 

Variables

ostream * os_ = 0
 
double testNoise_ []
 

Function Documentation

§ generateNoise()

void generateNoise ( )

Definition at line 39 of file NoiseTest.cpp.

40 {
41  boost::mt19937 rng;
42  boost::normal_distribution<> normal(10, 1);
43  boost::variate_generator<boost::mt19937&, boost::normal_distribution<> > generator(rng, normal);
44 
45  for (int i=0; i<100; i++)
46  {
47  cout << i << ", " << generator() << ", ";
48  if (i%10 == 9) cout << endl;
49  }
50 }

§ test_2Pass_NoSignal()

void test_2Pass_NoSignal ( )

Definition at line 68 of file NoiseTest.cpp.

References pwiz::analysis::NoiseCalculator_2Pass::calculateNoise(), epsilon, pwiz::analysis::Noise::mean, os_, pwiz::analysis::Noise::standardDeviation, testNoise_, unit_assert_equal, and pwiz::analysis::NoiseCalculator_2Pass::Config::zValueCutoff.

Referenced by test().

69 {
71  config.zValueCutoff = 10; // high value -> nothing is excluded
72 
73  NoiseCalculator_2Pass noiseCalculator(config);
74 
75  OrderedPairContainerRef data(testNoise_, testNoise_+sizeof(testNoise_)/sizeof(double));
76  Noise noise = noiseCalculator.calculateNoise(data);
77 
78  if (os_)
79  *os_ << "noise ~ N(" << noise.mean << "," << noise.standardDeviation << ")\n";
80 
81  const double epsilon = .2;
82  unit_assert_equal(noise.mean, 10, epsilon);
83  unit_assert_equal(noise.standardDeviation, 1, epsilon);
84 }
double testNoise_[]
Definition: NoiseTest.cpp:53
double standardDeviation
Definition: Noise.hpp:39
const double epsilon
Definition: DiffTest.cpp:41
#define unit_assert_equal(x, y, epsilon)
Definition: unit.hpp:99
ostream * os_
Definition: NoiseTest.cpp:36
wrapper class for accessing contiguous data as a container of OrderedPairs; note that it does not own...
Definition: OrderedPair.hpp:83

§ test_2Pass()

void test_2Pass ( )

Definition at line 87 of file NoiseTest.cpp.

References pwiz::analysis::NoiseCalculator_2Pass::calculateNoise(), epsilon, pwiz::analysis::Noise::mean, os_, pwiz::analysis::Noise::standardDeviation, testNoise_, and unit_assert_equal.

Referenced by test().

88 {
89  NoiseCalculator_2Pass noiseCalculator;
90 
91  vector<double> data;
92  copy(testNoise_, testNoise_+sizeof(testNoise_)/sizeof(double), back_inserter(data));
93 
94  // add spikes
95  data[51] += 100;
96  data[101] += 100;
97  data[151] += 100;
98 
99  Noise noise = noiseCalculator.calculateNoise(data);
100 
101  if (os_)
102  *os_ << "noise ~ N(" << noise.mean << "," << noise.standardDeviation << ")\n";
103 
104  const double epsilon = .2;
105  unit_assert_equal(noise.mean, 10, epsilon);
106  unit_assert_equal(noise.standardDeviation, 1, epsilon);
107 }
double testNoise_[]
Definition: NoiseTest.cpp:53
double standardDeviation
Definition: Noise.hpp:39
const double epsilon
Definition: DiffTest.cpp:41
#define unit_assert_equal(x, y, epsilon)
Definition: unit.hpp:99
ostream * os_
Definition: NoiseTest.cpp:36
virtual Noise calculateNoise(const math::OrderedPairContainerRef &pairs) const

§ test_pvalue()

void test_pvalue ( )

Definition at line 110 of file NoiseTest.cpp.

References epsilon, pwiz::analysis::Noise::pvalue(), and unit_assert_equal.

Referenced by test().

111 {
112  Noise noise(0,1);
113  const double epsilon = .0005;
114  unit_assert_equal(noise.pvalue(1), .159, epsilon);
115  unit_assert_equal(noise.pvalue(2), .023, epsilon);
116  unit_assert_equal(noise.pvalue(3), .001, epsilon);
117 }
const double epsilon
Definition: DiffTest.cpp:41
#define unit_assert_equal(x, y, epsilon)
Definition: unit.hpp:99

§ test()

void test ( )

Definition at line 120 of file NoiseTest.cpp.

References test_2Pass(), test_2Pass_NoSignal(), and test_pvalue().

Referenced by main().

121 {
123  test_2Pass();
124  test_pvalue();
125 }
void test_pvalue()
Definition: NoiseTest.cpp:110
void test_2Pass()
Definition: NoiseTest.cpp:87
void test_2Pass_NoSignal()
Definition: NoiseTest.cpp:68

§ main()

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

Definition at line 128 of file NoiseTest.cpp.

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

129 {
130  TEST_PROLOG(argc, argv)
131 
132  try
133  {
134  if (argc>1 && !strcmp(argv[1],"-v")) os_ = &cout;
135  test();
136  }
137  catch (exception& e)
138  {
139  TEST_FAILED(e.what())
140  }
141  catch (...)
142  {
143  TEST_FAILED("Caught unknown exception.")
144  }
145 
147 }
void test()
Definition: NoiseTest.cpp:120
#define TEST_EPILOG
Definition: unit.hpp:182
ostream * os_
Definition: NoiseTest.cpp:36
#define TEST_FAILED(x)
Definition: unit.hpp:176
#define TEST_PROLOG(argc, argv)
Definition: unit.hpp:174

Variable Documentation

§ os_

ostream* os_ = 0

Definition at line 36 of file NoiseTest.cpp.

Referenced by main(), test_2Pass(), and test_2Pass_NoSignal().

§ testNoise_

double testNoise_[]
Initial value:
=
{
0, 10.2134, 1, 9.50442, 2, 11.5754, 3, 8.9408, 4, 11.8393, 5, 11.8858, 6, 10.6047, 7, 9.63402, 8, 9.42174, 9, 9.36562,
10, 11.0297, 11, 10.7241, 12, 9.88493, 13, 10.6358, 14, 6.99061, 15, 9.08698, 16, 13.2407, 17, 9.11359, 18, 12.5566, 19, 9.42665,
20, 10.8823, 21, 11.3452, 22, 12.7695, 23, 9.48237, 24, 10.4651, 25, 9.87172, 26, 8.21869, 27, 10.1641, 28, 10.2608, 29, 9.20198,
30, 10.0615, 31, 10.0762, 32, 9.56936, 33, 10.2306, 34, 11.2333, 35, 9.27828, 36, 10.5381, 37, 8.01883, 38, 11.1455, 39, 9.70199,
40, 9.00168, 41, 8.51621, 42, 10.9232, 43, 10.2107, 44, 10.4026, 45, 9.43944, 46, 11.3842, 47, 9.39058, 48, 9.56328, 49, 9.09075,
50, 10.0799, 51, 8.35904, 52, 9.95105, 53, 8.86625, 54, 9.18384, 55, 10.6562, 56, 9.65414, 57, 9.48778, 58, 10.4029, 59, 10.746,
60, 9.51285, 61, 8.28112, 62, 10.8551, 63, 10.1733, 64, 9.65835, 65, 12.0004, 66, 10.5445, 67, 10.1626, 68, 12.6242, 69, 11.8353,
70, 10.8273, 71, 8.33673, 72, 9.82429, 73, 9.51358, 74, 9.30484, 75, 11.55, 76, 11.1051, 77, 9.64263, 78, 11.4417, 79, 10.317,
80, 9.51919, 81, 10.1948, 82, 9.49461, 83, 10.4654, 84, 10.0316, 85, 9.67727, 86, 10.0763, 87, 9.73844, 88, 10.396, 89, 10.9456,
90, 8.89552, 91, 10.0711, 92, 8.91056, 93, 10.3877, 94, 8.92218, 95, 8.58656, 96, 9.43114, 97, 7.82059, 98, 10.0535, 99, 8.1854
}

Definition at line 53 of file NoiseTest.cpp.

Referenced by test_2Pass(), and test_2Pass_NoSignal().