]> gitweb.factorcode.org Git - factor.git/blob - basis/calendar/format/format-tests.factor
Fixes #2966
[factor.git] / basis / calendar / format / format-tests.factor
1 USING: accessors calendar calendar.format io.streams.string kernel
2 sequences tools.test ;
3
4 {
5     "2018-02-15T08:51:44.846606-08:00"
6     "Thu, 15 Feb 2018 08:51:44 -0800"
7 } [
8     T{ timestamp
9         { year 2018 }
10         { month 2 }
11         { day 15 }
12         { hour 8 }
13         { minute 51 }
14         { second 44+423303/500000 }
15         { gmt-offset T{ duration { hour -8 } } }
16     } [ timestamp>rfc3339 ] [ timestamp>rfc822 ] bi
17 ] unit-test
18
19 {
20 "      May 2008
21 Su Mo Tu We Th Fr Sa
22              1  2  3
23  4  5  6  7  8  9 10
24 11 12 13 14 15 16 17
25 18 19 20 21 22 23 24
26 25 26 27 28 29 30 31
27
28 " } [
29     [ 2008 <year> 5 >>month month. ] with-string-writer
30 ] unit-test
31
32 {
33 "                              2008
34
35       January               February               March        
36 Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
37        1  2  3  4  5                  1  2                     1
38  6  7  8  9 10 11 12   3  4  5  6  7  8  9   2  3  4  5  6  7  8
39 13 14 15 16 17 18 19  10 11 12 13 14 15 16   9 10 11 12 13 14 15
40 20 21 22 23 24 25 26  17 18 19 20 21 22 23  16 17 18 19 20 21 22
41 27 28 29 30 31        24 25 26 27 28 29     23 24 25 26 27 28 29
42                                             30 31               
43                                                                 
44        April                  May                   June        
45 Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
46        1  2  3  4  5               1  2  3   1  2  3  4  5  6  7
47  6  7  8  9 10 11 12   4  5  6  7  8  9 10   8  9 10 11 12 13 14
48 13 14 15 16 17 18 19  11 12 13 14 15 16 17  15 16 17 18 19 20 21
49 20 21 22 23 24 25 26  18 19 20 21 22 23 24  22 23 24 25 26 27 28
50 27 28 29 30           25 26 27 28 29 30 31  29 30               
51                                                                 
52                                                                 
53         July                 August              September      
54 Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
55        1  2  3  4  5                  1  2      1  2  3  4  5  6
56  6  7  8  9 10 11 12   3  4  5  6  7  8  9   7  8  9 10 11 12 13
57 13 14 15 16 17 18 19  10 11 12 13 14 15 16  14 15 16 17 18 19 20
58 20 21 22 23 24 25 26  17 18 19 20 21 22 23  21 22 23 24 25 26 27
59 27 28 29 30 31        24 25 26 27 28 29 30  28 29 30            
60                       31                                        
61                                                                 
62       October               November              December      
63 Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
64           1  2  3  4                     1      1  2  3  4  5  6
65  5  6  7  8  9 10 11   2  3  4  5  6  7  8   7  8  9 10 11 12 13
66 12 13 14 15 16 17 18   9 10 11 12 13 14 15  14 15 16 17 18 19 20
67 19 20 21 22 23 24 25  16 17 18 19 20 21 22  21 22 23 24 25 26 27
68 26 27 28 29 30 31     23 24 25 26 27 28 29  28 29 30 31         
69                       30                                        
70                                                                 
71 "
72 } [ [ 2008 year. ] with-string-writer ] unit-test
73
74 { "03:01:59" } [
75     3 hours 1 >>minute 59 >>second duration>hms
76 ] unit-test
77
78 { "01:31:29" } [ 1.525 hours duration>hms ] unit-test
79
80 [ -1 elapsed-time ] [ "negative seconds" = ] must-fail-with
81
82 { "0s" } [ 0 elapsed-time ] unit-test
83 { "59s" } [ 59 elapsed-time ] unit-test
84 { "1m" } [ 60 elapsed-time ] unit-test
85 { "1m 1s" } [ 61 elapsed-time ] unit-test
86 { "2y 1w 6d 2h 59m 23s" } [ 64033163 elapsed-time ] unit-test
87
88 { "just now" } [ 0 relative-time ] unit-test
89 { "less than a minute ago" } [ 10 relative-time ] unit-test
90 { "about a minute ago" } [ 60 relative-time ] unit-test
91 { "about a minute ago" } [ 90 relative-time ] unit-test
92 { "4 minutes ago" } [ 270 relative-time ] unit-test