def test_interpolation(self): """Test that interpolation is working as expected in _find_radii.""" fp_points = np.array([2, 3, 4]) radii = [10000, 30000] lead_times = [2, 4] plugin = NBHood(radii=radii, lead_times=lead_times) result = plugin._find_radii(cube_lead_times=fp_points) expected_result = np.array([10000.0, 20000.0, 30000.0]) self.assertArrayAlmostEqual(result, expected_result)
def test_basic_float_cube_lead_times_is_none(self): """Test _find_radii returns an unaltered radius if the lead times are none, and this radius is a float.""" neighbourhood_method = CircularNeighbourhood() radius = 6300 plugin = NBHood(neighbourhood_method, radius) result = plugin._find_radii(cube_lead_times=None) expected_result = 6300.0 self.assertIsInstance(result, float) self.assertAlmostEqual(result, expected_result)
def test_basic_array_cube_lead_times_an_array(self): """Test _find_radii returns an array with the correct values.""" fp_points = np.array([2, 3, 4]) radii = [10000, 20000, 30000] lead_times = [1, 3, 5] plugin = NBHood(radii, lead_times=lead_times) result = plugin._find_radii(cube_lead_times=fp_points) expected_result = np.array([15000.0, 20000.0, 25000.0]) self.assertIsInstance(result, np.ndarray) self.assertArrayAlmostEqual(result, expected_result)
def test_basic_float_cube_lead_times_is_none(self): """Test _find_radii returns a float with the correct value.""" neighbourhood_method = CircularNeighbourhood() ens_factor = 0.8 num_ens = 2.0 radius = 6300 plugin = NBHood(neighbourhood_method, radius, ens_factor=ens_factor) result = plugin._find_radii(num_ens) expected_result = 3563.8181771801998 self.assertIsInstance(result, float) self.assertAlmostEquals(result, expected_result)
def test_interpolation(self): """Test that interpolation is working as expected in _find_radii.""" neighbourhood_method = CircularNeighbourhood fp_points = np.array([2, 3, 4]) radii = [10000, 30000] lead_times = [2, 4] plugin = NBHood(neighbourhood_method(), radii=radii, lead_times=lead_times) result = plugin._find_radii(cube_lead_times=fp_points) expected_result = np.array([10000., 20000., 30000.]) self.assertArrayAlmostEqual(result, expected_result)
def test_interpolation(self): """Test that interpolation is working as expected in _find_radii.""" fp_points = np.array([2, 3, 4]) neighbourhood_method = CircularNeighbourhood() ens_factor = 0.8 num_ens = 4.0 fp_points = np.array([2, 3, 4]) radii = [10000, 30000] lead_times = [2, 4] plugin = NBHood(neighbourhood_method, radii, lead_times=lead_times, ens_factor=ens_factor) result = plugin._find_radii(num_ens, cube_lead_times=fp_points) expected_result = np.array([4000., 8000., 12000.]) self.assertArrayAlmostEqual(result, expected_result)
def test_basic_array_cube_lead_times_an_array(self): """Test _find_radii returns an array with the correct values.""" neighbourhood_method = CircularNeighbourhood ens_factor = 0.9 num_ens = 2.0 fp_points = np.array([2, 3, 4]) radii = [10000, 20000, 30000] lead_times = [2, 3, 4] plugin = NBHood(neighbourhood_method(), radii, lead_times=lead_times, ens_factor=ens_factor) result = plugin._find_radii(num_ens, cube_lead_times=fp_points) expected_result = np.array([6363.961031, 12727.922061, 19091.883092]) self.assertIsInstance(result, np.ndarray) self.assertArrayAlmostEqual(result, expected_result)