summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2021-12-14 00:49:28 +0000
committerYann Herklotz <git@yannherklotz.com>2021-12-14 00:49:28 +0000
commit1a03751a1968eadf0be4397fd6940a39774aa681 (patch)
treece5a7dc31e0bdcf4adab35720b81e49fb6a2e43b
parentad5a08a4c86237b9fabaee78ce8fe48a93570dd1 (diff)
downloadaoc21-1a03751a1968eadf0be4397fd6940a39774aa681.tar.gz
aoc21-1a03751a1968eadf0be4397fd6940a39774aa681.zip
Add tests
-rw-r--r--src/common.lisp4
-rw-r--r--test/01.lisp41
-rw-r--r--test/02.lisp34
-rw-r--r--test/03.lisp39
4 files changed, 118 insertions, 0 deletions
diff --git a/src/common.lisp b/src/common.lisp
new file mode 100644
index 0000000..998db58
--- /dev/null
+++ b/src/common.lisp
@@ -0,0 +1,4 @@
+(ql:quickload "uiop")
+
+(defun get-file-lines (name)
+ (uiop:read-file-lines name))
diff --git a/test/01.lisp b/test/01.lisp
new file mode 100644
index 0000000..aa02b7d
--- /dev/null
+++ b/test/01.lisp
@@ -0,0 +1,41 @@
+(ql:quickload "clunit")
+(load "../src/01.lisp")
+
+(use-package :clunit)
+
+(defsuite aoc-01 ())
+
+(defvar 01/default-input nil)
+
+(setf 01/default-input
+ '("199"
+ "200"
+ "208"
+ "210"
+ "200"
+ "207"
+ "240"
+ "269"
+ "260"
+ "263"))
+
+;;(time (format t "part 1: ~a~%" (part-a (parse-input "../inputs/01.txt"))))
+;;(time (format t "part 1: ~a~%" (part-b (parse-input "../inputs/01.txt"))))
+
+(deftest 01/test-ex-a (aoc-01)
+ (let ((result (01/part-a (01/parse-input-direct 01/default-input))))
+ (assert-equalp 7 result)))
+
+(deftest 01/test-ex-b (aoc-01)
+ (let ((result (01/part-b (01/parse-input-direct 01/default-input))))
+ (assert-equalp 5 result)))
+
+(deftest 01/test-a (aoc-01)
+ (let ((result (01/part-a (01/parse-input "../inputs/01.txt"))))
+ (assert-equalp 1451 result)))
+
+(deftest 01/test-b (aoc-01)
+ (let ((result (01/part-b (01/parse-input "../inputs/01.txt"))))
+ (assert-equalp 1395 result)))
+
+(run-suite 'aoc-01)
diff --git a/test/02.lisp b/test/02.lisp
new file mode 100644
index 0000000..fd1a7ea
--- /dev/null
+++ b/test/02.lisp
@@ -0,0 +1,34 @@
+(ql:quickload "clunit")
+(load "../src/02.lisp")
+
+(use-package :clunit)
+
+(defsuite 02/aoc ())
+
+(defvar 02/default-input nil)
+
+(setf 02/default-input
+ '("forward 5"
+ "down 5"
+ "forward 8"
+ "up 3"
+ "down 8"
+ "forward 2"))
+
+(deftest 02/test-ex-a (02/aoc)
+ (let ((result (02/part-a (02/parse-input-direct 02/default-input))))
+ (assert-equalp 150 result)))
+
+(deftest 02/test-ex-b (02/aoc)
+ (let ((result (02/part-b (02/parse-input-direct 02/default-input))))
+ (assert-equalp 900 result)))
+
+(deftest 02/test-a (02/aoc)
+ (let ((result (02/part-a (02/parse-input "../inputs/02.txt"))))
+ (assert-equalp 1561344 result)))
+
+(deftest 02/test-b (02/aoc)
+ (let ((result (02/part-b (02/parse-input "../inputs/02.txt"))))
+ (assert-equalp 1848454425 result)))
+
+(run-suite '02/aoc)
diff --git a/test/03.lisp b/test/03.lisp
new file mode 100644
index 0000000..52ea534
--- /dev/null
+++ b/test/03.lisp
@@ -0,0 +1,39 @@
+(ql:quickload "clunit")
+
+(use-package :clunit)
+
+(defsuite 03/aoc ())
+
+(defvar 03/default-input nil)
+
+(setf 03/default-input
+ '("00100"
+ "11110"
+ "10110"
+ "10111"
+ "10101"
+ "01111"
+ "00111"
+ "11100"
+ "10000"
+ "11001"
+ "00010"
+ "01010"))
+
+(deftest 03/test-ex-a (03/aoc)
+ (let ((result (03/part-a (03/parse-input-direct 03/default-input))))
+ (assert-equalp 198 result)))
+
+(deftest 03/test-ex-b (03/aoc)
+ (let ((result (03/part-b (03/parse-input-direct 03/default-input))))
+ (assert-equalp 230 result)))
+
+(deftest 03/test-a (03/aoc)
+ (let ((result (03/part-a (03/parse-input "../inputs/03.txt"))))
+ (assert-equalp 3912944 result)))
+
+(deftest 03/test-b (03/aoc)
+ (let ((result (03/part-b (03/parse-input "../inputs/03.txt"))))
+ (assert-equalp 4996233 result)))
+
+(defun 03/run-tests () (run-suite '03/aoc))