public function testInfinities() { $numeric = new Structure\NumericS(); $numeric->setRange("(-inf, inf)"); for ($i = -pow(10, 10); $i < pow(10, 10); $i += pow(10, 9)) { $this->assertTrue($numeric->check($i)); } $numeric->setRange("(0, +inf)"); $this->assertFalse($numeric->check(0)); $this->assertTrue($numeric->check(1)); $this->assertTrue($numeric->check(147821764713627581)); $numeric->setRange("[1,inf)"); $this->assertFalse($numeric->check(0)); $this->assertTrue($numeric->check(1)); $this->assertTrue($numeric->check(147821764713627581)); }
/** * testing value sets for specific types */ public function testValueSet5() { $string = new \Structure\StringS(); $string->setValueSet("{hello,world,foo,bar}"); foreach (array("hello", "world", "foo", "bar") as $value) { $this->assertTrue($string->check($value)); } $this->assertFalse($string->check("xyz")); $this->assertFalse($string->check("var")); $numeric = new \Structure\NumericS(); $numeric->setValueSet("{3,4,6}"); // this couldn't be done with setRange("[3,6]") $this->assertTrue($numeric->check(3)); $this->assertTrue($numeric->check(4)); $this->assertFalse($numeric->check(5)); $this->assertTrue($numeric->check(6)); $this->assertFalse($numeric->check(3.9)); $this->assertFalse($numeric->check(9.231)); // it is kinda silly to use valueSets for boolean, but you can still do it }