def test_only_scalar_coords(self): """Test with an input cube containing only scalar auxiliary coordinates.""" plugin = SpotExtraction() expected_scalar = self.diagnostic_cube_yx.aux_coords expected_nonscalar = [] x_indices, y_indices = self.coordinate_cube.data scalar, nonscalar = plugin.get_aux_coords(self.diagnostic_cube_yx, x_indices, y_indices) self.assertArrayEqual(scalar, expected_scalar) self.assertArrayEqual(nonscalar, expected_nonscalar)
def test_multiple_nonscalar_coords(self): """Test with an input cube containing multiple nonscalar auxiliary coordinates. The returned non-scalar coordinates are 1D representations of the 2D non-scalar input coordinates at spot sites.""" plugin = SpotExtraction() additional_2d_crd = self.time_aux_coord.copy() additional_2d_crd.rename("kittens") self.diagnostic_cube_2d_time.add_aux_coord(additional_2d_crd, data_dims=(0, 1)) additional_expected = self.expected_spot_time_coord.copy() additional_expected.rename("kittens") expected_nonscalar = [ additional_expected, self.expected_spot_time_coord ] x_indices, y_indices = self.coordinate_cube.data _, nonscalar = plugin.get_aux_coords(self.diagnostic_cube_2d_time, x_indices, y_indices) self.assertArrayEqual(nonscalar, expected_nonscalar)
def test_scalar_and_nonscalar_coords(self): """Test with an input cube containing scalar and nonscalar auxiliary coordinates. The returned non-scalar coordinate is a 1D representation of the 2D non-scalar input coordinate at spot sites.""" plugin = SpotExtraction() expected_scalar = [ coord for coord in self.diagnostic_cube_2d_time.aux_coords if coord.name() in [ "time_in_local_timezone", "forecast_reference_time", "forecast_period" ] ] expected_nonscalar = [self.expected_spot_time_coord] x_indices, y_indices = self.coordinate_cube.data scalar, nonscalar = plugin.get_aux_coords(self.diagnostic_cube_2d_time, x_indices, y_indices) self.assertArrayEqual(scalar, expected_scalar) self.assertArrayEqual(nonscalar, expected_nonscalar)