public function testZip() { $z1 = P::compose(['P', 'toArray'], P::zip([1, 2])); $this->assertEquals([[1, 'a'], [2, 'b']], P::toArray(P::zip([1, 2], ['a', 'b']))); $this->assertEquals([[1, 'a'], [2, 'b']], $z1(['a', 'b'])); $this->assertEquals([], P::toArray(P::zip([], [2, 'b']))); $a = function () { (yield 1); (yield 2); }; $b = function () { (yield 'a'); (yield 'b'); }; $this->assertEquals([[1, 'a'], [2, 'b']], P::toArray(P::zip([1, 2], ['a', 'b']))); $a = ['a' => 1, 'b' => 2]; $b = ['c' => 3, 'd' => 4]; $this->assertEquals([[1, 3], [2, 4]], P::toArray(P::zip($a, $b))); }