def test_equal_same(self): """Append the same hazard. Obtain initial hazard.""" haz1 = Hazard('TC') haz1.read_excel(HAZ_TEMPLATE_XLS) haz2 = Hazard('TC') haz2.read_excel(HAZ_TEMPLATE_XLS) haz1.append(haz2) haz1.remove_duplicates() haz1.check() self.assertEqual(haz1.event_name, haz2.event_name) self.assertTrue(np.array_equal(haz1.event_id, haz2.event_id)) self.assertTrue(np.array_equal(haz1.frequency, haz2.frequency)) self.assertTrue(np.array_equal(haz1.date, haz2.date)) self.assertTrue(np.array_equal(haz1.orig, haz2.orig)) self.assertTrue( np.array_equal(haz1.intensity.todense(), haz2.intensity.todense())) self.assertTrue( np.array_equal(haz1.fraction.todense(), haz2.fraction.todense())) self.assertTrue((haz1.intensity != haz2.intensity).nnz == 0) self.assertTrue((haz1.fraction != haz2.fraction).nnz == 0) self.assertEqual(haz1.units, haz2.units) self.assertEqual(haz1.tag.file_name, [haz2.tag.file_name, haz2.tag.file_name]) self.assertEqual(haz1.tag.haz_type, haz2.tag.haz_type) self.assertEqual(haz1.tag.description, [haz2.tag.description, haz2.tag.description])
def test_event_id_to_name_fail(self): """ Test event_id_to_name function.""" haz = Hazard('TC') haz.read_excel(HAZ_TEMPLATE_XLS) with self.assertLogs('climada.hazard.base', level='ERROR') as cm: with self.assertRaises(ValueError): haz.get_event_name(1050) self.assertIn('No event with id: 1050', cm.output[0])
def test_hazard_pass(self): ''' Read an hazard excel file correctly.''' # Read demo excel file hazard = Hazard('TC') description = 'One single file.' hazard.read_excel(HAZ_TEMPLATE_XLS, description) # Check results n_events = 100 n_centroids = 45 self.assertEqual(hazard.units, '') self.assertEqual(hazard.centroids.coord.shape, (n_centroids, 2)) self.assertEqual(hazard.centroids.coord[0][0], -25.95) self.assertEqual(hazard.centroids.coord[0][1], 32.57) self.assertEqual(hazard.centroids.coord[n_centroids-1][0], -24.7) self.assertEqual(hazard.centroids.coord[n_centroids-1][1], 33.88) self.assertEqual(len(hazard.event_name), 100) self.assertEqual(hazard.event_name[12], 'event013') self.assertEqual(hazard.event_id.dtype, int) self.assertEqual(hazard.event_id.shape, (n_events,)) self.assertEqual(hazard.event_id[0], 1) self.assertEqual(hazard.event_id[n_events-1], 100) self.assertEqual(hazard.date.dtype, int) self.assertEqual(hazard.date.shape, (n_events,)) self.assertEqual(hazard.date[0], 675874) self.assertEqual(hazard.date[n_events-1], 676329) self.assertEqual(hazard.event_name[0], 'event001') self.assertEqual(hazard.event_name[50], 'event051') self.assertEqual(hazard.event_name[-1], 'event100') self.assertEqual(hazard.frequency.dtype, np.float) self.assertEqual(hazard.frequency.shape, (n_events,)) self.assertEqual(hazard.frequency[0], 0.01) self.assertEqual(hazard.frequency[n_events-2], 0.001) self.assertEqual(hazard.intensity.dtype, np.float) self.assertEqual(hazard.intensity.shape, (n_events, n_centroids)) self.assertEqual(hazard.fraction.dtype, np.float) self.assertEqual(hazard.fraction.shape, (n_events, n_centroids)) self.assertEqual(hazard.fraction[0, 0], 1) self.assertEqual(hazard.fraction[10, 19], 1) self.assertEqual(hazard.fraction[n_events-1, n_centroids-1], 1) self.assertTrue(np.all(hazard.orig)) # tag hazard self.assertEqual(hazard.tag.file_name, HAZ_TEMPLATE_XLS) self.assertEqual(hazard.tag.description, description) self.assertEqual(hazard.tag.haz_type, 'TC')
def test_append_to_empty_fill(self): """Append to an empty hazard a filled one. Obtain filled one.""" haz1 = Hazard('TC') haz2 = Hazard('TC') haz2.read_excel(HAZ_TEMPLATE_XLS) haz1.append(haz2) haz1.check() # expected values haz1_orig = Hazard('TC') haz1_orig.read_excel(HAZ_TEMPLATE_XLS) self.assertEqual(haz1.event_name, haz1_orig.event_name) self.assertTrue(np.array_equal(haz1.event_id, haz1_orig.event_id)) self.assertTrue(np.array_equal(haz1.frequency, haz1_orig.frequency)) self.assertTrue(np.array_equal(haz1.date, haz1_orig.date)) self.assertTrue(np.array_equal(haz1.orig, haz1_orig.orig)) self.assertTrue((haz1.intensity != haz1_orig.intensity).nnz == 0) self.assertTrue((haz1.fraction != haz1_orig.fraction).nnz == 0) self.assertEqual(haz1.units, haz1_orig.units) self.assertEqual(haz1.tag.file_name, haz1_orig.tag.file_name) self.assertEqual(haz1.tag.haz_type, haz1_orig.tag.haz_type) self.assertEqual(haz1.tag.description, haz1_orig.tag.description)
def test_append_empty_fill(self): """Append an empty. Obtain initial hazard.""" haz1 = Hazard('TC') haz1.read_excel(HAZ_TEMPLATE_XLS) haz2 = Hazard('TC') haz2.centroids.geometry.crs = {'init':'epsg:4326'} haz1.append(haz2) haz1.check() # expected values haz1_orig = Hazard('TC') haz1_orig.read_excel(HAZ_TEMPLATE_XLS) self.assertEqual(haz1.event_name, haz1_orig.event_name) self.assertTrue(np.array_equal(haz1.event_id, haz1_orig.event_id)) self.assertTrue(np.array_equal(haz1.date, haz1_orig.date)) self.assertTrue(np.array_equal(haz1.orig, haz1_orig.orig)) self.assertTrue(np.array_equal(haz1.frequency, haz1_orig.frequency)) self.assertTrue((haz1.intensity != haz1_orig.intensity).nnz == 0) self.assertTrue((haz1.fraction != haz1_orig.fraction).nnz == 0) self.assertEqual(haz1.units, haz1_orig.units) self.assertEqual(haz1.tag.file_name, haz1_orig.tag.file_name) self.assertEqual(haz1.tag.haz_type, haz1_orig.tag.haz_type) self.assertEqual(haz1.tag.description, haz1_orig.tag.description)
def test_event_id_to_name_pass(self): """ Test event_id_to_name function.""" haz = Hazard('TC') haz.read_excel(HAZ_TEMPLATE_XLS) self.assertEqual(haz.get_event_name(2), 'event002') self.assertEqual(haz.get_event_name(48), 'event048')
def test_event_name_to_id_pass(self): """ Test event_name_to_id function.""" haz = Hazard('TC') haz.read_excel(HAZ_TEMPLATE_XLS) self.assertEqual(haz.get_event_id('event001')[0], 1) self.assertEqual(haz.get_event_id('event084')[0], 84)