public function testRest() { $numbers = array(1, 2, 3, 4); // from js $this->assertEquals(array(2, 3, 4), __u::rest($numbers), 'working rest()'); $this->assertEquals(array(1, 2, 3, 4), __u::rest($numbers, 0), 'working rest(0)'); $this->assertEquals(array(3, 4), __u::rest($numbers, 2), 'rest can take an index'); $func = function () { return __u(func_get_args())->tail(); }; $result = $func(1, 2, 3, 4); $this->assertEquals(array(2, 3, 4), $result, 'aliased as tail and works on arguments'); $result = __u::map(array(array(1, 2, 3), array(1, 2, 3)), function ($vals) { return __u::rest($vals); }); $this->assertEquals('2,3,2,3', join(',', __u::flatten($result)), 'works well with __::map'); // extra $this->assertEquals(array('b', 'c'), __u::tail(array('a', 'b', 'c'))); // docs $this->assertEquals(array(4, 3, 2, 1), __u::rest(array(5, 4, 3, 2, 1))); }