189 lines
4.4 KiB
Factor
189 lines
4.4 KiB
Factor
USING: accessors calendar calendar.format calendar.parser io
|
|
io.streams.string kernel math.order tools.test ;
|
|
IN: calendar.parser.tests
|
|
|
|
! attempt-all-quots
|
|
{ 2 } [ { [ 2 ] } attempt-all-quots ] unit-test
|
|
|
|
{ 2 } [ { [ 1 throw ] [ 2 ] } attempt-all-quots ] unit-test
|
|
|
|
[ { [ 1 throw ] } attempt-all-quots ] [ 1 = ] must-fail-with
|
|
|
|
: compiled-test-1 ( -- n )
|
|
{ [ 1 throw ] [ 2 ] } attempt-all-quots ;
|
|
|
|
\ compiled-test-1 def>> must-infer
|
|
|
|
{ 2 } [ compiled-test-1 ] unit-test
|
|
|
|
! cookie-string>timestamp
|
|
{
|
|
T{ timestamp
|
|
{ year 2008 }
|
|
{ month 10 }
|
|
{ day 2 }
|
|
{ hour 23 }
|
|
{ minute 59 }
|
|
{ second 59 }
|
|
{ gmt-offset T{ duration f 0 0 0 0 0 0 } }
|
|
}
|
|
} [ "Thursday, 02-Oct-2008 23:59:59 GMT" cookie-string>timestamp ] unit-test
|
|
|
|
{ "Sun, 4 May 2008 07:00:00" } [
|
|
"Sun May 04 07:00:00 2008 GMT" cookie-string>timestamp
|
|
timestamp>string
|
|
] unit-test
|
|
|
|
{ "20080504070000" } [
|
|
"Sun May 04 07:00:00 2008 GMT" cookie-string>timestamp
|
|
timestamp>mdtm
|
|
] unit-test
|
|
|
|
{ t } [
|
|
now dup timestamp>cookie-string cookie-string>timestamp
|
|
time- 1 seconds before?
|
|
] unit-test
|
|
|
|
! cookie-string>timestamp-1
|
|
{ "20160203102022" } [
|
|
"Friday, 03-Feb-2016 10:20:22 GMT" cookie-string>timestamp-1
|
|
timestamp>mdtm
|
|
] unit-test
|
|
|
|
[ "Friday, 03-Feb-2016 24:20:22 GMT" cookie-string>timestamp-1 ]
|
|
[ not-in-interval? ] must-fail-with
|
|
[ "Friday, 33-Feb-2016 12:20:22 GMT" cookie-string>timestamp-1 ]
|
|
[ not-in-interval? ] must-fail-with
|
|
|
|
! cookie-string>timestamp-2
|
|
{ "19980903102022" } [
|
|
"Friday Sep 3 10:20:22 1998 GMT" cookie-string>timestamp-2 timestamp>mdtm
|
|
] unit-test
|
|
|
|
[ "Friday Sep 3 10:60:22 1998 GMT" cookie-string>timestamp-2 ]
|
|
[ not-in-interval? ] must-fail-with
|
|
|
|
! hhmm>duration
|
|
{
|
|
T{ duration { hour 10 } { minute 20 } }
|
|
} [
|
|
"1020" hhmm>duration
|
|
] unit-test
|
|
|
|
! parse-rfc822-gmt-offset
|
|
{ T{ duration f 0 0 0 0 0 0 } } [
|
|
"GMT" parse-rfc822-gmt-offset
|
|
] unit-test
|
|
|
|
{ T{ duration f 0 0 0 -5 0 0 } } [
|
|
"-0500" parse-rfc822-gmt-offset
|
|
] unit-test
|
|
|
|
{ T{ duration f 0 0 0 -1 0 0 } } [
|
|
"A" parse-rfc822-gmt-offset
|
|
] unit-test
|
|
|
|
{ T{ duration f 0 0 0 12 0 0 } } [
|
|
"Y" parse-rfc822-gmt-offset
|
|
] unit-test
|
|
|
|
{ T{ duration f 0 0 0 -8 0 0 } } [
|
|
"PST" parse-rfc822-gmt-offset
|
|
] unit-test
|
|
|
|
! read-rfc3339-gmt-offset
|
|
{ 1+1/2 } [
|
|
"+01:30" [ read1 read-rfc3339-gmt-offset ] with-string-reader duration>hours
|
|
] unit-test
|
|
|
|
{ -1-1/2 } [
|
|
"-01:30" [ read1 read-rfc3339-gmt-offset ] with-string-reader duration>hours
|
|
] unit-test
|
|
|
|
{ 0 } [
|
|
"Z" [ read1 read-rfc3339-gmt-offset ] with-string-reader duration>hours
|
|
] unit-test
|
|
|
|
{ 1 } [
|
|
"+01" [ read1 read-rfc3339-gmt-offset ] with-string-reader duration>hours
|
|
] unit-test
|
|
|
|
{ -1 } [
|
|
"-01" [ read1 read-rfc3339-gmt-offset ] with-string-reader duration>hours
|
|
] unit-test
|
|
|
|
! rfc3339>timestamp
|
|
{
|
|
T{ timestamp
|
|
{ year 2013 }
|
|
{ month 4 }
|
|
{ day 23 }
|
|
{ hour 13 }
|
|
{ minute 50 }
|
|
{ second 24 }
|
|
}
|
|
} [ "2013-04-23T13:50:24" rfc3339>timestamp ] unit-test
|
|
|
|
{
|
|
T{ timestamp
|
|
{ year 2001 }
|
|
{ month 12 }
|
|
{ day 15 }
|
|
{ hour 02 }
|
|
{ minute 59 }
|
|
{ second 43+1/10 }
|
|
}
|
|
} [ "2001-12-15 02:59:43.1Z" rfc3339>timestamp ] unit-test
|
|
|
|
{
|
|
T{ timestamp
|
|
{ year 2001 }
|
|
{ month 12 }
|
|
{ day 15 }
|
|
{ hour 02 }
|
|
{ minute 59 }
|
|
{ second 43+1/10 }
|
|
}
|
|
} [ "2001-12-15 02:59:43.1Z" rfc3339>timestamp ] unit-test
|
|
|
|
{
|
|
T{ timestamp f
|
|
2008
|
|
5
|
|
26
|
|
0
|
|
37
|
|
42+2469/20000
|
|
T{ duration f 0 0 0 -5 0 0 }
|
|
}
|
|
} [ "2008-05-26T00:37:42.12345-05:00" rfc3339>timestamp ] unit-test
|
|
|
|
{ 8/1000 -4 } [
|
|
"2008-04-19T04:56:00.008-04:00" rfc3339>timestamp
|
|
[ second>> ] [ gmt-offset>> hour>> ] bi
|
|
] unit-test
|
|
|
|
{ "2001-12-14T21:59:43.100000-05:00" } [
|
|
"2001-12-14T21:59:43.1-05:00" rfc3339>timestamp timestamp>rfc3339
|
|
] unit-test
|
|
|
|
! rfc822>timestamp
|
|
{ t } [
|
|
now dup timestamp>rfc822 rfc822>timestamp time- 1 seconds before?
|
|
] unit-test
|
|
|
|
{ "Tue, 22 Apr 2008 14:36:12 GMT" } [
|
|
"Tue, 22 Apr 2008 14:36:12 GMT" rfc822>timestamp timestamp>rfc822
|
|
] unit-test
|
|
|
|
{ "Tue, 22 Apr 2008 14:36:12 GMT" } [
|
|
"Tue, 22 Apr 2008 14:36:12 GMT "
|
|
rfc822>timestamp timestamp>rfc822
|
|
] unit-test
|
|
|
|
[ "Tue, 99 Apr 2008 14:36:12 GMT" rfc822>timestamp ]
|
|
[ not-in-interval? ] must-fail-with
|
|
|
|
[ "Wed, 29 Feb 2017 10:20:30 GMT" rfc822>timestamp ]
|
|
[ not-in-interval? ] must-fail-with
|