/** * @dataProvider notUniqueData */ public function testThatUniqueUsesTheFirstFoundValueForDuplicates(\Pinq\ITraversable $values, array $data) { $value1 = [1, 90 => 2, 3, 't' => 'foo', null, true]; $value2 = [1, 90 => 2, 3, 't' => 'foo', null, true]; $uniqueValues = $values->take(0)->append([&$value1, &$value2])->unique(); $this->assertReferenceEquals($value1, $uniqueValues->asArray()[0]); }
/** * @dataProvider everything */ public function testThatNonIntegerAndStringKeysAreReindexed(\Pinq\ITraversable $traversable, array $data) { foreach ([new \stdClass(), [], [1], fopen('php://input', 'r'), 3.22, null, true] as $notIntegerOrString) { $withNonIntOrString = $traversable->take(1)->indexBy(function () use($notIntegerOrString) { return $notIntegerOrString; }); $this->assertSame(empty($data) ? [] : [0 => reset($data)], $withNonIntOrString->asArray()); } }
/** * @dataProvider assocMixedValues */ public function testThatTakeZeroReturnsEmptyArray(\Pinq\ITraversable $traversable, array $data) { $noNumbers = $traversable->take(0); $this->assertMatches($noNumbers, []); }