def test_wrapped_with_input_units(self): """ Does wrapped function with inputs behave like non-wrapped function? """ def func(value): return value decorater = has_units(inputs="value: a value: units=m/s;") func_wrapped = decorater(func) self.assertEqual(func(1), func_wrapped(1))
def test_wrapped_behaves_like_unwrapped(self): """ Does wrapped function behave like non-wrapped function. """ def func(value): return value decorater = has_units() func_wrapped = decorater(func) self.assertEqual(func(1),func_wrapped(1))
def test_wrapped_behaves_like_unwrapped(self): """ Does wrapped function behave like non-wrapped function. """ def func(value): return value decorater = has_units() func_wrapped = decorater(func) self.assertEqual(func(1), func_wrapped(1))
def test_wrapped_with_input_units(self): """ Does wrapped function with inputs behave like non-wrapped function? """ def func(value): return value decorater = has_units(inputs="value: a value: units=m/s;") func_wrapped = decorater(func) self.assertEqual(func(1),func_wrapped(1))
def test_wrapped_with_output_units(self): """ Does wrapped function with outputs behave like non-wrapped function? """ def func(value): return value decorater = has_units(outputs="value: a value: units=m/s;") func_wrapped = decorater(func) arg = array((1, 2, 3)) std = func(arg) actual = func_wrapped(arg) self.assertEqual(std, actual)
def test_wrapped_with_output_units(self): """ Does wrapped function with outputs behave like non-wrapped function? """ def func(value): return value decorater = has_units(outputs="value: a value: units=m/s;") func_wrapped = decorater(func) arg = array((1,2,3)) std = func(arg) actual = func_wrapped(arg) self.assertEqual(std,actual)
def test_wrapped_with_two_output_units(self): """ Are two outputs handled correctly? """ def func(v1, v2): return v1, v2 decorater = has_units(outputs="""v1: a value: units=m/s; v2: another value: units=ft/s; """) func_wrapped = decorater(func) arg = array((1, 2, 3)) std_v1, std_v2 = func(arg, arg + 1) actual_v1, actual_v2 = func_wrapped(arg, arg + 1) self.assertEqual(std_v1, actual_v1) self.assertEqual(std_v2, actual_v2)
def test_wrapped_with_two_output_units(self): """ Are two outputs handled correctly? """ def func(v1, v2): return v1, v2 decorater = has_units(outputs="""v1: a value: units=m/s; v2: another value: units=ft/s; """) func_wrapped = decorater(func) arg = array((1,2,3)) std_v1, std_v2 = func(arg, arg+1) actual_v1, actual_v2 = func_wrapped(arg, arg+1) self.assertEqual(std_v1, actual_v1) self.assertEqual(std_v2, actual_v2)
x : scalar : units=m X y : scalar : units=s Y Returns ------- z : scalar : units=m/s """ assert not isinstance(x, (UnitArray, UnitScalar)) assert not isinstance(y, (UnitArray, UnitScalar)) z = x / y return z foo_with_units = has_units(foo) def bar(x, y): """ Bar Parameters ---------- x : scalar : units=m X y : scalar : units=s Y Returns ------- z : scalar : units=m
---------- x : scalar : units=m X y : scalar : units=s Y Returns ------- z : scalar : units=m/s """ assert not isinstance(x, (UnitArray, UnitScalar)) assert not isinstance(y, (UnitArray, UnitScalar)) z = x / y return z foo_with_units = has_units(foo) def bar(x, y): """ Bar Parameters ---------- x : scalar : units=m X y : scalar : units=s Y Returns ------- z : scalar : units=m """