From debd8cafd3eae21d9192bae38d305812c12dd8c9 Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Fri, 9 Apr 2021 20:15:49 +0200
Subject: [PATCH] [projection snowfall] refactor nb_params.

---
 .../margin_model/linear_margin_model/linear_margin_model.py   | 4 ----
 extreme_trend/one_fold_fit/one_fold_fit.py                    | 2 +-
 extreme_trend/trend_test/abstract_gev_trend_test.py           | 2 +-
 test/test_extreme_trend/test_ensemble_fit.py                  | 2 +-
 4 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/extreme_fit/model/margin_model/linear_margin_model/linear_margin_model.py b/extreme_fit/model/margin_model/linear_margin_model/linear_margin_model.py
index 90fb6963..6f30175e 100644
--- a/extreme_fit/model/margin_model/linear_margin_model/linear_margin_model.py
+++ b/extreme_fit/model/margin_model/linear_margin_model/linear_margin_model.py
@@ -35,10 +35,6 @@ class LinearMarginModel(ParametricMarginModel):
                 param_name_and_dim_to_coef[(param_name, dim)] = default_slope
         return param_name_and_dim_to_coef
 
-    @property
-    def nb_params(self):
-        return self.margin_function.nb_params
-
     def param_name_to_linear_coef(self, param_name_and_dim_to_coef):
         param_name_to_linear_coef = {}
         param_names = list(set([e[0] for e in param_name_and_dim_to_coef.keys()]))
diff --git a/extreme_trend/one_fold_fit/one_fold_fit.py b/extreme_trend/one_fold_fit/one_fold_fit.py
index 7fe04a0a..6faf8010 100644
--- a/extreme_trend/one_fold_fit/one_fold_fit.py
+++ b/extreme_trend/one_fold_fit/one_fold_fit.py
@@ -296,7 +296,7 @@ class OneFoldFit(object):
 
     @property
     def degree_freedom_chi2(self):
-        return self.best_estimator.margin_model.nb_params - self.stationary_estimator.margin_model.nb_params
+        return self.best_estimator.nb_params - self.stationary_estimator.nb_params
 
     @cached_property
     def is_significant(self) -> bool:
diff --git a/extreme_trend/trend_test/abstract_gev_trend_test.py b/extreme_trend/trend_test/abstract_gev_trend_test.py
index d3c33e61..8807a8a8 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.margin_model.nb_params)
+        assert np.equal(self.total_number_of_parameters_for_unconstrained_model, self.unconstrained_estimator.nb_params)
         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
diff --git a/test/test_extreme_trend/test_ensemble_fit.py b/test/test_extreme_trend/test_ensemble_fit.py
index a393174a..4ef9d104 100644
--- a/test/test_extreme_trend/test_ensemble_fit.py
+++ b/test/test_extreme_trend/test_ensemble_fit.py
@@ -63,7 +63,7 @@ class TestEnsembleFit(unittest.TestCase):
             }
             for model_class in model_classes:
                 expected = model_class_to_expected_number_params[model_class]
-                found = model_class_to_estimator[model_class].margin_model.nb_params
+                found = model_class_to_estimator[model_class].nb_params
                 self.assertEqual(expected, found)
 
             # _ = ensemble_fit.visualizer.massif_name_to_one_fold_fit[self.massif_names[0]].best_function_from_fit
-- 
GitLab