exercism / tcl

Exercism exercises in Tcl.
https://exercism.org/tracks/tcl
MIT License
10 stars 17 forks source link

Test failures with Tcl 9 #368

Open glennj opened 14 hours ago

glennj commented 14 hours ago

Using Tcl 9.0.0, we get test failures for gigasecond and meetup. Clearly a timezone/DST thing.

$ echo 'puts [info patchlevel]' | tclsh
9.0.0
$ date '+%F %T %Z %z'
2024-11-13 22:08:58 EST -0500
$ bin/test_all_exercises
[...]
/Users/glennj/src/exercism/tracks/tcl/exercises/practice/gigasecond

==== gigasecond-1 date only specification of time FAILED
==== Contents of test case:

    addGigasecond "2011-04-25"

---- Result was:
2043-01-01T02:46:40
---- Result should have been (exact matching):
2043-01-01T01:46:40
==== gigasecond-1 FAILED

==== gigasecond-2 second test for date only specification of time FAILED
==== Contents of test case:

    addGigasecond "1977-06-13"

---- Result was:
2009-02-19T02:46:40
---- Result should have been (exact matching):
2009-02-19T01:46:40
==== gigasecond-2 FAILED

==== gigasecond-3 third test for date only specification of time FAILED
==== Contents of test case:

    addGigasecond "1959-07-19"

---- Result was:
1991-03-26T02:46:40
---- Result should have been (exact matching):
1991-03-27T01:46:40
==== gigasecond-3 FAILED

==== gigasecond-4 full time specified FAILED
==== Contents of test case:

    addGigasecond "2015-01-24T22:00:00"

---- Result was:
2046-10-02T22:46:40
---- Result should have been (exact matching):
2046-10-02T23:46:40
==== gigasecond-4 FAILED

==== gigasecond-5 full time with day roll-over FAILED
==== Contents of test case:

    addGigasecond "2015-01-24T23:59:59"

---- Result was:
2046-10-03T00:46:39
---- Result should have been (exact matching):
2046-10-03T01:46:39
==== gigasecond-5 FAILED

gigasecond.test:    Total   6   Passed  1   Skipped 0   Failed  5
[...]
/Users/glennj/src/exercism/tracks/tcl/exercises/practice/meetup

==== meetup-79 last Monday of April 2013 FAILED
==== Contents of test case:

    meetup 2013 4 last Monday

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0
---- errorInfo: unable to convert input string: invalid day
    while executing
"clock scan "$year-$month-$d" -format "%Y-%m-%d""
    (procedure "meetup" line 4)
    invoked from within
"meetup 2013 4 last Monday"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: CLOCK invInpStr {}
==== meetup-79 FAILED

==== meetup-81 last Tuesday of June 2013 FAILED
==== Contents of test case:

    meetup 2013 6 last Tuesday

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0
---- errorInfo: unable to convert input string: invalid day
    while executing
"clock scan "$year-$month-$d" -format "%Y-%m-%d""
    (procedure "meetup" line 4)
    invoked from within
"meetup 2013 6 last Tuesday"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: CLOCK invInpStr {}
==== meetup-81 FAILED

==== meetup-84 last Thursday of September 2013 FAILED
==== Contents of test case:

    meetup 2013 9 last Thursday

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0
---- errorInfo: unable to convert input string: invalid day
    while executing
"clock scan "$year-$month-$d" -format "%Y-%m-%d""
    (procedure "meetup" line 4)
    invoked from within
"meetup 2013 9 last Thursday"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: CLOCK invInpStr {}
==== meetup-84 FAILED

==== meetup-86 last Friday of November 2013 FAILED
==== Contents of test case:

    meetup 2013 11 last Friday

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0
---- errorInfo: unable to convert input string: invalid day
    while executing
"clock scan "$year-$month-$d" -format "%Y-%m-%d""
    (procedure "meetup" line 4)
    invoked from within
"meetup 2013 11 last Friday"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: CLOCK invInpStr {}
==== meetup-86 FAILED

==== meetup-89 last Saturday of February 2013 FAILED
==== Contents of test case:

    meetup 2013 2 last Saturday

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0
---- errorInfo: unable to convert input string: invalid day
    while executing
"clock scan "$year-$month-$d" -format "%Y-%m-%d""
    (procedure "meetup" line 4)
    invoked from within
"meetup 2013 2 last Saturday"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: CLOCK invInpStr {}
==== meetup-89 FAILED

==== meetup-91 last Sunday of April 2013 FAILED
==== Contents of test case:

    meetup 2013 4 last Sunday

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0
---- errorInfo: unable to convert input string: invalid day
    while executing
"clock scan "$year-$month-$d" -format "%Y-%m-%d""
    (procedure "meetup" line 4)
    invoked from within
"meetup 2013 4 last Sunday"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: CLOCK invInpStr {}
==== meetup-91 FAILED

==== meetup-92 last Wednesday of February 2012 FAILED
==== Contents of test case:

    meetup 2012 2 last Wednesday

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0
---- errorInfo: unable to convert input string: invalid day
    while executing
"clock scan "$year-$month-$d" -format "%Y-%m-%d""
    (procedure "meetup" line 4)
    invoked from within
"meetup 2012 2 last Wednesday"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: CLOCK invInpStr {}
==== meetup-92 FAILED

==== meetup-94 last Sunday of February 2015 FAILED
==== Contents of test case:

    meetup 2015 2 last Sunday

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0
---- errorInfo: unable to convert input string: invalid day
    while executing
"clock scan "$year-$month-$d" -format "%Y-%m-%d""
    (procedure "meetup" line 4)
    invoked from within
"meetup 2015 2 last Sunday"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: CLOCK invInpStr {}
==== meetup-94 FAILED

meetup.test:    Total   95  Passed  87  Skipped 0   Failed  8
[...]
glennj commented 14 hours ago

With tcl 8.6:

$ brew unlink tcl-tk
$ brew link --overwrite tcl-tk@8
$ echo 'puts [info patchlevel]' | tclsh
8.6.15
$ ./bin/test_all_exercises
[...]
/Users/glennj/src/exercism/tracks/tcl/exercises/practice/gigasecond
gigasecond.test:    Total   6   Passed  6   Skipped 0   Failed  0
[...]
/Users/glennj/src/exercism/tracks/tcl/exercises/practice/meetup
meetup.test:    Total   95  Passed  95  Skipped 0   Failed  0
[...]