/** * @test */ public function fluent() { $arr = ['PushEvent' => 5, 'CreateEvent' => 4, 'IssuesEvent' => 3, 'CommitCommentEvent' => 2]; $scores = new Collection($arr); $x = $scores->filter(function ($a) { return $a >= 4; })->map(function ($a) { return $a + 1; })->each(function ($val, $key) use($scores) { $this->assertEquals($scores[$key] + 1, $val); })->reduce(function ($acc, $x) { return $acc + $x; }, 0); $this->assertEquals(11, $x); $this->assertEquals($arr, $scores->toArray()); }