1 |
dpavlin |
1.1 |
#!/usr/bin/perl |
2 |
|
|
|
3 |
dpavlin |
1.6 |
use Test::Simple tests => 6; |
4 |
dpavlin |
1.1 |
|
5 |
dpavlin |
1.3 |
use Time::Available qw(:days :fmt_interval); |
6 |
dpavlin |
1.1 |
|
7 |
dpavlin |
1.4 |
my $i = Time::Available->new( start=>'07', end=>'17:15', dayMask=>DAY_WEEKDAY); |
8 |
dpavlin |
1.1 |
ok( defined($i) , 'new() work'); |
9 |
|
|
|
10 |
|
|
ok( defined($i->{start}) && $i->{start} == 7*60*60, 'start time ok' ); |
11 |
|
|
ok( defined($i->{end}) && $i->{end} == ((17*60)+15)*60, 'end time ok' ); |
12 |
|
|
|
13 |
dpavlin |
1.2 |
my $t = 1 * 24; # 1d |
14 |
|
|
$t += 11; # 11 hr |
15 |
|
|
$t *= 60; |
16 |
|
|
$t += 11; # 11 min |
17 |
|
|
$t *= 60; |
18 |
|
|
$t += 11; # 11 sec |
19 |
|
|
|
20 |
dpavlin |
1.3 |
ok( fmt_interval($t) eq '1d 11:11:11', 'fmt_interval output ok'); |
21 |
dpavlin |
1.2 |
|
22 |
|
|
# 20000 = Thu Jan 1 06:33:20 1970 |
23 |
|
|
# 30000 = Thu Jan 1 09:20:00 1970 |
24 |
|
|
# 50000 = Thu Jan 1 14:53:20 1970 |
25 |
|
|
# 60000 = Thu Jan 1 17:40:00 1970 |
26 |
dpavlin |
1.3 |
|
27 |
|
|
# test this timespan (07:00-17:15) with above values |
28 |
|
|
|
29 |
dpavlin |
1.6 |
#ok($i->uptime(20000)==36900,'ok'); |
30 |
|
|
#ok($i->uptime(30000)==28500,'ok'); |
31 |
|
|
#ok($i->uptime(50000)==8500,'ok'); |
32 |
|
|
#ok($i->uptime(60000)==0,'ok'); |
33 |
dpavlin |
1.3 |
|
34 |
|
|
# create and test timespan which spans over midnight |
35 |
|
|
|
36 |
dpavlin |
1.4 |
$i = Time::Available->new( start=>'17:15', end=>'07:00', dayMask=>DAY_THURSDAY); |
37 |
dpavlin |
1.3 |
ok( defined($i->{start}) && $i->{start} == ((17*60)+15)*60, 'end time ok' ); |
38 |
|
|
ok( defined($i->{end}) && $i->{end} == 7*60*60, 'start time ok' ); |
39 |
|
|
|
40 |
dpavlin |
1.6 |
#ok($i->uptime(20000)==25900,'ok'); |
41 |
|
|
#ok($i->uptime(30000)==24300,'ok'); |
42 |
|
|
#ok($i->uptime(50000)==24300,'ok'); |
43 |
|
|
#ok($i->uptime(60000)==22800,'ok'); |
44 |
dpavlin |
1.4 |
|
45 |
|
|
#$t=time();$u=$i->uptime($t);print STDERR " uptime ( $t $u ) ",scalar localtime $t,": ",fmt_interval($u)," ($u)\n"; |
46 |
dpavlin |
1.3 |
|
47 |
dpavlin |
1.5 |
|
48 |
|
|
$i = Time::Available->new( start=>'07:00', end=>'17:00', dayMask=>DAY_WEEKDAY, DEBUG=>1); |
49 |
|
|
|
50 |
dpavlin |
1.8 |
print STDERR "\n",$i->interval(100000,500001),"\n\n"; |
51 |
|
|
print STDERR "\n",$i->interval(200100000,200500001),"\n\n"; |
52 |
|
|
print STDERR "\n",$i->interval(1061478325,1061478819),"\n\n"; |
53 |
|
|
print STDERR "\n",$i->interval(1061550928,1061551126),"\n\n"; |
54 |
dpavlin |
1.7 |
print STDERR "\n",$i->interval(1049666442,1050351024),"\n\n"; |
55 |
dpavlin |
1.8 |
print STDERR "\n",$i->interval(1061768345,1061773119),"\n\n"; |
56 |
|
|
print STDERR "\n",$i->interval(1061507423,1061541821),"\n\n"; |
57 |
|
|
print STDERR "\n",$i->interval(1051482879,1051491233),"\n\n"; |