From 598c29ab9c036199801f49704d72527ded74fe88 Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Wed, 25 Mar 2020 16:22:57 +0100
Subject: [PATCH] [contrasting project] add test anticyclonic days

---
 .../test_edf_data/test_weather_types.py       | 27 ++++++++++---------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/test/test_extreme_data/test_edf_data/test_weather_types.py b/test/test_extreme_data/test_edf_data/test_weather_types.py
index c400f4ab..aa596645 100644
--- a/test/test_extreme_data/test_edf_data/test_weather_types.py
+++ b/test/test_extreme_data/test_edf_data/test_weather_types.py
@@ -46,19 +46,20 @@ class TestWeatherTypes(unittest.TestCase):
         # wp_to_found_percentages = wp_to_found_percentages.astype(int)
         self.assertEqual(wp_to_expected_percentages, wp_to_found_percentages)
 
-    # def test_anticyclonique_weather_pattern(self):
-    #     study = SafranPrecipitation1Day(altitude=900, year_min=1954, year_max=2008)
-    #     p = []
-    #     for year, wps in study.year_to_wps.items():
-    #         daily_time_serie_array = study.year_to_daily_time_serie_array[year]
-    #         self.assertEqual(len(daily_time_serie_array), len(wps))
-    #         precipitation_on_anticlonic_days = np.max(daily_time_serie_array[np.array(wps) == 8, :], axis=1)
-    #         print('NB anticlonic days', len(precipitation_on_anticlonic_days))
-    #         p.extend(precipitation_on_anticlonic_days)
-    #     p = sorted(p)[::-1]
-    #     print(p[:5])
-    #     self.assertLess(p[0], 10)
-
+    def test_anticyclonique_weather_pattern(self):
+        study = SafranPrecipitation1Day(altitude=900, year_min=1954, year_max=2008)
+        no_rain = []
+        rain = []
+        for year, wps in study.year_to_wps.items():
+            daily_time_serie_array = study.year_to_daily_time_serie_array[year]
+            self.assertEqual(len(daily_time_serie_array), len(wps))
+            mask = np.array(wps) == 8
+            no_rain.extend(np.max(daily_time_serie_array[mask, :], axis=1))
+            rain.extend(np.max(daily_time_serie_array[~mask, :], axis=1))
+        # For 90% of the anticyclonic days, the daily max precipitation (snowfall + rainfall) for a massifs is < 0.2mm
+        # Valid that the anticyclonic days seems to well defined (but with a big variety still...)
+        self.assertLess(np.quantile(no_rain, 0.5), 0.2)
+        self.assertLess(5, np.quantile(rain, 0.5))
 
 
 if __name__ == '__main__':
-- 
GitLab