advent-of-code-2024

My solutions to AoC 2024
Log | Files | Refs

day-2.lisp (755B)


      1 (defpackage #:aoc-test/day-2
      2   (:use #:cl #:lisp-unit2)
      3   (:import-from aoc/day-2))
      4 (in-package #:aoc-test/day-2)
      5 
      6 (define-test test-day-2
      7     ()
      8   ;;; Test resets
      9   ;; Report where the first item needs to be skipped
     10   (assert (aoc/day-2:report-safe-p (list 30 24 25 28 31 33 35) :allow-skip t))
     11   ;; Report where the second item needs to be skipped
     12   (assert (aoc/day-2:report-safe-p (list 24 21 25 28 31 33 35) :allow-skip t))
     13   ;; Report where reset target needs to be removed
     14   (assert (aoc/day-2:report-safe-p (list 25 22 19 21 20 17 14 13) :allow-skip t))
     15   ;;; Test task 1 & 2
     16   (multiple-value-bind (task-1 task-2)
     17       (aoc:run-day 2 "7 6 4 2 1
     18 1 2 7 8 9
     19 9 7 6 2 1
     20 1 3 2 4 5
     21 8 6 4 4 1
     22 1 3 6 7 9")
     23     (assert= 2 task-1)
     24     (assert= 4 task-2)))