def test_execute(self): field = self.get_field(with_value=True, month_count=2) field.add_variable( Variable(value=field['tmax'].get_value() + 5, name='tmin', dimensions=field['tmax'].dimensions)) dv = Divide(field=field, parms={'arr1': 'tmax', 'arr2': 'tmin'}) ret = dv.execute() self.assertNumpyAllClose( ret['divide'].get_value(), field['tmax'].get_value() / field['tmin'].get_value()) with self.assertRaises(SampleSizeNotImplemented): Divide(field=field, parms={ 'arr1': 'tmax', 'arr2': 'tmin' }, calc_sample_size=True)
def test_execute_temporal_grouping(self): field = self.get_field(with_value=True, month_count=2) field.add_variable( Variable(value=field['tmax'].get_value() + 5, name='tmin', dimensions=field['tmax'].dimensions)) grouping = ['month'] tgd = field.temporal.get_grouping(grouping) dv = Divide(field=field, parms={ 'arr1': 'tmax', 'arr2': 'tmin' }, tgd=tgd) ret = dv.execute() self.assertEqual(ret['divide'].get_value().shape, (2, 2, 2, 3, 4)) self.assertNumpyAllClose( ret['divide'].get_masked_value()[0, 1, 1, :, 2], np.ma.array([0.0833001563436, 0.0940192653632, 0.0916398919876], mask=False, fill_value=1e20))