Ejemplo n.º 1
0
 def test_add_cell_method_no_action(self):
     """Test adding a cell method, where no action is specified."""
     cell_methods = {'method': 'point',
                     'coords': 'time',
                     'intervals': (),
                     'comments': ()}
     msg = "No action has been specified within the cell method definition."
     with self.assertRaisesRegex(ValueError, msg):
         update_cell_methods(self.cube, cell_methods)
Ejemplo n.º 2
0
 def test_add_cell_method_partial_information(self):
     """Test adding a cell method, where there is only partial
     information available i.e. just method and coords."""
     cell_methods = {'action': 'add', 'method': 'point', 'coords': 'time'}
     cm = deepcopy(cell_methods)
     cm.pop('action')
     expected_cell_method = iris.coords.CellMethod(**cm)
     update_cell_methods(self.cube, cell_methods)
     self.assertEqual((expected_cell_method, ), self.cube.cell_methods)
Ejemplo n.º 3
0
 def test_add_cell_method_already_on_cube(self):
     """Test that there is no change to the cell method, if the specified
     cell method is already on the cube."""
     cell_methods = {'action': 'add', 'method': 'point', 'coords': 'time'}
     cm = deepcopy(cell_methods)
     cm.pop('action')
     self.cube.cell_methods = (iris.coords.CellMethod(**cm), )
     expected_cell_method = iris.coords.CellMethod(**cm)
     update_cell_methods(self.cube, cell_methods)
     self.assertEqual((expected_cell_method, ), self.cube.cell_methods)
Ejemplo n.º 4
0
 def test_add_cell_method_empty_method(self):
     """Test add a cell method, where the method element is specified
     as an emtpy string."""
     cell_methods = {'action': 'add',
                     'method': '',
                     'coords': 'time',
                     'intervals': (),
                     'comments': ()}
     msg = "No method has been specified within the cell method"
     with self.assertRaisesRegex(ValueError, msg):
         update_cell_methods(self.cube, cell_methods)
Ejemplo n.º 5
0
 def test_add_cell_method_no_coords(self):
     """Test add a cell method, where no coords element is specified."""
     cell_methods = {'action': 'add',
                     'method': 'point',
                     'coords': (),
                     'intervals': (),
                     'comments': ()}
     cm = deepcopy(cell_methods)
     cm.pop('action')
     expected_cell_method = iris.coords.CellMethod(**cm)
     update_cell_methods(self.cube, cell_methods)
     self.assertEqual((expected_cell_method,), self.cube.cell_methods)
Ejemplo n.º 6
0
 def test_remove_cell_method(self):
     """Test removing a cell method, when the specified cell method is
     already on the input cube."""
     cell_methods = {'action': 'delete',
                     'method': 'point',
                     'coords': 'time',
                     'intervals': (),
                     'comments': ()}
     cm = deepcopy(cell_methods)
     cm.pop('action')
     self.cube.cell_methods = (iris.coords.CellMethod(**cm),)
     update_cell_methods(self.cube, cell_methods)
     self.assertEqual(self.cube.cell_methods, ())
Ejemplo n.º 7
0
 def test_add_cell_method(self):
     """Test adding a cell method, where all cell method elements are
     present i.e. method, coords, intervals and comments."""
     cell_methods = {'action': 'add',
                     'method': 'point',
                     'coords': 'time',
                     'intervals': (),
                     'comments': ()}
     cm = deepcopy(cell_methods)
     cm.pop('action')
     expected_cell_method = iris.coords.CellMethod(**cm)
     update_cell_methods(self.cube, cell_methods)
     self.assertEqual((expected_cell_method,), self.cube.cell_methods)
Ejemplo n.º 8
0
 def test_add_additional_cell_method_to_cube(self):
     """Test that there is no change to the cell method, if the specified
     cell method is already on the cube."""
     existing_cell_methods = {'action': 'add',
                              'method': 'point',
                              'coords': 'time'}
     additional_cell_methods = {'action': 'add',
                                'method': 'mean',
                                'coords': 'realization'}
     cm = deepcopy(existing_cell_methods)
     cm.pop('action')
     self.cube.cell_methods = (iris.coords.CellMethod(**cm),)
     cm = deepcopy(additional_cell_methods)
     cm.pop('action')
     expected_cell_method = iris.coords.CellMethod(**cm)
     update_cell_methods(self.cube, additional_cell_methods)
     self.assertTrue(expected_cell_method in self.cube.cell_methods)