I'm starting to hate the zed editor! Messups fixed, all tests again pass.
This commit is contained in:
parent
be68481d06
commit
37689df3e2
2 changed files with 15 additions and 12 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
(ns ^{:authority "https://journals.ametsoc.org/view/journals/apme/35/4/1520-0450_1996_035_0601_imfaos_2_0_co_2.xml/"
|
(ns ^{:authority "https://journals.ametsoc.org/view/journals/apme/35/4/1520-0450_1996_035_0601_imfaos_2_0_co_2.xml/"
|
||||||
:author "simon"
|
:author "simon"
|
||||||
:doc "Function to return relative humidity."} humidity.relative
|
:doc "Function to return relative humidity."} humidity.relative
|
||||||
(:require [humidity.constants :refer [celsius-offset e Rw]]
|
(:require [humidity.constants :refer [e Rw]]
|
||||||
[humidity.utils :refer [expt]]))
|
[humidity.utils :refer [expt]]))
|
||||||
|
|
||||||
(def ^:const magic-numbers
|
(def ^:const magic-numbers
|
||||||
|
|
@ -44,12 +44,15 @@
|
||||||
|
|
||||||
(defn rel-humidity
|
(defn rel-humidity
|
||||||
"Returns relative humidity (as a percentage, 0...100) given values for dew
|
"Returns relative humidity (as a percentage, 0...100) given values for dew
|
||||||
point and temperature in Celsius or for absolute humidity, saturation vapour pressure temperature Kelvin."
|
point and temperature in Celsius or for absolute humidity, saturation
|
||||||
[& {:keys [absolute-humidity dew-point saturation-vapour-pressure temperature-ke temperature-kelvin] :as packet}]
|
vapour pressure, temperature in Kelvin."
|
||||||
(cond (and dew-point temperature-ke)
|
[& {:keys [absolute-humidity dew-point saturation-vapour-pressure
|
||||||
(* 100 (/ (expt e (/ (* (C 1) dew-point)
|
temperature-celsius temperature-kelvin]}]
|
||||||
(+ (C 2) dew-point)))
|
(cond (and dew-point temperature-celsius)
|
||||||
(expt e (/ (* (C 1) temperature-ke)
|
(* 100 (/ (expt e (/ (* (C 1) dew-point)
|
||||||
(+ (C 2) temperature-ke)))))
|
(+ (C 2) dew-point)))
|
||||||
(and absolute-humidity saturation-vapour-pressure temperature-kelvin)
|
(expt e (/ (* (C 1) temperature-celsius)
|
||||||
(/ (* absolute-humidity temperature-kelvin Rw) (* 1000 saturation-vapour-pressure))))
|
(+ (C 2) temperature-celsius)))))
|
||||||
|
(and absolute-humidity saturation-vapour-pressure temperature-kelvin)
|
||||||
|
(/ (* absolute-humidity temperature-kelvin Rw)
|
||||||
|
(* 1000 saturation-vapour-pressure))))
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
(ns humidity.relative-test
|
(ns humidity.relative-test
|
||||||
(:require [clojure.test :refer [deftest is testing]]
|
(:require [clojure.test :refer [deftest is testing]]
|
||||||
[humidity.constants :refer [celsius-offset]]
|
[humidity.constants :refer [celsius-offset]]
|
||||||
[humidity.relative :refer [rel-humidity rel-humidity-2]]))
|
[humidity.relative :refer [rel-humidity rel-humidity]]))
|
||||||
|
|
||||||
(deftest relative-humidity-test
|
(deftest relative-humidity-test
|
||||||
(testing "definitional"
|
(testing "definitional"
|
||||||
(let [min-expected 99
|
(let [min-expected 99
|
||||||
max-expected 101
|
max-expected 101
|
||||||
actual (rel-humidity-2 :absolute-humidity 39.58 :saturation-vapour-pressure 5622.49 :temperature-kelvin (+ 35 celsius-offset))]
|
actual (rel-humidity :absolute-humidity 3953.618 :saturation-vapour-pressure 5622.49 :temperature-kelvin (+ 35 celsius-offset))]
|
||||||
(is (< min-expected actual max-expected))))
|
(is (< min-expected actual max-expected))))
|
||||||
(testing "Online examples"
|
(testing "Online examples"
|
||||||
(let [min-expected 99
|
(let [min-expected 99
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue