def test_num_measures_pass(self): """Test num_measures function.""" meas = MeasureSet() self.assertEqual(0, meas.size()) act_1 = Measure() act_1.name = 'Mangrove' act_1.haz_type = 'FL' meas.append(act_1) self.assertEqual(1, meas.size()) meas.append(act_1) self.assertEqual(1, meas.size()) act_2 = Measure() act_2.name = 'Seawall' act_2.haz_type = 'FL' meas.append(act_2) self.assertEqual(2, meas.size())
def test_remove_measure_pass(self): """Test remove_measure removes Measure of MeasureSet correcty.""" meas = MeasureSet() act_1 = Measure() act_1.name = 'Mangrove' act_1.haz_type = 'FL' meas.append(act_1) meas.remove_measure(name='Mangrove') self.assertEqual(0, meas.size())
def test_template_file_pass(self): """ Read template excel file""" meas = MeasureSet() meas.read_excel(ENT_TEMPLATE_XLS) self.assertEqual(meas.size(), 7) name = 'elevate existing buildings' act_buil = meas.get_measure(name=name)[0] self.assertEqual(act_buil.name, name) self.assertEqual(act_buil.haz_type, 'TS') self.assertTrue( np.array_equal(act_buil.color_rgb, np.array([0.84, 0.89, 0.70]))) self.assertEqual(act_buil.cost, 3911963265.476649) self.assertEqual(act_buil.hazard_set, 'nil') self.assertEqual(act_buil.hazard_freq_cutoff, 0) self.assertEqual(act_buil.hazard_inten_imp, (1, -2)) self.assertEqual(act_buil.exposures_set, 'nil') self.assertEqual(act_buil.exp_region_id, 0) self.assertEqual(act_buil.paa_impact, (0.9, 0)) self.assertEqual(act_buil.mdd_impact, (0.9, -0.1)) self.assertEqual(act_buil.imp_fun_map, 'nil') self.assertEqual(act_buil.risk_transf_attach, 0) self.assertEqual(act_buil.risk_transf_cover, 0) name = 'vegetation management' act_buil = meas.get_measure(name=name)[0] self.assertEqual(act_buil.name, name) self.assertEqual(act_buil.haz_type, 'TC') self.assertTrue( np.array_equal(act_buil.color_rgb, np.array([0.76, 0.84, 0.60]))) self.assertEqual(act_buil.cost, 63968125.00687534) self.assertEqual(act_buil.hazard_set, 'nil') self.assertEqual(act_buil.hazard_freq_cutoff, 0) self.assertEqual(act_buil.hazard_inten_imp, (1, -1)) self.assertEqual(act_buil.exposures_set, 'nil') self.assertEqual(act_buil.exp_region_id, 0) self.assertEqual(act_buil.paa_impact, (0.8, 0)) self.assertEqual(act_buil.mdd_impact, (1, 0)) self.assertEqual(act_buil.imp_fun_map, 'nil') self.assertEqual(act_buil.risk_transf_attach, 0) self.assertEqual(act_buil.risk_transf_cover, 0) self.assertEqual( meas.get_measure(name='enforce building code')[0].imp_fun_map, '1to3') self.assertEqual(meas.tag.file_name, ENT_TEMPLATE_XLS) self.assertEqual(meas.tag.description, '')
def test_extend_to_empty_same(self): """Extend MeasureSet to empty one.""" meas = MeasureSet() meas_add = MeasureSet() act_1 = Measure() act_1.name = 'Mangrove' act_1.haz_type = 'TC' act_1.color_rgb = np.array([1, 1, 1]) act_1.mdd_impact = (1, 2) act_1.paa_impact = (1, 2) act_1.hazard_inten_imp = (1, 2) meas_add.append(act_1) meas.extend(meas_add) meas.check() self.assertEqual(meas.size(), 1) self.assertEqual(meas.get_names(), {'TC': ['Mangrove']})
def test_demo_file(self): """ Read demo excel file""" meas = MeasureSet() description = 'One single file.' meas.read_excel(ENT_DEMO_TODAY, description) # Check results n_meas = 4 self.assertEqual(meas.size(), n_meas) act_man = meas.get_measure(name='Mangroves')[0] self.assertEqual(act_man.name, 'Mangroves') self.assertEqual(type(act_man.color_rgb), np.ndarray) self.assertEqual(len(act_man.color_rgb), 3) self.assertEqual(act_man.color_rgb[0], 0.1529) self.assertEqual(act_man.color_rgb[1], 0.251) self.assertEqual(act_man.color_rgb[2], 0.5451) self.assertEqual(act_man.cost, 1311768360.8515418) self.assertEqual(act_man.hazard_freq_cutoff, 0) self.assertEqual(act_man.hazard_inten_imp, (1, -4)) self.assertEqual(act_man.mdd_impact, (1, 0)) self.assertEqual(act_man.paa_impact, (1, 0)) self.assertEqual(act_man.risk_transf_attach, 0) self.assertEqual(act_man.risk_transf_cover, 0) act_buil = meas.get_measure(name='Building code')[0] self.assertEqual(act_buil.name, 'Building code') self.assertEqual(type(act_buil.color_rgb), np.ndarray) self.assertEqual(len(act_buil.color_rgb), 3) self.assertEqual(act_buil.color_rgb[0], 0.6980) self.assertEqual(act_buil.color_rgb[1], 0.8745) self.assertEqual(act_buil.color_rgb[2], 0.9333) self.assertEqual(act_buil.cost, 9200000000.0000000) self.assertEqual(act_buil.hazard_freq_cutoff, 0) self.assertEqual(act_buil.hazard_inten_imp, (1, 0)) self.assertEqual(act_buil.mdd_impact, (0.75, 0)) self.assertEqual(act_buil.paa_impact, (1, 0)) self.assertEqual(act_buil.risk_transf_attach, 0) self.assertEqual(act_buil.risk_transf_cover, 0) self.assertEqual(meas.tag.file_name, ENT_DEMO_TODAY) self.assertEqual(meas.tag.description, description)
def test_extend_equal_same(self): """Extend the same MeasureSet. The inital MeasureSet is obtained.""" meas = MeasureSet() meas_add = MeasureSet() act_1 = Measure() act_1.name = 'Mangrove' act_1.haz_type = 'TC' act_1.color_rgb = np.array([1, 1, 1]) act_1.mdd_impact = (1, 2) act_1.paa_impact = (1, 2) act_1.hazard_inten_imp = (1, 2) meas.append(act_1) meas_add.append(act_1) meas.extend(meas_add) meas.check() self.assertEqual(meas.size(), 1) self.assertEqual(meas.get_names(), {'TC': ['Mangrove']})
def test_extend_different_extend(self): """Extend MeasureSet with same and new values. The actions with repeated name are overwritten.""" act_1 = Measure() act_1.name = 'Mangrove' act_1.haz_type = 'TC' act_1.color_rgb = np.array([1, 1, 1]) act_1.mdd_impact = (1, 2) act_1.paa_impact = (1, 2) act_1.hazard_inten_imp = (1, 2) act_11 = Measure() act_11.name = 'Mangrove' act_11.haz_type = 'TC' act_11.color_rgb = np.array([1, 1, 1]) act_11.mdd_impact = (1, 2) act_11.paa_impact = (1, 3) act_11.hazard_inten_imp = (1, 2) act_2 = Measure() act_2.name = 'Anything' act_2.haz_type = 'TC' act_2.color_rgb = np.array([1, 1, 1]) act_2.mdd_impact = (1, 2) act_2.paa_impact = (1, 2) act_2.hazard_inten_imp = (1, 2) meas = MeasureSet() meas.append(act_1) meas_add = MeasureSet() meas_add.append(act_11) meas_add.append(act_2) meas.extend(meas_add) meas.check() self.assertEqual(meas.size(), 2) self.assertEqual(meas.get_names(), {'TC': ['Mangrove', 'Anything']}) self.assertEqual( meas.get_measure(name=act_1.name)[0].paa_impact, act_11.paa_impact)
def test_demo_file(self): # Read demo excel file meas = MeasureSet() description = 'One single file.' meas.read_mat(ENT_TEST_MAT, description) # Check results n_meas = 4 self.assertEqual(meas.size(), n_meas) act_man = meas.get_measure(name='Mangroves')[0] self.assertEqual(act_man.name, 'Mangroves') self.assertEqual(act_man.haz_type, 'XX') self.assertEqual(type(act_man.color_rgb), np.ndarray) self.assertEqual(len(act_man.color_rgb), 3) self.assertEqual(act_man.color_rgb[0], 0.1529) self.assertEqual(act_man.color_rgb[1], 0.251) self.assertEqual(act_man.color_rgb[2], 0.5451) self.assertEqual(act_man.cost, 1311768360.8515418) self.assertEqual(act_man.hazard_freq_cutoff, 0) self.assertEqual(act_man.hazard_set, 'nil') self.assertEqual(act_man.hazard_inten_imp, (1, -4)) self.assertEqual(act_man.exposures_set, 'nil') self.assertEqual(act_man.exp_region_id, []) self.assertEqual(act_man.mdd_impact, (1, 0)) self.assertEqual(act_man.paa_impact, (1, 0)) self.assertEqual(act_man.imp_fun_map, 'nil') self.assertEqual(act_man.risk_transf_attach, 0) self.assertEqual(act_man.risk_transf_cover, 0) act_buil = meas.get_measure(name='Building code')[0] self.assertEqual(act_buil.name, 'Building code') self.assertEqual(act_buil.haz_type, 'XX') self.assertEqual(type(act_buil.color_rgb), np.ndarray) self.assertEqual(len(act_buil.color_rgb), 3) self.assertEqual(act_buil.color_rgb[0], 0.6980) self.assertEqual(act_buil.color_rgb[1], 0.8745) self.assertEqual(act_buil.color_rgb[2], 0.9333) self.assertEqual(act_buil.cost, 9200000000.0000000) self.assertEqual(act_buil.hazard_freq_cutoff, 0) self.assertEqual(act_buil.hazard_set, 'nil') self.assertEqual(act_buil.hazard_inten_imp, (1, 0)) self.assertEqual(act_buil.exposures_set, 'nil') self.assertEqual(act_buil.exp_region_id, []) self.assertEqual(act_buil.mdd_impact, (0.75, 0)) self.assertEqual(act_buil.paa_impact, (1, 0)) self.assertEqual(act_man.imp_fun_map, 'nil') self.assertEqual(act_buil.risk_transf_attach, 0) self.assertEqual(act_buil.risk_transf_cover, 0) self.assertEqual(meas.tag.file_name, str(ENT_TEST_MAT)) self.assertEqual(meas.tag.description, description)