From 0fc6231625943ad8b8faac8c0519f8599b5b8e84 Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Thu, 23 Oct 2025 16:33:17 +0200 Subject: Massive nutrient measurement overhaul. 1. Better struct accessor names (rename-out), 2. Eagerly load nutrient values when getting a nutrient measurement. --- tests/nutrient-measurement-model.rkt | 48 +++++++++--------------------------- 1 file changed, 11 insertions(+), 37 deletions(-) (limited to 'tests') diff --git a/tests/nutrient-measurement-model.rkt b/tests/nutrient-measurement-model.rkt index b0b053d..d6b2b60 100644 --- a/tests/nutrient-measurement-model.rkt +++ b/tests/nutrient-measurement-model.rkt @@ -8,7 +8,7 @@ "../models/nutrient.rkt" "../models/nutrient-measurement.rkt") - (define measured-on "2025-09-01") + (define measurement-date "2025-09-01") (run-tests (test-suite @@ -26,46 +26,20 @@ (test-case "Create measurement with values" (define nitrogen (get-nutrient #:name "Nitrogen")) (define phosphorus (get-nutrient #:name "Phosphorus")) - (create-nutrient-measurement! measured-on (list - (cons nitrogen 12.3) - (cons phosphorus 4.5))) + (create-nutrient-measurement! measurement-date + `((,nitrogen . 12.3) + (,phosphorus . 4.5))) (check-equal? (length (get-nutrient-measurements)) 1) - (define nm (get-nutrient-measurement #:measured-on measured-on)) + (define nm (get-nutrient-measurement #:measured-on measurement-date)) (check-true (nutrient-measurement? nm)) - (check-equal? (nutrient-measurement-measured-on nm) measured-on) - (define mvs (get-nutrient-measurement-values nm)) - (check-equal? (length mvs) 2) - (check-equal? (cdr (assoc nitrogen mvs)) 12.3) - (check-equal? (cdr (assoc phosphorus mvs)) 4.5) - ) - - #;(test-case "Update a single measurement value" - (define nitrogen (get-nutrient #:name "Nitrogen")) - (define nm (get-nutrient-measurement #:measured-on measured-on)) - (update-nutrient-measurement! nm #:nutrient-values (list (cons nitrogen 1.1))) - (define mvs (get-nutrient-measurement-values nm)) - (check-equal? (length mvs) 2) - (check-equal? (cdr (assoc nitrogen mvs)) 1.1)) - - #;(test-case "Upsert measurement values" - (define nitrogen (get-nutrient #:name "Nitrogen")) - (define phosphorus (get-nutrient #:name "Phosphorus")) - (define potassium (get-nutrient #:name "Potassium")) - (define nm (get-nutrient-measurement #:measured-on measured-on)) - ;; Upsert: set K=8.8 and change N to 10.0, keep P as-is - (update-nutrient-measurement! nm - #:nutrient-values (list - (cons nitrogen 10.0) - (cons potassium 8.8))) - (define mvs (get-nutrient-measurement-values nm)) - (check-equal? (length mvs) 3) - (check-equal? (cdr (assoc nitrogen mvs)) 10.0) - (check-equal? (cdr (assoc potassium mvs)) 8.8) - ;; P should still be present at 4.5 - (check-equal? (cdr (assoc phosphorus mvs)) 4.5)) + (check-equal? (nutrient-measurement-date nm) measurement-date) + (define nmv (nutrient-measurement-values nm)) + (check-equal? (length nmv) 2) + (check-equal? (cdr (assoc nitrogen nmv)) 12.3) + (check-equal? (cdr (assoc phosphorus nmv)) 4.5)) (test-case "Delete measurement cascades its values" - (define nm (get-nutrient-measurement #:measured-on measured-on)) + (define nm (get-nutrient-measurement #:measured-on measurement-date)) (delete-nutrient-measurement! nm) (check-false (get-nutrient-measurement #:id (nutrient-measurement-id nm))) (check-equal? (length (get-nutrient-measurements)) 0) -- cgit v1.2.3