Definition of Drupal\system\Tests\Common\ValidNumberStepUnitTest.
<?php
/**
 * @file
 * Definition of Drupal\system\Tests\Common\ValidNumberStepUnitTest.
 */
namespace Drupal\system\Tests\Common;
use Drupal\simpletest\UnitTestBase;
/**
 * Tests number step validation by valid_number_step().
 */
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',
    );
  }
  /**
   * Tests valid_number_step() without offset.
   */
  function testNumberStep() {
    // Value and step equal.
    $this
      ->assertTrue(valid_number_step(10.3, 10.3));
    // Valid integer steps.
    $this
      ->assertTrue(valid_number_step(42, 21));
    $this
      ->assertTrue(valid_number_step(42, 3));
    // Valid float steps.
    $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));
    // Valid and very small float steps.
    $this
      ->assertTrue(valid_number_step(1000.12345, 1.0E-10));
    $this
      ->assertTrue(valid_number_step(3.9999999999999, 1.0E-13));
    // Invalid integer steps.
    $this
      ->assertFalse(valid_number_step(100, 30));
    $this
      ->assertFalse(valid_number_step(-10, 4));
    // Invalid float steps.
    $this
      ->assertFalse(valid_number_step(6, 5 / 7));
    $this
      ->assertFalse(valid_number_step(10.3, 10.25));
    // Step mismatches very close to beeing valid.
    $this
      ->assertFalse(valid_number_step(70 + 9.0E-7, 10 + 9.0E-7));
    $this
      ->assertFalse(valid_number_step(1936.5, 3.0E-8));
  }
  /**
   * Tests valid_number_step() with offset.
   */
  function testNumberStepOffset() {
    // Try obvious fits.
    $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));
    // Ensure a small offset is still invalid.
    $this
      ->assertFalse(valid_number_step(10.3, 10.3, 0.0001));
    $this
      ->assertFalse(valid_number_step(1 / 5, 1 / 7, 1 / 11));
    // Try negative values and offsets.
    $this
      ->assertFalse(valid_number_step(1000, 10, -5));
    $this
      ->assertFalse(valid_number_step(-10, 4, 0));
    $this
      ->assertFalse(valid_number_step(-10, 4, -4));
  }
}| 
            Name | 
                  Description | 
|---|---|
| ValidNumberStepUnitTest | Tests number step validation by valid_number_step(). |