public function testPolynomialAgrees()
{
$points = [[0, 0], [1, 5], [3, 2], [7, 10], [10, -4]];
$roundoff = 1.0E-7;
// round off error
// Assure p(0) = 0 agrees with input [0, 0]
$expected = 0;
$target = 0;
$actual = NevillesMethod::interpolate($target, $points);
$this->assertEquals($expected, $actual, '', +$roundoff);
// Assure p(1) = 5 agrees with input [1, 5]
$expected = 5;
$target = 1;
$actual = NevillesMethod::interpolate($target, $points);
$this->assertEquals($expected, $actual, '', +$roundoff);
// Assure p(3) = 2 agrees with input [3, 2]
$expected = 2;
$target = 3;
$actual = NevillesMethod::interpolate($target, $points);
$this->assertEquals($expected, $actual, '', +$roundoff);
// Assure p(7) = 10 agrees with input [7, 10]
$expected = 10;
$target = 7;
$actual = NevillesMethod::interpolate($target, $points);
$this->assertEquals($expected, $actual, '', +$roundoff);
// Assure p(10) = -4 agrees with input [10, -4]
$expected = -4;
$target = 10;
$actual = NevillesMethod::interpolate($target, $points);
$this->assertEquals($expected, $actual, '', +$roundoff);
}