Esempio n. 1
0
 /**
  * intValue() のテストです.
  * 以下を確認します.
  * 
  * - intval() のアルゴリズムに基づいて値を整数に変換する
  * - 最小値・最大値が指定されていない場合は, 変換結果を返す
  * - 最小値が指定されており, 変換結果が最小値より小さい場合は最小値を返す
  * - 最大値が指定されており, 変換結果が最大値より大きい場合は最大値を返す
  * - 最小値より最大値のほうが小さい場合, 最大値の指定は無視する
  * 
  * @covers Peach\Util\Values::intValue
  */
 public function testIntValue()
 {
     // intval() に基づいて値を整数に変換する
     $this->assertSame(10, Values::intValue(10));
     $this->assertSame(3, Values::intValue(3.14));
     $this->assertSame(-2, Values::intValue(-2.71));
     $this->assertSame(-1, Values::intValue("-1asdf"));
     $this->assertSame(0, Values::intValue("hoge"));
     $this->assertSame(1, Values::intValue(true));
     $this->assertSame(0, Values::intValue(false));
     $this->assertSame(0, Values::intValue(null));
     $this->assertSame(1, Values::intValue(new \stdClass()));
     $this->assertSame(0, Values::intValue(array()));
     $this->assertSame(1, Values::intValue(array(1, 2, 3)));
     // 第一引数が最小値 (10) より小さい値は最小値を返す
     $this->assertSame(11, Values::intValue(11, 10));
     $this->assertSame(10, Values::intValue(10, 10));
     $this->assertSame(10, Values::intValue(9, 10));
     // 第一引数が最大値 (90) より大きな値は最大値を返す
     $this->assertSame(90, Values::intValue(91, null, 90));
     $this->assertSame(90, Values::intValue(90, null, 90));
     $this->assertSame(89, Values::intValue(89, null, 90));
     $this->assertSame(-5, Values::intValue(-5, null, 90));
     // 最小値と最大値の両方が指定されている場合
     $this->assertSame(10, Values::intValue(5, 10, 90));
     $this->assertSame(50, Values::intValue(50, 10, 90));
     $this->assertSame(90, Values::intValue(95, 10, 90));
     // 最大値 (10) が最小値 (50) より小さい場合, 最大値の指定を無視する
     $this->assertSame(50, Values::intValue(49, 50, 10));
     $this->assertSame(50, Values::intValue(50, 50, 10));
     $this->assertSame(51, Values::intValue(51, 50, 10));
 }