17 #include <utl/PolynomialInterpolation.h>
19 #include <tst/Verify.h>
20 #include <cppunit/extensions/HelperMacros.h>
33 CPPUNIT_TEST(testSimple);
34 CPPUNIT_TEST_SUITE_END();
40 fX.push_back(-1); fY.push_back(0);
41 fX.push_back(0); fY.push_back(1);
42 fX.push_back(1); fY.push_back(0);
43 fX.push_back(2); fY.push_back(2);
44 fX.push_back(3); fY.push_back(-1);
52 const double np = 100;
53 for (
unsigned int n = 0; n <= fX.size(); ++n)
54 for (
int i = 0; i <= np; ++i) {
55 const double x = -2 + i*6./np;
57 const double expected = ExpectedValue(n, x);
58 CPPUNIT_ASSERT(Verify<CloseTo>(y, expected));
61 CPPUNIT_ASSERT(Verify<CloseTo>(y, expected));
82 return 1-5*x/6-
Sqr(x)+5*
pow(x, 3)/6;
84 return 1-23*x/12-11*
Sqr(x)/24+23*
pow(x, 3)/12-13*
pow(x, 4)/24;
86 cerr <<
"ERROR!" << endl;
constexpr T Sqr(const T &x)
double pow(const double x, const unsigned int i)
CPPUNIT_TEST_SUITE_REGISTRATION(testAiresShowerFile)
double PolynomialInterpolation(const unsigned int n, const double px[], const double py[], const double x, double &dy)
Perform polynomial interpolation or extrapolation.
double ExpectedValue(const unsigned int n, const double x)