예제 #1
0
 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);
 }
예제 #2
0
 /**
  * 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));
 }
예제 #3
0
 /**
  * マッピングのキーの一覧を配列で返すことを確認します.
  * 
  * @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());
     }
 }