summaryrefslogtreecommitdiff
path: root/02/test.scm
diff options
context:
space:
mode:
authorPrefetch2024-03-02 19:36:12 +0100
committerPrefetch2024-03-02 19:36:12 +0100
commit1fbb07c54523c7a576bfff1cb689e155dd55f15a (patch)
tree7aa9f92a7d99ae9203b538803b7efefd846b67e0 /02/test.scm
parentaf589b238c1d51960d8af3b36041aca2bad7855b (diff)
Add first five days
Diffstat (limited to '02/test.scm')
-rw-r--r--02/test.scm38
1 files changed, 38 insertions, 0 deletions
diff --git a/02/test.scm b/02/test.scm
new file mode 100644
index 0000000..10ee751
--- /dev/null
+++ b/02/test.scm
@@ -0,0 +1,38 @@
+(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 (= 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))))
+
+(printf "Part 1 tests:\n")
+
+(define (test-part1 name input expected)
+ (run-test name solve-part1 input expected))
+
+(define part1-example1
+ '("5 1 9 5"
+ "7 5 3"
+ "2 4 6 8"))
+(test-part1 "part 1 example 1"
+ part1-example1 18)
+
+(printf "Part 2 tests:\n")
+
+(define (test-part2 name input expected)
+ (run-test name solve-part2 input expected))
+
+(define part2-example1
+ '("5 9 2 8"
+ "9 4 7 3"
+ "3 8 6 5"))
+(test-part2 "part 2 example 1"
+ part2-example1 9)
+