Crystal-lang, at least 0.27.0
Most (but not all) solutions have tests, in a spec/ subdirectory in the day's
directory. To run the test, cd into the day's dir and run crystal spec.
Normally, you write your "library" logic in one Crystal file and your executable "wrapper" in another file, and your specs import the library file and test it.
However, that's a lot of overhead for these problems, but I like the idea of
being able to TDD my way to solutions given the sample input/outputs, so each of
my solutions checks to see if the file is being imported as part of running
specs (by looking at the current executable name and matching against a special
name Crystal uses for the crystal spec command) and if so, doesn't execute the
"main"/"executable" logic.