public function testSum()
{
// f(x) = x⁴ + 8x³ -13x² -92x + 96
$f = function ($x) {
return $x ** 4 + 8 * $x ** 3 - 13 * $x ** 2 - 92 * $x + 96;
};
// g(x) = x³ - 12x² + 72x + 27
$g = function ($x) {
return $x ** 3 - 12 * $x ** 2 + 72 * $x + 27;
};
// Σ(x) = f(x) + g(x) = x⁴ + 9x³ -25x² -20x + 123
$sum = Arithmetic::add($f, $g);
// Σ(0) = 123
$expected = 123;
$x = $sum(0);
$this->assertEquals($expected, $x);
// Σ(5) = 1148
$expected = 1148;
$x = $sum(5);
$this->assertEquals($expected, $x);
// Σ(-5) = -902
$expected = -902;
$x = $sum(-5);
$this->assertEquals($expected, $x);
// Σ(100) = 108748123
$expected = 108748123;
$x = $sum(100);
$this->assertEquals($expected, $x);
// Σ(-100) = 90752123
$expected = 90752123;
$x = $sum(-100);
$this->assertEquals($expected, $x);
}