Pinq\Tests\Integration\Traversable\IterationTest::testThatIdenticalNonIntegerOrStringMapToTheSameScalarKey PHP Method

testThatIdenticalNonIntegerOrStringMapToTheSameScalarKey() public method

public testThatIdenticalNonIntegerOrStringMapToTheSameScalarKey ( Pinq\ITraversable $traversable, array $data )
$traversable Pinq\ITraversable
$data array
    public function testThatIdenticalNonIntegerOrStringMapToTheSameScalarKey(\Pinq\ITraversable $traversable, array $data)
    {
        foreach ([new \stdClass(), [], [1], fopen('php://input', 'r'), 3.22, null, true] as $nonStringOrInt) {
            $withNonIntOrString = $traversable->indexBy(function () use($nonStringOrInt) {
                return $nonStringOrInt;
            });
            $this->assertSame(empty($data) ? [] : [0 => reset($data)], $withNonIntOrString->asArray());
            if (is_object($nonStringOrInt)) {
                //Cloned object longer identical, should map to individual keys
                $withNonIntOrString = $traversable->indexBy(function () use($nonStringOrInt) {
                    return unserialize(serialize($nonStringOrInt));
                });
                $this->assertSame(array_values($data), $withNonIntOrString->asArray());
            }
        }
    }