summaryrefslogtreecommitdiff
path: root/10/test.scm
diff options
context:
space:
mode:
authorPrefetch2024-03-26 21:41:32 +0100
committerPrefetch2024-03-26 21:41:32 +0100
commit757b98fb30e75d7698a0986184d0303224db156c (patch)
treeb0f01bf59bb6fc7d26b55f6edd611393f8f8bf62 /10/test.scm
parent1fbb07c54523c7a576bfff1cb689e155dd55f15a (diff)
Publish days 6-10
Diffstat (limited to '10/test.scm')
-rw-r--r--10/test.scm42
1 files changed, 42 insertions, 0 deletions
diff --git a/10/test.scm b/10/test.scm
new file mode 100644
index 0000000..50a425d
--- /dev/null
+++ b/10/test.scm
@@ -0,0 +1,42 @@
+(import (chezscheme))
+
+; Where the magic happens
+(import (lib))
+
+; My quick-and-dirty unit testing framework (copied for each day)
+(define (run-test name proc input expected)
+ (let ((result (proc input)))
+ (if (equal? result expected)
+ (printf "\x1b;[32;1mPASS\x1b;[0m: ~a\n"
+ name)
+ (printf "\x1b;[31;1mFAIL\x1b;[0m: ~a: got ~a, expected ~a\n"
+ name result expected))))
+
+; I've disabled part 1's test because it uses a 5-element list
+; instead of 256 elements like the main problem and part 2, and
+; I'm too lazy to structure my code properly to deal with that.
+
+;(printf "Part 1 tests:\n")
+
+;(define (test-part1 name input expected)
+; (run-test name solve-part1 input expected))
+
+;(test-part1 "part 1 example 1"
+; "3,4,1,5" 12)
+
+(printf "Part 2 tests:\n")
+
+(define (test-part2 name input expected)
+ (run-test name solve-part2 input expected))
+
+(test-part2 "part 2 example 1"
+ "" "a2582a3a0e66e6e86e3812dcb672a272")
+
+(test-part2 "part 2 example 2"
+ "AoC 2017" "33efeb34ea91902bb2f59c9920caa6cd")
+
+(test-part2 "part 2 example 3"
+ "1,2,3" "3efbe78a8d82f29979031a4aa0b16a9d")
+
+(test-part2 "part 2 example 4"
+ "1,2,4" "63960835bcdc130f0b66d7ff4f6a5a8e")