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))
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) )
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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_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_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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))