public function concatMap_result_Complete_Task()
{
$xs = Observable::fromArray([4, 3, 2, 1]);
$results = [];
$completed = false;
$xs->concatMap(function ($x, $i) {
return Observable::just($x + $i);
}, function ($x, $y, $oi, $ii) {
$this->assertEquals(0, $ii);
return $x + $y + $oi;
})->subscribeCallback(function ($x) use(&$results) {
$results[] = $x;
}, function ($e) {
$this->fail();
}, function () use(&$completed) {
$completed = true;
});
$this->assertTrue($completed);
$this->assertEquals([8, 8, 8, 8], $results);
}