diff options
Diffstat (limited to 'models/crop-requirement.rkt')
| -rw-r--r-- | models/crop-requirement.rkt | 45 |
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)) |