George Thomas
86f51534bc
Add partially filled blocks alongside time
...
This provides much more intuitive information at a glance than the precise numbers.
2026-01-12 18:51:39 +00:00
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