From e1713e886a5b5fdfe3cee697ebb5a787fd4b64d7 Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Fri, 23 Apr 2021 11:06:23 +0200
Subject: [PATCH] [refactor] add cached property on nllh, rename function from
 fit to margin function from fit. rename nb params to nb params from margin
 function

---
 .../estimator/margin_estimator/abstract_margin_estimator.py   | 4 ++--
 .../function/margin_function/abstract_margin_function.py      | 2 +-
 .../function/margin_function/linear_margin_function.py        | 2 +-
 .../function/margin_function/polynomial_margin_function.py    | 2 +-
 .../function/margin_function/spline_margin_function.py        | 2 +-
 extreme_trend/trend_test/abstract_gev_trend_test.py           | 2 +-
 6 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/extreme_fit/estimator/margin_estimator/abstract_margin_estimator.py b/extreme_fit/estimator/margin_estimator/abstract_margin_estimator.py
index f6455310..591130ef 100644
--- a/extreme_fit/estimator/margin_estimator/abstract_margin_estimator.py
+++ b/extreme_fit/estimator/margin_estimator/abstract_margin_estimator.py
@@ -66,7 +66,7 @@ class LinearMarginEstimator(AbstractMarginEstimator):
     def coordinates_for_nllh(self):
         return pd.concat([self.df_coordinates_spat, self.df_coordinates_temp], axis=1).values
 
-    @property
+    @cached_property
     def nllh(self):
         maxima_values = self.dataset.maxima_gev
         coordinate_values = self.coordinates_for_nllh
@@ -118,7 +118,7 @@ class LinearMarginEstimator(AbstractMarginEstimator):
 
     @property
     def nb_params(self):
-        nb_params = self.margin_function_from_fit.nb_params
+        nb_params = self.margin_function_from_fit.nb_params_for_margin_function
         nb_params += self.margin_function_from_fit.nb_params_for_climate_effects
         if isinstance(self.margin_model, AbstractTemporalLinearMarginModel) and self.margin_model.is_gumbel_model:
             nb_params -= 1
diff --git a/extreme_fit/function/margin_function/abstract_margin_function.py b/extreme_fit/function/margin_function/abstract_margin_function.py
index cd2e71c2..0bfc893b 100644
--- a/extreme_fit/function/margin_function/abstract_margin_function.py
+++ b/extreme_fit/function/margin_function/abstract_margin_function.py
@@ -56,7 +56,7 @@ class AbstractMarginFunction(AbstractFunction):
         raise NotImplementedError
 
     @property
-    def nb_params(self):
+    def nb_params_for_margin_function(self):
         raise NotImplementedError
 
     @property
diff --git a/extreme_fit/function/margin_function/linear_margin_function.py b/extreme_fit/function/margin_function/linear_margin_function.py
index 59065da1..315fd278 100644
--- a/extreme_fit/function/margin_function/linear_margin_function.py
+++ b/extreme_fit/function/margin_function/linear_margin_function.py
@@ -50,7 +50,7 @@ class LinearMarginFunction(ParametricMarginFunction):
         return {v: k for k, v in cls.idx_to_coefficient_name(coordinates).items()}
 
     @property
-    def nb_params(self):
+    def nb_params_for_margin_function(self):
         return len(self.coef_dict)
 
     @property
diff --git a/extreme_fit/function/margin_function/polynomial_margin_function.py b/extreme_fit/function/margin_function/polynomial_margin_function.py
index f08ec0f9..1dbbedb0 100644
--- a/extreme_fit/function/margin_function/polynomial_margin_function.py
+++ b/extreme_fit/function/margin_function/polynomial_margin_function.py
@@ -34,7 +34,7 @@ class PolynomialMarginFunction(LinearMarginFunction):
         return super().get_params(coordinate, is_transformed)
 
     @property
-    def nb_params(self):
+    def nb_params_for_margin_function(self):
         return sum([c.nb_params for c in self.param_name_to_coef.values()])
 
     @classmethod
diff --git a/extreme_fit/function/margin_function/spline_margin_function.py b/extreme_fit/function/margin_function/spline_margin_function.py
index 917ee326..b86d5cc3 100644
--- a/extreme_fit/function/margin_function/spline_margin_function.py
+++ b/extreme_fit/function/margin_function/spline_margin_function.py
@@ -42,7 +42,7 @@ class SplineMarginFunction(LinearMarginFunction):
         return super().get_params(coordinate, is_transformed)
 
     @property
-    def nb_params(self):
+    def nb_params_for_margin_function(self):
         return sum([c.nb_params for c in self.param_name_to_coef.values()])
 
     @classmethod
diff --git a/extreme_trend/trend_test/abstract_gev_trend_test.py b/extreme_trend/trend_test/abstract_gev_trend_test.py
index b60b2d8c..fe84e69a 100644
--- a/extreme_trend/trend_test/abstract_gev_trend_test.py
+++ b/extreme_trend/trend_test/abstract_gev_trend_test.py
@@ -101,7 +101,7 @@ class AbstractGevTrendTest(object):
     @property
     def aic(self):
         aic = 2 * self.total_number_of_parameters_for_unconstrained_model + self.unconstrained_model_deviance
-        assert np.equal(self.total_number_of_parameters_for_unconstrained_model, self.unconstrained_estimator.nb_params)
+        assert np.equal(self.total_number_of_parameters_for_unconstrained_model, self.unconstrained_estimator.nb_params_for_margin_function)
         npt.assert_almost_equal(self.unconstrained_estimator.result_from_model_fit.aic, aic, decimal=5)
         npt.assert_almost_equal(self.unconstrained_estimator.aic, aic, decimal=5)
         return aic
-- 
GitLab