diff --git a/extreme_fit/distribution/gumbel/__init__.py b/extreme_fit/distribution/gumbel/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/extreme_fit/distribution/gumbel/gumbel_gof.R b/extreme_fit/distribution/gumbel/gumbel_gof.R
new file mode 100644
index 0000000000000000000000000000000000000000..847a8246b533c52f63f54a5f429477b63fb2b257
--- /dev/null
+++ b/extreme_fit/distribution/gumbel/gumbel_gof.R
@@ -0,0 +1,13 @@
+# Title     : TODO
+# Objective : TODO
+# Created by: erwan
+# Created on: 15/05/2020
+# library(rmutil)
+library(evd)
+library(gnFit)
+data = rgumbel(10)
+res = gnfit(data, "gum")
+print(res)
+# r = rnorm(0)
+# disp(r)
+# rGumbel(20)
diff --git a/extreme_fit/distribution/gumbel/gumbel_gof.py b/extreme_fit/distribution/gumbel/gumbel_gof.py
new file mode 100644
index 0000000000000000000000000000000000000000..39aded04c91523a62ce8825eda9a08be0e2894f4
--- /dev/null
+++ b/extreme_fit/distribution/gumbel/gumbel_gof.py
@@ -0,0 +1,15 @@
+import numpy as np
+
+from extreme_fit.model.result_from_model_fit.abstract_result_from_model_fit import AbstractResultFromModelFit
+from extreme_fit.model.utils import r
+
+
+def cramer_von_mises_and_anderson_darling_tests_pvalues_for_gumbel_distribution(data):
+    res = r.gnfit(data, "gum")
+    res = AbstractResultFromModelFit.get_python_dictionary(res)
+    res = {k: np.array(v)[0] for k, v in res.items()}
+    return res['Wpval'], res['Apval']
+
+
+if __name__ == '__main__':
+    cramer_von_mises_and_anderson_darling_tests_pvalues_for_gumbel_distribution(np.array([2.0, 3.0]))
diff --git a/extreme_fit/model/utils.py b/extreme_fit/model/utils.py
index c04eb80248d557fc33921b6990e7c9bc52f331a4..968b877d8825f95960fc30a254c48b777b3adf71 100644
--- a/extreme_fit/model/utils.py
+++ b/extreme_fit/model/utils.py
@@ -25,6 +25,7 @@ pandas2ri.activate()
 r.library('SpatialExtremes')
 r.library('data.table')
 r.library('quantreg')
+r.library('gnFit')
 # Desactivate temporarily warnings
 default_filters = warnings.filters.copy()
 warnings.filterwarnings("ignore")
diff --git a/extreme_trend/abstract_gev_trend_test.py b/extreme_trend/abstract_gev_trend_test.py
index 66b7b889626c49bcf21c2ecde4a3808898593c31..2f79e7b32f2d52cc8105bf894550a2a3023e6bf0 100644
--- a/extreme_trend/abstract_gev_trend_test.py
+++ b/extreme_trend/abstract_gev_trend_test.py
@@ -63,18 +63,17 @@ class AbstractGevTrendTest(object):
     @property
     def goodness_of_fit_ks_test(self):
         quantiles = self.compute_empirical_quantiles(estimator=self.unconstrained_estimator)
-        test_res = kstest(rvs=quantiles, cdf="gumbel_l")  # type: KstestResult
-        return test_res.pvalue < self.SIGNIFICANCE_LEVEL
+        test_res = kstest(rvs=quantiles, cdf="gumbel_r")  # type: KstestResult
+        return test_res.pvalue > self.SIGNIFICANCE_LEVEL
 
     @property
     def goodness_of_fit_anderson_test(self):
         assert self.SIGNIFICANCE_LEVEL == 0.05
         # significance_level=array([25. , 10. ,  5. ,  2.5,  1. ]))
-        index_for_significance_level_5_percent = 4
+        index_for_significance_level_5_percent = 2
         quantiles = self.compute_empirical_quantiles(estimator=self.unconstrained_estimator)
-        test_res = anderson(quantiles, dist='gumbel')  # type: AndersonResult
-        print(test_res)
-        return test_res.statistic > test_res.critical_values[index_for_significance_level_5_percent]
+        test_res = anderson(quantiles, dist='gumbel_r')  # type: AndersonResult
+        return test_res.statistic < test_res.critical_values[index_for_significance_level_5_percent]
 
     @property
     def degree_freedom_chi2(self) -> int:
@@ -204,7 +203,6 @@ class AbstractGevTrendTest(object):
                     label += '\n' + year_suffix
             else:
                 label = year_suffix
-            print(label)
             self.plot_model(ax, year, end_proba=end_real_proba, label=label, color=color)
 
         ax_lim = [-1.5, 4]
diff --git a/projects/exceeding_snow_loads/checks/qqplot/plot_qqplot.py b/projects/exceeding_snow_loads/checks/qqplot/plot_qqplot.py
index 529516725d70a0ae895202fcdc7e506ca13bc04c..762f45f53ce0d5e73dd2fd1698666cbbc3a76757 100644
--- a/projects/exceeding_snow_loads/checks/qqplot/plot_qqplot.py
+++ b/projects/exceeding_snow_loads/checks/qqplot/plot_qqplot.py
@@ -57,6 +57,13 @@ def plot_intensity_against_gumbel_quantile_for_3_examples(
         v.qqplot(m, color)
 
 
+def plot_full_diagnostic(altitude_to_visualizer: Dict[int, StudyVisualizerForNonStationaryTrends]):
+    for v in altitude_to_visualizer.values():
+        for m in v.massif_name_to_trend_test_that_minimized_aic.keys():
+            v.intensity_plot(m)
+            v.qqplot(m)
+
+
 def plot_qqplot_for_time_series_examples(altitude_to_visualizer: Dict[int, StudyVisualizerForNonStationaryTrends]):
     marker_altitude_massif_name_for_paper1 = tuples_for_examples_paper1()
     for color, a, m in marker_altitude_massif_name_for_paper1:
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 6e06ab37e33803a036c11e36d1fb9372275466ed..c22c2832ff1417cf7862a5e421e45662c23272f3 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
@@ -3,7 +3,7 @@ from multiprocessing.pool import Pool
 import matplotlib as mpl
 
 from projects.exceeding_snow_loads.checks.qqplot.plot_qqplot import \
-    plot_intensity_against_gumbel_quantile_for_3_examples
+    plot_intensity_against_gumbel_quantile_for_3_examples, plot_full_diagnostic
 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_map
 
@@ -71,9 +71,10 @@ def intermediate_result(altitudes, massif_names=None,
     # plot_trend_curves(altitude_to_visualizer={a: v for a, v in altitude_to_visualizer.items() if a >= 900})
     # plot_uncertainty_massifs(altitude_to_visualizer)
     # plot_uncertainty_histogram(altitude_to_visualizer)
-    # plot_selection_curves(altitude_to_visualizer)
+    plot_selection_curves(altitude_to_visualizer)
     # uncertainty_interval_size(altitude_to_visualizer)
-    plot_intensity_against_gumbel_quantile_for_3_examples(altitude_to_visualizer)
+    # plot_intensity_against_gumbel_quantile_for_3_examples(altitude_to_visualizer)
+    # plot_full_diagnostic(altitude_to_visualizer)
 
 
 def major_result():
@@ -88,8 +89,8 @@ def major_result():
     #                                  ModelSubsetForUncertainty.non_stationary_gumbel_and_gev]
     model_subsets_for_uncertainty = None
     # study_classes = [CrocusSnowLoad3Days, CrocusSnowLoad5Days, CrocusSnowLoad7Days][::-1]
-    altitudes = paper_altitudes
-    altitudes = [900, 1800, 2700]
+    # altitudes = paper_altitudes
+    altitudes = [900, 1800, 2700][:1]
     for study_class in study_classes:
         intermediate_result(altitudes, massif_names, model_subsets_for_uncertainty,
                             uncertainty_methods, study_class,
diff --git a/test/test_extreme_fit/test_distribution/test_gumbel.py b/test/test_extreme_fit/test_distribution/test_gumbel.py
new file mode 100644
index 0000000000000000000000000000000000000000..a1a579ed8bf3856f4a5c8053c50fa60ceca53752
--- /dev/null
+++ b/test/test_extreme_fit/test_distribution/test_gumbel.py
@@ -0,0 +1,22 @@
+import unittest
+
+from numpy.random.mtrand import gumbel
+
+from extreme_fit.distribution.gumbel.gumbel_gof import \
+    cramer_von_mises_and_anderson_darling_tests_pvalues_for_gumbel_distribution
+from extreme_fit.model.utils import set_seed_for_test
+
+
+class TestGumbel(unittest.TestCase):
+
+    def test_gof_tests(self):
+        set_seed_for_test(seed=42)
+        data = gumbel(size=60)
+        res = cramer_von_mises_and_anderson_darling_tests_pvalues_for_gumbel_distribution(data)
+        cramer_pvalue, anderson_pvalue = res
+        self.assertGreater(cramer_pvalue, 0.05)
+        self.assertGreater(anderson_pvalue, 0.05)
+
+
+if __name__ == '__main__':
+    unittest.main()