Chris@0: assertEquals($expected, $return); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests Number::validStep() with offset. Chris@0: * Chris@0: * @dataProvider providerTestValidStepOffset Chris@0: * @covers ::validStep Chris@0: * Chris@0: * @param numeric $value Chris@0: * The value argument for Number::validStep(). Chris@0: * @param numeric $step Chris@0: * The step argument for Number::validStep(). Chris@0: * @param numeric $offset Chris@0: * The offset argument for Number::validStep(). Chris@0: * @param bool $expected Chris@0: * Expected return value from Number::validStep(). Chris@0: */ Chris@0: public function testValidStepOffset($value, $step, $offset, $expected) { Chris@0: $return = Number::validStep($value, $step, $offset); Chris@0: $this->assertEquals($expected, $return); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Provides data for self::testNumberStep(). Chris@0: * Chris@0: * @see \Drupal\Tests\Component\Utility\Number::testValidStep Chris@0: */ Chris@0: public static function providerTestValidStep() { Chris@0: return [ Chris@0: // Value and step equal. Chris@0: [10.3, 10.3, TRUE], Chris@0: Chris@0: // Valid integer steps. Chris@0: [42, 21, TRUE], Chris@0: [42, 3, TRUE], Chris@0: Chris@0: // Valid float steps. Chris@0: [42, 10.5, TRUE], Chris@0: [1, 1 / 3, TRUE], Chris@0: [-100, 100 / 7, TRUE], Chris@0: [1000, -10, TRUE], Chris@0: Chris@0: // Valid and very small float steps. Chris@0: [1000.12345, 1e-10, TRUE], Chris@0: [3.9999999999999, 1e-13, TRUE], Chris@0: Chris@0: // Invalid integer steps. Chris@0: [100, 30, FALSE], Chris@0: [-10, 4, FALSE], Chris@0: Chris@0: // Invalid float steps. Chris@0: [6, 5 / 7, FALSE], Chris@0: [10.3, 10.25, FALSE], Chris@0: Chris@0: // Step mismatches very close to being valid. Chris@0: [70 + 9e-7, 10 + 9e-7, FALSE], Chris@0: [1936.5, 3e-8, FALSE], Chris@0: ]; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Data provider for \Drupal\Test\Component\Utility\NumberTest::testValidStepOffset(). Chris@0: * Chris@0: * @see \Drupal\Test\Component\Utility\NumberTest::testValidStepOffset() Chris@0: */ Chris@0: public static function providerTestValidStepOffset() { Chris@0: return [ Chris@0: // Try obvious fits. Chris@0: [11.3, 10.3, 1, TRUE], Chris@0: [100, 10, 50, TRUE], Chris@0: [-100, 90 / 7, -10, TRUE], Chris@0: [2 / 7 + 5 / 9, 1 / 7, 5 / 9, TRUE], Chris@0: Chris@0: // Ensure a small offset is still invalid. Chris@0: [10.3, 10.3, 0.0001, FALSE], Chris@0: [1 / 5, 1 / 7, 1 / 11, FALSE], Chris@0: Chris@0: // Try negative values and offsets. Chris@0: [1000, 10, -5, FALSE], Chris@0: [-10, 4, 0, FALSE], Chris@0: [-10, 4, -4, FALSE], Chris@0: ]; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests the alphadecimal conversion functions. Chris@0: * Chris@0: * @dataProvider providerTestConversions Chris@0: * @covers ::intToAlphadecimal Chris@0: * @covers ::alphadecimalToInt Chris@0: * Chris@0: * @param int $value Chris@0: * The integer value. Chris@0: * @param string $expected Chris@0: * The expected alphadecimal value. Chris@0: */ Chris@0: public function testConversions($value, $expected) { Chris@0: $this->assertSame(Number::intToAlphadecimal($value), $expected); Chris@0: $this->assertSame($value, Number::alphadecimalToInt($expected)); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Data provider for testConversions(). Chris@0: * Chris@0: * @see testConversions() Chris@0: * Chris@0: * @return array Chris@0: * An array containing: Chris@0: * - The integer value. Chris@0: * - The alphadecimal value. Chris@0: */ Chris@0: public function providerTestConversions() { Chris@0: return [ Chris@0: [0, '00'], Chris@0: [1, '01'], Chris@0: [10, '0a'], Chris@0: [20, '0k'], Chris@0: [35, '0z'], Chris@0: [36, '110'], Chris@0: [100, '12s'], Chris@0: ]; Chris@0: } Chris@0: Chris@0: }