File: parse.t

package info (click to toggle)
libdatetime-format-sqlite-perl 0.11-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 120 kB
  • sloc: perl: 82; makefile: 2
file content (96 lines) | stat: -rw-r--r-- 2,337 bytes parent folder | download | duplicates (3)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# $Id: parse.t 4068 2008-09-20 18:41:28Z cfaerber $
#
use strict;
use warnings;

use Test::More tests => 30;
use DateTime 0.10;
use DateTime::Format::SQLite;

# 1.  YYYY-MM-DD
# 2. YYYY-MM-DD HH:MM
# 3. YYYY-MM-DD HH:MM:SS
# 4. YYYY-MM-DD HH:MM:SS.SSS
# 5. YYYY-MM-DDTHH:MM
# 6. YYYY-MM-DDTHH:MM:SS
# 7. YYYY-MM-DDTHH:MM:SS.SSS
# 8. HH:MM
# 9. HH:MM:SS
# 10. HH:MM:SS.SSS
# 11. now
# 12. DDDDDDDDDD 

my %tests = (
  # format 1
  #
  '2008-09-13'					=> '2008-09-13T00:00:00',
  '19999-09-13'					=> '19999-09-13T00:00:00',
  '-2-09-13',					=> '-0002-09-13T00:00:00',

  # format 2
  #
  '2008-09-13 13:00'				=> '2008-09-13T13:00:00',
  '19999-09-13 23:45'				=> '19999-09-13T23:45:00',
  '-2-09-13 2:3',				=> '-0002-09-13T02:03:00',

  # format 3
  #
  '2008-09-13 13:00:12'				=> '2008-09-13T13:00:12',
  '19999-09-13 23:45:6'				=> '19999-09-13T23:45:06',
  '-2-09-13 2:3:4',				=> '-0002-09-13T02:03:04',

  # format 4
  #
  '2008-09-13 13:00:12.123'			=> '2008-09-13T13:00:12',
  '19999-09-13 23:45:6.123'			=> '19999-09-13T23:45:06',
  '-2-09-13 2:3:4.123',				=> '-0002-09-13T02:03:04',

  # format 5
  #
  '2008-09-13T13:00'				=> '2008-09-13T13:00:00',
  '19999-09-13T23:45'				=> '19999-09-13T23:45:00',
  '-2-09-13t2:3',				=> '-0002-09-13T02:03:00',

  # format 6
  #
  '2008-09-13T13:00:12'				=> '2008-09-13T13:00:12',
  '19999-09-13T23:45:6'				=> '19999-09-13T23:45:06',
  '-2-09-13t2:3:4',				=> '-0002-09-13T02:03:04',

  # format 7
  #
  '2008-09-13T13:00:12.123'			=> '2008-09-13T13:00:12',
  '19999-09-13T23:45:6.123'			=> '19999-09-13T23:45:06',
  '-2-09-13t2:3:4.123',				=> '-0002-09-13T02:03:04',

  # format 8
  #
  '23:45'					=> '2000-01-01T23:45:00',
  '2:3',					=> '2000-01-01T02:03:00',

  # format 9
  #
  '23:45:6'					=> '2000-01-01T23:45:06',
  '2:3:4',					=> '2000-01-01T02:03:04',

  # format 10
  #
  '23:45:6.123'					=> '2000-01-01T23:45:06',
  '2:3:4.000',					=> '2000-01-01T02:03:04',

  # format 11
  # (tested separately)
  
  # format 12
  #
  0						=> '-4713-11-24T12:00:00',
  2454722.75					=> '2008-09-13T06:00:00',
);

foreach my $result (keys %tests) {
  is( DateTime::Format::SQLite->parse_datetime($result)->iso8601, $tests{$result} );
}

cmp_ok(DateTime::Format::SQLite->parse_datetime('now')
  ->subtract_datetime_absolute(DateTime->now)
    ->delta_seconds, '<', 5, 'now');