summaryrefslogtreecommitdiff
path: root/models/crop-requirement.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'models/crop-requirement.rkt')
-rw-r--r--models/crop-requirement.rkt45
1 files changed, 23 insertions, 22 deletions
diff --git a/models/crop-requirement.rkt b/models/crop-requirement.rkt
index 2dd8071..dc3f3a0 100644
--- a/models/crop-requirement.rkt
+++ b/models/crop-requirement.rkt
@@ -189,23 +189,23 @@
"../models/nutrient.rkt"
"../models/crop.rkt")
- (define requirement-profile "Tomato - Vegetative")
+ (define requirement-profile "Examplium Plant - Vegetative")
(run-tests
(test-suite "Crop requirement model"
#:before (λ ()
(connect! #:path 'memory)
(migrate-all!)
- (create-nutrient! "Nitrogen" "Azote" "N")
- (create-nutrient! "Phosphorus" "Phosphore" "P")
- (create-nutrient! "Potassium" "Potassium" "K"))
+ (create-nutrient! "Examplium" "Examplium" "Ex")
+ (create-nutrient! "Ignorium" "Ignorium" "Ig")
+ (create-nutrient! "Testium" "Testium" "Ts"))
#:after (λ () (disconnect!))
(test-case "Create requirement with profile and values"
- (define nitrogen (get-nutrient #:name "Nitrogen"))
- (define phosphorus (get-nutrient #:name "Phosphorus"))
+ (define examplium (get-nutrient #:name "Examplium"))
+ (define ignorium (get-nutrient #:name "Ignorium"))
- (create-crop-requirement! requirement-profile (hash nitrogen 150 phosphorus 50))
+ (create-crop-requirement! requirement-profile (hash examplium 150 ignorium 50))
(check-equal? (length (get-crop-requirements)) 1)
@@ -214,21 +214,22 @@
(check-equal? (crop-requirement-profile cr) requirement-profile))
(test-case "Create requirement with associated crop"
- (define tomato (create-crop! "Tomato"))
- (define nitrogen (get-nutrient #:name "Nitrogen"))
+ (define test-crop (create-crop! (crop #f "testium-plant")))
+ (define examplium (get-nutrient #:name "Examplium"))
- (define cr (create-crop-requirement! "Tomato - Fruiting" (hash nitrogen 200) tomato))
+ (define cr
+ (create-crop-requirement! "Testium Plant - Fruiting" (hash examplium 200) test-crop))
- (check-equal? (crop-requirement-crop-id cr) (crop-id tomato)))
+ (check-equal? (crop-requirement-crop-id cr) (crop-id test-crop)))
(test-case "Check all requirement values"
- (define nitrogen (get-nutrient #:name "Nitrogen"))
- (define phosphorus (get-nutrient #:name "Phosphorus"))
+ (define examplium (get-nutrient #:name "Examplium"))
+ (define ignorium (get-nutrient #:name "Ignorium"))
(define cr (get-crop-requirement #:profile requirement-profile))
- (check-= (get-crop-requirement-value cr nitrogen) 150 0)
- (check-= (get-crop-requirement-value cr phosphorus) 50 0)
+ (check-= (get-crop-requirement-value cr examplium) 150 0)
+ (check-= (get-crop-requirement-value cr ignorium) 50 0)
(define crv (crop-requirement-nutrient-values cr))
@@ -238,8 +239,8 @@
"return value of get-crop-requirement-values ≠ crop-requirement-values struct accessor")
(check-equal? (hash-count crv) 2)
- (check-= (hash-ref crv nitrogen) 150 0)
- (check-= (hash-ref crv phosphorus) 50 0))
+ (check-= (hash-ref crv examplium) 150 0)
+ (check-= (hash-ref crv ignorium) 50 0))
(test-case "Get requirement by id"
(define cr (get-crop-requirement #:profile requirement-profile))
@@ -248,19 +249,19 @@
(check-equal? cr cr-by-id))
(test-case "Average crop requirement nutrient values"
- (define nitrogen (get-nutrient #:name "Nitrogen"))
- (define phosphorus (get-nutrient #:name "Phosphorus"))
+ (define examplium (get-nutrient #:name "Examplium"))
+ (define ignorium (get-nutrient #:name "Ignorium"))
(define cr1 (get-crop-requirement #:profile requirement-profile))
- (define cr2 (create-crop-requirement! "Lettuce" (hash nitrogen 100 phosphorus 30)))
+ (define cr2 (create-crop-requirement! "Generic Growth" (hash examplium 100 ignorium 30)))
(define mix (hash cr1 60 cr2 40))
(define avg (average-crop-requirement-nutrient-values mix))
;; 150 * 0.6 + 100 * 0.4 = 90 + 40 = 130
- (check-= (hash-ref avg nitrogen) 130 0.01)
+ (check-= (hash-ref avg examplium) 130 0.01)
;; 50 * 0.6 + 30 * 0.4 = 30 + 12 = 42
- (check-= (hash-ref avg phosphorus) 42 0.01))
+ (check-= (hash-ref avg ignorium) 42 0.01))
(test-case "Delete requirement and cascade to requirement values"
(define cr (get-crop-requirement #:profile requirement-profile))
Copyright 2019--2026 Marius PETER