formatValue(7200); self::assertEquals(2.00, $result); } public function testFormatValueReturnsZeroForNonNumericValue(): void { $formatter = new DurationDecimalFormatter(); $result = $formatter->formatValue('not a number'); self::assertEquals(0.0, $result); } public function testFormatValueReturnsFormattedDurationForFloatValue(): void { $formatter = new DurationDecimalFormatter(); $result = $formatter->formatValue(4500.5); self::assertEquals(1.25, $result); } public function testFormatValueReturnsFormattedDurationForStringValue(): void { $formatter = new DurationDecimalFormatter(); $result = $formatter->formatValue('4500.5'); self::assertEquals(1.25, $result); } public function testFormatValueReturnsZeroForNullValue(): void { $formatter = new DurationDecimalFormatter(); $result = $formatter->formatValue(null); self::assertEquals(0.0, $result); } public function testFormatValueReturnsFormattedDurationForNegativeValue(): void { $formatter = new DurationDecimalFormatter(); $result = $formatter->formatValue(-3600); self::assertEquals(-1.00, $result); } public function testFormatValueReturnsFormattedDurationForNegativeStringValue(): void { $formatter = new DurationDecimalFormatter(); $result = $formatter->formatValue('-3600'); self::assertEquals(-1.00, $result); } }