diff --git a/src/main/java/no/nibio/vips/model/alternariamodel/AlternariaModel.java b/src/main/java/no/nibio/vips/model/alternariamodel/AlternariaModel.java index a8fbf3fd3b4f75cdcaae26bf1d345aea3c04eb59..a8a193ce1bf1310da51ef8ed2749df77853edae4 100644 --- a/src/main/java/no/nibio/vips/model/alternariamodel/AlternariaModel.java +++ b/src/main/java/no/nibio/vips/model/alternariamodel/AlternariaModel.java @@ -71,9 +71,11 @@ public class AlternariaModel extends I18nImpl implements Model { public final static String NAME_MODEL_ID = "ALTERNARIA"; public final static ModelId MODEL_ID = new ModelId(NAME_MODEL_ID); public final static int THRESHOLD_LW = 30; // Threshold for leave wetness - public final static int THRESHOLD_DSV_MAX = 20; // Threshold Minimum for DSV + private Double THRESHOLD_DSV_MAX = 20.0; // Threshold Minimum for DSV + public final static String THRESHOLD_DSV_MAX_NAME = "thresholdDSVMax"; public final static int THRESHOLD_DSV_DIFF_MIN_MAX = 5; // Threshold Maximum for DSV private Double THRESHOLD_DSV_TEMP_MIN = 13.0; // Minimum temp for getting a DSV value + public final static String THRESHOLD_DSV_TEMP_MIN_NAME = "thresholdDSVTempMin"; public final static String YES = "Y"; // Spray Date public final static String NO = "N"; @@ -420,6 +422,16 @@ public class AlternariaModel extends I18nImpl implements Model { List<WeatherObservation> altenariaWeatherLIstHourly_tm = new ArrayList<WeatherObservation>(); List<WeatherObservation> altenariaWeatherLIstHourly_lw = new ArrayList<WeatherObservation>(); + try + { + this.THRESHOLD_DSV_TEMP_MIN = config.getConfigParameter(AlternariaModel.THRESHOLD_DSV_TEMP_MIN_NAME) != null ? modelUtil.getDouble(config.getConfigParameter(AlternariaModel.THRESHOLD_DSV_TEMP_MIN_NAME)): this.THRESHOLD_DSV_TEMP_MIN; + this.THRESHOLD_DSV_MAX = config.getConfigParameter(AlternariaModel.THRESHOLD_DSV_MAX_NAME) != null ? modelUtil.getDouble(config.getConfigParameter(AlternariaModel.THRESHOLD_DSV_MAX_NAME)) : this.THRESHOLD_DSV_MAX; + } + catch(ClassCastException ex) + { + throw new ConfigValidationException(ex.getMessage()); + } + Date dateHourlyTm_currentDay = null; Date dateHourlyTm_previousDay = null; Date dateHourlyLw_currentDay = null; diff --git a/src/test/java/no/nibio/vips/model/alternariamodel/AlternariaModelTest.java b/src/test/java/no/nibio/vips/model/alternariamodel/AlternariaModelTest.java index 4e160a32bad462f31b4a132b3bf442da2277f8b1..cf6f20bb797a12c1a9a7d4387bad6fabb9d02651 100644 --- a/src/test/java/no/nibio/vips/model/alternariamodel/AlternariaModelTest.java +++ b/src/test/java/no/nibio/vips/model/alternariamodel/AlternariaModelTest.java @@ -25,6 +25,7 @@ import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeAll; import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.DynamicTest.stream; /** * @@ -104,6 +105,90 @@ public class AlternariaModelTest { */ + } + + @org.junit.jupiter.api.Test + public void testGetResultWithThresholdDSVTempMin() throws Exception { + System.out.println("getResultWithThresholdDSVTempMin"); + ModelConfiguration config = this.getConfiguration(getWeatherDataFile()); + config.setConfigParameter("sprayingDates", this.getConfigurationSprayingDates(getResetDataFile())); + config.setConfigParameter(AlternariaModel.THRESHOLD_DSV_TEMP_MIN_NAME, 10.0); + AlternariaModel instance = new AlternariaModel(); + instance.setConfiguration(config); + List<Result> result = instance.getResult(); + assertNotNull(result); + + config.setConfigParameter(AlternariaModel.THRESHOLD_DSV_TEMP_MIN_NAME, "10.0"); + + instance.setConfiguration(config); + result = instance.getResult(); + assertNotNull(result); + + /* + for(Result res:result) + { + // LOGGER.log(Level.INFO, res.toString()); + System.out.println(res.toString()); + }*/ + + config.setConfigParameter(AlternariaModel.THRESHOLD_DSV_TEMP_MIN_NAME, "13.0"); + //System.out.println(config.toJSON()); + + instance.setConfiguration(config); + result = instance.getResult(); + assertNotNull(result); + + /* + for(Result res:result) + { + // LOGGER.log(Level.INFO, res.toString()); + System.out.println(res.toString()); + } */ + + + + } + + @org.junit.jupiter.api.Test + public void testGetResultWithThresholdDSVMax() throws Exception { + System.out.println("getResultWithThresholdDSVMax"); + ModelConfiguration config = this.getConfiguration(getWeatherDataFile()); + config.setConfigParameter("sprayingDates", this.getConfigurationSprayingDates(getResetDataFile())); + config.setConfigParameter(AlternariaModel.THRESHOLD_DSV_MAX_NAME, 21); + AlternariaModel instance = new AlternariaModel(); + instance.setConfiguration(config); + List<Result> result = instance.getResult(); + assertNotNull(result); + + config.setConfigParameter(AlternariaModel.THRESHOLD_DSV_MAX_NAME, "21"); + + instance.setConfiguration(config); + result = instance.getResult(); + assertNotNull(result); + + /* + for(Result res:result) + { + // LOGGER.log(Level.INFO, res.toString()); + System.out.println(res.toString()); + }*/ + + config.setConfigParameter(AlternariaModel.THRESHOLD_DSV_MAX_NAME, "13.0"); + //System.out.println(config.toJSON()); + + instance.setConfiguration(config); + result = instance.getResult(); + assertNotNull(result); + + /* + for(Result res:result) + { + // LOGGER.log(Level.INFO, res.toString()); + System.out.println(res.toString()); + } */ + + + } /**