diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2022-04-11 22:41:26 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2022-04-11 22:43:26 -0700 |
commit | 394c9f894c48925b53da610d907b5a66ee1e61f0 (patch) | |
tree | 9d9479bc19215613c36214e5d92ba1a0557f0507 /chesstv.tlv | |
parent | 98e657d6e21c7261099ed027ba6e5ebe5a5e677e (diff) | |
download | teliva-394c9f894c48925b53da610d907b5a66ee1e61f0.tar.gz |
fix a few sample apps
Broken since Mar 18, when I started running tests in src/file.lua. It's more than a little ugly that .lua files in src/ require helpers inside .tlv apps.
Diffstat (limited to 'chesstv.tlv')
-rw-r--r-- | chesstv.tlv | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/chesstv.tlv b/chesstv.tlv index 74acefd..f440fa1 100644 --- a/chesstv.tlv +++ b/chesstv.tlv @@ -17,6 +17,74 @@ # If these constraints are violated, Teliva may unceremoniously crash. Please # report bugs at http://akkartik.name/contact - __teliva_timestamp: original + check: + >function check(x, msg) + > if x then + > Window:addch('.') + > else + > print('F - '..msg) + > print(' '..str(x)..' is false/nil') + > teliva_num_test_failures = teliva_num_test_failures + 1 + > -- overlay first test failure on editors + > if teliva_first_failure == nil then + > teliva_first_failure = msg + > end + > end + >end +- __teliva_timestamp: original + check_eq: + >function check_eq(x, expected, msg) + > if eq(x, expected) then + > Window:addch('.') + > else + > print('F - '..msg) + > print(' expected '..str(expected)..' but got '..str(x)) + > teliva_num_test_failures = teliva_num_test_failures + 1 + > -- overlay first test failure on editors + > if teliva_first_failure == nil then + > teliva_first_failure = msg + > end + > end + >end +- __teliva_timestamp: original + eq: + >function eq(a, b) + > if type(a) ~= type(b) then return false end + > if type(a) == 'table' then + > if #a ~= #b then return false end + > for k, v in pairs(a) do + > if b[k] ~= v then + > return false + > end + > end + > for k, v in pairs(b) do + > if a[k] ~= v then + > return false + > end + > end + > return true + > end + > return a == b + >end +- __teliva_timestamp: original + str: + >-- smarter tostring + >-- slow; used only for debugging + >function str(x) + > if type(x) == 'table' then + > local result = '' + > result = result..#x..'{' + > for k, v in pairs(x) do + > result = result..str(k)..'='..str(v)..', ' + > end + > result = result..'}' + > return result + > elseif type(x) == 'string' then + > return '"'..x..'"' + > end + > return tostring(x) + >end +- __teliva_timestamp: original Window: >Window = curses.stdscr() >-- animation-based app |