Commit graph

58 commits

Author SHA1 Message Date
f01800d0e0 style(runner): add luacats to compare_outputs 2026-02-26 23:00:38 -05:00
Barrett Ruth
e4a7e7c434
Merge branch 'main' into feat/epsilon-float-comparison 2026-02-26 22:59:25 -05:00
585cf2a077 feat(runner): run test cases in parallel
Problem: test cases were executed sequentially, each waiting for the
previous process to finish before starting the next. On problems with
many test cases this meant wall-clock run time scaled linearly.

Solution: fan out all test case processes simultaneously. A remaining
counter fires on_done once all callbacks have returned. on_each is
called per completion as before; callers that pass on_each ignore its
arguments so the index semantics change is non-breaking.
2026-02-26 22:55:50 -05:00
c59b53cdc4 feat: add epsilon tolerance for floating-point output comparison
Problem: output comparison used exact string equality after whitespace
normalisation, causing correct solutions to fail on problems where
floating-point answers are accepted within a tolerance (e.g. 1e-6).

Solution: add an optional ui.panel.epsilon config value. When set,
actual and expected output are compared token-by-token: numeric tokens
are compared with math.abs(a - b) <= epsilon, non-numeric tokens fall
back to exact string equality. Per-problem epsilon can also be stored
in the cache and takes precedence over the global default.
2026-02-26 22:55:05 -05:00
622620f6d0 feat: add debug logging to python env, scraper, and runner
Problem: with debug = true, there is not enough diagnostic output to
troubleshoot environment or execution issues. The resolved python path,
scraper commands, and compile/run shell commands are not logged.

Solution: add logger.log calls at key decision points: python env
resolution (nix vs uv vs discovery), uv sync stderr output, scraper
subprocess commands, and compile/run shell strings. All gated behind
the existing debug flag so they only appear when debug = true.
2026-02-18 17:40:06 -05:00
c8f735617a misc bugfixes 2026-02-02 13:13:08 -05:00
0b21d02f24 fix(runner): save buffer before compile 2026-01-27 16:42:16 -05:00
fb7888b83c feat(highlight): use default highlights 2026-01-27 14:27:41 -05:00
4c5c44742e feat: refactors 2026-01-27 14:23:23 -05:00
d4c5f08b5f fix(render): change pending status text to symbol 2026-01-27 13:31:07 -05:00
0f513370ac fix(render): fix table render in partial state 2026-01-27 13:30:32 -05:00
8969dbccf8 fix(panel): table rendering 2026-01-27 13:18:11 -05:00
ba26cee7f9 feat(run): make running entirely asynchronous 2026-01-27 12:55:35 -05:00
445059a498 fix(runner): proper debug msg 2025-12-18 14:43:03 -06:00
3a0c0de599 another log statement 2025-12-14 16:30:10 -06:00
Barrett Ruth
00987bb0ff feat(io): cleanup view 2025-11-06 01:31:50 -05:00
Barrett Ruth
aab211902e feat: multi-test case view 2025-11-04 21:32:40 -05:00
Barrett Ruth
b3168ff3f0 feat: center the curso 2025-10-24 14:03:00 -04:00
Barrett Ruth
48d4c6f113 feat: language 2025-10-24 01:21:16 -04:00
Barrett Ruth
6a6cf2c594 feat: bindings and --debug flag 2025-10-23 23:36:09 -04:00
Barrett Ruth
c312ccbb4d fix: highlighting 2025-10-23 18:16:36 -04:00
Barrett Ruth
018d801121 fix: rename run panel to panel 2025-10-23 09:54:55 -04:00
d2bde9bad8 fix(config): better file org 2025-10-04 19:54:53 -04:00
a76d228e3f feat(doc): update for new config 2025-10-04 19:04:49 -04:00
aae98a5796 disable scraper disabling 2025-10-04 17:45:49 -04:00
b9a2c7a4ff fix(scrapers): fix 2025-10-04 15:00:37 -04:00
179b333505 update pyproject 2025-10-03 22:38:24 -04:00
5991670ef2 fix health and hl groups 2025-10-03 09:34:25 -04:00
d35ed0450b fix table 2025-10-03 09:27:52 -04:00
c9ba8281b0 fix(runner): proper timeout 2025-10-03 09:16:38 -04:00
3b2752685b remove print 2025-10-03 08:36:10 -04:00
778ce7b8e2 right align 2025-10-02 23:48:47 -04:00
357d1601b4 add rss to table 2025-10-02 23:46:54 -04:00
bfcf2242ee fix(runner): cleanup cache logic 2025-10-02 23:31:26 -04:00
d480975652 fix tle verdict 2025-10-02 23:28:51 -04:00
cddd61f061 config hard fail 2025-10-02 23:20:51 -04:00
69ffc2d9dd cleanup 2025-10-02 23:07:10 -04:00
0061161a90 feat(runner): mle 2025-10-02 23:03:58 -04:00
d9537e72ba many fixes 2025-10-02 22:35:30 -04:00
1a4573a4e4 remove useless stderr fields 2025-10-02 20:45:27 -04:00
db98153b11 fix(ansi): annotate highlights too 2025-10-02 14:20:26 -04:00
1974addbd2 fix(lua): bunch of typing 2025-10-02 14:18:26 -04:00
6b8a1e2087 more docs 2025-10-01 21:36:53 -04:00
a925686a17 fix(log): improve logging 2025-10-01 16:41:24 -04:00
b406c0ce4e fix: synchronous problem fetch 2025-10-01 12:25:07 -04:00
46cd509747 fix docs and superfluous vim.validate calls 2025-09-30 20:55:29 -04:00
646b0047dc fix lint 2025-09-24 18:48:15 -04:00
975e829f78 fix: remove version 2025-09-24 18:28:41 -04:00
9e84d57b8a feat: context, not config 2025-09-24 18:21:34 -04:00
79e1f1096b lint 2025-09-23 12:29:12 -04:00