<?php
namespace Drupal\system\Tests\Common;
use Drupal\simpletest\UnitTestBase;
class ValidNumberStepUnitTest extends UnitTestBase {
public static function getInfo() {
return array(
'name' => 'Number step validation',
'description' => 'Tests number step validation by valid_number_step()',
'group' => 'Common',
);
}
function testNumberStep() {
$this
->assertTrue(valid_number_step(10.3, 10.3));
$this
->assertTrue(valid_number_step(42, 21));
$this
->assertTrue(valid_number_step(42, 3));
$this
->assertTrue(valid_number_step(42, 10.5));
$this
->assertTrue(valid_number_step(1, 1 / 3));
$this
->assertTrue(valid_number_step(-100, 100 / 7));
$this
->assertTrue(valid_number_step(1000, -10));
$this
->assertTrue(valid_number_step(1000.12345, 1.0E-10));
$this
->assertTrue(valid_number_step(3.9999999999999, 1.0E-13));
$this
->assertFalse(valid_number_step(100, 30));
$this
->assertFalse(valid_number_step(-10, 4));
$this
->assertFalse(valid_number_step(6, 5 / 7));
$this
->assertFalse(valid_number_step(10.3, 10.25));
$this
->assertFalse(valid_number_step(70 + 9.0E-7, 10 + 9.0E-7));
$this
->assertFalse(valid_number_step(1936.5, 3.0E-8));
}
function testNumberStepOffset() {
$this
->assertTrue(valid_number_step(11.3, 10.3, 1));
$this
->assertTrue(valid_number_step(100, 10, 50));
$this
->assertTrue(valid_number_step(-100, 90 / 7, -10));
$this
->assertTrue(valid_number_step(2 / 7 + 5 / 9, 1 / 7, 5 / 9));
$this
->assertFalse(valid_number_step(10.3, 10.3, 0.0001));
$this
->assertFalse(valid_number_step(1 / 5, 1 / 7, 1 / 11));
$this
->assertFalse(valid_number_step(1000, 10, -5));
$this
->assertFalse(valid_number_step(-10, 4, 0));
$this
->assertFalse(valid_number_step(-10, 4, -4));
}
}