keewis: I think this also closes #892?
hgrecco: bors r+
bors[bot]: # Merge conflict
diff --git a/CHANGES b/CHANGES
index 3f028ea..617d9a4 100644
--- a/CHANGES
+++ b/CHANGES
@@ -5,7 +5,12 @@ Pint Changelog
 -----------------
 
 - Switched test configuration to pytest and added tests of Pint's matplotlib support.
-  (Issue #954)
+  (Issue #954, Thanks Jon Thielen)
+- Deprecate array protocol fallback except where explicitly defined (`__array__`,
+  `__array_priority__`, `__array_function__`, `__array_ufunc__`). The fallback will
+  remain until the next minor version, or if the environment variable
+  `PINT_ARRAY_PROTOCOL_FALLBACK` is set to 0.
+  (Issue #953, Thanks Jon Thielen)
 - Removed eval usage when creating UnitDefinition and PrefixDefinition from string.
   (Issue #942)
 - Added `fmt_locale` argument to registry.
diff --git a/docs/numpy.rst b/docs/numpy.rst
index c4965ee..01098c0 100644
--- a/docs/numpy.rst
+++ b/docs/numpy.rst
@@ -159,6 +159,15 @@ memory and CPU cycles. Therefore, for numerically intensive code, you
 might want to convert the objects first and then use directly the magnitude,
 such as by using Pint's `wraps` utility (see :ref:`wrapping`).
 
+Array interface protocol attributes (such as `__array_struct__` and
+`__array_interface__`) are available on Pint Quantities by deferring to the
+corresponding `__array_*` attribute on the magnitude as casted to an ndarray. This
+has been found to be potentially incorrect and to cause unexpected behavior, and has
+therefore been deprecated. As of the next minor version of Pint (or when the
+`PINT_ARRAY_PROTOCOL_FALLBACK` environment variable is set to 0 prior to importing
+Pint), attempting to access these attributes will instead raise an AttributeError.
+
+
 
 
 
diff --git a/pint/compat.py b/pint/compat.py
index 24fa769..0f68a1d 100644
--- a/pint/compat.py
+++ b/pint/compat.py
@@ -7,6 +7,7 @@
     :copyright: 2013 by Pint Authors, see AUTHORS for more details.
     :license: BSD, see LICENSE for more details.
 """
+import os
 import tokenize
 from decimal import Decimal
 from io import BytesIO
@@ -94,6 +95,8 @@ try:
 
     NP_NO_VALUE = np._NoValue
 
+    ARRAY_FALLBACK = bool(int(os.environ.get("PINT_ARRAY_PROTOCOL_FALLBACK", 1)))
+
 except ImportError:
 
     np = None
@@ -107,9 +110,12 @@ except ImportError:
     HAS_NUMPY_ARRAY_FUNCTION = False
     SKIP_ARRAY_FUNCTION_CHANGE_WARNING = True
     NP_NO_VALUE = None
+    ARRAY_FALLBACK = False
 
     def _to_magnitude(value, force_ndarray=False):
-        if isinstance(value, (dict, bool)) or value is None:
+        if force_ndarray:
+            raise ValueError("Cannot force to ndarray when NumPy is not present.")
+        elif isinstance(value, (dict, bool)) or value is None:
             raise TypeError("Invalid magnitude for Quantity: {0!r}".format(value))
         elif isinstance(value, str) and value == "":
             raise ValueError("Quantity magnitude cannot be an empty string.")
diff --git a/pint/quantity.py b/pint/quantity.py
index 02f8ec5..9f9c6de 100644
--- a/pint/quantity.py
+++ b/pint/quantity.py
@@ -22,6 +22,7 @@ from pkg_resources.extern.packaging import version
 
 from .compat import SKIP_ARRAY_FUNCTION_CHANGE_WARNING  # noqa: F401
 from .compat import (
+    ARRAY_FALLBACK,
     NUMPY_VER,
     BehaviorChangeWarning,
     _to_magnitude,
@@ -1454,6 +1455,14 @@ class Quantity(PrettyIPython, SharedRegistryObject):
         else:
             return value
 
+    def __array__(self):
+        warnings.warn(
+            "The unit of the quantity is stripped when downcasting to ndarray.",
+            UnitStrippedWarning,
+            stacklevel=2,
+        )
+        return _to_magnitude(self._magnitude, force_ndarray=True)
+
     def clip(self, first=None, second=None, out=None, **kwargs):
         minimum = kwargs.get("min", first)
         maximum = kwargs.get("max", second)
@@ -1548,23 +1557,36 @@ class Quantity(PrettyIPython, SharedRegistryObject):
         return len(self._magnitude)
 
     def __getattr__(self, item):
-        # Attributes starting with `__array_` are common attributes of NumPy ndarray.
-        # They are requested by numpy functions.
         if item.startswith("__array_"):
-            warnings.warn(
-                "The unit of the quantity is stripped when getting {} "
-                "attribute".format(item),
-                UnitStrippedWarning,
-                stacklevel=2,
-            )
-            if isinstance(self._magnitude, ndarray):
-                return getattr(self._magnitude, item)
+            # Handle array protocol attributes other than `__array__`
+            if ARRAY_FALLBACK:
+                # Deprecated fallback behavior
+                warnings.warn(
+                    (
+                        f"Array protocol attribute {item} accessed, with unit of the "
+                        "Quantity being stripped. This attribute will become unavailable "
+                        "in the next minor version of Pint. To make this potentially "
+                        "incorrect attribute unavailable now, set the "
+                        "PINT_ARRAY_PROTOCOL_FALLBACK environment variable to 0 before "
+                        "importing Pint."
+                    ),
+                    DeprecationWarning,
+                    stacklevel=2,
+                )
+
+                if isinstance(self._magnitude, ndarray):
+                    return getattr(self._magnitude, item)
+                else:
+                    # If an `__array_` attributes is requested but the magnitude is not an ndarray,
+                    # we convert the magnitude to a numpy ndarray.
+                    # TODO (#905 follow-up): Potentially problematic, investigate for duck arrays
+                    magnitude_as_array = _to_magnitude(
+                        self._magnitude, force_ndarray=True
+                    )
+                    return getattr(magnitude_as_array, item)
             else:
-                # If an `__array_` attributes is requested but the magnitude is not an ndarray,
-                # we convert the magnitude to a numpy ndarray.
-                # TODO (#905 follow-up): Potentially problematic, investigate for duck arrays
-                magnitude_as_array = _to_magnitude(self._magnitude, force_ndarray=True)
-                return getattr(magnitude_as_array, item)
+                # TODO (next minor version): ARRAY_FALLBACK is removed and this becomes the standard behavior
+                raise AttributeError(f"Array protocol attribute {item} not available.")
         elif item in HANDLED_UFUNCS or item in self._wrapped_numpy_methods:
             # TODO (#905 follow-up): Potentially problematic, investigate for duck arrays/scalars
             magnitude_as_array = _to_magnitude(self._magnitude, True)

Proper handling of `__array_*__` attributes/methods
After #905 is merged, the following NumPy array protocol attributes/methods will be explicitly handed by Pint Quantities:

- `__array_priority__`
- `__array_ufunc__`
- `__array_function__`

All others (any starting with `__array_`) are implicitly handled by

1) Warning with a `UnitStrippedWarning`
2) If magnitude is an `ndarray`, return the corresponding attribute on the magnitude
3) If the magnitude is not an `ndarray`, return the corresponding attribute on the magnitude converted to an `ndarray`.

Before #905, step 3 above was extremely problematic, since the conversion was done *in place* (see #399, #481, #509). While now it's a bit better because it should no longer mutate the Quantity, the conversion to ndarray may not respect the behavior of arbitrary duck arrays (see #845 / #878), and may return misleading values (such as may be the case with `__array_struct__` and `__array_interface__` as brought up in #905).

Being uncomfortable with this implicit handing, and seeing the issues it has caused, I would suggest that Pint Quantities instead only (explicitly) respond to:

- `__array__` (by warning with `UnitStrippedWarning` and then returning `np.asarray` called on the magnitude)
- `__array_priority__` (see suggestions in https://github.com/hgrecco/pint/pull/905#discussion_r356564550)
- `__array_ufunc__` (as done in #905)
- `__array_function__` (as done in #905)

and raise `AttributeError` for all other `__array_*__` attributes. This would bring Pint into alignment with the recommendations set by NumPy for custom array containers (see https://docs.scipy.org/doc/numpy-1.17.0/user/basics.dispatch.html) and, to the best I can tell, the example set by Dask and Sparse (and to a certain extent CuPy).

However, while it seems to be the "more correct" implementation, given that this would be removing a fallback, it would be a major breaking change with potentially unforeseen consequences. And so, I wanted to reach out for feedback before I try putting together a follow-up PR to #905 to address these issues and work towards resolving #845 / #878.

If this is an acceptable change, would it make sense to include a deprecation cycle, by leaving in the `__array_*__` fallback with a `DeprecationWarning` for Pint v0.10, and then changing to `AttributeError` in v0.11? Or is there a consensus to leave the current behavior in place and try working around the issues that arise?

---

For reference, for the three duck array packages pointed to in [NEP 30](https://numpy.org/neps/nep-0030-duck-array-protocol.html) (Dask, CuPy, and Sparse), here is a brief summary of their behavior with these attributes from what I could scour from their source code (no guarantee on correctness though, as I haven't worked with any of their internals):

**Dask** and **Sparse**

- Explicitly defines
  - `__array__`
  - `__array_priority__`
  - `__array_ufunc__`
  - `__array_function__`
- Does not respond to others

**CuPy**

- Explicitly defines
  - `__array__`
  - `__array_priority__`
  - `__array_ufunc__`
  - `__array_function__`
- `__array_wrap__`, `__array_interface__` listed as TODO in comments
- Has an experimental "fallback mode" in which it would seem to defer to the attribute on the corresponding `ndarray` (see https://github.com/cupy/cupy/blob/1928c3b22c972647ecf2242ddced62015407593f/cupyx/fallback_mode/fallback.py)
- Otherwise does not respond to others
setting warnings to errors changes the behaviour of `np.asarray` on quantities
Using `warnings.filterwarnings` to promote warnings to errors changes the behaviour of `np.asarray` (or rather `np.array` as `np.asarray` delegates to that):
```python
>>> array = np.arange(10) * ureg.m
>>> np.asarray(array)  # warning emitted because units were stripped
[0 1 2 3 4 5 6 7 8 9]
>>> warnings.filterwarnings("error")
>>> np.asarray(array)  # warning should have become an error, but completely disappeared
array([<Quantity(0, 'meter')>, <Quantity(1, 'meter')>,
       <Quantity(2, 'meter')>, <Quantity(3, 'meter')>,
       <Quantity(4, 'meter')>, <Quantity(5, 'meter')>,
       <Quantity(6, 'meter')>, <Quantity(7, 'meter')>,
       <Quantity(8, 'meter')>, <Quantity(9, 'meter')>], dtype=object)
```

This happens with pint `0.9`, but also with the version from #764 (because `__array_function__` does not allow overloading `np.asarray`)

Edit: I do think this is an issue within numpy, but I think it might help to also track this here. Possibly related: numpy/numpy#9761
diff --git a/pint/testsuite/test_numpy.py b/pint/testsuite/test_numpy.py
index b1871f9..c3a17c0 100644
--- a/pint/testsuite/test_numpy.py
+++ b/pint/testsuite/test_numpy.py
@@ -1,8 +1,9 @@
 import copy
 import operator as op
 import unittest
+from unittest.mock import patch
 
-from pint import DimensionalityError, OffsetUnitCalculusError
+from pint import DimensionalityError, OffsetUnitCalculusError, UnitStrippedWarning
 from pint.compat import np
 from pint.testsuite import QuantityTestCase, helpers
 from pint.testsuite.test_umath import TestUFuncs
@@ -1004,6 +1005,26 @@ class TestNumpyUnclassified(TestNumpyMethods):
             np.array([[1, 0, 2], [3, 0, 4]]) * self.ureg.m,
         )
 
+    @patch("pint.quantity.ARRAY_FALLBACK", False)
+    def test_ndarray_downcast(self):
+        with self.assertWarns(UnitStrippedWarning):
+            np.asarray(self.q)
+
+    def test_array_protocol_fallback(self):
+        with self.assertWarns(DeprecationWarning) as cm:
+            for attr in ("__array_struct__", "__array_interface__"):
+                getattr(self.q, attr)
+                warning_text = str(cm.warnings[0].message)
+                self.assertTrue(
+                    f"unit of the Quantity being stripped" in warning_text
+                    and "will become unavailable" in warning_text
+                )
+
+    @patch("pint.quantity.ARRAY_FALLBACK", False)
+    def test_array_protocol_unavailable(self):
+        for attr in ("__array_struct__", "__array_interface__"):
+            self.assertRaises(AttributeError, getattr, self.q, attr)
+
 
 @unittest.skip
 class TestBitTwiddlingUfuncs(TestUFuncs):
diff --git a/pint/testsuite/test_quantity.py b/pint/testsuite/test_quantity.py
index 9f02eac..eecb39e 100644
--- a/pint/testsuite/test_quantity.py
+++ b/pint/testsuite/test_quantity.py
@@ -532,6 +532,10 @@ class TestQuantity(QuantityTestCase):
             warnings.filterwarnings("error")
             self.Q_([])
 
+    @helpers.requires_not_numpy()
+    def test_no_ndarray_coercion_without_numpy(self):
+        self.assertRaises(ValueError, self.Q_(1, "m").__array__)
+
 
 class TestQuantityToCompact(QuantityTestCase):
     def assertQuantityAlmostIdentical(self, q1, q2):

pip install -e .[test]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-mpl
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
certifi @ file:///croot/certifi_1671487769961/work/certifi
coverage==7.2.7
cycler==0.11.0
exceptiongroup==1.2.2
fonttools==4.38.0
importlib-metadata==6.7.0
importlib-resources==5.12.0
iniconfig==2.0.0
Jinja2==3.1.6
kiwisolver==1.4.5
MarkupSafe==2.1.5
matplotlib==3.5.3
numpy==1.21.6
packaging==24.0
Pillow==9.5.0
-e git+https://github.com/hgrecco/pint.git@92fc293ed7754952b4f4d2a55b0e56d86bbe95cc#egg=Pint
pluggy==1.2.0
pyparsing==3.1.4
pytest==7.4.4
pytest-cov==4.1.0
pytest-mpl==0.17.0
python-dateutil==2.9.0.post0
six==1.17.0
tomli==2.0.1
typing_extensions==4.7.1
zipp==3.15.0

name: pint
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - coverage==7.2.7
      - cycler==0.11.0
      - exceptiongroup==1.2.2
      - fonttools==4.38.0
      - importlib-metadata==6.7.0
      - importlib-resources==5.12.0
      - iniconfig==2.0.0
      - jinja2==3.1.6
      - kiwisolver==1.4.5
      - markupsafe==2.1.5
      - matplotlib==3.5.3
      - numpy==1.21.6
      - packaging==24.0
      - pillow==9.5.0
      - pluggy==1.2.0
      - pyparsing==3.1.4
      - pytest==7.4.4
      - pytest-cov==4.1.0
      - pytest-mpl==0.17.0
      - python-dateutil==2.9.0.post0
      - six==1.17.0
      - tomli==2.0.1
      - typing-extensions==4.7.1
      - zipp==3.15.0
prefix: /opt/conda/envs/pint

pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_array_protocol_fallback pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_array_protocol_unavailable pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_ndarray_downcast
pint/testsuite/test_numpy.py::TestNumpyArrayCreation::test_empty_like pint/testsuite/test_numpy.py::TestNumpyArrayCreation::test_full_like pint/testsuite/test_numpy.py::TestNumpyArrayCreation::test_ones_like pint/testsuite/test_numpy.py::TestNumpyArrayCreation::test_zeros_like pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_append pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_astype pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_atleast_1d pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_atleast_2d pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_atleast_3d pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_block pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_broadcast_to pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_column_stack pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_concatentate pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_dstack pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_expand_dims pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_flat pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_flatten pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_flip_numpy_func pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_hstack pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_item pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_moveaxis pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_ravel pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_ravel_numpy_func pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_reshape pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_rollaxis pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_squeeze pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_stack pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_swapaxes pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_transpose pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_transpose_numpy_func pint/testsuite/test_numpy.py::TestNumpyArrayManipulation::test_vstack pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_addition_with_incompatible_scalar pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_addition_with_scalar pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_cross pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_cumprod pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_cumprod_numpy_func pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_diff pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_dot pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_dot_numpy_func pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_ediff1d pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_einsum pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_fix pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_gradient pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_nancumprod_numpy_func pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_nansum_numpy_func pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_power pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_prod pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_sum pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_sum_numpy_func pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_trapz pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_unwrap pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_alen_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_argmax pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_argmax_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_argmin pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_argmin_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_argsort pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_argsort_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_average_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_clip pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_clip_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_comparisons pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_compress pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_compress_nep18 pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_conj pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_copy_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_copyto pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_count_nonzero_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_cumprod pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_cumsum pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_cumsum_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_diagonal pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_diagonal_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_equal pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_fabs pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_fill pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_getitem pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_insert pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_interp_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_isclose_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_isin pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_iterable pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_iterator pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_max pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_max_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_max_with_axis_arg pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_max_with_initial_arg pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_maximum pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_mean pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_mean_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_median_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_meshgrid_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_min pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_min_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_min_with_axis_arg pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_min_with_initial_arg pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_minimum pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_nan_to_num_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_nanargmax_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_nanargmin_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_nancumsum_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_nanmax pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_nanmean_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_nanmedian_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_nanmin pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_nanpercentile pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_nanstd_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_nanvar_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_ndim_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_nonzero pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_nonzero_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_percentile pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_pickle pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_prod pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_ptp pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_ptp_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_put pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_repeat pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_result_type_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_reversible_op pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_rot90 pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_round pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_round_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_searchsorted pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_searchsorted_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_setitem pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_shape pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_shape_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_sort pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_sort_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_std pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_std_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_take pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_tile pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_tolist pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_trace pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_trim_zeros_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_var pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_var_numpy_func pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_where pint/testsuite/test_quantity.py::TestQuantity::test_array_function_warning_on_creation pint/testsuite/test_quantity.py::TestQuantity::test_both_symbol pint/testsuite/test_quantity.py::TestQuantity::test_context_attr pint/testsuite/test_quantity.py::TestQuantity::test_convert pint/testsuite/test_quantity.py::TestQuantity::test_convert_from pint/testsuite/test_quantity.py::TestQuantity::test_convert_numpy pint/testsuite/test_quantity.py::TestQuantity::test_default_formatting pint/testsuite/test_quantity.py::TestQuantity::test_dimensionless_units pint/testsuite/test_quantity.py::TestQuantity::test_exponent_formatting pint/testsuite/test_quantity.py::TestQuantity::test_format_compact pint/testsuite/test_quantity.py::TestQuantity::test_from_sequence pint/testsuite/test_quantity.py::TestQuantity::test_ipython pint/testsuite/test_quantity.py::TestQuantity::test_iter pint/testsuite/test_quantity.py::TestQuantity::test_notiter pint/testsuite/test_quantity.py::TestQuantity::test_offset pint/testsuite/test_quantity.py::TestQuantity::test_offset_delta pint/testsuite/test_quantity.py::TestQuantity::test_pickle pint/testsuite/test_quantity.py::TestQuantity::test_quantity_array_format pint/testsuite/test_quantity.py::TestQuantity::test_quantity_bool pint/testsuite/test_quantity.py::TestQuantity::test_quantity_comparison pint/testsuite/test_quantity.py::TestQuantity::test_quantity_comparison_convert pint/testsuite/test_quantity.py::TestQuantity::test_quantity_creation pint/testsuite/test_quantity.py::TestQuantity::test_quantity_format pint/testsuite/test_quantity.py::TestQuantity::test_quantity_hash pint/testsuite/test_quantity.py::TestQuantity::test_quantity_repr pint/testsuite/test_quantity.py::TestQuantity::test_retain_unit pint/testsuite/test_quantity.py::TestQuantity::test_to_base_units pint/testsuite/test_quantity.py::TestQuantityToCompact::test_derived_units pint/testsuite/test_quantity.py::TestQuantityToCompact::test_dimensionally_simple_units pint/testsuite/test_quantity.py::TestQuantityToCompact::test_fractional_exponent_units pint/testsuite/test_quantity.py::TestQuantityToCompact::test_fractional_units pint/testsuite/test_quantity.py::TestQuantityToCompact::test_inverse_square_units pint/testsuite/test_quantity.py::TestQuantityToCompact::test_inverse_units pint/testsuite/test_quantity.py::TestQuantityToCompact::test_limits_magnitudes pint/testsuite/test_quantity.py::TestQuantityToCompact::test_nonnumeric_magnitudes pint/testsuite/test_quantity.py::TestQuantityToCompact::test_power_units pint/testsuite/test_quantity.py::TestQuantityToCompact::test_unit_parameter pint/testsuite/test_quantity.py::TestQuantityBasicMath::test_float pint/testsuite/test_quantity.py::TestQuantityBasicMath::test_fraction pint/testsuite/test_quantity.py::TestQuantityBasicMath::test_nparray pint/testsuite/test_quantity.py::TestQuantityBasicMath::test_quantity_abs_round pint/testsuite/test_quantity.py::TestQuantityBasicMath::test_quantity_float_complex pint/testsuite/test_quantity.py::TestDimensions::test_dimensionality pint/testsuite/test_quantity.py::TestDimensions::test_get_dimensionality pint/testsuite/test_quantity.py::TestDimensions::test_inclusion pint/testsuite/test_quantity.py::TestQuantityWithDefaultRegistry::test_dimensionality pint/testsuite/test_quantity.py::TestQuantityWithDefaultRegistry::test_get_dimensionality pint/testsuite/test_quantity.py::TestQuantityWithDefaultRegistry::test_inclusion pint/testsuite/test_quantity.py::TestDimensionsWithDefaultRegistry::test_dimensionality pint/testsuite/test_quantity.py::TestDimensionsWithDefaultRegistry::test_get_dimensionality pint/testsuite/test_quantity.py::TestDimensionsWithDefaultRegistry::test_inclusion pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00001 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00002 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00003 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00004 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00005 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00006 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00007 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00008 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00009 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00010 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00011 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00012 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00013 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00014 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00015 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00016 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00017 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00018 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00019 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00020 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00021 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00022 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00023 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00024 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00025 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00026 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00027 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00028 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00029 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00030 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00031 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00032 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00033 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00034 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00035 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_addition_00036 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_division_with_scalar_00001 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_division_with_scalar_00002 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_division_with_scalar_00003 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_division_with_scalar_00004 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_division_with_scalar_00005 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_division_with_scalar_00006 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_division_with_scalar_00007 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_division_with_scalar_00008 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_division_with_scalar_00009 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_exponentiation_00001 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_exponentiation_00002 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_exponentiation_00003 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_exponentiation_00004 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_exponentiation_00005 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_exponentiation_00006 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_exponentiation_00007 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_exponentiation_00008 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_exponentiation_00009 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_exponentiation_00010 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_exponentiation_00011 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_exponentiation_00012 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_exponentiation_00013 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00001 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00002 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00003 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00004 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00005 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00006 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00007 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00008 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00009 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00010 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00011 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00012 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00013 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00014 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00015 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00016 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00017 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00018 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00019 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00020 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00021 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00022 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00023 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00024 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00025 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00026 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00027 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00028 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00029 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00030 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00031 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00032 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00033 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00034 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00035 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_addition_00036 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_exponentiation_00001 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_exponentiation_00002 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_exponentiation_00003 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_exponentiation_00004 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_exponentiation_00005 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_exponentiation_00006 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_exponentiation_00007 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_exponentiation_00008 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_exponentiation_00009 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_exponentiation_00010 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_exponentiation_00011 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_exponentiation_00012 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_exponentiation_00013 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00001 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00002 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00003 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00004 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00005 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00006 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00007 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00008 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00009 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00010 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00011 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00012 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00013 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00014 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00015 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00016 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00017 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00018 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00019 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00020 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00021 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00022 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00023 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00024 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00025 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00026 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00027 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00028 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00029 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00030 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00031 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00032 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00033 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00034 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00035 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_00036 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00001 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00002 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00003 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00004 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00005 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00006 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00007 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00008 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00009 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00010 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00011 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00012 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00013 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00014 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00015 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00016 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00017 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00018 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00019 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_multiplication_with_autoconvert_00020 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00001 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00002 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00003 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00004 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00005 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00006 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00007 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00008 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00009 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00010 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00011 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00012 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00013 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00014 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00015 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00016 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00017 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00018 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00019 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00020 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00021 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00022 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00023 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00024 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00025 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00026 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00027 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00028 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00029 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00030 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00031 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00032 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00033 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00034 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00035 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_subtraction_00036 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00001 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00002 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00003 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00004 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00005 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00006 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00007 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00008 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00009 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00010 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00011 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00012 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00013 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00014 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00015 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00016 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00017 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00018 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00019 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00020 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00021 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00022 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00023 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00024 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00025 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00026 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00027 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00028 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00029 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00030 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00031 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00032 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00033 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00034 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00035 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_inplace_truedivision_00036 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_matmul_with_numpy pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00001 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00002 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00003 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00004 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00005 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00006 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00007 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00008 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00009 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00010 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00011 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00012 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00013 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00014 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00015 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00016 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00017 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00018 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00019 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00020 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00021 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00022 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00023 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00024 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00025 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00026 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00027 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00028 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00029 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00030 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00031 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00032 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00033 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00034 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00035 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_00036 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00001 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00002 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00003 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00004 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00005 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00006 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00007 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00008 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00009 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00010 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00011 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00012 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00013 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00014 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00015 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00016 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00017 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00018 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00019 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_autoconvert_00020 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_scalar_00001 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_scalar_00002 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_scalar_00003 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_scalar_00004 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_scalar_00005 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_scalar_00006 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_multiplication_with_scalar_00007 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00001 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00002 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00003 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00004 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00005 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00006 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00007 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00008 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00009 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00010 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00011 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00012 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00013 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00014 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00015 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00016 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00017 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00018 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00019 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00020 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00021 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00022 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00023 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00024 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00025 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00026 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00027 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00028 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00029 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00030 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00031 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00032 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00033 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00034 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00035 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_subtraction_00036 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00001 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00002 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00003 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00004 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00005 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00006 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00007 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00008 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00009 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00010 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00011 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00012 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00013 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00014 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00015 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00016 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00017 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00018 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00019 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00020 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00021 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00022 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00023 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00024 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00025 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00026 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00027 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00028 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00029 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00030 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00031 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00032 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00033 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00034 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00035 pint/testsuite/test_quantity.py::TestOffsetUnitMath::test_truedivision_00036 pint/testsuite/test_quantity.py::TestDimensionReduction::test_imul_and_div_reduction pint/testsuite/test_quantity.py::TestDimensionReduction::test_mul_and_div_reduction pint/testsuite/test_quantity.py::TestDimensionReduction::test_nocoerce_creation pint/testsuite/test_quantity.py::TestDimensionReduction::test_reduction_to_dimensionless pint/testsuite/test_quantity.py::TestTimedelta::test_add_sub pint/testsuite/test_quantity.py::TestTimedelta::test_iadd_isub pint/testsuite/test_quantity.py::TestCompareZero::test_equal_zero pint/testsuite/test_quantity.py::TestCompareZero::test_equal_zero_NP pint/testsuite/test_quantity.py::TestCompareZero::test_gt_zero pint/testsuite/test_quantity.py::TestCompareZero::test_gt_zero_NP pint/testsuite/test_quantity.py::TestCompareZero::test_offset_autoconvert_equal_zero pint/testsuite/test_quantity.py::TestCompareZero::test_offset_autoconvert_gt_zero pint/testsuite/test_quantity.py::TestCompareZero::test_offset_equal_zero pint/testsuite/test_quantity.py::TestCompareZero::test_offset_gt_zero
pint/quantity.py CHANGES pint/compat.py docs/numpy.rst
pint/quantity.py CHANGES pint/compat.py docs/numpy.rst