public function testZipWith()
{
$sum = function ($x, $y) {
return $x + $y;
};
$sum3 = function ($x, $y, $z) {
return $x + $y + $z;
};
$this->assertEquals([2, 4, 6], zipWith($sum, [1, 2, 3], [1, 2, 3]));
$this->assertEquals([3, 6, 9], zipWith($sum3, [1, 2, 3], [1, 2, 3], [1, 2, 3]));
$this->assertEquals([3, 6, 9], call_user_func(zipWith, $sum3, [1, 2, 3], [1, 2, 3], [1, 2, 3]));
$this->assertEquals('\\nspl\\a\\zipWith', zipWith);
}