Functional\Tests\PartitionTest::testMultiFn PHP Method

testMultiFn() public method

public testMultiFn ( )
    public function testMultiFn()
    {
        $fn1 = function ($v, $k, $collection) {
            InvalidArgumentException::assertCollection($collection, __FUNCTION__, 3);
            return is_int($k) ? $k === 1 : $v[3] === '2';
        };
        $fn2 = function ($v, $k, $collection) {
            InvalidArgumentException::assertCollection($collection, __FUNCTION__, 3);
            return is_int($k) ? $k === 2 : $v[3] === '3';
        };
        $this->assertSame([[1 => 'value2'], [2 => 'value3'], [0 => 'value1']], partition($this->list, $fn1, $fn2));
        $this->assertSame([[1 => 'value2'], [2 => 'value3'], [0 => 'value1']], partition($this->listIterator, $fn1, $fn2));
        $this->assertSame([['k2' => 'val2'], ['k3' => 'val3'], ['k1' => 'val1']], partition($this->hash, $fn1, $fn2));
        $this->assertSame([['k2' => 'val2'], ['k3' => 'val3'], ['k1' => 'val1']], partition($this->hashIterator, $fn1, $fn2));
    }