public function testTakeWhile()
{
$this->assertEquals([1, 2, 3], takeWhile('is_numeric', [1, 2, 3, 'a', 'b', 'c', 4, 5, 6]));
$this->assertEquals([1, 2, 3], takeWhile(rpartial(lt, 4), [1, 2, 3, 4, 5, 6, 7, 8, 9]));
$this->assertEquals([1, 2, 3], takeWhile(rpartial(lt, 4), new \ArrayIterator([1, 2, 3, 4, 5, 6, 7, 8, 9])));
$this->assertEquals([], takeWhile(rpartial(lt, 4), []));
$this->assertEquals([1, 2, 3], call_user_func(takeWhile, rpartial(lt, 4), [1, 2, 3, 4, 5, 6, 7, 8, 9]));
$this->assertEquals('\\nspl\\a\\takeWhile', takeWhile);
}