def test_set_one_file_pass(self): """ Test set function set_from_tracks with one input.""" pool = Pool() tc_track = TCTracks(pool) tc_track.read_processed_ibtracs_csv(TEST_TRACK) tc_track.calc_random_walk() tc_track.equal_timestep() tc_haz = TropCyclone(pool) tc_haz.set_from_tracks(tc_track, CENTR_TEST_BRB) tc_haz.check() pool.close() pool.join() self.assertEqual(tc_haz.tag.haz_type, 'TC') self.assertEqual(tc_haz.tag.description, '') self.assertEqual(tc_haz.units, 'm/s') self.assertEqual(tc_haz.centroids.size, 296) self.assertEqual(tc_haz.event_id.size, 10) self.assertTrue(isinstance(tc_haz.intensity, sparse.csr.csr_matrix)) self.assertTrue(isinstance(tc_haz.fraction, sparse.csr.csr_matrix)) self.assertEqual(tc_haz.intensity.shape, (10, 296)) self.assertEqual(tc_haz.fraction.shape, (10, 296))
def test_set_one_file_pass(self): """Test set function set_from_tracks with one input.""" tc_track = TCTracks() tc_track.read_processed_ibtracs_csv(TEST_TRACK_SHORT) tc_haz = TropCyclone() tc_haz.set_from_tracks(tc_track, CENTR_TEST_BRB) tc_haz.check() self.assertEqual(tc_haz.tag.haz_type, 'TC') self.assertEqual(tc_haz.tag.description, '') self.assertEqual(tc_haz.tag.file_name, 'Name: 1951239N12334') self.assertEqual(tc_haz.units, 'm/s') self.assertEqual(tc_haz.centroids.size, 296) self.assertEqual(tc_haz.event_id.size, 1) self.assertEqual(tc_haz.event_id[0], 1) self.assertEqual(tc_haz.event_name, ['1951239N12334']) self.assertEqual(tc_haz.category, tc_track.data[0].category) self.assertEqual(tc_haz.basin[0], 'NA') self.assertIsInstance(tc_haz.basin, list) self.assertIsInstance(tc_haz.category, np.ndarray) self.assertTrue(np.array_equal(tc_haz.frequency, np.array([1]))) self.assertTrue(isinstance(tc_haz.intensity, sparse.csr.csr_matrix)) self.assertTrue(isinstance(tc_haz.fraction, sparse.csr.csr_matrix)) self.assertEqual(tc_haz.intensity.shape, (1, 296)) self.assertEqual(tc_haz.fraction.shape, (1, 296)) self.assertEqual(tc_haz.fraction.nonzero()[0].size, 0) self.assertEqual(tc_haz.intensity.nonzero()[0].size, 0)
def test_two_files_pass(self): """Test set function set_from_tracks with two ibtracs.""" tc_track = TCTracks() tc_track.read_processed_ibtracs_csv([TEST_TRACK_SHORT, TEST_TRACK_SHORT]) tc_haz = TropCyclone() tc_haz.set_from_tracks(tc_track, CENTR_TEST_BRB) tc_haz.remove_duplicates() tc_haz.check() self.assertEqual(tc_haz.tag.haz_type, 'TC') self.assertEqual(tc_haz.tag.description, '') self.assertEqual(tc_haz.tag.file_name, ['Name: 1951239N12334', 'Name: 1951239N12334']) self.assertEqual(tc_haz.units, 'm/s') self.assertEqual(tc_haz.centroids.size, 296) self.assertEqual(tc_haz.event_id.size, 1) self.assertEqual(tc_haz.event_id[0], 1) self.assertEqual(tc_haz.event_name, ['1951239N12334']) self.assertTrue(np.array_equal(tc_haz.frequency, np.array([1]))) self.assertTrue(np.array_equal(tc_haz.orig, np.array([True]))) self.assertTrue(isinstance(tc_haz.intensity, sparse.csr.csr_matrix)) self.assertTrue(isinstance(tc_haz.fraction, sparse.csr.csr_matrix)) self.assertEqual(tc_haz.intensity.shape, (1, 296)) self.assertEqual(tc_haz.fraction.shape, (1, 296)) self.assertEqual(tc_haz.fraction.nonzero()[0].size, 0) self.assertEqual(tc_haz.intensity.nonzero()[0].size, 0)
def test_read_and_tc_fail(self): """ Append Hazard and Tropical Cyclone. Fail because of missing category in hazard. """ tc_track = TCTracks() tc_track.read_processed_ibtracs_csv(TEST_TRACK_SHORT) tc_haz1 = TropCyclone() tc_haz1.read_mat(HAZ_TEST_MAT) tc_haz2 = TropCyclone() tc_haz2.set_from_tracks(tc_track, CENTR_TEST_BRB) tc_haz2.append(tc_haz1) self.assertEqual(tc_haz2.intensity.shape, (14451, 396)) with self.assertRaises(ValueError): tc_haz2.check()