use strict; use warnings; use Test::More tests => 21; use Subtitle::Utils qw(:timing); ## parse_timing() # valid timecodes is(parse_timing('123:11:15.459'), (123 * 3600 + 11 * 60 + 15 + 0.459)); is(parse_timing('123:11:15.45'), (123 * 3600 + 11 * 60 + 15 + 0.450)); is(parse_timing('123:11:15.4'), (123 * 3600 + 11 * 60 + 15 + 0.400)); is(parse_timing('123:11:15,4'), (123 * 3600 + 11 * 60 + 15 + 0.400)); # invalid timecodes is(parse_timing('123:60:15.45'), -1); is(parse_timing('123:11:65.45'), -1); is(parse_timing('123:11:15.4500'), -1); ## parse_timeshift() is(parse_timeshift('1'), +1.0); is(parse_timeshift('-1.2'), -1.2); is(parse_timeshift('+2:15'), +135.0); is(parse_timeshift('+03:07.35'), +187.35); is(parse_timeshift('4:05:17.312'), 14717.312); # invalid timecodes is(parse_timeshift('o.17'), undef); is(parse_timeshift('-.05'), undef); is(parse_timeshift('1:60'), undef); is(parse_timeshift('57.4321'), undef); is(parse_timeshift('1:62:03'), undef); ## make_timing() my @ts = make_timing(8*3600 + 11*60 + 15 + 0.46); is($ts[0], 8); is($ts[1], 11); is($ts[2], 15); is($ts[3], 460);