1 |
#!/usr/bin/perl |
2 |
|
3 |
use Test::Simple tests => 14; |
4 |
|
5 |
use Time::Available qw(:days :fmt_interval); |
6 |
use Time::Local; |
7 |
|
8 |
my $tz_offset = time()-timegm(localtime); |
9 |
|
10 |
my $i = Time::Available->new( start=>'07', end=>'17:15', dayMask=>DAY_WEEKDAY); |
11 |
ok( defined($i) , 'new() work'); |
12 |
|
13 |
ok( defined($i->{start_arr}) && |
14 |
$i->{start_arr}[0] == 0 && |
15 |
$i->{start_arr}[1] == 0 && |
16 |
$i->{start_arr}[2] == 7, |
17 |
'start time ok' ); |
18 |
ok( defined($i->{end_arr}) && |
19 |
$i->{end_arr}[0] == 0 && |
20 |
$i->{end_arr}[1] == 15 && |
21 |
$i->{end_arr}[2] == 17, |
22 |
'end time ok' ); |
23 |
|
24 |
my $t = 1 * 24; # 1d |
25 |
$t += 11; # 11 hr |
26 |
$t *= 60; |
27 |
$t += 11; # 11 min |
28 |
$t *= 60; |
29 |
$t += 11; # 11 sec |
30 |
|
31 |
ok( fmt_interval($t) eq '1d 11:11:11', 'fmt_interval output ok'); |
32 |
|
33 |
# 20000 = Thu Jan 1 06:33:20 1970 |
34 |
# 30000 = Thu Jan 1 09:20:00 1970 |
35 |
# 50000 = Thu Jan 1 14:53:20 1970 |
36 |
# 60000 = Thu Jan 1 17:40:00 1970 |
37 |
|
38 |
# test this timespan (07:00-17:15) with above values |
39 |
|
40 |
ok($i->uptime(20000)==36900,'ok'); |
41 |
ok($i->uptime(30000)==28500,'ok'); |
42 |
ok($i->uptime(50000)==8500,'ok'); |
43 |
ok($i->uptime(60000)==0,'ok'); |
44 |
|
45 |
# create and test timespan which spans over midnight |
46 |
|
47 |
$i = Time::Available->new( start=>'17:15', end=>'07:00', dayMask=>DAY_THURSDAY); |
48 |
ok( defined($i->{start_arr}) && |
49 |
$i->{start_arr}[0] == 0 && |
50 |
$i->{start_arr}[1] == 15 && |
51 |
$i->{start_arr}[2] == 17, |
52 |
'end time ok' ); |
53 |
ok( defined($i->{end_arr}) && |
54 |
$i->{end_arr}[0] == 0 && |
55 |
$i->{end_arr}[1] == 0 && |
56 |
$i->{end_arr}[2] == 7, |
57 |
'start time ok' ); |
58 |
|
59 |
ok($i->uptime(20000)==29500,'ok'); |
60 |
ok($i->uptime(30000)==27900,'ok'); |
61 |
ok($i->uptime(50000)==27900,'ok'); |
62 |
ok($i->uptime(60000)==26400,'ok'); |
63 |
|