assertIsFloat($result); $this->assertEquals($expectedFloat, $result); } /** * Test (rational) string to float conversion. * * @dataProvider fractionStringFloatsProvider * * @see \App\Support\Number::rationalStringFromFloat() */ public function testFractionStringFromFloat(string $expectedString, float $float): void { $result = Number::rationalStringFromFloat($float); $this->assertIsString($result); $this->assertEquals($expectedString, $result); } /** * Data providers. */ /** * Provide decimal string and float data. * * @see \Tests\Unit\Support\NumberTest::testFloatFromString() */ public function decimalStringFloatsProvider(): array { return [ ['0.0', 0.0], ['0.125', 0.125], ['0.25', 0.25], ['0.5', 0.5], ['0.75', 0.75], ['1.0', 1.0], ['1.25', 1.25], ['1.5', 1.5], ['2.5', 2.5], ['2.75', 2.75], ]; } /** * Provide fraction string and float data. * * @see \Tests\Unit\Support\NumberTest::testFloatFromString() * @see \Tests\Unit\Support\NumberTest::testFractionStringFromFloat() */ public function fractionStringFloatsProvider(): array { return [ ['0', 0.0], ['1/8', 0.125], ['1/4', 0.25], ['1/2', 0.5], ['3/4', 0.75], ['1', 1.0], ['1 1/4', 1.25], ['1 1/2', 1.5], ['2 1/2', 2.5], ['2 3/4', 2.75], ]; } }