File: string.t

package info (click to toggle)
libtime-format-perl 1.11-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 248 kB
  • ctags: 34
  • sloc: perl: 522; makefile: 4
file content (71 lines) | stat: -rwxr-xr-x 2,487 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/perl -I..

use strict;
use Test::More tests => 27;
use lib 'blib/lib', 'blib/arch';

# time-as-string tests

BEGIN { $Time::Format::NOXS = 1 }
BEGIN { use_ok 'Time::Format', qw(time_format %time) }

# Get day/month names in current locale
my ($Thursday, $Thu, $June, $Jun);
unless (eval
    {
        require I18N::Langinfo;
        I18N::Langinfo->import(qw(langinfo DAY_3 MON_12 DAY_5 ABDAY_5 MON_6 ABMON_6));
        ($Thursday, $Thu, $June, $Jun) = map ucfirst lc langinfo($_), (DAY_5(), ABDAY_5(), MON_6(), ABMON_6());
        1;
    })
{
    ($Thursday, $Thu, $June, $Jun) = qw(Thursday Thu June Jun);
}

# June 5, 2003 at 1:58:09 pm
my $d  = '2003-06-05';
my $t  =   '13:58:09';
my $d_t = "$d $t";
my $dt  = "$d$t";
my $dtx;
($dtx = $dt) =~ tr/-://d;   # no separators at all
my $out;
my $err;

# time_format tests (10 * 2)
is time_format('yyyymmdd', $d),  '20030605'    => 'ymd d only';
is time_format('yyyymmdd', $t),  '19691231'    => 'ymd t only';
is time_format('yyyymmdd', $d_t),'20030605'    => 'ymd d&t';
is time_format('yyyymmdd', $dt), '20030605'    => 'ymd dt';
is time_format('yyyymmdd', $dtx),'20030605'    => 'ymd dt-nosep';

is time_format('hhmmss',   $d),  '000000'      => 'hms d only';
is time_format('hhmmss',   $t),  '135809'      => 'hms t only';
is time_format('hhmmss',   $d_t),'135809'      => 'hms d&t';
is time_format('hhmmss',   $dt), '135809'      => 'hms dt';
is time_format('hhmmss',   $dtx),'135809'      => 'hms dt-nosep';

is $time{'yyyymmdd', $d},  '20030605'    => 'ymd d only';
is $time{'yyyymmdd', $t},  '19691231'    => 'ymd t only';
is $time{'yyyymmdd', $d_t},'20030605'    => 'ymd d&t';
is $time{'yyyymmdd', $dt}, '20030605'    => 'ymd dt';
is $time{'yyyymmdd', $dtx},'20030605'    => 'ymd dt-nosep';

is $time{'hhmmss',   $d},  '000000'      => 'hms d only';
is $time{'hhmmss',   $t},  '135809'      => 'hms t only';
is $time{'hhmmss',   $d_t},'135809'      => 'hms d&t';
is $time{'hhmmss',   $dt}, '135809'      => 'hms dt';
is $time{'hhmmss',   $dtx},'135809'      => 'hms dt-nosep';

# Reported bug case:
eval { $out = time_format('yyyy.mm.dd', '2007.12.31'); };
is $@, '', 'December bug I: no error';
is $out, '2007.12.31' => 'December bug I';

eval { $out = time_format('yyyy.mm.dd', '2000.01.01'); };
is $@, '', 'December bug II: no error';
is $out, '2000.01.01' => 'December bug II';

eval { $out = time_format('yyyy.mm.dd', '1968.01.01'); };
is $@, '', 'December bug III: no error';
is $out, '1968.01.01' => 'December bug III';