示例#1
0
 def test_func_chunits_refdate_calendar(self):
     key = 'chunits'
     indata = PhysArray(2.5,
                        name='t',
                        units=Unit('days since 1850-01-01',
                                   calendar='noleap'))
     new_ref = '0001-01-01'
     new_cal = 'gregorian'
     testname = '{}({}, refdate={}, calendar={})'.format(
         key, indata, new_ref, new_cal)
     func = functions.find(key)
     actual = func(indata, refdate=new_ref, calendar=new_cal)[:]
     expected = PhysArray(2.5,
                          name='chunits(t, units=days since {}|{})'.format(
                              new_ref, new_cal),
                          units=Unit('days since {}'.format(new_ref),
                                     calendar=new_cal))
     print_test_message(testname,
                        indata=indata,
                        actual=actual,
                        expected=expected)
     np.testing.assert_array_equal(actual, expected,
                                   '{} failed - data'.format(testname))
     self.assertEqual(actual.name, expected.name,
                      '{} failed - name'.format(testname))
     self.assertEqual(actual.units, expected.units,
                      '{} failed - units'.format(testname))
示例#2
0
 def test_func_chunits_refdate_calendar(self):
     key = "chunits"
     indata = PhysArray(
         2.5, name="t", units=Unit("days since 1850-01-01", calendar="365_day")
     )
     new_ref = "0001-01-01"
     new_cal = "gregorian"
     testname = "{}({}, refdate={}, calendar={})".format(
         key, indata, new_ref, new_cal
     )
     func = functions.find(key)
     actual = func(indata, refdate=new_ref, calendar=new_cal)[:]
     expected = PhysArray(
         2.5,
         name="chunits(t, units=days since {}|{})".format(new_ref, new_cal),
         units=Unit("days since {}".format(new_ref), calendar=new_cal),
     )
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     np.testing.assert_array_equal(
         actual, expected, "{} failed - data".format(testname)
     )
     self.assertEqual(
         actual.name, expected.name, "{} failed - name".format(testname)
     )
     self.assertEqual(
         actual.units, expected.units, "{} failed - units".format(testname)
     )
示例#3
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)
     np.testing.assert_array_equal(actual, expected,
                                   '{} failed - data'.format(testname))
     self.assertEqual(actual.name, expected.name,
                      '{} failed - name'.format(testname))
     self.assertEqual(actual.units, expected.units,
                      '{} failed - units'.format(testname))
示例#4
0
 def test_sqrt(self):
     key = 'sqrt'
     testname = 'find({!r})'.format(key)
     actual = functions.find(key)
     expected = functions.SquareRootFunction
     print_test_message(testname, key=key, actual=actual, expected=expected)
     self.assertEqual(actual, expected, '{} failed'.format(testname))
示例#5
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)
     np.testing.assert_array_equal(actual, expected,
                                   '{} failed - data'.format(testname))
     self.assertEqual(actual.name, expected.name,
                      '{} failed - name'.format(testname))
     self.assertEqual(actual.units, expected.units,
                      '{} failed - units'.format(testname))
示例#6
0
 def test_mul(self):
     key = '*'
     testname = 'find({!r})'.format(key)
     actual = functions.find(key)
     expected = functions.MultiplicationOperator
     print_test_message(testname, key=key, actual=actual, expected=expected)
     self.assertEqual(actual, expected, '{} failed'.format(testname))
示例#7
0
 def test_func_sqrt_sumlike(self):
     key = 'sqrt'
     testname = '{}.sumlike_dimensions'.format(key)
     func = functions.find(key)
     actual = func(2.0).sumlike_dimensions
     expected = set()
     print_test_message(testname, actual=actual, expected=expected)
     self.assertEqual(actual, expected, '{} failed'.format(testname))
示例#8
0
 def test_func_rmunits(self):
     key = "rmunits"
     indata = PhysArray(2.5, name="x", units="m")
     testname = "{}({})".format(key, indata)
     func = functions.find(key)
     actual = func(indata)[:]
     expected = PhysArray(2.5, name="rmunits(x)")
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertPhysArraysEqual(actual, expected, "{} failed".format(testname))
示例#9
0
 def test_func_sqrt_physarray(self):
     key = "sqrt"
     indata = PhysArray([9.0, 16.0, 4.0], name="x", units="m^2")
     testname = "{}({})".format(key, indata)
     func = functions.find(key)
     actual = func(indata)[:]
     expected = PhysArray([3.0, 4.0, 2.0], name="sqrt(x)", units="m")
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertPhysArraysEqual(actual, expected, "{} failed".format(testname))
示例#10
0
 def test_func_sqrt_int(self):
     key = "sqrt"
     indata = 4
     testname = "{}({})".format(key, indata)
     func = functions.find(key)
     actual = func(indata)[:]
     expected = np.sqrt(indata)
     print_test_message(testname, input=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, "{} failed".format(testname))
示例#11
0
 def test_op_neg_float(self):
     key = "-"
     indata = 3.1
     testname = "({}{})".format(key, indata)
     func = functions.find(key, 1)
     actual = func(indata)[:]
     expected = op.neg(indata)
     print_test_message(testname, input=indata, actual=actual, expected=expected)
     self.assertEqual(actual, expected, "{} failed".format(testname))
示例#12
0
 def test_func_rmunits(self):
     key = 'rmunits'
     indata = PhysArray(2.5, name='x', units='m')
     testname = '{}({})'.format(key, indata)
     func = functions.find(key)
     actual = func(indata)[:]
     expected = PhysArray(2.5, name='rmunits(x)')
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertPhysArraysEqual(actual, expected, '{} failed'.format(testname))
示例#13
0
 def test_func_sqrt_physarray(self):
     key = 'sqrt'
     indata = PhysArray([9.0, 16.0, 4.0], name='x', units='m^2')
     testname = '{}({})'.format(key, indata)
     func = functions.find(key)
     actual = func(indata)[:]
     expected = PhysArray([3.0, 4.0, 2.0], name='sqrt(x)', units='m')
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertPhysArraysEqual(actual, expected, '{} failed'.format(testname))
示例#14
0
 def test_op_neg_physarray(self):
     key = "-"
     indata = PhysArray(3, units="m")
     testname = "({}{})".format(key, indata)
     funcref = functions.find(key, 1)
     func = funcref(indata)
     actual = func[:]
     expected = PhysArray(-3, name="3", units="m")
     print_test_message(testname, input=indata, actual=actual, expected=expected)
     np.testing.assert_array_equal(actual, expected, "{} failed".format(testname))
示例#15
0
 def test_func_chdims_long(self):
     key = 'chdims'
     indata = PhysArray([[1, 2], [3, 4]], name='x', dimensions=('a', 'b'))
     inargs = ['A', 'B', 'C']
     testname = "{}({}, 'A', 'B', 'C)".format(key, indata)
     func = functions.find(key)
     actual = func(indata, *inargs)[:]
     expected = PhysArray([[1, 2], [3, 4]], name="chdims(x, 'A', 'B', 'C')", dimensions=('A', 'B'))
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertPhysArraysEqual(actual, expected, '{} failed'.format(testname))
示例#16
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))
示例#17
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))
示例#18
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))
示例#19
0
 def test_op_add_float(self):
     key = '+'
     left = 2.4
     right = 3.2
     testname = '({} {} {})'.format(left, key, right)
     funcref = functions.find(key, 2)
     func = funcref(left, right)
     actual = func[:]
     expected = 5.6
     print_test_message(testname, actual=actual,
                        expected=expected, left=left, right=right)
     self.assertEqual(actual, expected, '{} failed'.format(testname))
示例#20
0
 def test_op_neg_physarray(self):
     key = '-'
     indata = PhysArray(3, units='m')
     testname = '({}{})'.format(key, indata)
     funcref = functions.find(key, 1)
     func = funcref(indata)
     actual = func[:]
     expected = PhysArray(-3, name='3', units='m')
     print_test_message(testname, input=indata,
                        actual=actual, expected=expected)
     np.testing.assert_array_equal(
         actual, expected, '{} failed'.format(testname))
示例#21
0
 def test_op_pow_int(self):
     key = "**"
     left = 7
     right = 3
     testname = "({} {} {})".format(left, key, right)
     func = functions.find(key, 2)
     actual = func(left, right)[:]
     expected = 7 ** 3
     print_test_message(
         testname, actual=actual, expected=expected, left=left, right=right
     )
     self.assertEqual(actual, expected, "{} failed".format(testname))
示例#22
0
 def test_op_div_int(self):
     key = '/'
     left = 7
     right = 3
     testname = '({} {} {})'.format(left, key, right)
     funcref = functions.find(key, 2)
     func = funcref(left, right)
     actual = func[:]
     expected = 2
     print_test_message(testname, actual=actual,
                        expected=expected, left=left, right=right)
     self.assertEqual(actual, expected, '{} failed'.format(testname))
示例#23
0
 def test_func_chdims_long(self):
     key = "chdims"
     indata = PhysArray([[1, 2], [3, 4]], name="x", dimensions=("a", "b"))
     inargs = ["A", "B", "C"]
     testname = "{}({}, 'A', 'B', 'C)".format(key, indata)
     func = functions.find(key)
     actual = func(indata, *inargs)[:]
     expected = PhysArray(
         [[1, 2], [3, 4]], name="chdims(x, 'A', 'B', 'C')", dimensions=("A", "B")
     )
     print_test_message(testname, indata=indata, actual=actual, expected=expected)
     self.assertPhysArraysEqual(actual, expected, "{} failed".format(testname))
示例#24
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))
示例#25
0
 def test_op_div_float(self):
     key = "/"
     left = 2.4
     right = 3.2
     testname = "({} {} {})".format(left, key, right)
     funcref = functions.find(key, 2)
     func = funcref(left, right)
     actual = func[:]
     expected = 2.4 / 3.2
     print_test_message(
         testname, actual=actual, expected=expected, left=left, right=right
     )
     self.assertEqual(actual, expected, "{} failed".format(testname))
示例#26
0
 def test_op_sub_int(self):
     key = "-"
     left = 2
     right = 3
     testname = "({} {} {})".format(left, key, right)
     funcref = functions.find(key, 2)
     func = funcref(left, right)
     actual = func[:]
     expected = -1
     print_test_message(
         testname, actual=actual, expected=expected, left=left, right=right
     )
     self.assertEqual(actual, expected, "{} failed".format(testname))
示例#27
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))
示例#28
0
 def test_func_down_physarray_up(self):
     key = 'down'
     indata = PhysArray(2.5, name='x', positive='up')
     testname = '{}({})'.format(key, indata)
     func = functions.find(key)
     actual = func(indata)[:]
     expected = PhysArray(-2.5, name='down(x)', positive='down')
     print_test_message(testname, indata=indata,
                        actual=actual, expected=expected)
     np.testing.assert_array_equal(
         actual, expected, '{} failed - data'.format(testname))
     self.assertEqual(actual.name, expected.name,
                      '{} failed - name'.format(testname))
     self.assertEqual(actual.positive, expected.positive,
                      '{} failed - positive'.format(testname))
示例#29
0
 def test_op_mul_physarray(self):
     key = '*'
     x = PhysArray(1.5, name='x', units='m')
     y = PhysArray(7.9, name='y', units='km')
     testname = '({} {} {})'.format(x, key, y)
     func = functions.find(key, 2)
     actual = func(x, y)[:]
     expected = PhysArray(1.5 * 7.9, name='(x*y)', units='m-km')
     print_test_message(testname, actual=actual,
                        expected=expected, x=x, y=y)
     self.assertEqual(actual, expected, '{} failed - data'.format(testname))
     self.assertEqual(actual.name, expected.name,
                      '{} failed - name'.format(testname))
     self.assertEqual(actual.units, expected.units,
                      '{} failed - units'.format(testname))
示例#30
0
 def test_op_pow_physarray(self):
     key = '**'
     x = PhysArray(4.3, name='x', units='m')
     y = PhysArray(2, name='y')
     testname = '({} {} {})'.format(x, key, y)
     func = functions.find(key, 2)
     actual = func(x, y)[:]
     expected = PhysArray(4.3 ** 2, name='(x**y)', units=Unit('m') ** 2)
     print_test_message(testname, actual=actual,
                        expected=expected, x=x, y=y)
     self.assertEqual(actual, expected, '{} failed - data'.format(testname))
     self.assertEqual(actual.name, expected.name,
                      '{} failed - name'.format(testname))
     self.assertEqual(actual.units, expected.units,
                      '{} failed - units'.format(testname))