public function testThatIndexesSupportObjectKeys(\Pinq\ITraversable $traversable, array $data)
{
//Make object references
$instances = [];
foreach ($data as $key => $i) {
$instances[$key] = (object) ['bar' => $key];
}
$traversable = $traversable->indexBy(function ($value, $key) use(&$instances) {
return $instances[$key];
});
//Load instance keys
$traversable->asArray();
foreach ($data as $key => $value) {
//Should be using object identity (reference type)
$this->assertFalse(isset($traversable[(object) ['bar' => $key]]));
$this->assertTrue(isset($traversable[$instances[$key]]));
$this->assertSame($value, $traversable[$instances[$key]]);
}
}