/** * 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)); }