From a1340aa4c726ba61c9f83ea040c9a40ed06d684c Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Tue, 7 Dec 2021 09:29:31 +0100
Subject: [PATCH] Improved single sine wave function to handle cutoff value
 problems

---
 .../java/no/nibio/vips/model/maths/NonLinearCurves.java   | 2 +-
 .../no/nibio/vips/model/maths/NonLinearCurvesTest.java    | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/main/java/no/nibio/vips/model/maths/NonLinearCurves.java b/src/main/java/no/nibio/vips/model/maths/NonLinearCurves.java
index f681fde..9a8f17e 100755
--- a/src/main/java/no/nibio/vips/model/maths/NonLinearCurves.java
+++ b/src/main/java/no/nibio/vips/model/maths/NonLinearCurves.java
@@ -132,7 +132,7 @@ public class NonLinearCurves {
         Double theta_2 = Math.asin((Tu - m) / alpha);
         
         // Case 5: Tmin above Tl and Tmax above Tu
-        if(Tmin >= Tl && Tu != null && Tmax >= Tu)
+        if(Tmin > Tl && Tu != null && Tmax > Tu)
         {
             return (1/Math.PI) * ( 
                     (m-Tl)*(theta_2 + Math.PI/2) 
diff --git a/src/test/java/no/nibio/vips/model/maths/NonLinearCurvesTest.java b/src/test/java/no/nibio/vips/model/maths/NonLinearCurvesTest.java
index c3c910b..b5a8557 100755
--- a/src/test/java/no/nibio/vips/model/maths/NonLinearCurvesTest.java
+++ b/src/test/java/no/nibio/vips/model/maths/NonLinearCurvesTest.java
@@ -190,6 +190,14 @@ public class NonLinearCurvesTest extends TestCase {
         result = instance.calculateSingleSineWaveWithCutoff(tMin, tMax, thresholdLower, thresholdUpper);
         assertEquals(expectedResult, result,0.1);
         
+        tMax = 32.0;
+        tMin = 20.0;
+        thresholdUpper = 31.1;
+        thresholdLower = 20.0;
+        expectedResult = 5.894588543400416;
+        result = instance.calculateSingleSineWaveWithCutoff(tMin, tMax, thresholdLower, thresholdUpper);
+        assertEquals(expectedResult, result,0.1);
+        
     }
     
 }
-- 
GitLab