public function testAll() { // from js $this->assertTrue(__::all(array(), __::identity()), 'the empty set'); $this->assertTrue(__::all(array(true, true, true), __::identity()), 'all true values'); $this->assertFalse(__::all(array(true, false, true), __::identity()), 'one false value'); $this->assertTrue(__::all(array(0, 10, 28), function ($num) { return $num % 2 === 0; }), 'even numbers'); $this->assertFalse(__::all(array(0, 11, 28), function ($num) { return $num % 2 === 0; }), 'odd numbers'); // extra $this->assertTrue(__::all(array())); $this->assertFalse(__::all(array(null))); $this->assertFalse(__::all(0)); $this->assertFalse(__::all('0')); $this->assertFalse(__::all(array(0, 1))); $this->assertTrue(__::all(array(1))); $this->assertTrue(__::all(array('1'))); $this->assertTrue(__::all(array(1, 2, 3, 4))); $this->assertTrue(__(array(1, 2, 3, 4))->all(), 'works with OO-style calls'); $this->assertTrue(__(array(true, true, true))->all(__::identity())); $this->assertTrue(__(array(true, true, true))->every(__::identity()), 'aliased as "every"'); // docs $this->assertFalse(__::all(array(1, 2, 3, 4), function ($num) { return $num % 2 === 0; })); $this->assertTrue(__::all(array(1, 2, 3, 4), function ($num) { return $num < 5; })); }