[Racket] Ferti hydroponic nutrient solver, redux.
Increase nutrient measurement test coverage.
tests/nutrient-measurement-model.rkt
@@ -23,7 +23,7 @@
23
23
#:after (λ ()
24
24
(disconnect!))
25
25
26
Removed:
(test-case "Create measurement with values"
26
Added:
(test-case "Create measurement with date and values"
27
27
(define nitrogen (get-nutrient #:name "Nitrogen"))
28
28
(define phosphorus (get-nutrient #:name "Phosphorus"))
29
29
(create-nutrient-measurement! measurement-date
@@ -32,15 +32,38 @@
32
32
(check-equal? (length (get-nutrient-measurements)) 1)
33
33
(define nm (get-nutrient-measurement #:measured-on measurement-date))
34
34
(check-true (nutrient-measurement? nm))
35
Removed:
(check-equal? (nutrient-measurement-date nm) measurement-date)
35
Added:
(check-equal? (nutrient-measurement-date nm) measurement-date))
36
Added:
37
Added:
(test-case "Check all measurement values"
38
Added:
(define nitrogen (get-nutrient #:name "Nitrogen"))
39
Added:
(define phosphorus (get-nutrient #:name "Phosphorus"))
40
Added:
41
Added:
(define nm (get-nutrient-measurement #:measured-on measurement-date))
42
Added:
(check-equal? (get-nutrient-measurement-value nm nitrogen) 12.3)
43
Added:
(check-equal? (get-nutrient-measurement-value nm phosphorus) 4.5)
44
Added:
36
45
(define nmv (nutrient-measurement-values nm))
46
Added:
(check-equal? (get-nutrient-measurement-values nm) nmv
47
Added:
"return value of get-nutrient-measurement-values ≠ nutrient-measurement-values struct accessor")
37
48
(check-equal? (length nmv) 2)
38
49
(check-equal? (cdr (assoc nitrogen nmv)) 12.3)
39
50
(check-equal? (cdr (assoc phosphorus nmv)) 4.5))
40
51
41
Removed:
(test-case "Delete measurement cascades its values"
52
Added:
(test-case "Retrieve latest measurement values"
53
Added:
(define nitrogen (get-nutrient #:name "Nitrogen"))
54
Added:
(define phosphorus (get-nutrient #:name "Phosphorus"))
55
Added:
(define second-measurement-date "2025-09-02")
56
Added:
(create-nutrient-measurement! second-measurement-date
57
Added:
`((,nitrogen . 6.7)
58
Added:
(,phosphorus . 8.9)))
59
Added:
60
Added:
(check-equal? (get-latest-nutrient-measurement-value nitrogen) 6.7)
61
Added:
(check-equal? (get-latest-nutrient-measurement-value phosphorus) 8.9))
62
Added:
63
Added:
(test-case "Delete measurement and cascade to measurement values"
42
64
(define nm (get-nutrient-measurement #:measured-on measurement-date))
43
65
(delete-nutrient-measurement! nm)
44
66
(check-false (get-nutrient-measurement #:id (nutrient-measurement-id nm)))
45
Removed:
(check-equal? (length (get-nutrient-measurements)) 0)
67
Added:
(check-equal? (length (get-nutrient-measurements)) 1
68
Added:
"wrong number of nutrient measurements were deleted")
46
69
(check-true (null? (get-nutrient-measurement-values nm)))))))