Skip to content

Commit

Permalink
undelete positive
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewgsavage committed Jun 23, 2023
1 parent fdcfbd9 commit beba095
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 12 deletions.
2 changes: 1 addition & 1 deletion CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Pint Changelog
-----------------

- Documented to_preferred and created added an autoautoconvert_to_preferred registry option.
(PR #1803)
(PR #1803)
- Fixed bug causing operations between arrays of quantity scalars and quantity holding
array resulting in incorrect units.
(PR #1677)
Expand Down
15 changes: 11 additions & 4 deletions pint/facets/numpy/numpy_func.py
Original file line number Diff line number Diff line change
Expand Up @@ -284,11 +284,17 @@ def implement_func(func_type, func_str, input_units=None, output_unit=None):

@implements(func_str, func_type)
def implementation(*args, **kwargs):
if (func_str in ["multiply", "true_divide", "divide", "floor_divide"] and
any([_is_sequence_with_quantity_elements(arg) and not _is_quantity(arg) for arg in args])):
if func_str in ["multiply", "true_divide", "divide", "floor_divide"] and any(
[
_is_sequence_with_quantity_elements(arg) and not _is_quantity(arg)
for arg in args
]
):
# the sequence may contain different units, so fall back to element-wise
print(func_str,args, kwargs)
return np.array([func(args[0][i],args[1][i]) for i in range(len(args[0]))],dtype=object)
return np.array(
[func(args[0][i], args[1][i]) for i in range(len(args[0]))],
dtype=object,
)

first_input_units = _get_first_input_units(args, kwargs)
if input_units == "all_consistent":
Expand Down Expand Up @@ -427,6 +433,7 @@ def implementation(*args, **kwargs):
"nextafter",
"trunc",
"absolute",
"positive",
"negative",
"maximum",
"minimum",
Expand Down
15 changes: 8 additions & 7 deletions pint/testsuite/test_issues.py
Original file line number Diff line number Diff line change
Expand Up @@ -887,18 +887,19 @@ def test_issue1674(self, module_registry):
arr_of_q = np.array([Q_(2, "m"), Q_(4, "m")], dtype="object")
q_arr = Q_(np.array([1, 2]), "m")

helpers.assert_quantity_equal(arr_of_q * q_arr, np.array([Q_(2, "m^2"), Q_(8, "m^2")], dtype="object"))
helpers.assert_quantity_equal(arr_of_q / q_arr, np.array([Q_(2, ""), Q_(2, "")], dtype="object"))
helpers.assert_quantity_equal(
arr_of_q * q_arr, np.array([Q_(2, "m^2"), Q_(8, "m^2")], dtype="object")
)
helpers.assert_quantity_equal(
arr_of_q / q_arr, np.array([Q_(2, ""), Q_(2, "")], dtype="object")
)


arr_of_q = np.array([Q_(2, "m"), Q_(4, "s")], dtype="object")
q_arr = Q_(np.array([1, 2]), "m")

helpers.assert_quantity_equal(
arr_of_q * q_arr,
np.array([Q_(2, "m^2"), Q_(8, "m s")], dtype="object")
)

arr_of_q * q_arr, np.array([Q_(2, "m^2"), Q_(8, "m s")], dtype="object")
)


if np is not None:
Expand Down

0 comments on commit beba095

Please sign in to comment.