From c5b1739879579bf3aa0532d7afb03c74dd94bea7 Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Thu, 19 Mar 2020 17:43:47 +0100
Subject: [PATCH] [refactor] refactor some folder name. add test_results.py

---
 ...dy_visualizer_for_non_stationary_trends.py |  5 ++-
 .../__init__.py                               |  0
 .../__init__.py                               |  0
 .../gelman_convergence_test.py                |  0
 .../main_bayesian_mcmc.py                     |  0
 .../main_gelman_convergence_test.py           |  0
 .../main_result.py                            |  2 +-
 ...tive_change_in_maxima_at_fixed_altitude.py |  0
 .../plot_contrasting_trend_curves.py          |  0
 .../main_result_trends_and_return_levels.py   | 15 ++++-----
 .../plot_uncertainty_curves.py                |  5 +++
 projects/exceeding_snow_loads/utils.py        |  2 ++
 test/test_projects/__init__.py                |  0
 .../test_exceeding_snow_loads/__init__.py     |  0
 .../test_exceeding_snow_loads/test_results.py | 31 +++++++++++++++++++
 15 files changed, 51 insertions(+), 9 deletions(-)
 rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/__init__.py (100%)
 rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/check_mcmc_convergence_for_return_levels/__init__.py (100%)
 rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py (100%)
 rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py (100%)
 rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py (100%)
 rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/main_result.py (97%)
 rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/main_spatial_relative_change_in_maxima_at_fixed_altitude.py (100%)
 rename projects/{contrasting_snow_loads => contrasting_trends_in_snow_loads}/plot_contrasting_trend_curves.py (100%)
 create mode 100644 test/test_projects/__init__.py
 create mode 100644 test/test_projects/test_exceeding_snow_loads/__init__.py
 create mode 100644 test/test_projects/test_exceeding_snow_loads/test_results.py

diff --git a/extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py b/extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py
index bb429ee4..b4c14f5e 100644
--- a/extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py
+++ b/extreme_trend/visualizers/study_visualizer_for_non_stationary_trends.py
@@ -82,6 +82,8 @@ class StudyVisualizerForNonStationaryTrends(StudyVisualizer):
                                         ConfidenceIntervalMethodFromExtremes.ci_mle][1:]
         if self.uncertainty_massif_names is None:
             self.uncertainty_massif_names = self.study.study_massif_names
+        else:
+            assert set(self.uncertainty_massif_names).issubset(set(self.study.study_massif_names))
         if self.non_stationary_trend_test_to_marker is None:
             # Assign default argument for the non stationary trends
             self.non_stationary_trend_test = NON_STATIONARY_TREND_TEST_PAPER
@@ -95,7 +97,7 @@ class StudyVisualizerForNonStationaryTrends(StudyVisualizer):
     @cached_property
     def massif_name_to_years_and_maxima(self):
         d = {}
-        df_maxima = self.study.observations_annual_maxima.df_maxima_gev
+        df_maxima = self.study.observations_annual_maxima.df_maxima_gev.loc[self.uncertainty_massif_names]
         years = np.array(df_maxima.columns)
         for massif_name, s_maxima in df_maxima.iterrows():
             d[massif_name] = (years, np.array(s_maxima))
@@ -135,6 +137,7 @@ class StudyVisualizerForNonStationaryTrends(StudyVisualizer):
         # In both cases, we remove any massif with psnow < 0.9
         if self.fit_only_time_series_with_ninety_percent_of_non_null_values:
             d = {m: v for m, v in d.items() if self.massif_name_to_psnow[m] >= 0.9}
+        print(d.keys())
         return d
 
     @property
diff --git a/projects/contrasting_snow_loads/__init__.py b/projects/contrasting_trends_in_snow_loads/__init__.py
similarity index 100%
rename from projects/contrasting_snow_loads/__init__.py
rename to projects/contrasting_trends_in_snow_loads/__init__.py
diff --git a/projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/__init__.py b/projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/__init__.py
similarity index 100%
rename from projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/__init__.py
rename to projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/__init__.py
diff --git a/projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py b/projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py
similarity index 100%
rename from projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py
rename to projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/gelman_convergence_test.py
diff --git a/projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py b/projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py
similarity index 100%
rename from projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py
rename to projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/main_bayesian_mcmc.py
diff --git a/projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py b/projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py
similarity index 100%
rename from projects/contrasting_snow_loads/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py
rename to projects/contrasting_trends_in_snow_loads/check_mcmc_convergence_for_return_levels/main_gelman_convergence_test.py
diff --git a/projects/contrasting_snow_loads/main_result.py b/projects/contrasting_trends_in_snow_loads/main_result.py
similarity index 97%
rename from projects/contrasting_snow_loads/main_result.py
rename to projects/contrasting_trends_in_snow_loads/main_result.py
index 79b07f79..ccd44348 100644
--- a/projects/contrasting_snow_loads/main_result.py
+++ b/projects/contrasting_trends_in_snow_loads/main_result.py
@@ -18,7 +18,7 @@ from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusS
     CrocusSnowLoad5Days, CrocusSnowLoad7Days, CrocusSnowLoad1Day
 from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \
     ConfidenceIntervalMethodFromExtremes
-from projects.contrasting_snow_loads.plot_contrasting_trend_curves import plot_contrasting_trend_curves
+from projects.contrasting_trends_in_snow_loads.plot_contrasting_trend_curves import plot_contrasting_trend_curves
 from projects.exceeding_snow_loads.section_results.main_result_trends_and_return_levels import \
     compute_minimized_aic
 from root_utils import NB_CORES
diff --git a/projects/contrasting_snow_loads/main_spatial_relative_change_in_maxima_at_fixed_altitude.py b/projects/contrasting_trends_in_snow_loads/main_spatial_relative_change_in_maxima_at_fixed_altitude.py
similarity index 100%
rename from projects/contrasting_snow_loads/main_spatial_relative_change_in_maxima_at_fixed_altitude.py
rename to projects/contrasting_trends_in_snow_loads/main_spatial_relative_change_in_maxima_at_fixed_altitude.py
diff --git a/projects/contrasting_snow_loads/plot_contrasting_trend_curves.py b/projects/contrasting_trends_in_snow_loads/plot_contrasting_trend_curves.py
similarity index 100%
rename from projects/contrasting_snow_loads/plot_contrasting_trend_curves.py
rename to projects/contrasting_trends_in_snow_loads/plot_contrasting_trend_curves.py
diff --git a/projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py b/projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py
index 6a99cc1a..3a426840 100644
--- a/projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py
+++ b/projects/exceeding_snow_loads/section_results/main_result_trends_and_return_levels.py
@@ -1,19 +1,20 @@
 from multiprocessing.pool import Pool
 
 import matplotlib as mpl
+mpl.rcParams['text.usetex'] = True
+mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}']
 
 from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal
-from extreme_trend.visualizers.utils import load_altitude_to_visualizer
-from projects.exceeding_snow_loads.utils import paper_study_classes, paper_altitudes
-from projects.exceeding_snow_loads.section_results.plot_uncertainty_curves import plot_uncertainty_massifs
-from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import \
-    StudyVisualizerForNonStationaryTrends
 from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \
     ConfidenceIntervalMethodFromExtremes
+from extreme_trend.visualizers.study_visualizer_for_non_stationary_trends import \
+    StudyVisualizerForNonStationaryTrends
+from extreme_trend.visualizers.utils import load_altitude_to_visualizer
+from projects.exceeding_snow_loads.section_results.plot_uncertainty_curves import plot_uncertainty_massifs
+from projects.exceeding_snow_loads.utils import paper_study_classes, paper_altitudes
 from root_utils import NB_CORES
 
-mpl.rcParams['text.usetex'] = True
-mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}']
+
 import matplotlib.pyplot as plt
 
 
diff --git a/projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py b/projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py
index 78cdc298..04403d6b 100644
--- a/projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py
+++ b/projects/exceeding_snow_loads/section_results/plot_uncertainty_curves.py
@@ -1,4 +1,9 @@
 from typing import Dict
+
+import matplotlib as mpl
+mpl.rcParams['text.usetex'] = True
+mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}']
+
 import matplotlib.pyplot as plt
 
 import numpy as np
diff --git a/projects/exceeding_snow_loads/utils.py b/projects/exceeding_snow_loads/utils.py
index 74fdd345..0847e667 100644
--- a/projects/exceeding_snow_loads/utils.py
+++ b/projects/exceeding_snow_loads/utils.py
@@ -24,3 +24,5 @@ NON_STATIONARY_TREND_TEST_PAPER = [GumbelVersusGumbel,
                                    GevLocationAgainstGumbel, GevScaleAgainstGumbel,
                                    GevLocationAndScaleTrendTestAgainstGumbel]
 
+
+
diff --git a/test/test_projects/__init__.py b/test/test_projects/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/test/test_projects/test_exceeding_snow_loads/__init__.py b/test/test_projects/test_exceeding_snow_loads/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/test/test_projects/test_exceeding_snow_loads/test_results.py b/test/test_projects/test_exceeding_snow_loads/test_results.py
new file mode 100644
index 00000000..c636f28b
--- /dev/null
+++ b/test/test_projects/test_exceeding_snow_loads/test_results.py
@@ -0,0 +1,31 @@
+import unittest
+
+from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusSnowLoadTotal
+from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import \
+    ConfidenceIntervalMethodFromExtremes
+from extreme_trend.visualizers.utils import load_altitude_to_visualizer
+from projects.exceeding_snow_loads.section_results.plot_selection_curves import plot_selection_curves
+from projects.exceeding_snow_loads.section_results.plot_trend_curves import plot_trend_curves, plot_trend_map
+from projects.exceeding_snow_loads.section_results.plot_uncertainty_curves import plot_uncertainty_massifs
+from projects.exceeding_snow_loads.section_results.plot_uncertainty_histogram import plot_uncertainty_histogram
+
+
+class TestResults(unittest.TestCase):
+
+    def test_run_intermediate_results(self):
+        # Load data
+        altitude_to_visualizer = load_altitude_to_visualizer(altitudes=[300, 600], massif_names=['Chartreuse'],
+                                                             study_class=CrocusSnowLoadTotal,
+                                                             model_subsets_for_uncertainty=None,
+                                                             uncertainty_methods=[
+                                                                 ConfidenceIntervalMethodFromExtremes.ci_mle])
+        plot_trend_map(altitude_to_visualizer)
+        plot_trend_curves(altitude_to_visualizer)
+        plot_uncertainty_massifs(altitude_to_visualizer)
+        plot_uncertainty_histogram(altitude_to_visualizer)
+        plot_selection_curves(altitude_to_visualizer)
+        self.assertTrue(True)
+
+
+if __name__ == '__main__':
+    unittest.main()
-- 
GitLab