2013-06-25 10:03:20 +02:00
|
|
|
<?php
|
|
|
|
|
|
2016-03-06 23:38:04 +01:00
|
|
|
namespace Tests\FFMpeg\Unit\Coordinate;
|
2013-06-25 10:03:20 +02:00
|
|
|
|
|
|
|
|
use FFMpeg\Coordinate\TimeCode;
|
2022-02-09 14:32:43 +01:00
|
|
|
use Tests\FFMpeg\Unit\TestCase;
|
2013-06-25 10:03:20 +02:00
|
|
|
|
|
|
|
|
class TimeCodeTest extends TestCase
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* @dataProvider provideTimecodes
|
|
|
|
|
*/
|
|
|
|
|
public function testFromString($timecode, $expected)
|
|
|
|
|
{
|
|
|
|
|
$tc = TimeCode::fromString($timecode);
|
|
|
|
|
$this->assertEquals((string) $tc, $expected);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function provideTimeCodes()
|
|
|
|
|
{
|
2022-02-09 14:32:43 +01:00
|
|
|
return [
|
|
|
|
|
['1:02:04:05:20', '26:04:05.20'],
|
|
|
|
|
['1:02:04:05.20', '26:04:05.20'],
|
|
|
|
|
['02:04:05:20', '02:04:05.20'],
|
|
|
|
|
['02:04:05.20', '02:04:05.20'],
|
|
|
|
|
['00:00:05.20', '00:00:05.20'],
|
|
|
|
|
['00:00:00.00', '00:00:00.00'],
|
|
|
|
|
];
|
2013-06-25 10:03:20 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testFromInvalidString()
|
|
|
|
|
{
|
2020-02-13 00:39:31 +01:00
|
|
|
$this->expectException('\FFMpeg\Exception\InvalidArgumentException');
|
2013-06-25 10:03:20 +02:00
|
|
|
TimeCode::fromString('lalali lala');
|
|
|
|
|
}
|
2013-06-25 18:19:15 +02:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @dataProvider provideSeconds
|
|
|
|
|
*/
|
|
|
|
|
public function testFromSeconds($seconds, $expected)
|
|
|
|
|
{
|
|
|
|
|
$tc = TimeCode::fromSeconds($seconds);
|
|
|
|
|
$this->assertEquals($expected, (string) $tc);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function provideSeconds()
|
|
|
|
|
{
|
2022-02-09 14:32:43 +01:00
|
|
|
return [
|
|
|
|
|
[0.467, '00:00:00.47'],
|
|
|
|
|
[12.467, '00:00:12.47'],
|
|
|
|
|
[59.867, '00:00:59.87'],
|
|
|
|
|
[72.467, '00:01:12.47'],
|
|
|
|
|
[3599.467, '00:59:59.47'],
|
|
|
|
|
[3600.467, '01:00:00.47'],
|
|
|
|
|
[86422.467, '24:00:22.47'],
|
|
|
|
|
];
|
2013-06-25 18:19:15 +02:00
|
|
|
}
|
2013-06-25 10:03:20 +02:00
|
|
|
}
|