/**
* @dataProvider everything
*/
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());
}
}
}