|
10 | 10 | require_once __DIR__ . '/../../Conversions/HexadecimalToDecimal.php';
|
11 | 11 | require_once __DIR__ . '/../../Conversions/SpeedConversion.php';
|
12 | 12 | require_once __DIR__ . '/../../Conversions/TemperatureConversions.php';
|
| 13 | +require_once __DIR__ . '/../../Conversions/ConvertTime.php'; |
13 | 14 |
|
14 | 15 | class ConversionsTest extends TestCase
|
15 | 16 | {
|
@@ -142,4 +143,41 @@ public function testFahrenheitToKelvin()
|
142 | 143 | $this->expectExceptionMessage('Temperature (Fahrenheit) must be a number');
|
143 | 144 | FahrenheitToKelvin("non-numeric");
|
144 | 145 | }
|
| 146 | + |
| 147 | + public function testConvertTime() |
| 148 | + { |
| 149 | + // Test basic conversions |
| 150 | + $this->assertEquals(2.0, convertTime(120, 'seconds', 'minutes'), "Failed converting 120 seconds to minutes"); |
| 151 | + $this->assertEquals(2.0, convertTime(120, 'minutes', 'hours'), "Failed converting 120 minutes to hours"); |
| 152 | + $this->assertEquals(2.0, convertTime(48, 'hours', 'days'), "Failed converting 48 hours to days"); |
| 153 | + $this->assertEquals(2.0, convertTime(14, 'days', 'weeks'), "Failed converting 14 days to weeks"); |
| 154 | + |
| 155 | + // Test with different units and values |
| 156 | + $this->assertEqualsWithDelta(2.0, convertTime(8.6, 'weeks', 'months'), 0.01, "Failed converting 8.6 weeks to months"); |
| 157 | + $this->assertEquals(2.0, convertTime(24, 'months', 'years'), "Failed converting 24 months to years"); |
| 158 | + |
| 159 | + // Test edge cases |
| 160 | + $this->assertEquals(0.0, convertTime(0, 'seconds', 'hours'), "Failed converting 0 seconds to hours"); |
| 161 | + |
| 162 | + // Test invalid 'from' and 'to' units |
| 163 | + try { |
| 164 | + convertTime(120, 'invalidUnit', 'minutes'); |
| 165 | + } catch (InvalidArgumentException $e) { |
| 166 | + $this->assertEquals("Invalid time unit(s) specified: invalidUnit to minutes", $e->getMessage()); |
| 167 | + } |
| 168 | + |
| 169 | + try { |
| 170 | + convertTime(120, 'seconds', 'invalidUnit'); |
| 171 | + } catch (InvalidArgumentException $e) { |
| 172 | + $this->assertEquals("Invalid time unit(s) specified: seconds to invalidUnit", $e->getMessage()); |
| 173 | + } |
| 174 | + |
| 175 | + try { |
| 176 | + convertTime(120, 'invalidFrom', 'invalidTo'); |
| 177 | + } catch (InvalidArgumentException $e) { |
| 178 | + $this->assertEquals("Invalid time unit(s) specified: invalidFrom to invalidTo", $e->getMessage()); |
| 179 | + } |
| 180 | + } |
| 181 | + |
| 182 | + |
145 | 183 | }
|
0 commit comments