195 Commits

Author SHA1 Message Date
George Thomas
5a6727ba05 Refactor Haskell day 6 to look a bit more like Rust version 2026-01-12 18:51:39 +00:00
George Thomas
3daa7a1ad1 Solve day 6 in Rust 2026-01-12 18:51:39 +00:00
George Thomas
05401e2fde Restore accidentally-trimmed spaces from day 6 example input 2026-01-08 15:07:04 +00:00
George Thomas
21dc7e96bc Reformat 2026-01-08 01:40:33 +00:00
George Thomas
12e30085b0 Add regeneration for Golden files
There are a few things going on here that are slightly orthogonal, but are all uncontroversial progress that had to happen eventually: test runner options, logging, factoring out duplication in `TestResult`...
2026-01-08 01:38:57 +00:00
George Thomas
39c0dd3de9 Remove unneeded instance
This makes the type more opaque, and is fine now that we have proper display of results.
2026-01-08 01:38:57 +00:00
George Thomas
a3f91606f7 Format 2026-01-08 01:38:57 +00:00
George Thomas
31082a85d5 Use Text for drawTree 2026-01-08 01:38:57 +00:00
George Thomas
1de4fcd028 Avoid quotes in tree output 2026-01-08 01:38:57 +00:00
George Thomas
23e82c069f Make test names more opaque by removing instances 2026-01-08 01:38:57 +00:00
George Thomas
bb6bd7ff25 Rename function 2026-01-07 15:06:48 +00:00
George Thomas
5e7baf8cc5 Use itertools to chain sorting in day 5 2026-01-07 15:02:13 +00:00
George Thomas
3d2785b7d3 Make Rust day 5 vector operations more efficient
We do more in-place and operate on the end of the vector to avoid quadratic complexity.
2026-01-07 14:45:55 +00:00
George Thomas
70b56f4501 Use new type for day 5 ranges
This is cleaner and faster, with inherent methods and mutability.
2026-01-07 14:29:47 +00:00
George Thomas
88c138baf0 Solve day 5 in Rust 2026-01-07 14:05:58 +00:00
George Thomas
bf1cac4e94 Use proper Nom number parsing functions
This was previously a documentation/discoverability issue, rather than a conscious choice to avoid these.
2026-01-07 13:41:03 +00:00
George Thomas
b80743c840 Indent test failures 2026-01-07 01:11:45 +00:00
George Thomas
ffbdd8744e Update temporary width override
This matches the usual setup on my main development machine.
2026-01-07 01:04:34 +00:00
George Thomas
f98a4c29d2 Switch timings to blue
Black can look pretty bad on some consoles, including GNOME's.
2026-01-07 01:02:31 +00:00
George Thomas
aefb7f067f Use Unicode for tree drawing 2026-01-07 00:55:46 +00:00
George Thomas
fb2d412f95 Simplify test name handling
We keep the internal type safety, while making things easier for users.
2026-01-07 00:55:07 +00:00
George Thomas
f634b9b42d Use Text for test names 2026-01-07 00:43:51 +00:00
George Thomas
3721c27c32 Use custom monad for more principled test failure handling 2026-01-07 00:39:35 +00:00
George Thomas
39714ff1c3 Rename some type parameters 2026-01-06 23:36:10 +00:00
George Thomas
a7f7a2506f Minor refactor 2026-01-06 23:16:08 +00:00
George Thomas
83b14ed6ed Use terminal-size library
It still doesn't work yet in GHCID or GHCIWatch, but it seems more likely to, and it runs a lot faster.
2026-01-06 23:15:42 +00:00
George Thomas
98acc016a6 Justify test time to right of terminal 2026-01-06 23:15:41 +00:00
George Thomas
2eecc653b8 Remove colours from test times
The implementation is slightly awkward, and will be much more so when we'll want to count characters for nicer terminal layout. It's maybe not the best UX anyway. We'll think about alternatives.
2026-01-06 23:15:39 +00:00
George Thomas
fc623d0ea6 Add proper test display function 2026-01-06 23:15:37 +00:00
George Thomas
d18166951b Add mwhen 2026-01-06 23:15:36 +00:00
George Thomas
41f0b8d511 Move some utilities out of Day4.hs 2026-01-06 23:15:03 +00:00
George Thomas
99de1c4d40 Add pretty-simple to prelude 2026-01-06 23:15:03 +00:00
George Thomas
9246597b49 Render ASCII drawing of test tree 2026-01-06 23:14:56 +00:00
George Thomas
ce8cfeca67 Format 2026-01-06 23:14:50 +00:00
George Thomas
ecb7391468 Tidy up main 2026-01-06 23:14:43 +00:00
George Thomas
db41a65453 Avoid forcing puzzle parts outputs
Note that:
- This allows us to remove some very temporary hacky code from day 4.
- This includes a refactoring to hide `TestTree`, which could in theory have been made separate.
- This reverts a lot of 1163889.
2026-01-06 23:14:36 +00:00
George Thomas
f213cdb6c3 Minor refactor 2026-01-06 23:14:25 +00:00
George Thomas
cd292d4580 Define withConstrained 2026-01-06 23:14:17 +00:00
George Thomas
83e4489e1f Add timing information to tests
Most of this is concerned with propagating `NFData` constraints.
2026-01-06 23:13:58 +00:00
George Thomas
c1813b4725 Use safe indices for test part lookup 2026-01-05 18:31:34 +00:00
George Thomas
fbc63c221b Minor refactor 2026-01-05 17:00:21 +00:00
George Thomas
a47e738ec2 Avoid printing empty extra test trees 2026-01-05 17:00:21 +00:00
George Thomas
24a21e3807 Remove heterogenous list length function 2026-01-05 17:00:21 +00:00
George Thomas
7bacf5efc4 Improve error handling in Day 4 extra tests 2026-01-05 17:00:21 +00:00
George Thomas
7ee7b458ce Format 2026-01-05 17:00:21 +00:00
George Thomas
0dfb8ae7bf Minor refactor 2026-01-05 17:00:21 +00:00
George Thomas
c3e69cde09 Move to custom test library 2026-01-05 17:00:15 +00:00
George Thomas
ab0a926e24 Move and rephrase comment 2026-01-04 11:16:00 +00:00
George Thomas
f6771a7131 Check day 4 number of frames is as expected 2026-01-04 11:13:39 +00:00
George Thomas
234640fb1a Add non-parameterised version of HList fold 2026-01-04 02:58:50 +00:00