From 1a03751a1968eadf0be4397fd6940a39774aa681 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Tue, 14 Dec 2021 00:49:28 +0000 Subject: Add tests --- src/common.lisp | 4 ++++ test/01.lisp | 41 +++++++++++++++++++++++++++++++++++++++++ test/02.lisp | 34 ++++++++++++++++++++++++++++++++++ test/03.lisp | 39 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 118 insertions(+) create mode 100644 src/common.lisp create mode 100644 test/01.lisp create mode 100644 test/02.lisp create mode 100644 test/03.lisp 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)) -- cgit