From 5540e02509e9d58179483504e1dbbb86528caf3b Mon Sep 17 00:00:00 2001 From: Peter Tillemans Date: Sat, 23 Nov 2024 14:30:40 +0100 Subject: [PATCH] use parachute as test framework, move tests to separate package --- aoc.asd | 3 +-- src/2018/day06.lisp | 15 ++------------- src/main.lisp | 15 ++++++++++++--- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/aoc.asd b/aoc.asd index d915f89..28db69e 100644 --- a/aoc.asd +++ b/aoc.asd @@ -12,7 +12,6 @@ #:cl-cookie #:plump #:lquery - #:fiveam #:array-operations #:lla) :components ((:module "src" @@ -27,7 +26,7 @@ :author "Peter Tillemans" :license "MIT" :depends-on ("aoc" - "rove") + #:parachute) :components ((:module "tests" :components ((:file "main")))) diff --git a/src/2018/day06.lisp b/src/2018/day06.lisp index 3993dd8..005d118 100644 --- a/src/2018/day06.lisp +++ b/src/2018/day06.lisp @@ -1,10 +1,9 @@ (defpackage :aoc/2018/06 - (:use :cl :aoc :fiveam)) + (:use :cl :aoc)) (in-package :aoc/2018/06) -(defvar test-data (test-input 2018 6)) - +(defvar input-data (test-input 2018 6)) (defstruct point-2d (x 0 :type fixnum) @@ -32,13 +31,3 @@ (y-max (apply #'max (map 'list #'point-2d-y points) ))) (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)))) diff --git a/src/main.lisp b/src/main.lisp index 5817dbd..604e6d7 100644 --- a/src/main.lisp +++ b/src/main.lisp @@ -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))) (multiple-value-bind - (body) - (dex:get url :cookie-jar *cookie-jar* :verbose t) + (body) + (dex:get url :cookie-jar *cookie-jar* :verbose t) 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)))))