def test_parse_integrated_4(self):
     indata = '2-3/4*2+1'
     actual = parsing.parse_definition(indata)
     d34 = parsing.ParsedBinOp([['/', 3, 4]])
     d34m2 = parsing.ParsedBinOp([['*', d34, 2]])
     s2d34m2 = parsing.ParsedBinOp([['-', 2, d34m2]])
     expected = parsing.ParsedBinOp([['+', s2d34m2, 1]])
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, 'Integrated #4 operator parsing failed')
 def test_parse_integrated_1(self):
     indata = '2-17.3*x**2'
     actual = parsing.parse_definition(indata)
     x = parsing.ParsedVariable([['x']])
     x2 = parsing.ParsedBinOp([['**', x, 2]])
     m17p3x2 = parsing.ParsedBinOp([['*', 17.3, x2]])
     expected = parsing.ParsedBinOp([['-', 2, m17p3x2]])
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, 'Integrated #1 operator parsing failed')
 def test_unique_same_names_unset(self):
     indata = [DimensionDesc('x'), DimensionDesc('x')]
     actual = DimensionDesc.unique(indata)
     expected = OrderedDict([(indata[0].name, indata[0])])
     print_test_message('DimensionDesc.unique([d1, d1])',
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(
         actual, expected,
         'DimensionDesc.unique fails with same names, all unset')
Exemple #4
0
 def test_func_mean_physarray_2d(self):
     key = 'mean'
     indata = PhysArray([[1.0, 2.0], [3.0, 4.0]], mask=[[False, False], [True, False]],
                        name='x', units='m', dimensions=('t', 'u'))
     testname = '{}({})'.format(key, indata)
     func = functions.find(key)
     fobj = func(indata, 't')
     actual = fobj[:]
     expected = PhysArray([1.0, 3.0], name='mean(x, dims=[t])', units='m', dimensions=('u',))
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertPhysArraysEqual(actual, expected, '{} failed'.format(testname))
Exemple #5
0
 def test_op_pow_float(self):
     key = '**'
     left = 2.4
     right = 3.2
     testname = '({} {} {})'.format(left, key, right)
     func = functions.find(key, 2)
     actual = func(left, right)[:]
     expected = 2.4 ** 3.2
     print_test_message(testname, actual=actual,
                        expected=expected, left=left, right=right)
     self.assertEqual(actual, expected, '{} failed'.format(testname))
Exemple #6
0
 def test_output_dataset_variable_files(self):
     outds = OutputDatasetDesc('myoutds', self.dsdict)
     actual = {v.name:v.files.keys() for v in outds.variables.itervalues()}
     expected = {'X': ['var1.nc', 'var2.nc'],
                 'Y': ['var1.nc', 'var2.nc'],
                 'T': ['var1.nc', 'var2.nc'],
                 'W': ['var1.nc'],
                 'V1': ['var1.nc', 'var2.nc'],
                 'V2': ['var2.nc']}
     print_test_message('OutputDatasetDesc.variables.files', actual=actual, expected=expected)
     self.assertEqual(actual, expected, 'OutputDatasetDesc has wrong variable files')
 def test_convert(self):
     xdata = numpy.array(2., dtype='d')
     X = PhysArray(xdata, name='X', units='km')
     indata = 'm'
     testname = 'X.convert({})'.format(indata)
     actual = X.convert(Unit(indata))
     new_name = "convert({}, from={}, to={})".format(
         X.name, X.units, indata)
     expected = PhysArray(2000., name=new_name, units=indata)
     print_test_message(testname, actual=actual, expected=expected, X=X)
     self.assertPhysArraysEqual(actual, expected, testname=testname)
 def test_init_dimensions_value_error(self):
     invalid_input = [(1, 2), ['a', 'b', 'c'], []]
     for indata in invalid_input:
         testname = 'PhysArray([1,2,3], name="X", dimensions={!r})'.format(
             indata)
         expected = ValueError
         print_test_message(testname, units=indata, expected=expected)
         self.assertRaises(expected,
                           PhysArray, [1, 2, 3],
                           dimensions=indata,
                           name='X')
 def test_size(self):
     indata = 1
     ddesc = DimensionDesc('x', size=indata)
     actual = ddesc.size
     expected = indata
     print_test_message('DimensionDesc.size',
                        input=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected,
                      'DimensionDesc.size is not set properly')
 def test_pst_init_args(self):
     indata = (['x', 1, -3.2], {})
     pst = parsing.FuncType(indata)
     actual = type(pst)
     expected = parsing.FuncType
     testname = 'FuncType.__init__({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected, 'Types do not match')
 def test_parse_neg_func(self):
     indata = '-f()'
     actual = parsing.parse_definition(indata)
     f = parsing.FuncType('f')
     expected = parsing.OpType('-', [f])
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected, 'Negation parsing failed')
 def test_parse_neg_var(self):
     indata = '-x'
     actual = parsing.parse_definition(indata)
     x = parsing.VarType('x')
     expected = parsing.OpType('-', [x])
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected, 'Negation parsing failed')
 def test_varpst_init(self):
     indata = ['x']
     pst = parsing.VarType(*indata)
     actual = type(pst)
     expected = parsing.VarType
     testname = 'VarType.__init__({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected, 'Types do not match')
 def test_execute_chunks_2D_t_y(self):
     testname = 'DataFlow().execute()'
     df = dataflow.DataFlow(self.inpds, self.outds)
     df.execute(chunks=OrderedDict([('t', 2), ('y', 3)]))
     actual = all(exists(f) for f in self.outfiles.itervalues())
     expected = True
     print_test_message(testname, actual=actual, expected=expected)
     self.assertEqual(actual, expected, '{} failed'.format(testname))
     for f in self.outfiles:
         print_ncfile(self.outfiles[f])
         print
 def test_execute_all(self):
     testname = 'DataFlow().execute()'
     df = dataflow.DataFlow(self.inpds, self.outds)
     df.execute(history=True)
     actual = all(exists(f) for f in self.outfiles.itervalues())
     expected = True
     print_test_message(testname, actual=actual, expected=expected)
     self.assertEqual(actual, expected, '{} failed'.format(testname))
     for f in self.outfiles:
         print_ncfile(self.outfiles[f])
         print
 def test_units(self):
     indata = 'm'
     vdesc = VariableDesc('x', attributes={'units': indata})
     actual = vdesc.units()
     expected = indata
     print_test_message('VariableDesc.units()',
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected,
                      'Default VariableDesc.units() not {}'.format(indata))
 def test_parse_int_mul_int(self):
     indata = '2*1'
     actual = parsing.parse_definition(indata)
     expected = 2
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected,
                      'Multiplication operator parsing failed')
 def test_init_dimensions_type_error(self):
     invalid_input = [1, 'x', -3.4]
     for indata in invalid_input:
         testname = 'PhysArray([1,2,3], name="X", dimensions={!r})'.format(
             indata)
         expected = TypeError
         print_test_message(testname, units=indata, expected=expected)
         self.assertRaises(expected,
                           PhysArray, [1, 2, 3],
                           dimensions=indata,
                           name='X')
 def test_parse_float_sub_float(self):
     indata = '2.4-1e7'
     actual = parsing.parse_definition(indata)
     expected = 2.4 - 1e7
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected,
                      'Subtraction operator parsing failed')
 def test_positive_valid_str(self):
     nlist = range(3)
     valid_indata = ['up', 'Up', 'UP', 'down', 'Down', 'DOWN', 'doWN']
     for indata in valid_indata:
         testname = 'PhysArray({}, positive={!r}).positive'.format(
             nlist, indata)
         X = PhysArray(nlist, positive=indata, name='X')
         actual = X.positive
         expected = indata.lower()
         print_test_message(testname, actual=actual, expected=expected)
         self.assertEqual(actual, expected, '{} failed'.format(testname))
 def test_pst_func_args(self):
     indata = ['x', [1, -3.2], {}]
     pst = parsing.FuncType(*indata)
     actual = pst.args
     expected = indata[1]
     testname = 'FuncType.__init__({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected, 'Args do not match')
Exemple #22
0
 def test_autoparse_time_variable_hidden(self):
     indata = (VariableDesc('a'), VariableDesc('b'), VariableDesc('_t'))
     fdesc = FileDesc('test.nc', variables=indata, autoparse_time_variable='_t')
     actual = fdesc.variables
     expected = OrderedDict((d.name, d) for d in indata)
     print_test_message('FileDesc.variables', input=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, 'FileDesc.variables failed')
     actual = fdesc.dimensions
     expected = OrderedDict()
     print_test_message('FileDesc.dimensions', input=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, 'FileDesc.dimensions failed')
 def test_parse_integrated_4(self):
     indata = '2-3/4*2+1'
     actual = parsing.parse_definition(indata)
     expected = 3
     testname = 'parse_definition({0!r})'.format(indata)
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     self.assertEqual(actual, expected,
                      'Integrated #4 operator parsing failed')
Exemple #24
0
 def test_op_neg_int(self):
     key = '-'
     indata = 3
     testname = '({}{})'.format(key, indata)
     funcref = functions.find(key, 1)
     func = funcref(indata)
     actual = func[:]
     expected = op.neg(indata)
     print_test_message(testname, input=indata,
                        actual=actual, expected=expected)
     self.assertEqual(actual, expected, '{} failed'.format(testname))
 def test_reset(self):
     expected = DimensionDesc('x', 1)
     actual = DimensionDesc('y', 2)
     actual.set(expected)
     print_test_message('DimensionDesc.set()',
                        actual=str(actual),
                        expected=str(expected))
     self.assertEqual(actual.name, 'y',
                      'DimensionDesc name not correct after set')
     self.assertEqual(actual.size, expected.size,
                      'DimensionDesc size not correct after set')
Exemple #26
0
 def test_func_sqrt_float(self):
     key = 'sqrt'
     indata = 4.0
     testname = '{}({})'.format(key, indata)
     func = functions.find(key)
     fobj = func(indata)
     actual = fobj[:]
     expected = np.sqrt(indata)
     print_test_message(testname, input=indata,
                        actual=actual, expected=expected)
     self.assertEqual(actual, expected, '{} failed'.format(testname))
 def test_equals_same_unset(self):
     ddesc1 = DimensionDesc('x')
     ddesc2 = DimensionDesc('x')
     actual = ddesc1
     expected = ddesc2
     print_test_message('DimensionDesc(1) == DimensionDesc(2)',
                        actual=str(actual),
                        expected=str(expected))
     self.assertEqual(
         actual, expected,
         'Unset DimensionsDesc not equal to unset DimensionDesc')
Exemple #28
0
 def test_func_limit(self):
     key = 'limit'
     indata = PhysArray([2.5, 7.3, 8.2, 1.4], name='x', units='m', dimensions=('t',))
     below_val = 3.0
     above_val = 7.5
     testname = '{}({}, above={}, below={})'.format(key, indata, above_val, below_val)
     func = functions.find(key)
     actual = func(indata, above=above_val, below=below_val)[:]
     expected = PhysArray([3.0, 7.3, 7.5, 3.0], name=testname, units='m', dimensions=('t',))
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertPhysArraysEqual(actual, expected, '{} failed'.format(testname))
 def test_equals_diff_dims(self):
     vdims1 = tuple(DimensionDesc(d) for d in ('a', 'b'))
     vdims2 = tuple(DimensionDesc(d) for d in ('a', 'b', 'c'))
     actual = VariableDesc('x', dimensions=vdims1)
     expected = VariableDesc('x', dimensions=vdims2)
     print_test_message('VariableDesc(dims1) != VariableDesc(dims2)',
                        actual=str(actual),
                        expected=str(expected))
     self.assertNotEqual(
         actual, expected,
         'Differently dimensioned VariableDesc objects equal')
Exemple #30
0
 def test_func_mean_sumlike(self):
     key = 'mean'
     indata = PhysArray([1.0, 2.0, 3.0, 4.0, 5.0],
                        name='x', units='m', dimensions=('t',))
     testname = '{}({}).sumlike_dimensions'.format(key, indata)
     func = functions.find(key)
     fobj = func(indata, 't')
     fobj[None]
     actual = fobj.sumlike_dimensions
     expected = set(['t'])
     print_test_message(testname, actual=actual, expected=expected)
     self.assertEqual(actual, expected, '{} failed'.format(testname))