From a8ac12bbed5bf796cf5fd7cb16f090856a92286d Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Thu, 25 Feb 2021 10:49:45 +0100
Subject: [PATCH] [refactor] remove accept_zero_scale_parameter in
 gev_params.py

---
 extreme_fit/distribution/gev/gev_params.py           |  4 +---
 extreme_trend/abstract_gev_trend_test.py             |  7 -------
 .../gev_trend_test_one_parameter.py                  | 12 ------------
 .../gev_trend_test_two_parameters.py                 |  7 -------
 .../test_distribution/test_gev/test_gev_params.py    |  4 ++--
 5 files changed, 3 insertions(+), 31 deletions(-)

diff --git a/extreme_fit/distribution/gev/gev_params.py b/extreme_fit/distribution/gev/gev_params.py
index e83e787f..2c103119 100644
--- a/extreme_fit/distribution/gev/gev_params.py
+++ b/extreme_fit/distribution/gev/gev_params.py
@@ -20,11 +20,9 @@ class GevParams(AbstractExtremeParams):
     SUMMARY_NAMES = PARAM_NAMES + AbstractParams.QUANTILE_NAMES
     NB_SUMMARY_NAMES = len(SUMMARY_NAMES)
 
-    def __init__(self, loc: float, scale: float, shape: float, block_size: int = None, accept_zero_scale_parameter=False):
+    def __init__(self, loc: float, scale: float, shape: float, block_size: int = None):
         super().__init__(loc, scale, shape)
         self.block_size = block_size
-        if accept_zero_scale_parameter and scale == 0.0:
-            self.has_undefined_parameters = False
         self.param_name_to_confidence_interval = None
 
     @nan_if_undefined_wrapper
diff --git a/extreme_trend/abstract_gev_trend_test.py b/extreme_trend/abstract_gev_trend_test.py
index 43a1e800..d3c33e61 100644
--- a/extreme_trend/abstract_gev_trend_test.py
+++ b/extreme_trend/abstract_gev_trend_test.py
@@ -163,17 +163,10 @@ class AbstractGevTrendTest(object):
     def same_sign(a, b):
         return (a > 0 and b > 0) or (a < 0 and b < 0)
 
-    @property
-    def mean_difference_same_sign_as_slope_strenght(self) -> bool:
-        return False
-
     @property
     def variance_difference_same_sign_as_slope_strenght(self) -> bool:
         return False
 
-    def mean_difference(self, zeta0: float, mu1: float = 0.0, sigma1: float = 0.0) -> float:
-        return GevParams(loc=mu1, scale=sigma1, shape=zeta0, accept_zero_scale_parameter=True).mean
-
     @property
     def test_trend_constant_quantile(self):
         return self.unconstrained_estimator_gev_params_last_year.quantile(p=self.quantile_level)
diff --git a/extreme_trend/trend_test_one_parameter/gev_trend_test_one_parameter.py b/extreme_trend/trend_test_one_parameter/gev_trend_test_one_parameter.py
index 49474239..41224214 100644
--- a/extreme_trend/trend_test_one_parameter/gev_trend_test_one_parameter.py
+++ b/extreme_trend/trend_test_one_parameter/gev_trend_test_one_parameter.py
@@ -76,12 +76,6 @@ class GevLocationTrendTest(GevTrendTestOneParameterAgainstStationary):
         return self.unconstrained_estimator_gev_params_last_year.time_derivative_of_return_level(p=self.quantile_level,
                                                                                                  mu1=self.non_stationary_linear_coef)
 
-    @property
-    def mean_difference_same_sign_as_slope_strenght(self) -> bool:
-        zeta0 = self.unconstrained_estimator_gev_params_last_year.shape
-        mean_difference = self.mean_difference(zeta0=zeta0, mu1=self.non_stationary_linear_coef)
-        return self.same_sign(mean_difference, self._slope_strength())
-
     @property
     def variance_difference_same_sign_as_slope_strenght(self) -> bool:
         return False
@@ -104,12 +98,6 @@ class GevScaleTrendTest(GevTrendTestOneParameterAgainstStationary):
             p=self.quantile_level,
             sigma1=self.non_stationary_linear_coef)
 
-    @property
-    def mean_difference_same_sign_as_slope_strenght(self) -> bool:
-        zeta0 = self.unconstrained_estimator_gev_params_last_year.shape
-        mean_difference = self.mean_difference(zeta0=zeta0, sigma1=self.non_stationary_linear_coef)
-        return self.same_sign(mean_difference, self._slope_strength())
-
     @property
     def variance_difference_same_sign_as_slope_strenght(self) -> bool:
         sigma1 = self.non_stationary_linear_coef
diff --git a/extreme_trend/trend_test_two_parameters/gev_trend_test_two_parameters.py b/extreme_trend/trend_test_two_parameters/gev_trend_test_two_parameters.py
index 223490ff..ee2d0a83 100644
--- a/extreme_trend/trend_test_two_parameters/gev_trend_test_two_parameters.py
+++ b/extreme_trend/trend_test_two_parameters/gev_trend_test_two_parameters.py
@@ -91,13 +91,6 @@ class GevLocationAndScaleTrendTest(GevTrendTestTwoParametersAgainstGev):
         return self.unconstrained_estimator_gev_params_last_year.time_derivative_of_return_level(p=self.quantile_level,
                                                                                                  mu1=self.mu1,
                                                                                                  sigma1=self.sigma1)
-
-    @property
-    def mean_difference_same_sign_as_slope_strenght(self) -> bool:
-        zeta0 = self.unconstrained_estimator_gev_params_last_year.shape
-        mean_difference = self.mean_difference(zeta0=zeta0, mu1=self.mu1, sigma1=self.sigma1)
-        return self.same_sign(mean_difference, self._slope_strength())
-
     @property
     def variance_difference_same_sign_as_slope_strenght(self) -> bool:
         return self.same_sign(self.sigma1, self._slope_strength())
diff --git a/test/test_extreme_fit/test_distribution/test_gev/test_gev_params.py b/test/test_extreme_fit/test_distribution/test_gev/test_gev_params.py
index 607e47a1..e3aeda6f 100644
--- a/test/test_extreme_fit/test_distribution/test_gev/test_gev_params.py
+++ b/test/test_extreme_fit/test_distribution/test_gev/test_gev_params.py
@@ -27,9 +27,9 @@ class TestGevParams(unittest.TestCase):
     def test_time_derivative_return_level(self):
         p = 0.99
         for mu1 in [-1, 0, 1]:
-            for sigma1 in [0, 1, 10]:
+            for sigma1 in [1, 10]:
                 for shape in [-1, 0, 1]:
-                    params = GevParams(loc=mu1, scale=sigma1, shape=shape, accept_zero_scale_parameter=True)
+                    params = GevParams(loc=mu1, scale=sigma1, shape=shape)
                     quantile = params.quantile(p)
                     time_derivative = params.time_derivative_of_return_level(p, mu1, sigma1)
                     self.assertEqual(quantile, time_derivative)
-- 
GitLab