From 14f3cd3f14b77c9dd5838904b55e8357fab79529 Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Wed, 24 Jun 2020 10:25:00 +0200
Subject: [PATCH] [contrasting] refactor tests

---
 .../polynomial_margin_model/__init__.py       |  0
 .../polynomial_margin_model.py                |  0
 .../gev_trend_test_three_parameters.py        |  2 +-
 .../gev_trend_test_two_parameters.py          |  2 +-
 .../gumbel_test_two_parameters.py             |  2 +-
 .../altitudes_fit/two_fold_fit.py             |  3 +-
 .../test_temporal_estimator/__init__.py       |  0
 .../test_gev_temporal_extremes_bayesian.py    |  0
 .../test_gev_temporal_extremes_gumbel.py      |  0
 .../test_gev_temporal_extremes_l_moments.py   |  0
 .../test_gev_temporal_extremes_mle.py         |  0
 .../test_gev_temporal_is_mev.py               |  0
 ...st_gev_temporal_polynomial_extremes_mle.py |  4 +--
 .../test_contrasting/test_two_fold_fit.py     | 29 ++++++++++---------
 14 files changed, 20 insertions(+), 22 deletions(-)
 create mode 100644 extreme_fit/model/margin_model/polynomial_margin_model/__init__.py
 rename extreme_fit/model/margin_model/{ => polynomial_margin_model}/polynomial_margin_model.py (100%)
 create mode 100644 test/test_extreme_fit/test_estimator/test_temporal_estimator/__init__.py
 rename test/test_extreme_fit/{test_distribution/test_gev => test_estimator/test_temporal_estimator}/test_gev_temporal_extremes_bayesian.py (100%)
 rename test/test_extreme_fit/{test_distribution/test_gev => test_estimator/test_temporal_estimator}/test_gev_temporal_extremes_gumbel.py (100%)
 rename test/test_extreme_fit/{test_distribution/test_gev => test_estimator/test_temporal_estimator}/test_gev_temporal_extremes_l_moments.py (100%)
 rename test/test_extreme_fit/{test_distribution/test_gev => test_estimator/test_temporal_estimator}/test_gev_temporal_extremes_mle.py (100%)
 rename test/test_extreme_fit/{test_distribution/test_gev => test_estimator/test_temporal_estimator}/test_gev_temporal_is_mev.py (100%)
 rename test/test_extreme_fit/{test_distribution/test_gev => test_estimator/test_temporal_estimator}/test_gev_temporal_polynomial_extremes_mle.py (93%)

diff --git a/extreme_fit/model/margin_model/polynomial_margin_model/__init__.py b/extreme_fit/model/margin_model/polynomial_margin_model/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/extreme_fit/model/margin_model/polynomial_margin_model.py b/extreme_fit/model/margin_model/polynomial_margin_model/polynomial_margin_model.py
similarity index 100%
rename from extreme_fit/model/margin_model/polynomial_margin_model.py
rename to extreme_fit/model/margin_model/polynomial_margin_model/polynomial_margin_model.py
diff --git a/extreme_trend/trend_test_three_parameters/gev_trend_test_three_parameters.py b/extreme_trend/trend_test_three_parameters/gev_trend_test_three_parameters.py
index 8af11133..6e0ac523 100644
--- a/extreme_trend/trend_test_three_parameters/gev_trend_test_three_parameters.py
+++ b/extreme_trend/trend_test_three_parameters/gev_trend_test_three_parameters.py
@@ -1,4 +1,4 @@
-from extreme_fit.model.margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \
+from extreme_fit.model.margin_model.polynomial_margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \
     NonStationaryQuadraticScaleModel
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
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 794e2b33..223490ff 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
@@ -1,5 +1,5 @@
 from extreme_data.eurocode_data.utils import EUROCODE_QUANTILE
-from extreme_fit.model.margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \
+from extreme_fit.model.margin_model.polynomial_margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \
     NonStationaryQuadraticScaleModel
 from extreme_trend.abstract_gev_trend_test import AbstractGevTrendTest
 from extreme_trend.trend_test_one_parameter.gev_trend_test_one_parameter import \
diff --git a/extreme_trend/trend_test_two_parameters/gumbel_test_two_parameters.py b/extreme_trend/trend_test_two_parameters/gumbel_test_two_parameters.py
index f4a9db11..e62ccdac 100644
--- a/extreme_trend/trend_test_two_parameters/gumbel_test_two_parameters.py
+++ b/extreme_trend/trend_test_two_parameters/gumbel_test_two_parameters.py
@@ -1,5 +1,5 @@
 from extreme_data.eurocode_data.utils import EUROCODE_QUANTILE
-from extreme_fit.model.margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \
+from extreme_fit.model.margin_model.polynomial_margin_model.polynomial_margin_model import \
     NonStationaryQuadraticLocationGumbelModel, NonStationaryQuadraticScaleGumbelModel
 from extreme_trend.trend_test_two_parameters.gev_trend_test_two_parameters import \
     GevTrendTestTwoParameters
diff --git a/projects/altitude_spatial_model/altitudes_fit/two_fold_fit.py b/projects/altitude_spatial_model/altitudes_fit/two_fold_fit.py
index 5f5371e3..b5593f46 100644
--- a/projects/altitude_spatial_model/altitudes_fit/two_fold_fit.py
+++ b/projects/altitude_spatial_model/altitudes_fit/two_fold_fit.py
@@ -13,8 +13,7 @@ class TwoFoldFit(object):
 
     def __init__(self, two_fold_datasets_generator: TwoFoldDatasetsGenerator,
                  model_family_name_to_model_classes: Dict[str, List[type]],
-                 fit_method=MarginFitMethod.extremes_fevd_mle,
-                 ):
+                 fit_method=MarginFitMethod.extremes_fevd_mle):
         self.two_fold_datasets_generator = two_fold_datasets_generator
         self.fit_method = fit_method
         self.model_family_name_to_model_classes = model_family_name_to_model_classes
diff --git a/test/test_extreme_fit/test_estimator/test_temporal_estimator/__init__.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_bayesian.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_bayesian.py
similarity index 100%
rename from test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_bayesian.py
rename to test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_bayesian.py
diff --git a/test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_gumbel.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_gumbel.py
similarity index 100%
rename from test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_gumbel.py
rename to test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_gumbel.py
diff --git a/test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_l_moments.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_l_moments.py
similarity index 100%
rename from test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_l_moments.py
rename to test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_l_moments.py
diff --git a/test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_mle.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_mle.py
similarity index 100%
rename from test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_extremes_mle.py
rename to test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_extremes_mle.py
diff --git a/test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_is_mev.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_is_mev.py
similarity index 100%
rename from test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_is_mev.py
rename to test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_is_mev.py
diff --git a/test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_polynomial_extremes_mle.py b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_polynomial_extremes_mle.py
similarity index 93%
rename from test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_polynomial_extremes_mle.py
rename to test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_polynomial_extremes_mle.py
index a5b09acf..1f8a50ed 100644
--- a/test/test_extreme_fit/test_distribution/test_gev/test_gev_temporal_polynomial_extremes_mle.py
+++ b/test/test_extreme_fit/test_estimator/test_temporal_estimator/test_gev_temporal_polynomial_extremes_mle.py
@@ -4,13 +4,11 @@ import numpy as np
 import pandas as pd
 
 from extreme_fit.distribution.gev.gev_params import GevParams
-from extreme_fit.model.margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \
+from extreme_fit.model.margin_model.polynomial_margin_model.polynomial_margin_model import NonStationaryQuadraticLocationModel, \
     NonStationaryQuadraticScaleModel, NonStationaryQuadraticLocationGumbelModel, NonStationaryQuadraticScaleGumbelModel
 from extreme_trend.abstract_gev_trend_test import fitted_linear_margin_estimator
 from extreme_fit.model.margin_model.utils import \
     MarginFitMethod
-from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import StationaryTemporalModel, \
-    NonStationaryLocationTemporalModel, NonStationaryLocationAndScaleTemporalModel
 from extreme_fit.model.utils import r, set_seed_r
 from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractCoordinates
 from spatio_temporal_dataset.coordinates.temporal_coordinates.abstract_temporal_coordinates import \
diff --git a/test/test_projects/test_contrasting/test_two_fold_fit.py b/test/test_projects/test_contrasting/test_two_fold_fit.py
index 5f45ac39..eb49b9b6 100644
--- a/test/test_projects/test_contrasting/test_two_fold_fit.py
+++ b/test/test_projects/test_contrasting/test_two_fold_fit.py
@@ -14,34 +14,35 @@ from projects.altitude_spatial_model.altitudes_fit.utils import Score
 from spatio_temporal_dataset.slicer.split import Split
 
 
+def load_two_fold_fit(fit_method, year_max):
+    altitudes = [900, 1200]
+    study_class = SafranSnowfall1Day
+    studies = AltitudesStudies(study_class, altitudes, year_max=year_max)
+    two_fold_datasets_generator = TwoFoldDatasetsGenerator(studies, nb_samples=1, massif_names=['Vercors'])
+    model_family_name_to_model_class = {'Stationary': [ConstantMarginModel]}
+    return TwoFoldFit(two_fold_datasets_generator=two_fold_datasets_generator,
+                      model_family_name_to_model_classes=model_family_name_to_model_class,
+                      fit_method=fit_method)
+
+
 class TestTwoFoldFit(unittest.TestCase):
 
     def setUp(self) -> None:
         super().setUp()
         set_seed_for_test()
 
-    def load_two_fold_fit(self, fit_method, year_max):
-        self.altitudes = [900, 1200]
-        self.study_class = SafranSnowfall1Day
-        studies = AltitudesStudies(self.study_class, self.altitudes, year_max=year_max)
-        self.two_fold_datasets_generator = TwoFoldDatasetsGenerator(studies, nb_samples=1, massif_names=['Vercors'])
-        self.model_family_name_to_model_class = {'Stationary': [ConstantMarginModel]}
-        return TwoFoldFit(two_fold_datasets_generator=self.two_fold_datasets_generator,
-                          model_family_name_to_model_classes=self.model_family_name_to_model_class,
-                          fit_method=fit_method)
-
     def test_determinism_dataset_generation(self):
-        two_fold_fit = self.load_two_fold_fit(fit_method=MarginFitMethod.spatial_extremes_mle, year_max=1963)
+        two_fold_fit = load_two_fold_fit(fit_method=MarginFitMethod.spatial_extremes_mle, year_max=1963)
         massif_fit = two_fold_fit.massif_name_to_massif_fit['Vercors']
-        model_fit = massif_fit.sample_id_to_sample_fit[0].model_class_to_model_fit[
-            ConstantMarginModel]  # type: TwoFoldModelFit
+        sample_fit = massif_fit.sample_id_to_sample_fit[0]
+        model_fit = sample_fit.model_class_to_model_fit[ConstantMarginModel]  # type: TwoFoldModelFit
         dataset_fold1 = model_fit.estimator_fold_1.dataset
         index_train = list(dataset_fold1.coordinates.coordinates_index(split=Split.train_temporal))
         self.assertEqual([2, 3, 8, 9], index_train)
         self.assertEqual(110.52073192596436, np.sum(dataset_fold1.maxima_gev(split=Split.train_temporal)))
 
     def test_determinism_fit_spatial_extreme(self):
-        two_fold_fit = self.load_two_fold_fit(fit_method=MarginFitMethod.spatial_extremes_mle, year_max=2019)
+        two_fold_fit = load_two_fold_fit(fit_method=MarginFitMethod.spatial_extremes_mle, year_max=2019)
         massif_fit = two_fold_fit.massif_name_to_massif_fit['Vercors']
         model_fit = massif_fit.sample_id_to_sample_fit[0].model_class_to_model_fit[
             ConstantMarginModel]  # type: TwoFoldModelFit
-- 
GitLab