public function testTakeWhile() { $list = [1, 2, 3, 4, 5, 6, 7, 8, 9]; $lessThanFive = function ($value) { return $value < 5 ? TRUE : FALSE; }; $this->assertEquals([1, 2, 3, 4], P::toArray(P::takeWhile($lessThanFive, $list))); $listAssoc = ['a' => 1, 'b' => '2', 'c' => 7]; $this->assertEquals(['a' => 1, 'b' => '2'], P::toArray(P::takeWhile($lessThanFive, $listAssoc))); $keyNotC = function ($value, $key) { return $key === 'c' ? FALSE : TRUE; }; $this->assertEquals(['a' => 1, 'b' => '2'], P::toArray(P::takeWhile($keyNotC, $listAssoc))); }