Пример #1
0
 def test_no_first_fixed_surface(self):
     metadata = deepcopy(self.metadata)
     section = {'NV': 0,
                'typeOfFirstFixedSurface': MISSING_SURFACE,
                'scaledValueOfFirstFixedSurface': MISSING_LEVEL}
     vertical_coords(section, metadata)
     self.assertEqual(metadata, self.metadata)
Пример #2
0
 def test_no_first_fixed_surface(self):
     metadata = deepcopy(self.metadata)
     section = {
         'NV': 0,
         'typeOfFirstFixedSurface': MISSING_SURFACE,
         'scaledValueOfFirstFixedSurface': MISSING_LEVEL
     }
     vertical_coords(section, metadata)
     self.assertEqual(metadata, self.metadata)
Пример #3
0
 def test_different_fixed_surfaces(self):
     section = {'NV': 0,
                'typeOfFirstFixedSurface': 100,
                'scaledValueOfFirstFixedSurface': None,
                'scaleFactorOfFirstFixedSurface': None,
                'typeOfSecondFixedSurface': 0}
     emsg = 'different types of first and second fixed surface'
     with self.assertRaisesRegexp(TranslationError, emsg):
         vertical_coords(section, None)
Пример #4
0
 def test_same_fixed_surfaces_missing_second_scaled_value(self):
     section = {'NV': 0,
                'typeOfFirstFixedSurface': 100,
                'scaledValueOfFirstFixedSurface': None,
                'scaleFactorOfFirstFixedSurface': None,
                'typeOfSecondFixedSurface': 100,
                'scaledValueOfSecondFixedSurface': MISSING_LEVEL}
     emsg = 'missing scaled value of second fixed surface'
     with self.assertRaisesRegexp(TranslationError, emsg):
         vertical_coords(section, None)
Пример #5
0
 def test_hybrid_factories(self):
     metadata = deepcopy(self.metadata)
     section = {'NV': 1}
     this = 'iris.fileformats.grib._load_convert.hybrid_factories'
     factory = mock.sentinel.factory
     func = lambda section, metadata: metadata['factories'].append(factory)
     with mock.patch(this, side_effect=func) as hybrid_factories:
         vertical_coords(section, metadata)
         self.assertTrue(hybrid_factories.called)
         self.assertEqual(metadata['factories'], [factory])
Пример #6
0
 def test_hybrid_factories(self):
     metadata = deepcopy(self.metadata)
     section = {'NV': 1}
     this = 'iris.fileformats.grib._load_convert.hybrid_factories'
     factory = mock.sentinel.factory
     func = lambda section, metadata: metadata['factories'].append(factory)
     with mock.patch(this, side_effect=func) as hybrid_factories:
         vertical_coords(section, metadata)
         self.assertTrue(hybrid_factories.called)
         self.assertEqual(metadata['factories'], [factory])
Пример #7
0
 def test_different_fixed_surfaces(self):
     section = {
         'NV': 0,
         'typeOfFirstFixedSurface': 100,
         'scaledValueOfFirstFixedSurface': None,
         'scaleFactorOfFirstFixedSurface': None,
         'typeOfSecondFixedSurface': 0
     }
     emsg = 'different types of first and second fixed surface'
     with self.assertRaisesRegexp(TranslationError, emsg):
         vertical_coords(section, None)
Пример #8
0
 def test_pressure_with_no_second_fixed_surface(self):
     metadata = deepcopy(self.metadata)
     section = {'NV': 0,
                'typeOfFirstFixedSurface': 100,  # pressure / Pa
                'scaledValueOfFirstFixedSurface': 10,
                'scaleFactorOfFirstFixedSurface': 1,
                'typeOfSecondFixedSurface': MISSING_SURFACE}
     vertical_coords(section, metadata)
     coord = DimCoord(1.0, long_name='pressure', units='Pa')
     expected = deepcopy(self.metadata)
     expected['aux_coords_and_dims'].append((coord, None))
     self.assertEqual(metadata, expected)
Пример #9
0
 def test_same_fixed_surfaces_missing_second_scaled_value(self):
     section = {
         'NV': 0,
         'typeOfFirstFixedSurface': 100,
         'scaledValueOfFirstFixedSurface': None,
         'scaleFactorOfFirstFixedSurface': None,
         'typeOfSecondFixedSurface': 100,
         'scaledValueOfSecondFixedSurface': MISSING_LEVEL
     }
     emsg = 'missing scaled value of second fixed surface'
     with self.assertRaisesRegexp(TranslationError, emsg):
         vertical_coords(section, None)
Пример #10
0
 def test_height_with_no_second_fixed_surface(self):
     metadata = deepcopy(self.metadata)
     section = {
         'NV': 0,
         'typeOfFirstFixedSurface': 103,  # height / m
         'scaledValueOfFirstFixedSurface': 100,
         'scaleFactorOfFirstFixedSurface': 2,
         'typeOfSecondFixedSurface': MISSING_SURFACE
     }
     vertical_coords(section, metadata)
     coord = DimCoord(1.0, long_name='height', units='m')
     expected = deepcopy(self.metadata)
     expected['aux_coords_and_dims'].append((coord, None))
     self.assertEqual(metadata, expected)
Пример #11
0
 def test_height_with_second_fixed_surface(self):
     metadata = deepcopy(self.metadata)
     section = {'NV': 0,
                'typeOfFirstFixedSurface': 103,
                'scaledValueOfFirstFixedSurface': 1000,
                'scaleFactorOfFirstFixedSurface': 2,
                'typeOfSecondFixedSurface': 103,
                'scaledValueOfSecondFixedSurface': 3000,
                'scaleFactorOfSecondFixedSurface': 2}
     vertical_coords(section, metadata)
     coord = DimCoord(20.0, long_name='height', units='m',
                      bounds=[10.0, 30.0])
     expected = deepcopy(self.metadata)
     expected['aux_coords_and_dims'].append((coord, None))
     self.assertEqual(metadata, expected)
Пример #12
0
 def _check(self, value, msg):
     this = 'iris.fileformats.grib._load_convert.options'
     with mock.patch('warnings.warn') as warn:
         with mock.patch(this) as options:
             for request_warning in [False, True]:
                 options.warn_on_unsupported = request_warning
                 metadata = deepcopy(self.metadata)
                 section = {'NV': 0,
                            'typeOfFirstFixedSurface': 0,
                            'scaledValueOfFirstFixedSurface': value}
                 # The call being tested.
                 vertical_coords(section, metadata)
                 self.assertEqual(metadata, self.metadata)
                 if request_warning:
                     self.assertEqual(len(warn.mock_calls), 1)
                     args, _ = warn.call_args
                     self.assertIn(msg, args[0])
                 else:
                     self.assertEqual(len(warn.mock_calls), 0)
Пример #13
0
 def test_height_with_second_fixed_surface(self):
     metadata = deepcopy(self.metadata)
     section = {
         'NV': 0,
         'typeOfFirstFixedSurface': 103,
         'scaledValueOfFirstFixedSurface': 1000,
         'scaleFactorOfFirstFixedSurface': 2,
         'typeOfSecondFixedSurface': 103,
         'scaledValueOfSecondFixedSurface': 3000,
         'scaleFactorOfSecondFixedSurface': 2
     }
     vertical_coords(section, metadata)
     coord = DimCoord(20.0,
                      long_name='height',
                      units='m',
                      bounds=[10.0, 30.0])
     expected = deepcopy(self.metadata)
     expected['aux_coords_and_dims'].append((coord, None))
     self.assertEqual(metadata, expected)
Пример #14
0
 def _check(self, value, msg):
     this = 'iris.fileformats.grib._load_convert.options'
     with mock.patch('warnings.warn') as warn:
         with mock.patch(this) as options:
             for request_warning in [False, True]:
                 options.warn_on_unsupported = request_warning
                 metadata = deepcopy(self.metadata)
                 section = {
                     'NV': 0,
                     'typeOfFirstFixedSurface': 0,
                     'scaledValueOfFirstFixedSurface': value
                 }
                 # The call being tested.
                 vertical_coords(section, metadata)
                 self.assertEqual(metadata, self.metadata)
                 if request_warning:
                     self.assertEqual(len(warn.mock_calls), 1)
                     args, _ = warn.call_args
                     self.assertIn(msg, args[0])
                 else:
                     self.assertEqual(len(warn.mock_calls), 0)