public function sortWithComparator() { $a = new ArrayList(new Integer(2), new Integer(4), new Integer(3)); Arrays::sort($a, newinstance('util.Comparator', array(), '{ public function compare($a, $b) { return $a->value - $b->value; } }')); $this->assertEquals(new ArrayList(new Integer(2), new Integer(3), new Integer(4)), $a); }
/** * sort() をテストします. 以下を確認します. * * - 空の配列, 長さが 1 の配列の場合はそのまま返すこと * - 第 2 引数を指定しない場合, DefaultComparator のソート基準に従ってソートが行われること * - 返り値の添字が連番で初期化されること * * @covers Peach\Util\Arrays::sort */ public function testSort() { // 空の配列をソートした場合は空の配列を返す $test1 = Arrays::sort(array()); $this->assertSame(array(), $test1); // 要素数が 1 の配列はそのままとなる $test2 = Arrays::sort(array(5)); $this->assertSame(array(5), $test2); // 要素数が 2 の場合のテスト $test3 = Arrays::sort(array(20, 10)); $this->assertSame(array(10, 20), $test3); // 通常のテストデータでソート $expected = array_values(self::getSampleArray()); $subject4 = self::getSampleArray(); $test4 = Arrays::sort($subject4); $this->assertSame($expected, $test4); $subject5 = self::getSampleReverseArray(); $test5 = Arrays::sort($subject5); $this->assertSame($expected, $test5); $subject6 = self::getSampleShuffleArray(); $test6 = Arrays::sort($subject6); $this->assertSame($expected, $test6); $expected2 = range(1, 200); $largeArr = Arrays::concat(array_reverse(range(2, 200, 2)), range(1, 199, 2)); $this->assertSame($expected2, Arrays::sort($largeArr)); }
/** * マッピングのキーの一覧を配列で返すことを確認します. * * @covers Peach\Util\HashMap::keys */ public function testKeys() { $map = $this->getTestMap(); $keys1 = $map->keys(); $this->assertSame(100, count($keys1)); $keys2 = Arrays::sort($keys1); for ($i = 0; $i < 100; $i++) { $this->assertSame($i, $keys2[$i]->getValue()); } }