From 37689df3e2cfc7d3f69268d7837c8d60307ba5ff Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Tue, 11 Aug 2026 18:13:20 +0100 Subject: [PATCH] I'm starting to hate the zed editor! Messups fixed, all tests again pass. --- src/humidity/relative.clj | 23 +++++++++++++---------- test/humidity/relative_test.clj | 4 ++-- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/humidity/relative.clj b/src/humidity/relative.clj index 23e1b72..1f8c3c2 100644 --- a/src/humidity/relative.clj +++ b/src/humidity/relative.clj @@ -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/" :author "simon" :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]])) (def ^:const magic-numbers @@ -44,12 +44,15 @@ (defn rel-humidity "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." - [& {:keys [absolute-humidity dew-point saturation-vapour-pressure temperature-ke temperature-kelvin] :as packet}] - (cond (and dew-point temperature-ke) - (* 100 (/ (expt e (/ (* (C 1) dew-point) - (+ (C 2) dew-point))) - (expt e (/ (* (C 1) temperature-ke) - (+ (C 2) temperature-ke))))) - (and absolute-humidity saturation-vapour-pressure temperature-kelvin) - (/ (* absolute-humidity temperature-kelvin Rw) (* 1000 saturation-vapour-pressure)))) + point and temperature in Celsius or for absolute humidity, saturation + vapour pressure, temperature in Kelvin." + [& {:keys [absolute-humidity dew-point saturation-vapour-pressure + temperature-celsius temperature-kelvin]}] + (cond (and dew-point temperature-celsius) + (* 100 (/ (expt e (/ (* (C 1) dew-point) + (+ (C 2) dew-point))) + (expt e (/ (* (C 1) temperature-celsius) + (+ (C 2) temperature-celsius))))) + (and absolute-humidity saturation-vapour-pressure temperature-kelvin) + (/ (* absolute-humidity temperature-kelvin Rw) + (* 1000 saturation-vapour-pressure)))) diff --git a/test/humidity/relative_test.clj b/test/humidity/relative_test.clj index 9d7c5fd..d729791 100644 --- a/test/humidity/relative_test.clj +++ b/test/humidity/relative_test.clj @@ -1,13 +1,13 @@ (ns humidity.relative-test (:require [clojure.test :refer [deftest is testing]] [humidity.constants :refer [celsius-offset]] - [humidity.relative :refer [rel-humidity rel-humidity-2]])) + [humidity.relative :refer [rel-humidity rel-humidity]])) (deftest relative-humidity-test (testing "definitional" (let [min-expected 99 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)))) (testing "Online examples" (let [min-expected 99