Advent of Code solutions for 2018
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
What's the deal with that weird
unless PROGRAM_NAME thing?
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