From 699496d28c99a44bf7fe58d49caa4adcbe2cd6a1 Mon Sep 17 00:00:00 2001 From: John Kerl Date: Sat, 13 Mar 2021 22:56:50 -0500 Subject: [PATCH] test-case accepts --- .../case-c-dsl-gmt-date-time-functions.sh.err | 1 + .../case-c-dsl-gmt-date-time-functions.sh.out | 232 +++++++++--------- go/src/types/mlrval_functions_time.go | 4 +- go/todo.txt | 3 + 4 files changed, 122 insertions(+), 118 deletions(-) diff --git a/go/reg-test/expected/case-c-dsl-gmt-date-time-functions.sh.err b/go/reg-test/expected/case-c-dsl-gmt-date-time-functions.sh.err index e69de29bb..8b1378917 100644 --- a/go/reg-test/expected/case-c-dsl-gmt-date-time-functions.sh.err +++ b/go/reg-test/expected/case-c-dsl-gmt-date-time-functions.sh.err @@ -0,0 +1 @@ + diff --git a/go/reg-test/expected/case-c-dsl-gmt-date-time-functions.sh.out b/go/reg-test/expected/case-c-dsl-gmt-date-time-functions.sh.out index d35d14e12..3b08a12c3 100644 --- a/go/reg-test/expected/case-c-dsl-gmt-date-time-functions.sh.out +++ b/go/reg-test/expected/case-c-dsl-gmt-date-time-functions.sh.out @@ -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 diff --git a/go/src/types/mlrval_functions_time.go b/go/src/types/mlrval_functions_time.go index eaf3252e2..788bc9648 100644 --- a/go/src/types/mlrval_functions_time.go +++ b/go/src/types/mlrval_functions_time.go @@ -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), ) } diff --git a/go/todo.txt b/go/todo.txt index 22e902219..9cfc83f2a 100644 --- a/go/todo.txt +++ b/go/todo.txt @@ -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 ...