use parachute as test framework, move tests to separate package

This commit is contained in:
Peter Tillemans 2024-11-23 14:30:40 +01:00
parent f8735258a4
commit 5540e02509
3 changed files with 15 additions and 18 deletions

View file

@ -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"))))

View file

@ -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))))

View file

@ -37,11 +37,20 @@
(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)
(dex:get url :cookie-jar *cookie-jar* :verbose t) (dex:get url :cookie-jar *cookie-jar* :verbose t)
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)))))