test-case accepts

This commit is contained in:
John Kerl 2021-03-13 22:56:50 -05:00
parent f5475f92e9
commit 699496d28c
4 changed files with 122 additions and 118 deletions

View file

@ -102,7 +102,7 @@ n,sec,gmt
15,2000000000.,2033-05-18T03:33:20.000000Z
16,2000000000.0,2033-05-18T03:33:20.000000Z
17,2000000000.00,2033-05-18T03:33:20.000000Z
18,2000000000.123400,2033-05-18T03:33:20.123400Z
18,2000000000.123400,2033-05-18T03:33:20.123399Z
19,2000000000.123456,2033-05-18T03:33:20.123456Z
20,2000000000.999,2033-05-18T03:33:20.999000Z
21,2000000000.999999,2033-05-18T03:33:20.999999Z
@ -113,34 +113,34 @@ n,sec,gmt
mlr --csvlite put $sec = gmt2sec($gmt) ./reg-test/input/gmt2sec
gmt,sec
1970-01-01T00:00:00Z,0.000000
1970-01-01T00:00:00.Z,0.000000
1970-01-01T00:00:01Z,1.000000
1970-01-01T00:00:01.0Z,1.000000
1970-01-01T00:00:10Z,10.000000
1970-01-01T00:00:10.00Z,10.000000
1970-01-01T00:01:40Z,100.000000
1970-01-01T00:01:40.1Z,100.100000
1970-01-01T00:16:40Z,1000.000000
1970-01-01T00:16:40.12Z,1000.120000
1970-01-01T02:46:40Z,10000.000000
1970-01-01T02:46:40.123Z,10000.123000
1970-01-02T03:46:40Z,100000.000000
1970-01-02T03:46:40.1234Z,100000.123400
1970-01-12T13:46:40Z,1000000.000000
1970-01-12T13:46:40.12345Z,1000000.123450
1970-04-26T17:46:40Z,10000000.000000
1970-04-26T17:46:40.123456Z,10000000.123456
1973-03-03T09:46:40Z,100000000.000000
1973-03-03T09:46:40.1234567Z,100000000.123457
2001-09-09T01:46:40Z,1000000000.000000
2001-09-09T01:46:40.12345678Z,1000000000.123457
2015-05-19T11:49:40Z,1432036180.000000
2015-05-19T11:49:40.123456789Z,1432036180.123457
2017-07-14T02:40:00Z,1500000000.000000
2017-07-14T02:40:00.999Z,1500000000.999000
2033-05-18T03:33:20Z,2000000000.000000
2033-05-18T03:33:20.999999Z,2000000000.999999
1970-01-01T00:00:00Z,0
1970-01-01T00:00:00.Z,(error)
1970-01-01T00:00:01Z,1
1970-01-01T00:00:01.0Z,1
1970-01-01T00:00:10Z,10
1970-01-01T00:00:10.00Z,10
1970-01-01T00:01:40Z,100
1970-01-01T00:01:40.1Z,100.1
1970-01-01T00:16:40Z,1000
1970-01-01T00:16:40.12Z,1000.12
1970-01-01T02:46:40Z,10000
1970-01-01T02:46:40.123Z,10000.123
1970-01-02T03:46:40Z,100000
1970-01-02T03:46:40.1234Z,100000.1234
1970-01-12T13:46:40Z,1e+06
1970-01-12T13:46:40.12345Z,1.00000012345e+06
1970-04-26T17:46:40Z,1e+07
1970-04-26T17:46:40.123456Z,1.0000000123456e+07
1973-03-03T09:46:40Z,1e+08
1973-03-03T09:46:40.1234567Z,1.000000001234567e+08
2001-09-09T01:46:40Z,1e+09
2001-09-09T01:46:40.12345678Z,1.0000000001234567e+09
2015-05-19T11:49:40Z,1.43203618e+09
2015-05-19T11:49:40.123456789Z,1.4320361801234567e+09
2017-07-14T02:40:00Z,1.5e+09
2017-07-14T02:40:00.999Z,1.500000000999e+09
2033-05-18T03:33:20Z,2e+09
2033-05-18T03:33:20.999999Z,2.000000000999999e+09
mlr --csvlite put $gmtdate = sec2gmtdate($sec) ./reg-test/input/sec2gmt
n,sec,gmtdate
@ -273,7 +273,7 @@ n sec gmt
15 2000000000. 2033-05-18T03:33:20.000000Z
16 2000000000.0 2033-05-18T03:33:20.000000Z
17 2000000000.00 2033-05-18T03:33:20.000000Z
18 2000000000.123400 2033-05-18T03:33:20.123400Z
18 2000000000.123400 2033-05-18T03:33:20.123399Z
19 2000000000.123456 2033-05-18T03:33:20.123456Z
20 2000000000.999 2033-05-18T03:33:20.999000Z
21 2000000000.999999 2033-05-18T03:33:20.999999Z
@ -284,34 +284,34 @@ n sec gmt
mlr --icsv --opprint put $sec = strptime($gmt, "%Y-%m-%dT%H:%M:%SZ") ./reg-test/input/gmt2sec
gmt sec
1970-01-01T00:00:00Z 0.000000
1970-01-01T00:00:00.Z 0.000000
1970-01-01T00:00:01Z 1.000000
1970-01-01T00:00:01.0Z 1.000000
1970-01-01T00:00:10Z 10.000000
1970-01-01T00:00:10.00Z 10.000000
1970-01-01T00:01:40Z 100.000000
1970-01-01T00:01:40.1Z 100.100000
1970-01-01T00:16:40Z 1000.000000
1970-01-01T00:16:40.12Z 1000.120000
1970-01-01T02:46:40Z 10000.000000
1970-01-01T02:46:40.123Z 10000.123000
1970-01-02T03:46:40Z 100000.000000
1970-01-02T03:46:40.1234Z 100000.123400
1970-01-12T13:46:40Z 1000000.000000
1970-01-12T13:46:40.12345Z 1000000.123450
1970-04-26T17:46:40Z 10000000.000000
1970-04-26T17:46:40.123456Z 10000000.123456
1973-03-03T09:46:40Z 100000000.000000
1973-03-03T09:46:40.1234567Z 100000000.123457
2001-09-09T01:46:40Z 1000000000.000000
2001-09-09T01:46:40.12345678Z 1000000000.123457
2015-05-19T11:49:40Z 1432036180.000000
2015-05-19T11:49:40.123456789Z 1432036180.123457
2017-07-14T02:40:00Z 1500000000.000000
2017-07-14T02:40:00.999Z 1500000000.999000
2033-05-18T03:33:20Z 2000000000.000000
2033-05-18T03:33:20.999999Z 2000000000.999999
1970-01-01T00:00:00Z 0
1970-01-01T00:00:00.Z (error)
1970-01-01T00:00:01Z 1
1970-01-01T00:00:01.0Z 1
1970-01-01T00:00:10Z 10
1970-01-01T00:00:10.00Z 10
1970-01-01T00:01:40Z 100
1970-01-01T00:01:40.1Z 100.1
1970-01-01T00:16:40Z 1000
1970-01-01T00:16:40.12Z 1000.12
1970-01-01T02:46:40Z 10000
1970-01-01T02:46:40.123Z 10000.123
1970-01-02T03:46:40Z 100000
1970-01-02T03:46:40.1234Z 100000.1234
1970-01-12T13:46:40Z 1e+06
1970-01-12T13:46:40.12345Z 1.00000012345e+06
1970-04-26T17:46:40Z 1e+07
1970-04-26T17:46:40.123456Z 1.0000000123456e+07
1973-03-03T09:46:40Z 1e+08
1973-03-03T09:46:40.1234567Z 1.000000001234567e+08
2001-09-09T01:46:40Z 1e+09
2001-09-09T01:46:40.12345678Z 1.0000000001234567e+09
2015-05-19T11:49:40Z 1.43203618e+09
2015-05-19T11:49:40.123456789Z 1.4320361801234567e+09
2017-07-14T02:40:00Z 1.5e+09
2017-07-14T02:40:00.999Z 1.500000000999e+09
2033-05-18T03:33:20Z 2e+09
2033-05-18T03:33:20.999999Z 2.000000000999999e+09
mlr --csvlite sec2gmt sec ./reg-test/input/sec2gmt
n,sec
@ -372,35 +372,35 @@ sec hms resec diff
-864001 -240:00:01 -864001 0
mlr --opprint put $hms=fsec2hms($sec); $resec=hms2fsec($hms); $diff=$resec-$sec ./reg-test/input/fsec2xhms
sec hms resec diff
0.25 0:00:00.250000 0.250000 0.000000
1.25 0:00:01.250000 1.250000 0.000000
59.25 0:00:59.250000 59.250000 0.000000
60.25 0:01:00.250000 60.250000 0.000000
61.25 0:01:01.250000 61.250000 0.000000
3599.25 0:59:59.250000 3599.250000 0.000000
3600.25 1:00:00.250000 3600.250000 0.000000
3601.25 1:00:01.250000 3601.250000 0.000000
86399.25 23:59:59.250000 86399.250000 0.000000
86400.25 24:00:00.250000 86400.250000 0.000000
86401.25 24:00:01.250000 86401.250000 0.000000
863999.25 239:59:59.250000 863999.250000 0.000000
864000.25 240:00:00.250000 864000.250000 0.000000
864001.25 240:00:01.250000 864001.250000 0.000000
-0.25 -00:00:00.250000 -0.250000 0.000000
-1.25 -00:00:01.250000 -1.250000 0.000000
-59.25 -00:00:59.250000 -59.250000 0.000000
-60.25 -00:01:00.250000 -60.250000 0.000000
-61.25 -00:01:01.250000 -61.250000 0.000000
-3599.25 -00:59:59.250000 -3599.250000 0.000000
-3600.25 -01:00:00.250000 -3600.250000 0.000000
-3601.25 -01:00:01.250000 -3601.250000 0.000000
-86399.25 -23:59:59.250000 -86399.250000 0.000000
-86400.25 -24:00:00.250000 -86400.250000 0.000000
-86401.25 -24:00:01.250000 -86401.250000 0.000000
-863999.25 -239:59:59.250000 -863999.250000 0.000000
-864000.25 -240:00:00.250000 -864000.250000 0.000000
-864001.25 -240:00:01.250000 -864001.250000 0.000000
sec hms resec diff
0.25 00:00:00.250000 0.25 0
1.25 00:00:01.250000 1.25 0
59.25 00:00:59.250000 59.25 0
60.25 00:01:00.250000 60.25 0
61.25 00:01:01.250000 61.25 0
3599.25 00:59:59.250000 3599.25 0
3600.25 01:00:00.250000 3600.25 0
3601.25 01:00:01.250000 3601.25 0
86399.25 23:59:59.250000 86399.25 0
86400.25 24:00:00.250000 86400.25 0
86401.25 24:00:01.250000 86401.25 0
863999.25 239:59:59.250000 863999.25 0
864000.25 240:00:00.250000 864000.25 0
864001.25 240:00:01.250000 864001.25 0
-0.25 -00:00:00.250000 -0.25 0
-1.25 -00:00:01.250000 -1.25 0
-59.25 -00:00:59.250000 -59.25 0
-60.25 -00:01:00.250000 -60.25 0
-61.25 -00:01:01.250000 -61.25 0
-3599.25 -00:59:59.250000 -3599.25 0
-3600.25 -01:00:00.250000 -3600.25 0
-3601.25 -01:00:01.250000 -3601.25 0
-86399.25 -23:59:59.250000 -86399.25 0
-86400.25 -24:00:00.250000 -86400.25 0
-86401.25 -24:00:01.250000 -86401.25 0
-863999.25 -239:59:59.250000 -863999.25 0
-864000.25 -240:00:00.250000 -864000.25 0
-864001.25 -240:00:01.250000 -864001.25 0
mlr --opprint put $hms=sec2dhms($sec); $resec=dhms2sec($hms); $diff=$resec-$sec ./reg-test/input/sec2xhms
sec hms resec diff
@ -433,35 +433,35 @@ sec hms resec diff
-864001 -10d00h00m01s -864001 0
mlr --opprint put $hms=fsec2dhms($sec); $resec=dhms2fsec($hms); $diff=$resec-$sec ./reg-test/input/fsec2xhms
sec hms resec diff
0.25 0.250000s 0.250000 0.000000
1.25 1.250000s 1.250000 0.000000
59.25 59.250000s 59.250000 0.000000
60.25 1m00.250000s 60.250000 0.000000
61.25 1m01.250000s 61.250000 0.000000
3599.25 59m59.250000s 3599.250000 0.000000
3600.25 1h00m00.250000s 3600.250000 0.000000
3601.25 1h00m01.250000s 3601.250000 0.000000
86399.25 23h59m59.250000s 86399.250000 0.000000
86400.25 1d00h00m00.250000s 86400.250000 0.000000
86401.25 1d00h00m01.250000s 86401.250000 0.000000
863999.25 9d23h59m59.250000s 863999.250000 0.000000
864000.25 10d00h00m00.250000s 864000.250000 0.000000
864001.25 10d00h00m01.250000s 864001.250000 0.000000
-0.25 -0.250000s -0.250000 0.000000
-1.25 -1.250000s -1.250000 0.000000
-59.25 -59.250000s -59.250000 0.000000
-60.25 -1m00.250000s -60.250000 0.000000
-61.25 -1m01.250000s -61.250000 0.000000
-3599.25 -59m59.250000s -3599.250000 0.000000
-3600.25 -1h00m00.250000s -3600.250000 0.000000
-3601.25 -1h00m01.250000s -3601.250000 0.000000
-86399.25 -23h59m59.250000s -86399.250000 0.000000
-86400.25 -1d00h00m00.250000s -86400.250000 0.000000
-86401.25 -1d00h00m01.250000s -86401.250000 0.000000
-863999.25 -9d23h59m59.250000s -863999.250000 0.000000
-864000.25 -10d00h00m00.250000s -864000.250000 0.000000
-864001.25 -10d00h00m01.250000s -864001.250000 0.000000
sec hms resec diff
0.25 0.250000s 0.25 0
1.25 1.250000s 1.25 0
59.25 59.250000s 59.25 0
60.25 1m00.250000s 60.25 0
61.25 1m01.250000s 61.25 0
3599.25 59m59.250000s 3599.25 0
3600.25 1h00m00.250000s 3600.25 0
3601.25 1h00m01.250000s 3601.25 0
86399.25 23h59m59.250000s 86399.25 0
86400.25 1d00h00m00.250000s 86400.25 0
86401.25 1d00h00m01.250000s 86401.25 0
863999.25 9d23h59m59.250000s 863999.25 0
864000.25 10d00h00m00.250000s 864000.25 0
864001.25 10d00h00m01.250000s 864001.25 0
-0.25 -0.250000s -0.25 0
-1.25 -1.250000s -1.25 0
-59.25 -59.250000s -59.25 0
-60.25 -1m00.250000s -60.25 0
-61.25 -1m01.250000s -61.25 0
-3599.25 -59m59.250000s -3599.25 0
-3600.25 -1h00m00.250000s -3600.25 0
-3601.25 -1h00m01.250000s -3601.25 0
-86399.25 -23h59m59.250000s -86399.25 0
-86400.25 -1d00h00m00.250000s -86400.25 0
-86401.25 -1d00h00m01.250000s -86401.25 0
-863999.25 -9d23h59m59.250000s -863999.25 0
-864000.25 -10d00h00m00.250000s -864000.25 0
-864001.25 -10d00h00m01.250000s -864001.25 0
mlr --csvlite sec2gmt sec ./reg-test/input/sec2gmt
n,sec

View file

@ -363,11 +363,11 @@ func MlrvalSec2DHMS(input1 *Mlrval) *Mlrval {
)
} else if m != 0 {
return MlrvalPointerFromString(
fmt.Sprintf("%02dm%02ds", m, s),
fmt.Sprintf("%dm%02ds", m, s),
)
} else {
return MlrvalPointerFromString(
fmt.Sprintf("%02ds", s),
fmt.Sprintf("%ds", s),
)
}

View file

@ -15,6 +15,9 @@ TOP OF LIST:
sec2dhms sec2gmt sec2gmtdate sec2hms sec2localdate sec2localtime
sec2localtime dhms2fsec dhms2sec fsec2dhms fsec2hms hms2fsec hms2sec
localtime2sec gmt2sec strftime strftime_local strptime strptime_local
! strptime:
strptime("1970-01-01T00:00:00.Z", "%Y-%m-%dT%H:%M:%SZ")
(error)
! --nojvstack; default --jvstack; code it up ...