use parachute as test framework, move tests to separate package
This commit is contained in:
parent
f8735258a4
commit
5540e02509
3 changed files with 15 additions and 18 deletions
3
aoc.asd
3
aoc.asd
|
@ -12,7 +12,6 @@
|
||||||
#:cl-cookie
|
#:cl-cookie
|
||||||
#:plump
|
#:plump
|
||||||
#:lquery
|
#:lquery
|
||||||
#:fiveam
|
|
||||||
#:array-operations
|
#:array-operations
|
||||||
#:lla)
|
#:lla)
|
||||||
:components ((:module "src"
|
:components ((:module "src"
|
||||||
|
@ -27,7 +26,7 @@
|
||||||
:author "Peter Tillemans"
|
:author "Peter Tillemans"
|
||||||
:license "MIT"
|
:license "MIT"
|
||||||
:depends-on ("aoc"
|
:depends-on ("aoc"
|
||||||
"rove")
|
#:parachute)
|
||||||
:components ((:module "tests"
|
:components ((:module "tests"
|
||||||
:components
|
:components
|
||||||
((:file "main"))))
|
((:file "main"))))
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
(defpackage :aoc/2018/06
|
(defpackage :aoc/2018/06
|
||||||
(:use :cl :aoc :fiveam))
|
(:use :cl :aoc))
|
||||||
|
|
||||||
(in-package :aoc/2018/06)
|
(in-package :aoc/2018/06)
|
||||||
|
|
||||||
(defvar test-data (test-input 2018 6))
|
(defvar input-data (test-input 2018 6))
|
||||||
|
|
||||||
|
|
||||||
(defstruct point-2d
|
(defstruct point-2d
|
||||||
(x 0 :type fixnum)
|
(x 0 :type fixnum)
|
||||||
|
@ -32,13 +31,3 @@
|
||||||
(y-max (apply #'max (map 'list #'point-2d-y points) )))
|
(y-max (apply #'max (map 'list #'point-2d-y points) )))
|
||||||
(make-point-2d :x x-max :y y-max)))
|
(make-point-2d :x x-max :y y-max)))
|
||||||
|
|
||||||
(def-suite 2018-day-6)
|
|
||||||
(in-suite 2018-day-6)
|
|
||||||
|
|
||||||
(test find-top-left
|
|
||||||
(let ((result (top-left sample-points)))
|
|
||||||
(is (equalp (make-point-2d :x 1 :y 1) result))))
|
|
||||||
|
|
||||||
(test find-bottom-right
|
|
||||||
(let ((result (bottom-right sample-points)))
|
|
||||||
(is (equalp (make-point-2d :x 8 :y 9) result))))
|
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(defun test-input (year day)
|
(defun fetch-input-data (year day)
|
||||||
(let ((url (format nil "~A/~D/day/~D/input" *aoc-url* year day)))
|
(let ((url (format nil "~A/~D/day/~D/input" *aoc-url* year day)))
|
||||||
(multiple-value-bind
|
(multiple-value-bind
|
||||||
(body)
|
(body)
|
||||||
|
@ -45,3 +45,12 @@
|
||||||
body)))
|
body)))
|
||||||
|
|
||||||
|
|
||||||
|
(defvar *input-data-cache* (make-hash-table))
|
||||||
|
|
||||||
|
(defun test-input (year day)
|
||||||
|
"Return input data for the given challenge. Use a cached value if already fetched"
|
||||||
|
(let* ((key (+ (* year 100) day))
|
||||||
|
(val (gethash key *input-data-cache*)))
|
||||||
|
(if val
|
||||||
|
val
|
||||||
|
(setf (gethash key *input-data-cache*) (fetch-input-data year day)))))
|
||||||
|
|
Loading…
Reference in a new issue