|
37 | 37 | from climada.hazard import Hazard |
38 | 38 | from climada.engine.unsequa import InputVar, CalcImpact, UncOutput, CalcCostBenefit |
39 | 39 |
|
40 | | -from climada.util.constants import EXP_DEMO_H5, HAZ_DEMO_H5, ENT_DEMO_TODAY, ENT_DEMO_FUTURE |
41 | | -from climada.util.constants import TEST_UNC_OUTPUT_IMPACT, TEST_UNC_OUTPUT_COSTBEN |
| 40 | +from climada.util.constants import (EXP_DEMO_H5, HAZ_DEMO_H5, ENT_DEMO_TODAY, ENT_DEMO_FUTURE, |
| 41 | + TEST_UNC_OUTPUT_IMPACT, TEST_UNC_OUTPUT_COSTBEN) |
42 | 42 | from climada.util.api_client import Client |
43 | 43 |
|
44 | | - |
45 | 44 | apiclient = Client() |
46 | 45 | ds = apiclient.get_dataset_info(name=TEST_UNC_OUTPUT_IMPACT, status='test_dataset') |
47 | 46 | _target_dir, [test_unc_output_impact] = apiclient.download_dataset(ds) |
@@ -283,24 +282,6 @@ def test_plot_unc_imp(self): |
283 | 282 | self.assertIsNotNone(plt_map) |
284 | 283 | plt.close() |
285 | 284 |
|
286 | | - def test_plot_unc_cb(self): |
287 | | - """Test all cost benefit plots""" |
288 | | - unc_output = UncOutput.from_hdf5(test_unc_output_costben) |
289 | | - plt_s = unc_output.plot_sample() |
290 | | - self.assertIsNotNone(plt_s) |
291 | | - plt.close() |
292 | | - plt_u = unc_output.plot_uncertainty() |
293 | | - self.assertIsNotNone(plt_u) |
294 | | - plt.close() |
295 | | - with self.assertRaises(ValueError): |
296 | | - unc_output.plot_rp_uncertainty() |
297 | | - plt_sens = unc_output.plot_sensitivity() |
298 | | - self.assertIsNotNone(plt_sens) |
299 | | - plt.close() |
300 | | - plt_sens_2 = unc_output.plot_sensitivity_second_order(salib_si='S1') |
301 | | - self.assertIsNotNone(plt_sens_2) |
302 | | - plt.close() |
303 | | - |
304 | 285 | def test_save_load_pass(self): |
305 | 286 | """Test save and load output data""" |
306 | 287 |
|
@@ -680,58 +661,6 @@ def test_make_sample_pass(self): |
680 | 661 | np.array(['x_haz', 'EN', 'IFi', 'CO', 'EG', 'PAA', 'MDD']) |
681 | 662 | ) |
682 | 663 |
|
683 | | - |
684 | | - def test_calc_uncertainty_pass(self): |
685 | | - """Test compute the uncertainty distribution for an impact""" |
686 | | - |
687 | | - ent_iv, ent_fut_iv = make_costben_iv() |
688 | | - _, _, haz_iv = make_input_vars() |
689 | | - unc_calc = CalcCostBenefit(haz_iv, ent_iv) |
690 | | - unc_data = unc_calc.make_sample( N=2) |
691 | | - unc_data = unc_calc.uncertainty(unc_data) |
692 | | - |
693 | | - self.assertEqual(unc_data.unit, ent_dem().exposures.value_unit) |
694 | | - |
695 | | - self.assertEqual( |
696 | | - unc_data.tot_climate_risk_unc_df.size, |
697 | | - unc_data.n_samples |
698 | | - ) |
699 | | - self.assertEqual( |
700 | | - unc_data.cost_ben_ratio_unc_df.size, |
701 | | - unc_data.n_samples * 4 #number of measures |
702 | | - ) |
703 | | - self.assertEqual( |
704 | | - unc_data.imp_meas_present_unc_df.size, |
705 | | - 0 |
706 | | - ) |
707 | | - self.assertEqual( |
708 | | - unc_data.imp_meas_future_unc_df.size, |
709 | | - unc_data.n_samples * 4 * 5 #All measures 4 and risks/benefits 5 |
710 | | - ) |
711 | | - |
712 | | - unc_calc = CalcCostBenefit(haz_iv, ent_iv, haz_iv, ent_fut_iv) |
713 | | - unc_data = unc_calc.make_sample( N=2) |
714 | | - unc_data = unc_calc.uncertainty(unc_data) |
715 | | - |
716 | | - self.assertEqual(unc_data.unit, ent_dem().exposures.value_unit) |
717 | | - |
718 | | - self.assertEqual( |
719 | | - unc_data.tot_climate_risk_unc_df.size, |
720 | | - unc_data.n_samples |
721 | | - ) |
722 | | - self.assertEqual( |
723 | | - unc_data.cost_ben_ratio_unc_df.size, |
724 | | - unc_data.n_samples * 4 #number of measures |
725 | | - ) |
726 | | - self.assertEqual( |
727 | | - unc_data.imp_meas_present_unc_df.size, |
728 | | - unc_data.n_samples * 4 * 5 #All measures 4 and risks/benefits 5 |
729 | | - ) |
730 | | - self.assertEqual( |
731 | | - unc_data.imp_meas_future_unc_df.size, |
732 | | - unc_data.n_samples * 4 * 5 #All measures 4 and risks/benefits 5 |
733 | | - ) |
734 | | - |
735 | 664 | def test_calc_uncertainty_pool_pass(self): |
736 | 665 | """Test compute the uncertainty distribution for an impact""" |
737 | 666 |
|
@@ -767,45 +696,6 @@ def test_calc_uncertainty_pool_pass(self): |
767 | 696 | unc_data.n_samples * 4 * 5 #All measures 4 and risks/benefits 5 |
768 | 697 | ) |
769 | 698 |
|
770 | | - def test_calc_sensitivity_pass(self): |
771 | | - """Test compute sensitivity default""" |
772 | | - |
773 | | - ent_iv, _ = make_costben_iv() |
774 | | - _, _, haz_iv = make_input_vars() |
775 | | - unc_calc = CalcCostBenefit(haz_iv, ent_iv) |
776 | | - unc_data = unc_calc.make_sample(N=4, sampling_kwargs={'calc_second_order': True}) |
777 | | - unc_data = unc_calc.uncertainty(unc_data) |
778 | | - |
779 | | - unc_data = unc_calc.sensitivity( |
780 | | - unc_data, |
781 | | - sensitivity_kwargs = {'calc_second_order': True} |
782 | | - ) |
783 | | - |
784 | | - self.assertEqual(unc_data.sensitivity_method, 'sobol') |
785 | | - self.assertTupleEqual(unc_data.sensitivity_kwargs, |
786 | | - tuple({'calc_second_order': 'True'}.items()) |
787 | | - ) |
788 | | - |
789 | | - for name, attr in unc_data.__dict__.items(): |
790 | | - if 'sens_df' in name: |
791 | | - if 'imp_meas_present' in name: |
792 | | - self.assertTrue(attr.empty) |
793 | | - else: |
794 | | - np.testing.assert_array_equal( |
795 | | - attr.param.unique(), |
796 | | - np.array(['x_haz', 'EN', 'IFi', 'CO']) |
797 | | - ) |
798 | | - |
799 | | - np.testing.assert_array_equal( |
800 | | - attr.si.unique(), |
801 | | - np.array(['S1', 'S1_conf', 'ST', 'ST_conf', 'S2', 'S2_conf']) |
802 | | - ) |
803 | | - |
804 | | - self.assertEqual(len(attr), |
805 | | - len(unc_data.param_labels) * (4 + 4 + 4) |
806 | | - ) |
807 | | - |
808 | | - |
809 | 699 | if __name__ == "__main__": |
810 | 700 | TESTS = unittest.TestLoader().loadTestsFromTestCase(TestInputVar) |
811 | 701 | TESTS.addTests(unittest.TestLoader().loadTestsFromTestCase(TestOutput)) |
|
0 commit comments