Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.24: pytest fails in 4 units #2006

Closed
kloczek opened this issue Jun 8, 2024 · 12 comments
Closed

0.24: pytest fails in 4 units #2006

kloczek opened this issue Jun 8, 2024 · 12 comments

Comments

@kloczek
Copy link

kloczek commented Jun 8, 2024

I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

  • python3 -sBm build -w --no-isolation
  • because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
  • install .whl file in </install/prefix> using installer module
  • run pytest with $PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>
  • build is performed in env which is cut off from access to the public network (pytest is executed with -m "not network")
List of installed modules in build env:
Package                       Version
----------------------------- -----------
alabaster                     0.7.16
appdirs                       1.4.4
asttokens                     2.4.1
attrs                         23.2.0
Babel                         2.15.0
build                         1.2.1
charset-normalizer            3.3.2
comm                          0.2.2
contourpy                     1.2.1
cycler                        0.12.1
debugpy                       1.8.1
decorator                     5.1.1
defusedxml                    0.7.1
docutils                      0.20.1
exceptiongroup                1.1.3
executing                     2.0.1
flexcache                     0.3
flexparser                    0.3.1
fonttools                     4.53.0
idna                          3.7
imagesize                     1.4.1
importlib_metadata            7.1.0
iniconfig                     2.0.0
installer                     0.7.0
ipykernel                     6.29.4
ipython                       8.18.1
jedi                          0.19.1
Jinja2                        3.1.4
jupyter_client                8.6.1
jupyter_core                  5.7.2
kiwisolver                    1.4.5
MarkupSafe                    2.1.5
matplotlib                    3.9.0
matplotlib-inline             0.1.7
nest_asyncio                  1.6.0
numpy                         1.26.4
olefile                       0.47
packaging                     24.0
parso                         0.8.4
pexpect                       4.9.0
pillow                        10.3.0
platformdirs                  4.2.2
pluggy                        1.5.0
prompt_toolkit                3.0.46
psutil                        6.0.0
ptyprocess                    0.7.0
pure_eval                     0.2.2
py-cpuinfo                    9.0.0
Pygments                      2.18.0
pyparsing                     3.1.2
pyproject_hooks               1.0.0
pytest                        8.2.2
pytest-benchmark              4.0.0
pytest-mpl                    0.17.0
pytest-subtests               0.12.1
python-dateutil               2.9.0.post0
pyzmq                         26.0.3
requests                      2.32.3
setuptools                    69.4.0
setuptools-scm                8.1.0
snowballstemmer               2.2.0
Sphinx                        7.3.7
sphinxcontrib-applehelp       1.0.8
sphinxcontrib-devhelp         1.0.6
sphinxcontrib-htmlhelp        2.0.5
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.7
sphinxcontrib-serializinghtml 1.1.10
stack_data                    0.6.3
tokenize_rt                   5.2.0
tomli                         2.0.1
tornado                       6.4.1
traitlets                     5.14.3
typing_extensions             4.12.2
urllib3                       2.2.1
wcwidth                       0.2.13
wheel                         0.43.0
zipp                          3.19.2

Please let me know if you need more details or want me to perform some diagnostics.

@kloczek
Copy link
Author

kloczek commented Jun 8, 2024

Here is pytest output:
+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-pint-0.24-2.fc37.x86_64/usr/lib64/python3.10/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-pint-0.24-2.fc37.x86_64/usr/lib/python3.10/site-packages
+ /usr/bin/pytest -ra -m 'not network'
============================= test session starts ==============================
platform linux -- Python 3.10.14, pytest-8.2.2, pluggy-1.5.0
Matplotlib: 3.9.0
Freetype: 2.13.2
benchmark: 4.0.0 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /home/tkloczko/rpmbuild/BUILD/pint-0.24
configfile: pyproject.toml
plugins: mpl-0.17.0, subtests-0.12.1, benchmark-4.0.0
collected 2639 items / 3 skipped

pint/testsuite/benchmarks/test_00_common.py .                            [  0%]
pint/testsuite/benchmarks/test_01_registry_creation.py ....              [  0%]
pint/testsuite/benchmarks/test_10_registry.py .......................... [  1%]
........................................................................ [  3%]
....ss..                                                                 [  4%]
pint/testsuite/benchmarks/test_20_quantity.py .......................... [  5%]
........................................................................ [  7%]
........................................................................ [ 10%]
...........................................                              [ 12%]
pint/testsuite/benchmarks/test_30_numpy.py ............................. [ 13%]
........................................................................ [ 16%]
...............                                                          [ 16%]
pint/testsuite/test_application_registry.py ..................ssssssssss [ 17%]
ss.......ssssss..................ssssssssssss..................sssssssss [ 20%]
sss..                                                                    [ 20%]
pint/testsuite/test_babel.py sFF..F                                      [ 20%]
pint/testsuite/test_compat.py ..........                                 [ 21%]
pint/testsuite/test_contexts.py ...............................,,,..,,,,. [ 22%]
.......,,...                                                             [ 22%]
pint/testsuite/test_converters.py .......                                [ 23%]
pint/testsuite/test_definitions.py .......                               [ 23%]
pint/testsuite/test_diskcache.py .....                                   [ 23%]
pint/testsuite/test_errors.py .......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,. [ 23%]
.                                                                        [ 23%]
pint/testsuite/test_formatter.py ....                                    [ 24%]
pint/testsuite/test_formatting.py ..................................     [ 25%]
pint/testsuite/test_infer_base_unit.py ........                          [ 25%]
pint/testsuite/test_issues.py x.xx........s......s...x.................. [ 27%]
..............................s.Fss..................................... [ 30%]
..................................x.....                                 [ 31%]
pint/testsuite/test_log_units.py ....................................... [ 33%]
.......................................................xx..xxxx          [ 35%]
pint/testsuite/test_matplotlib.py ...                                    [ 35%]
pint/testsuite/test_measurement.py .ssssssssssssssssssssssssssssssssssss [ 36%]
ssssssssssssssssssssssssssssss                                           [ 38%]
pint/testsuite/test_non_int.py .............,,,,,,,,,,,,,,,,,,,,,,,,.... [ 38%]
........................................................................ [ 41%]
........................................................................ [ 44%]
......................................................,,,,,,,,,,,,,,,,,,,,,,,,. [ 46%]
........................................................................ [ 48%]
........................................................................ [ 51%]
.........................................................,,,,,,,,,,,,,,,,,,,,,,,,. [ 53%]
........................................................................ [ 56%]
........................................................................ [ 59%]
............................................                             [ 61%]
pint/testsuite/test_numpy.py .....................,,,,,.,,.............. [ 62%]
........s.........x..................................................... [ 65%]
...............,,,,,,....................................ssssss          [ 67%]
pint/testsuite/test_numpy_func.py ..........................             [ 68%]
pint/testsuite/test_pint_eval.py ....................................... [ 69%]
.........................                                                [ 70%]
pint/testsuite/test_pitheorem.py ..                                      [ 70%]
pint/testsuite/test_quantity.py .......,,,,,,,,,,,,,,,,,,,,.,,,,,,,,.,,. [ 71%]
.,,,,,,,,,.XX....sss........,,,,,,,,,,,,,,,,,,,,,,,,.....s.............. [ 72%]
...................................,,,,,,,,,,,,,,,,,,,,.,,,,,,,,.,,..,,,,,,,,,. [ 74%]
xx....sss........,,,,,,,,,,,,,,,,,,,,,,,,.....s......................... [ 75%]
........................................................................ [ 78%]
........................................................................ [ 81%]
........................................................................ [ 84%]
........................................................................ [ 86%]
........................................................................ [ 89%]
.......................                                                  [ 90%]
pint/testsuite/test_systems.py ...................                       [ 91%]
pint/testsuite/test_testing.py ............                              [ 91%]
pint/testsuite/test_umath.py ........................................... [ 93%]
...................                                                      [ 94%]
pint/testsuite/test_unit.py ...,,,,,,,,,,,,,.,,,,,,,.,,,,,,,,,.x,,,,,,,,,. [ 94%]
........................................................................ [ 97%]
..................................................                       [ 98%]
pint/testsuite/test_util.py ...............,,,,.............             [100%]

=================================== FAILURES ===================================
_________________________________ test_format __________________________________

func_registry = <pint.registry.UnitRegistry object at 0x7f668240ef20>

    @helpers.requires_babel()
    def test_format(func_registry):
        ureg = func_registry
        dirname = os.path.dirname(__file__)
        ureg.load_definitions(os.path.join(dirname, "../xtranslated.txt"))

        distance = 24.1 * ureg.meter
>       assert distance.format_babel(locale="fr_FR", length="long") == "24,1 mètres"

pint/testsuite/test_babel.py:26:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/typing_extensions.py:2853: in wrapper
    return arg(*args, **kwargs)
pint/facets/plain/quantity.py:263: in format_babel
    return self._REGISTRY.formatter.format_quantity_babel(self, spec, **kwspec)
pint/delegates/formatter/full.py:241: in format_quantity_babel
    return self.format_quantity(
pint/delegates/formatter/full.py:162: in format_quantity
    return self.get_formatter(spec).format_quantity(
pint/delegates/formatter/plain.py:136: in format_quantity
    self.format_magnitude(quantity.magnitude, mspec, **babel_kwds),
pint/delegates/formatter/plain.py:69: in format_magnitude
    with override_locale(mspec, babel_kwds.get("locale", None)) as format_number:
/usr/lib64/python3.10/contextlib.py:135: in __enter__
    return next(self.gen)
pint/delegates/formatter/_format_helpers.py:94: in override_locale
    setlocale(LC_NUMERIC, locale)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

category = 1, locale = 'fr_FR'

    def setlocale(category, locale=None):

        """ Set the locale for the given category.  The locale can be
            a string, an iterable of two strings (language code and encoding),
            or None.

            Iterables are converted to strings using the locale aliasing
            engine.  Locale strings are passed directly to the C lib.

            category may be given as one of the LC_* values.

        """
        if locale and not isinstance(locale, _builtin_str):
            # convert to string
            locale = normalize(_build_localename(locale))
>       return _setlocale(category, locale)
E       locale.Error: unsupported locale setting

/usr/lib64/python3.10/locale.py:620: Error
_____________________________ test_registry_locale _____________________________

    @helpers.requires_babel()
    def test_registry_locale():
        ureg = UnitRegistry(fmt_locale="fr_FR")
        dirname = os.path.dirname(__file__)
        ureg.load_definitions(os.path.join(dirname, "../xtranslated.txt"))

        distance = 24.1 * ureg.meter
>       assert distance.format_babel(length="long") == "24,1 mètres"

pint/testsuite/test_babel.py:46:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/typing_extensions.py:2853: in wrapper
    return arg(*args, **kwargs)
pint/facets/plain/quantity.py:263: in format_babel
    return self._REGISTRY.formatter.format_quantity_babel(self, spec, **kwspec)
pint/delegates/formatter/full.py:241: in format_quantity_babel
    return self.format_quantity(
pint/delegates/formatter/full.py:162: in format_quantity
    return self.get_formatter(spec).format_quantity(
pint/delegates/formatter/plain.py:136: in format_quantity
    self.format_magnitude(quantity.magnitude, mspec, **babel_kwds),
pint/delegates/formatter/plain.py:69: in format_magnitude
    with override_locale(mspec, babel_kwds.get("locale", None)) as format_number:
/usr/lib64/python3.10/contextlib.py:135: in __enter__
    return next(self.gen)
pint/delegates/formatter/_format_helpers.py:94: in override_locale
    setlocale(LC_NUMERIC, locale)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

category = 1, locale = 'fr_FR'

    def setlocale(category, locale=None):

        """ Set the locale for the given category.  The locale can be
            a string, an iterable of two strings (language code and encoding),
            or None.

            Iterables are converted to strings using the locale aliasing
            engine.  Locale strings are passed directly to the C lib.

            category may be given as one of the LC_* values.

        """
        if locale and not isinstance(locale, _builtin_str):
            # convert to string
            locale = normalize(_build_localename(locale))
>       return _setlocale(category, locale)
E       locale.Error: unsupported locale setting

/usr/lib64/python3.10/locale.py:620: Error
___________________________________ test_str ___________________________________

func_registry = <pint.registry.UnitRegistry object at 0x7f666b6941c0>

    @helpers.requires_babel()
    def test_str(func_registry):
        ureg = func_registry
        d = 24.1 * ureg.meter

        s = "24.1 meter"
        assert str(d) == s
        assert "%s" % d == s
        assert f"{d}" == s

        ureg.set_fmt_locale("fr_FR")
        s = "24,1 mètres"
>       assert str(d) == s

pint/testsuite/test_babel.py:100:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/quantity.py:269: in __str__
    return self._REGISTRY.formatter.format_quantity(self)
pint/delegates/formatter/full.py:162: in format_quantity
    return self.get_formatter(spec).format_quantity(
pint/delegates/formatter/plain.py:136: in format_quantity
    self.format_magnitude(quantity.magnitude, mspec, **babel_kwds),
pint/delegates/formatter/plain.py:69: in format_magnitude
    with override_locale(mspec, babel_kwds.get("locale", None)) as format_number:
/usr/lib64/python3.10/contextlib.py:135: in __enter__
    return next(self.gen)
pint/delegates/formatter/_format_helpers.py:94: in override_locale
    setlocale(LC_NUMERIC, locale)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

category = 1, locale = 'fr_FR'

    def setlocale(category, locale=None):

        """ Set the locale for the given category.  The locale can be
            a string, an iterable of two strings (language code and encoding),
            or None.

            Iterables are converted to strings using the locale aliasing
            engine.  Locale strings are passed directly to the C lib.

            category may be given as one of the LC_* values.

        """
        if locale and not isinstance(locale, _builtin_str):
            # convert to string
            locale = normalize(_build_localename(locale))
>       return _setlocale(category, locale)
E       locale.Error: unsupported locale setting

/usr/lib64/python3.10/locale.py:620: Error
__________________________ TestIssues.test_issue_1400 __________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7f6683474520>
sess_registry = <pint.registry.UnitRegistry object at 0x7f666b51fe50>

    @helpers.requires_babel()
    def test_issue_1400(self, sess_registry):
        q1 = 3.1 * sess_registry.W
        q2 = 3.1 * sess_registry.W / sess_registry.cm
>       assert q1.format_babel("~", locale="es_ES") == "3,1 W"

pint/testsuite/test_issues.py:915:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/typing_extensions.py:2853: in wrapper
    return arg(*args, **kwargs)
pint/facets/plain/quantity.py:263: in format_babel
    return self._REGISTRY.formatter.format_quantity_babel(self, spec, **kwspec)
pint/delegates/formatter/full.py:241: in format_quantity_babel
    return self.format_quantity(
pint/delegates/formatter/full.py:162: in format_quantity
    return self.get_formatter(spec).format_quantity(
pint/delegates/formatter/plain.py:136: in format_quantity
    self.format_magnitude(quantity.magnitude, mspec, **babel_kwds),
pint/delegates/formatter/plain.py:69: in format_magnitude
    with override_locale(mspec, babel_kwds.get("locale", None)) as format_number:
/usr/lib64/python3.10/contextlib.py:135: in __enter__
    return next(self.gen)
pint/delegates/formatter/_format_helpers.py:94: in override_locale
    setlocale(LC_NUMERIC, locale)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

category = 1, locale = 'es_ES'

    def setlocale(category, locale=None):

        """ Set the locale for the given category.  The locale can be
            a string, an iterable of two strings (language code and encoding),
            or None.

            Iterables are converted to strings using the locale aliasing
            engine.  Locale strings are passed directly to the C lib.

            category may be given as one of the LC_* values.

        """
        if locale and not isinstance(locale, _builtin_str):
            # convert to string
            locale = normalize(_build_localename(locale))
>       return _setlocale(category, locale)
E       locale.Error: unsupported locale setting

/usr/lib64/python3.10/locale.py:620: Error
================================== XFAILURES ===================================
___________________________ TestIssues.test_issue25 ____________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7f6683644790>
module_registry = <pint.registry.UnitRegistry object at 0x7f666b697790>

    @pytest.mark.xfail
    def test_issue25(self, module_registry):
>       x = ParserHelper.from_string("10 %")

pint/testsuite/test_issues.py:27:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/util.py:774: in from_string
    ret = build_eval_tree(gen).evaluate(
pint/pint_eval.py:565: in build_eval_tree
    result, _ = _build_eval_tree(tokens, op_priority, 0, 0)
pint/pint_eval.py:482: in _build_eval_tree
    right, index = _build_eval_tree(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

tokens = [TokenInfo(type=2 (NUMBER), string='10', start=(1, 0), end=(1, 2), line='10 %'), TokenInfo(type=54 (OP), string='%', s...ng='', start=(1, 4), end=(1, 5), line=''), TokenInfo(type=0 (ENDMARKER), string='', start=(2, 0), end=(2, 0), line='')]
op_priority = {'': 1, '%': 1, '*': 1, '**': 3, ...}, index = 3, depth = 1
prev_op = '%'

    def _build_eval_tree(
        tokens: list[TokenInfo],
        op_priority: dict[str, int],
        index: int = 0,
        depth: int = 0,
        prev_op: str = "<none>",
    ) -> tuple[EvalTreeNode, int]:
        """Build an evaluation tree from a set of tokens.

        Params:
        Index, depth, and prev_op used recursively, so don't touch.
        Tokens is an iterable of tokens from an expression to be evaluated.

        Transform the tokens from an expression into a recursive parse tree, following order
        of operations. Operations can include binary ops (3 + 4), implicit ops (3 kg), or
        unary ops (-1).

        General Strategy:
        1) Get left side of operator
        2) If no tokens left, return final result
        3) Get operator
        4) Use recursion to create tree starting at token on right side of operator (start at step #1)
        4.1) If recursive call encounters an operator with lower or equal priority to step #2, exit recursion
        5) Combine left side, operator, and right side into a new left side
        6) Go back to step #2

        Raises
        ------
        DefinitionSyntaxError
            If there is a syntax error.

        """

        result = None

        while True:
            current_token = tokens[index]
            token_type = current_token.type
            token_text = current_token.string

            if token_type == tokenlib.OP:
                if token_text == ")":
                    if prev_op == "<none>":
                        raise DefinitionSyntaxError(
                            f"unopened parentheses in tokens: {current_token}"
                        )
                    elif prev_op == "(":
                        # close parenthetical group
                        assert result is not None
                        return result, index
                    else:
                        # parenthetical group ending, but we need to close sub-operations within group
                        assert result is not None
                        return result, index - 1
                elif token_text == "(":
                    # gather parenthetical group
                    right, index = _build_eval_tree(
                        tokens, op_priority, index + 1, 0, token_text
                    )
                    if not tokens[index][1] == ")":
                        raise DefinitionSyntaxError("weird exit from parentheses")
                    if result:
                        # implicit op with a parenthetical group, i.e. "3 (kg ** 2)"
                        result = EvalTreeNode(left=result, right=right)
                    else:
                        # get first token
                        result = right
                elif token_text in op_priority:
                    if result:
                        # equal-priority operators are grouped in a left-to-right order,
                        # unless they're exponentiation, in which case they're grouped
                        # right-to-left this allows us to get the expected behavior for
                        # multiple exponents
                        #     (2^3^4)  --> (2^(3^4))
                        #     (2 * 3 / 4) --> ((2 * 3) / 4)
                        if op_priority[token_text] <= op_priority.get(
                            prev_op, -1
                        ) and token_text not in ("**", "^"):
                            # previous operator is higher priority, so end previous binary op
                            return result, index - 1
                        # get right side of binary op
                        right, index = _build_eval_tree(
                            tokens, op_priority, index + 1, depth + 1, token_text
                        )
                        result = EvalTreeNode(
                            left=result, operator=current_token, right=right
                        )
                    else:
                        # unary operator
                        right, index = _build_eval_tree(
                            tokens, op_priority, index + 1, depth + 1, "unary"
                        )
                        result = EvalTreeNode(left=right, operator=current_token)
            elif token_type in (tokenlib.NUMBER, tokenlib.NAME):
                if result:
                    # tokens with an implicit operation i.e. "1 kg"
                    if op_priority[""] <= op_priority.get(prev_op, -1):
                        # previous operator is higher priority than implicit, so end
                        # previous binary op
                        return result, index - 1
                    right, index = _build_eval_tree(
                        tokens, op_priority, index, depth + 1, ""
                    )
                    result = EvalTreeNode(left=result, right=right)
                else:
                    # get first token
                    result = EvalTreeNode(left=current_token)

            if tokens[index][0] == tokenlib.ENDMARKER:
                if prev_op == "(":
                    raise DefinitionSyntaxError("unclosed parentheses in tokens")
                if depth > 0 or prev_op:
                    # have to close recursion
>                   assert result is not None
E                   AssertionError

pint/pint_eval.py:514: AssertionError
___________________________ TestIssues.test_issue37 ____________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7f6683647460>
module_registry = <pint.registry.UnitRegistry object at 0x7f666b697790>

    @pytest.mark.xfail
    @helpers.requires_numpy
    def test_issue37(self, module_registry):
        x = np.ma.masked_array([1, 2, 3], mask=[True, True, False])
        q = module_registry.meter * x
        assert isinstance(q, module_registry.Quantity)
        np.testing.assert_array_equal(q.magnitude, x)
>       assert q.units == module_registry.meter.units
E       AttributeError: 'Unit' object has no attribute 'units'. Did you mean: '_units'?

pint/testsuite/test_issues.py:52: AttributeError
___________________________ TestIssues.test_issue39 ____________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7f6683647d90>
module_registry = <pint.registry.UnitRegistry object at 0x7f666b697790>

    @pytest.mark.xfail
    @helpers.requires_numpy
    def test_issue39(self, module_registry):
        x = np.matrix([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
        q = module_registry.meter * x
        assert isinstance(q, module_registry.Quantity)
        np.testing.assert_array_equal(q.magnitude, x)
>       assert q.units == module_registry.meter.units
E       AttributeError: 'Unit' object has no attribute 'units'. Did you mean: '_units'?

pint/testsuite/test_issues.py:75: AttributeError
___________________________ TestIssues.test_issue86c ___________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7f6683644fd0>
module_registry = <pint.registry.UnitRegistry object at 0x7f666b697790>

    @pytest.mark.xfail
    def test_issue86c(self, module_registry):
        module_registry.autoconvert_offset_to_baseunit = True
        T = module_registry.degC
        T = 100.0 * T
>       helpers.assert_quantity_almost_equal(
            module_registry.k * 2 * T, module_registry.k * (2 * T)
        )

pint/testsuite/test_issues.py:322:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

first = <Quantity(746.3, 'boltzmann_constant * kelvin')>
second = <Quantity(473.15, 'boltzmann_constant * kelvin')>, rtol = 1e-07
atol = 0
msg = "Comparing <Quantity(746.3, 'boltzmann_constant * kelvin')> and <Quantity(473.15, 'boltzmann_constant * kelvin')>.  (Converted to 746.3 and 473.15)"

    def assert_allclose(
        first, second, rtol: float = 1e-07, atol: float = 0, msg: str | None = None
    ) -> None:
        if msg is None:
            try:
                msg = f"Comparing {first!r} and {second!r}. "
            except (TypeError, ValueError):
                try:
                    msg = f"Comparing {first} and {second}. "
                except Exception:
                    msg = "Comparing"

        m1, m2 = _get_comparable_magnitudes(first, second, msg)
        msg += f" (Converted to {m1!r} and {m2!r})"

        if isinstance(m1, ndarray) or isinstance(m2, ndarray):
            np.testing.assert_allclose(m1, m2, rtol=rtol, atol=atol, err_msg=msg)
        elif not isinstance(m1, Number):
            warnings.warn("In assert_equal, m1 is not a number ", UserWarning)
            return
        elif not isinstance(m2, Number):
            warnings.warn("In assert_equal, m2 is not a number ", UserWarning)
            return
        elif math.isnan(m1):
            assert math.isnan(m2), msg
        elif math.isnan(m2):
            assert math.isnan(m1), msg
        elif math.isinf(m1):
            assert math.isinf(m2), msg
        elif math.isinf(m2):
            assert math.isinf(m1), msg
        else:
            # Numpy version (don't like because is not symmetric)
            # assert abs(m1 - m2) <= atol + rtol * abs(m2), msg
>           assert abs(m1 - m2) <= max(rtol * max(abs(m1), abs(m2)), atol), msg
E           AssertionError: Comparing <Quantity(746.3, 'boltzmann_constant * kelvin')> and <Quantity(473.15, 'boltzmann_constant * kelvin')>.  (Converted to 746.3 and 473.15)

pint/testing.py:94: AssertionError
____________________________ test_issues_1841_xfail ____________________________

    @pytest.mark.xfail
    def test_issues_1841_xfail():
        from pint import formatting as fmt
        from pint.delegates.formatter._compound_unit_helpers import sort_by_dimensionality

        # sets compact display mode by default
        ur = UnitRegistry()
        ur.default_format = "~P"
        ur.formatter.default_sort_func = sort_by_dimensionality

        q = ur.Quantity("2*pi radian * hour")

        # Note that `radian` (and `bit` and `count`) are treated as dimensionless.
        # And note that dimensionless quantities are stripped by this process,
        # leading to errorneous output.  Suggestions?
>       assert (
            fmt.format_unit(q.u._units, spec="", registry=ur, sort_dims=True)
            == "radian * hour"
        )
E       AssertionError: assert 'pi * radian * hour' == 'radian * hour'
E
E         - radian * hour
E         + pi * radian * hour
E         ? +++++

pint/testsuite/test_issues.py:1220: AssertionError
__________________ test_compound_log_unit_multiply_definition __________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7f666ac74970>

    @pytest.mark.xfail
    def test_compound_log_unit_multiply_definition(module_registry_auto_offset):
        """Check that compound log units can be defined using multiply."""
        Q_ = module_registry_auto_offset.Quantity
        canonical_def = Q_(-161, "dBm") / module_registry_auto_offset.Hz
        mult_def = -161 * module_registry_auto_offset("dBm/Hz")
>       assert mult_def == canonical_def
E       AssertionError: assert <Quantity(-202.686991, 'gram * meter ** 2 / second ** 3 / hertz')> == <Quantity(7.94328235e-17, 'gram * meter ** 2 / second ** 3 / hertz')>

pint/testsuite/test_log_units.py:231: AssertionError
__________________ test_compound_log_unit_quantity_definition __________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7f666ac74970>

    @pytest.mark.xfail
    def test_compound_log_unit_quantity_definition(module_registry_auto_offset):
        """Check that compound log units can be defined using ``Quantity()``."""
        Q_ = module_registry_auto_offset.Quantity
        canonical_def = Q_(-161, "dBm") / module_registry_auto_offset.Hz
        quantity_def = Q_(-161, "dBm/Hz")
>       assert quantity_def == canonical_def

pint/testsuite/test_log_units.py:240:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/quantity.py:100: in wrapped
    return f(self, *args, **kwargs)
pint/facets/plain/quantity.py:1351: in __eq__
    self._convert_magnitude_not_inplace(other._units),
pint/facets/plain/quantity.py:479: in _convert_magnitude_not_inplace
    return self._REGISTRY.convert(self._magnitude, self._units, other)
pint/facets/plain/registry.py:1038: in convert
    return self._convert(value, src, dst, inplace)
pint/facets/context/registry.py:405: in _convert
    return super()._convert(value, src, dst, inplace)
pint/facets/nonmultiplicative/registry.py:246: in _convert
    src_offset_unit = self._validate_and_extract(src)
pint/facets/nonmultiplicative/registry.py:165: in _validate_and_extract
    nonmult_units = [
pint/facets/nonmultiplicative/registry.py:166: in <listcomp>
    (u, e) for u, e in units.items() if not self._is_multiplicative(u)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pint.registry.UnitRegistry object at 0x7f666ac74970>
unit_name = 'delta_decibelmilliwatt'

    def _is_multiplicative(self, unit_name: str) -> bool:
        """True if the unit is multiplicative.

        Parameters
        ----------
        unit_name
            Name of the unit to check.
            Can be prefixed, pluralized or even an alias

        Raises
        ------
        UndefinedUnitError
            If the unit is not in the registry.
        """
        if unit_name in self._units:
            return self._units[unit_name].is_multiplicative

        # If the unit is not in the registry might be because it is not
        # registered with its prefixed version.
        # TODO: Might be better to register them.
        names = self.parse_unit_name(unit_name)
>       assert len(names) == 1
E       AssertionError

pint/facets/nonmultiplicative/registry.py:131: AssertionError
_____________________________ test_dbm_db_addition _____________________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7f666ac74970>

    @pytest.mark.xfail
    def test_dbm_db_addition(module_registry_auto_offset):
        """Test a dB value can be added to a dBm and the answer is correct."""
>       power = (5 * module_registry_auto_offset.dBm) + (
            10 * module_registry_auto_offset.dB
        )

pint/testsuite/test_log_units.py:261:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/quantity.py:848: in __add__
    return self._add_sub(other, operator.add)
pint/facets/plain/quantity.py:100: in wrapped
    return f(self, *args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <Quantity(5, 'decibelmilliwatt')>, other = <Quantity(10, 'decibel')>
op = <built-in function add>

    @check_implemented
    def _add_sub(self, other, op):
        """Perform addition or subtraction operation and return the result.

        Parameters
        ----------
        other : pint.PlainQuantity or any type accepted by :func:`_to_magnitude`
            object to be added to / subtracted from self
        op : function
            operator function (e.g. operator.add, operator.isub)
        """
        if not self._check(other):
            # other not from same Registry or not a PlainQuantity
            if zero_or_nan(other, True):
                # If the other value is 0 or NaN (but not a PlainQuantity)
                # do the operation without checking units.
                # We do the calculation instead of just returning the same
                # value to enforce any shape checking and type casting due to
                # the operation.
                units = self._units
                magnitude = op(
                    self._magnitude,
                    _to_magnitude(other, self.force_ndarray, self.force_ndarray_like),
                )
            elif self.dimensionless:
                units = self.UnitsContainer()
                magnitude = op(
                    self.to(units)._magnitude,
                    _to_magnitude(other, self.force_ndarray, self.force_ndarray_like),
                )
            else:
                raise DimensionalityError(self._units, "dimensionless")
            return self.__class__(magnitude, units)

        if not self.dimensionality == other.dimensionality:
>           raise DimensionalityError(
                self._units, other._units, self.dimensionality, other.dimensionality
            )
E           pint.errors.DimensionalityError: Cannot convert from 'decibelmilliwatt' ([mass] * [length] ** 2 / [time] ** 3) to 'decibel' (dimensionless)

pint/facets/plain/quantity.py:750: DimensionalityError
_________________ test_frequency_octave_addition[100-2.0-400] __________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7f666ac74970>
freq1 = <Quantity(100, 'hertz')>, octaves = 2.0, freq2 = 400

    @pytest.mark.xfail
    @pytest.mark.parametrize(
        "freq1,octaves,freq2",
        [
            (100, 2.0, 400),
            (50, 1.0, 100),
            (200, 0.0, 200),
        ],  # noqa: E231
    )
    def test_frequency_octave_addition(module_registry_auto_offset, freq1, octaves, freq2):
        """Test an Octave can be added to a frequency correctly"""
        freq1 = freq1 * module_registry_auto_offset.Hz
>       shift = octaves * module_registry_auto_offset.Octave

pint/testsuite/test_log_units.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/registry.py:367: in __getattr__
    return self.Unit(item)
pint/facets/plain/unit.py:41: in __init__
    self._units = self._REGISTRY.parse_units(units)._units
pint/facets/plain/registry.py:1199: in parse_units
    self.parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/nonmultiplicative/registry.py:69: in parse_units_as_container
    return super().parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1214: in parse_units_as_container
    return self._parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1249: in _parse_units_as_container
    cname = self.get_name(name, case_sensitive=case_sensitive)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pint.registry.UnitRegistry object at 0x7f666ac74970>
name_or_alias = 'Octave', case_sensitive = True

    def get_name(self, name_or_alias: str, case_sensitive: bool | None = None) -> str:
        """Return the canonical name of a unit."""

        if name_or_alias == "dimensionless":
            return ""

        try:
            return self._units[name_or_alias].name
        except KeyError:
            pass

        candidates = self.parse_unit_name(name_or_alias, case_sensitive)
        if not candidates:
>           raise UndefinedUnitError(name_or_alias)
E           pint.errors.UndefinedUnitError: 'Octave' is not defined in the unit registry

pint/facets/plain/registry.py:658: UndefinedUnitError
__________________ test_frequency_octave_addition[50-1.0-100] __________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7f666ac74970>
freq1 = <Quantity(50, 'hertz')>, octaves = 1.0, freq2 = 100

    @pytest.mark.xfail
    @pytest.mark.parametrize(
        "freq1,octaves,freq2",
        [
            (100, 2.0, 400),
            (50, 1.0, 100),
            (200, 0.0, 200),
        ],  # noqa: E231
    )
    def test_frequency_octave_addition(module_registry_auto_offset, freq1, octaves, freq2):
        """Test an Octave can be added to a frequency correctly"""
        freq1 = freq1 * module_registry_auto_offset.Hz
>       shift = octaves * module_registry_auto_offset.Octave

pint/testsuite/test_log_units.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/registry.py:367: in __getattr__
    return self.Unit(item)
pint/facets/plain/unit.py:41: in __init__
    self._units = self._REGISTRY.parse_units(units)._units
pint/facets/plain/registry.py:1199: in parse_units
    self.parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/nonmultiplicative/registry.py:69: in parse_units_as_container
    return super().parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1214: in parse_units_as_container
    return self._parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1249: in _parse_units_as_container
    cname = self.get_name(name, case_sensitive=case_sensitive)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pint.registry.UnitRegistry object at 0x7f666ac74970>
name_or_alias = 'Octave', case_sensitive = True

    def get_name(self, name_or_alias: str, case_sensitive: bool | None = None) -> str:
        """Return the canonical name of a unit."""

        if name_or_alias == "dimensionless":
            return ""

        try:
            return self._units[name_or_alias].name
        except KeyError:
            pass

        candidates = self.parse_unit_name(name_or_alias, case_sensitive)
        if not candidates:
>           raise UndefinedUnitError(name_or_alias)
E           pint.errors.UndefinedUnitError: 'Octave' is not defined in the unit registry

pint/facets/plain/registry.py:658: UndefinedUnitError
_________________ test_frequency_octave_addition[200-0.0-200] __________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7f666ac74970>
freq1 = <Quantity(200, 'hertz')>, octaves = 0.0, freq2 = 200

    @pytest.mark.xfail
    @pytest.mark.parametrize(
        "freq1,octaves,freq2",
        [
            (100, 2.0, 400),
            (50, 1.0, 100),
            (200, 0.0, 200),
        ],  # noqa: E231
    )
    def test_frequency_octave_addition(module_registry_auto_offset, freq1, octaves, freq2):
        """Test an Octave can be added to a frequency correctly"""
        freq1 = freq1 * module_registry_auto_offset.Hz
>       shift = octaves * module_registry_auto_offset.Octave

pint/testsuite/test_log_units.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/registry.py:367: in __getattr__
    return self.Unit(item)
pint/facets/plain/unit.py:41: in __init__
    self._units = self._REGISTRY.parse_units(units)._units
pint/facets/plain/registry.py:1199: in parse_units
    self.parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/nonmultiplicative/registry.py:69: in parse_units_as_container
    return super().parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1214: in parse_units_as_container
    return self._parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1249: in _parse_units_as_container
    cname = self.get_name(name, case_sensitive=case_sensitive)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pint.registry.UnitRegistry object at 0x7f666ac74970>
name_or_alias = 'Octave', case_sensitive = True

    def get_name(self, name_or_alias: str, case_sensitive: bool | None = None) -> str:
        """Return the canonical name of a unit."""

        if name_or_alias == "dimensionless":
            return ""

        try:
            return self._units[name_or_alias].name
        except KeyError:
            pass

        candidates = self.parse_unit_name(name_or_alias, case_sensitive)
        if not candidates:
>           raise UndefinedUnitError(name_or_alias)
E           pint.errors.UndefinedUnitError: 'Octave' is not defined in the unit registry

pint/facets/plain/registry.py:658: UndefinedUnitError
________ TestNumpyMathematicalFunctions.test_exponentiation_array_exp_2 ________

self = <pint.testsuite.test_numpy.TestNumpyMathematicalFunctions object at 0x7f6682b6dd20>

    @pytest.mark.xfail
    @helpers.requires_numpy
    def test_exponentiation_array_exp_2(self):
        arr = np.array(range(3), dtype=float)
        # q = self.Q_(copy.copy(arr), None)
        q = self.Q_(copy.copy(arr), "meter")
        arr_cp = copy.copy(arr)
        q_cp = copy.copy(q)
        # this fails as expected since numpy 1.8.0 but...
        with pytest.raises(DimensionalityError):
            op.pow(arr_cp, q_cp)
        # ..not for op.ipow !
        # q_cp is treated as if it is an array. The units are ignored.
        # Quantity.__ipow__ is never called
        arr_cp = copy.copy(arr)
        q_cp = copy.copy(q)
        with pytest.raises(DimensionalityError):
>           op.ipow(arr_cp, q_cp)

pint/testsuite/test_numpy.py:566:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/numpy/quantity.py:72: in __array_ufunc__
    return numpy_wrap("ufunc", ufunc, inputs, kwargs, types)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

func_type = 'ufunc', func = <ufunc 'power'>
args = (array([0., 1., 2.]), <Quantity([0. 1. 2.], 'meter')>)
kwargs = {'out': (array([0., 1., 2.]),)}
types = {<class 'pint.Quantity'>, <class 'numpy.ndarray'>}

    def numpy_wrap(func_type, func, args, kwargs, types):
        """Return the result from a NumPy function/ufunc as wrapped by Pint."""

        if func_type == "function":
            handled = HANDLED_FUNCTIONS
            # Need to handle functions in submodules
            name = ".".join(func.__module__.split(".")[1:] + [func.__name__])
        elif func_type == "ufunc":
            handled = HANDLED_UFUNCS
            # ufuncs do not have func.__module__
            name = func.__name__
        else:
            raise ValueError(f"Invalid func_type {func_type}")

        if name not in handled or any(is_upcast_type(t) for t in types):
            return NotImplemented
>       return handled[name](*args, **kwargs)
E       TypeError: _power() got an unexpected keyword argument 'out'

pint/facets/numpy/numpy_func.py:1071: TypeError
____ TestQuantityWithDefaultRegistry.test_formatting_override_default_units ____

self = <pint.testsuite.test_quantity.TestQuantityWithDefaultRegistry object at 0x7f6681e9cd30>

    @pytest.mark.xfail(reason="Still not clear how default formatting will work.")
    def test_formatting_override_default_units(self):
        ureg = UnitRegistry()
        ureg.formatter.default_format = "~"
        x = ureg.Quantity(4, "m ** 2")

        assert f"{x:dP}" == "4 meter²"
>       with pytest.warns(DeprecationWarning):
E       Failed: DID NOT WARN. No warnings of type (<class 'DeprecationWarning'>,) were emitted.
E        Emitted warnings: [].

pint/testsuite/test_quantity.py:278: Failed
__ TestQuantityWithDefaultRegistry.test_formatting_override_default_magnitude __

self = <pint.testsuite.test_quantity.TestQuantityWithDefaultRegistry object at 0x7f6681e9db70>

    @pytest.mark.xfail(reason="Still not clear how default formatting will work.")
    def test_formatting_override_default_magnitude(self):
        ureg = UnitRegistry()
        ureg.formatter.default_format = ".2f"
        x = ureg.Quantity(4, "m ** 2")

        assert f"{x:dP}" == "4 meter²"
>       with pytest.warns(DeprecationWarning):
E       Failed: DID NOT WARN. No warnings of type (<class 'DeprecationWarning'>,) were emitted.
E        Emitted warnings: [].

pint/testsuite/test_quantity.py:292: Failed
________________ TestUnit.test_unit_formatting_defaults_warning ________________

self = <pint.testsuite.test_unit.TestUnit object at 0x7f66823213f0>

    @pytest.mark.xfail(reason="Still not clear how default formatting will work.")
    def test_unit_formatting_defaults_warning(self):
        ureg = UnitRegistry()
        ureg.default_format = "~P"
        x = ureg.Unit("m / s ** 2")

>       with pytest.warns(DeprecationWarning):
E       Failed: DID NOT WARN. No warnings of type (<class 'DeprecationWarning'>,) were emitted.
E        Emitted warnings: [].

pint/testsuite/test_unit.py:116: Failed
=============================== warnings summary ===============================
pint/testsuite/benchmarks/test_00_common.py::test_import
  /usr/lib/python3.10/site-packages/_pytest/python.py:166: PytestReturnNotNoneWarning: Expected None, but pint/testsuite/benchmarks/test_00_common.py::test_import returned 305876, which will be an error in a future version of pytest.  Did you mean to use `assert` instead of `return`?
    warnings.warn(

pint/testsuite/benchmarks/test_00_common.py::test_import
  pint/testsuite/benchmarks/test_00_common.py:7: PytestBenchmarkWarning: Benchmark fixture was not used at all in this test!
    def test_import(benchmark):

pint/testsuite/test_babel.py::test_format
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:26: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_quantity_babel
    assert distance.format_babel(locale="fr_FR", length="long") == "24,1 mètres"

pint/testsuite/test_babel.py::test_registry_locale
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:46: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_quantity_babel
    assert distance.format_babel(length="long") == "24,1 mètres"

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:67: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_unit_babel
    assert volume.format_babel() == "millilitre"

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:69: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = "~"

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:70: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_unit_babel
    assert volume.format_babel() == "ml"

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:73: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_unit_babel
    assert dimensionless_unit.format_babel() == ""

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:75: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.set_locale
    ureg.set_fmt_locale(None)

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:77: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_unit_babel
    volume.format_babel()

pint/testsuite/test_babel.py::test_no_registry_locale
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:85: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_quantity_babel
    distance.format_babel()

pint/testsuite/test_babel.py::test_str
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:98: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.set_locale
    ureg.set_fmt_locale("fr_FR")

pint/testsuite/test_issues.py::TestIssues::test_issue39
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_issues.py:71: PendingDeprecationWarning: the matrix subclass is not the recommended way to represent matrices or deal with linear algebra (see https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please adjust your code to use regular ndarray.
    x = np.matrix([[1, 2, 3], [1, 2, 3], [1, 2, 3]])

pint/testsuite/test_issues.py::TestIssues::test_issue_1400
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_issues.py:915: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_quantity_babel
    assert q1.format_babel("~", locale="es_ES") == "3,1 W"

pint/testsuite/test_issues.py::test_issues_1841[units0-P~-V\xb7A]
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_issues.py:1200: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ur.default_format = spec

pint/testsuite/test_issues.py::test_issues_1841_xfail
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_issues.py:1212: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ur.default_format = "~P"

pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_put
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/facets/numpy/quantity.py:154: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.
    self.magnitude.put(indices, values, mode)

pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_copyto
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/facets/numpy/numpy_func.py:1071: UnitStrippedWarning: The unit of the quantity is stripped when copying to non-quantity
    return handled[name](*args, **kwargs)

pint/testsuite/test_quantity.py::TestQuantityToCompact::test_nonnumeric_magnitudes
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testing.py:78: UserWarning: In assert_equal, m1 is not a number
    warnings.warn("In assert_equal, m1 is not a number ", UserWarning)

pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:73: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = spec

pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:86: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = spec

pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:107: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = spec

pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_defaults_warning
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:113: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = "~P"

pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:139: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = spec

pint/testsuite/test_unit.py::TestUnit::test_ipython
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:180: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = "~"

pint/testsuite/test_unit.py::TestRegistry::test_default_format
pint/testsuite/test_unit.py::TestRegistryWithDefaultRegistry::test_default_format
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:325: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = "~"

pint/testsuite/test_unit.py::TestRegistry::test_default_format
pint/testsuite/test_unit.py::TestRegistryWithDefaultRegistry::test_default_format
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:329: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    assert ureg.default_format == "~"

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=================================== XPASSES ====================================

-------------------------------------------------------------------------------------------------------------------- benchmark: 437 tests --------------------------------------------------------------------------------------------------------------------
Name (time in us)                                                     Min                     Max                    Mean                 StdDev                  Median                   IQR            Outliers           OPS            Rounds  Iterations
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_op1[truth-float_kilometer]                                    2.1765 (1.0)           30.3807 (3.38)           2.2857 (1.0)           0.2401 (1.14)           2.2706 (1.0)          0.0419 (1.22)     381;2363  437,506.3355 (1.0)      109622           1
test_op1[truth-complex_meter]                                      2.1821 (1.00)          32.4007 (3.61)           2.2903 (1.00)          0.2798 (1.32)           2.2715 (1.00)         0.0456 (1.32)     353;3422  436,621.3288 (1.00)      97198           1
test_op1[truth-int_meter]                                          2.1830 (1.00)          31.1304 (3.47)           2.2969 (1.00)          0.2409 (1.14)           2.2836 (1.01)         0.0410 (1.19)     252;2080  435,367.1145 (1.00)      99995           1
test_op1[truth-complex_kilometer]                                  2.2016 (1.01)          11.1684 (1.24)           2.2942 (1.00)          0.2112 (1.0)            2.2808 (1.00)         0.0345 (1.0)      281;3196  435,885.8351 (1.00)     104146           1
test_op1[truth-int_kilometer]                                      2.2091 (1.01)          18.8369 (2.10)           2.3155 (1.01)          0.2385 (1.13)           2.2994 (1.01)         0.0456 (1.32)     378;2496  431,868.7464 (0.99)     100257           1
test_op1[truth-float_meter]                                        2.2203 (1.02)          19.0102 (2.12)           2.3247 (1.02)          0.2167 (1.03)           2.3087 (1.02)         0.0447 (1.30)     312;2965  430,171.7065 (0.98)     116081           1
test_wrapper_nonstrict[float_kilometer]                            2.7977 (1.29)          19.7859 (2.20)           2.9447 (1.29)          0.3416 (1.62)           2.9020 (1.28)         0.0559 (1.62)    505;14338  339,598.6720 (0.78)     104481           1
test_wrapper_nonstrict[int_kilometer]                              2.8005 (1.29)          19.7049 (2.20)           2.9417 (1.29)          0.2815 (1.33)           2.9160 (1.28)         0.0456 (1.32)     547;6981  339,935.9941 (0.78)     117247           1
test_wrapper_nonstrict[int_meter]                                  2.8023 (1.29)          56.0936 (6.25)           2.9318 (1.28)          0.2937 (1.39)           2.9141 (1.28)         0.0466 (1.35)     353;2656  341,093.0414 (0.78)     117994           1
test_wrapper_nonstrict[complex_meter]                              2.8033 (1.29)          66.0857 (7.36)           3.0016 (1.31)          0.3967 (1.88)           2.9365 (1.29)         0.0801 (2.32)    416;19750  333,156.3424 (0.76)     105177           1
test_to_units_container_registry[False-meter]                      2.8079 (1.29)          19.9052 (2.22)           2.9826 (1.30)          0.3286 (1.56)           2.9542 (1.30)         0.0577 (1.68)     216;2212  335,277.0917 (0.77)      38649           1
test_to_units_container_detached[False-angstrom]                   2.8098 (1.29)          11.8241 (1.32)           2.9742 (1.30)          0.2534 (1.20)           2.9560 (1.30)         0.0549 (1.59)      234;912  336,230.0138 (0.77)      39711           1
test_wrapper_nonstrict[complex_kilometer]                          2.8117 (1.29)          19.7748 (2.20)           2.9396 (1.29)          0.2536 (1.20)           2.9234 (1.29)         0.0475 (1.38)     552;2340  340,186.8288 (0.78)     106217           1
test_to_units_container_detached[True-angstrom]                    2.8135 (1.29)          20.7582 (2.31)           2.9723 (1.30)          0.2559 (1.21)           2.9514 (1.30)         0.0605 (1.76)     852;6025  336,441.6078 (0.77)     142011           1
test_wrapper_nonstrict[float_meter]                                2.8135 (1.29)          19.8269 (2.21)           2.9793 (1.30)          0.2797 (1.32)           2.9569 (1.30)         0.0680 (1.97)     816;5069  335,647.9196 (0.77)     111119           1
test_to_units_container_detached[False-meter]                      2.8173 (1.29)          34.6201 (3.86)           2.9516 (1.29)          0.3060 (1.45)           2.9309 (1.29)         0.0522 (1.51)     254;1111  338,802.4480 (0.77)      39700           1
test_to_units_container_registry[True-meter]                       2.8238 (1.30)          36.4399 (4.06)           2.9858 (1.31)          0.2638 (1.25)           2.9681 (1.31)         0.0587 (1.70)     577;3541  334,918.1168 (0.77)     146847           1
test_to_units_container_detached[True-meter]                       2.8284 (1.30)          28.3960 (3.16)           2.9841 (1.31)          0.2654 (1.26)           2.9663 (1.31)         0.0503 (1.46)     597;3574  335,112.2026 (0.77)     142463           1
test_to_units_container_registry[True-angstrom]                    2.8294 (1.30)          29.5956 (3.30)           2.9831 (1.31)          0.2650 (1.25)           2.9644 (1.31)         0.0540 (1.57)     742;3379  335,221.7456 (0.77)     145238           1
test_to_units_container_registry[False-angstrom]                   2.8517 (1.31)          19.9005 (2.22)           3.0171 (1.32)          0.2912 (1.38)           2.9802 (1.31)         0.0661 (1.92)     237;5097  331,449.5118 (0.76)      41124           1
test_parse_units[True-millisecond]                                 3.3211 (1.53)          67.1400 (7.48)           3.4672 (1.52)          0.3382 (1.60)           3.4450 (1.52)         0.0540 (1.57)     510;3665  288,418.0539 (0.66)     139902           1
test_parse_units[True-meter]                                       3.3462 (1.54)          36.2815 (4.04)           3.5087 (1.54)          0.3024 (1.43)           3.4878 (1.54)         0.0559 (1.62)     521;2605  285,008.4852 (0.65)     128963           1
test_parse_units[False-angstrom]                                   3.3481 (1.54)          11.9973 (1.34)           3.4806 (1.52)          0.2828 (1.34)           3.4589 (1.52)         0.0549 (1.59)      152;820  287,303.9396 (0.66)      37220           1
test_parse_units[True-second]                                      3.3528 (1.54)          43.9938 (4.90)           3.5133 (1.54)          0.3652 (1.73)           3.4887 (1.54)         0.0531 (1.54)     609;3936  284,634.4890 (0.65)     126293           1
test_parse_units[True-kilometer]                                   3.3574 (1.54)          30.3593 (3.38)           3.5216 (1.54)          0.3040 (1.44)           3.4990 (1.54)         0.0568 (1.65)     563;3650  283,962.9371 (0.65)     138494           1
test_parse_units[False-minute]                                     3.3583 (1.54)          20.1305 (2.24)           3.5215 (1.54)          0.3020 (1.43)           3.4999 (1.54)         0.0587 (1.70)      164;824  283,973.7945 (0.65)      36271           1
test_parse_units[False-meter]                                      3.3630 (1.55)          34.2485 (3.82)           3.5421 (1.55)          0.3578 (1.69)           3.5167 (1.55)         0.0633 (1.84)      262;873  282,319.0019 (0.65)      35097           1
test_parse_units[False-millisecond]                                3.3649 (1.55)           8.9752 (1.0)            3.5096 (1.54)          0.2842 (1.35)           3.4887 (1.54)         0.0615 (1.78)       38;152  284,930.1187 (0.65)       8682           1
test_parse_units[True-angstrom]                                    3.3658 (1.55)          53.8789 (6.00)           3.5698 (1.56)          0.3479 (1.65)           3.5409 (1.56)         0.0736 (2.14)     640;6539  280,125.9234 (0.64)     127842           1
test_parse_units[True-minute]                                      3.3723 (1.55)          20.0309 (2.23)           3.5467 (1.55)          0.3045 (1.44)           3.5232 (1.55)         0.0605 (1.76)     952;3738  281,949.7016 (0.64)     123207           1
test_parse_units[False-kilometer]                                  3.3760 (1.55)          10.9542 (1.22)           3.5109 (1.54)          0.2860 (1.35)           3.4897 (1.54)         0.0596 (1.73)       39;181  284,823.4403 (0.65)       9620           1
test_parse_units[False-second]                                     3.4180 (1.57)          19.7981 (2.21)           3.5901 (1.57)          0.3136 (1.48)           3.5642 (1.57)         0.0624 (1.81)     162;1516  278,544.9547 (0.64)      35290           1
test_op2[lt-keys3]                                                 4.3074 (1.98)          43.5645 (4.85)           4.5593 (1.99)          0.3997 (1.89)           4.5300 (2.00)         0.0866 (2.51)     412;1448  219,332.9096 (0.50)      48646           1
test_op2[lt-keys0]                                                 4.3111 (1.98)          21.1643 (2.36)           4.5954 (2.01)          0.3205 (1.52)           4.5709 (2.01)         0.0773 (2.24)     321;1242  217,610.0046 (0.50)      41432           1
test_op2[lt-keys7]                                                 4.8019 (2.21)          21.2314 (2.37)           5.0662 (2.22)          0.3440 (1.63)           5.0375 (2.22)         0.0848 (2.46)     559;1493  197,386.9200 (0.45)      51603           1
test_op2[lt-keys4]                                                 4.8140 (2.21)          21.6961 (2.42)           5.0672 (2.22)          0.3509 (1.66)           5.0273 (2.21)         0.0829 (2.41)     896;3130  197,346.9869 (0.45)      46693           1
test_op2[eq-keys0]                                                 4.9397 (2.27)          28.1315 (3.13)           5.2032 (2.28)          0.3842 (1.82)           5.1800 (2.28)         0.0875 (2.54)     337;1316  192,190.4774 (0.44)      48293           1
test_op2[eq-keys14]                                                4.9639 (2.28)          43.5384 (4.85)           5.2447 (2.29)          0.4010 (1.90)           5.2117 (2.30)         0.1024 (2.97)     410;1239  190,669.6718 (0.44)      59719           1
test_op2[eq-keys7]                                                 4.9742 (2.29)          32.6084 (3.63)           5.2173 (2.28)          0.3551 (1.68)           5.1893 (2.29)         0.0773 (2.24)     376;1709  191,670.6263 (0.44)      61263           1
test_op2[eq-keys11]                                                4.9826 (2.29)          22.1338 (2.47)           5.2276 (2.29)          0.3491 (1.65)           5.1958 (2.29)         0.0875 (2.54)     353;1524  191,291.2572 (0.44)      60168           1
test_op2[eq-keys16]                                                4.9826 (2.29)          65.9339 (7.35)           5.2492 (2.30)          0.4067 (1.93)           5.2238 (2.30)         0.0773 (2.24)     340;1868  190,505.6154 (0.44)      61242           1
test_op2[eq-keys31]                                                4.9844 (2.29)          21.5042 (2.40)           5.2173 (2.28)          0.3796 (1.80)           5.1698 (2.28)         0.0745 (2.16)    1072;4257  191,670.1854 (0.44)      56211           1
test_op2[eq-keys26]                                                4.9900 (2.29)          21.9354 (2.44)           5.2138 (2.28)          0.3521 (1.67)           5.1819 (2.28)         0.0754 (2.19)     579;1907  191,798.5544 (0.44)      59192           1
test_op2[eq-keys21]                                                4.9965 (2.30)          31.9481 (3.56)           5.2552 (2.30)          0.4009 (1.90)           5.2275 (2.30)         0.0848 (2.46)     344;1616  190,288.7392 (0.43)      58557           1
test_op2[eq-keys33]                                                4.9975 (2.30)          54.9508 (6.12)           5.2341 (2.29)          0.4071 (1.93)           5.2061 (2.29)         0.0792 (2.30)     312;1314  191,055.9494 (0.44)      54331           1
test_op2[eq-keys4]                                                 4.9975 (2.30)          35.9220 (4.00)           5.2105 (2.28)          0.3827 (1.81)           5.1800 (2.28)         0.0745 (2.16)     440;1530  191,920.7527 (0.44)      55036           1
test_op2[eq-keys2]                                                 5.0142 (2.30)          51.2870 (5.71)           5.2437 (2.29)          0.3843 (1.82)           5.2145 (2.30)         0.0782 (2.27)     368;1380  190,704.2679 (0.44)      57994           1
test_op2[eq-keys35]                                                5.0142 (2.30)          51.5478 (5.74)           5.2963 (2.32)          0.4587 (2.17)           5.2210 (2.30)         0.0922 (2.68)    1423;8863  188,810.8515 (0.43)      60640           1
test_op2[eq-keys9]                                                 5.0180 (2.31)          57.1273 (6.37)           5.2956 (2.32)          0.4420 (2.09)           5.2331 (2.30)         0.0922 (2.68)     440;6991  188,834.9805 (0.43)      57558           1
test_op2[eq-keys23]                                                5.0357 (2.31)          58.6677 (6.54)           5.3140 (2.32)          0.4716 (2.23)           5.2731 (2.32)         0.0754 (2.19)     697;2583  188,183.6072 (0.43)      58220           1
test_op2[eq-keys19]                                                5.0403 (2.32)          59.5534 (6.64)           5.2542 (2.30)          0.4108 (1.94)           5.2238 (2.30)         0.0717 (2.08)     381;1793  190,323.5915 (0.44)      62020           1
test_op2[eq-keys24]                                                5.0580 (2.32)          44.6998 (4.98)           5.2862 (2.31)          0.3939 (1.87)           5.2545 (2.31)         0.0745 (2.16)     527;1702  189,170.9498 (0.43)      55320           1
test_op2[eq-keys12]                                                5.0673 (2.33)          22.2456 (2.48)           5.2847 (2.31)          0.3683 (1.74)           5.2517 (2.31)         0.0792 (2.30)     614;1758  189,225.5264 (0.43)      57654           1
test_op2[eq-keys28]                                                5.2676 (2.42)          22.3545 (2.49)           5.5114 (2.41)          0.3869 (1.83)           5.4780 (2.41)         0.0736 (2.14)     629;1782  181,443.6827 (0.41)      59613           1
test_op1[neg-int_kilometer]                                        5.8562 (2.69)          64.4475 (7.18)           6.1137 (2.67)          0.4414 (2.09)           6.0834 (2.68)         0.0801 (2.32)      313;983  163,566.0985 (0.37)      51204           1
test_op1[neg-int_meter]                                            5.8655 (2.69)          33.8545 (3.77)           6.1188 (2.68)          0.4370 (2.07)           6.0750 (2.68)         0.0773 (2.24)     822;1960  163,432.0480 (0.37)      50742           1
test_op1[neg-float_meter]                                          5.8766 (2.70)          37.4774 (4.18)           6.1097 (2.67)          0.4103 (1.94)           6.0750 (2.68)         0.0754 (2.19)     539;1470  163,674.7303 (0.37)      54713           1
test_op1[neg-float_kilometer]                                      5.9158 (2.72)          31.3846 (3.50)           6.1236 (2.68)          0.3930 (1.86)           6.0890 (2.68)         0.0726 (2.11)     357;1500  163,302.1518 (0.37)      53760           1
test_op1[neg-complex_kilometer]                                    5.9698 (2.74)          15.0707 (1.68)           6.2070 (2.72)          0.3506 (1.66)           6.1784 (2.72)         0.0698 (2.03)     330;1350  161,108.6195 (0.37)      54167           1
test_op1[neg-complex_meter]                                        6.1002 (2.80)          38.5987 (4.30)           6.3812 (2.79)          0.4235 (2.01)           6.3432 (2.79)         0.0838 (2.43)     595;1609  156,710.6333 (0.36)      55030           1
test_getattr[True-minute]                                          6.4634 (2.97)          57.0789 (6.36)           6.7164 (2.94)          0.4363 (2.07)           6.6804 (2.94)         0.0838 (2.43)     598;1812  148,888.4848 (0.34)      73691           1
test_getattr[False-meter]                                          6.4680 (2.97)          30.7774 (3.43)           6.7483 (2.95)          0.4131 (1.96)           6.7139 (2.96)         0.0922 (2.68)      179;507  148,186.2222 (0.34)      22387           1
test_getattr[True-second]                                          6.4950 (2.98)          59.9772 (6.68)           6.7466 (2.95)          0.5200 (2.46)           6.6962 (2.95)         0.0848 (2.46)    1118;2854  148,222.9490 (0.34)      75077           1
test_getattr[False-minute]                                         6.5006 (2.99)          37.5388 (4.18)           6.8491 (3.00)          0.5329 (2.52)           6.7269 (2.96)         0.1155 (3.35)     911;5468  146,005.1052 (0.33)      27638           1
test_getattr[True-meter]                                           6.5183 (2.99)          52.5452 (5.85)           6.7672 (2.96)          0.4315 (2.04)           6.7307 (2.96)         0.0773 (2.24)     669;1660  147,771.0413 (0.34)      76795           1
test_getattr[False-angstrom]                                       6.5202 (3.00)          65.7728 (7.33)           6.8523 (3.00)          0.6755 (3.20)           6.7847 (2.99)         0.0913 (2.65)     389;1400  145,937.1682 (0.33)      22142           1
test_getattr[False-millisecond]                                    6.5211 (3.00)          14.5622 (1.62)           6.7570 (2.96)          0.3773 (1.79)           6.7223 (2.96)         0.0820 (2.38)       66;215  147,994.7956 (0.34)       8779           1
test_build_by_mul[int]                                             6.5286 (3.00)          39.2310 (4.37)           6.8237 (2.99)          0.4691 (2.22)           6.7754 (2.98)         0.0950 (2.76)     826;2638  146,548.5779 (0.33)      55753           1
test_base_units[False-angstrom/minute]                             6.5397 (3.00)          23.9769 (2.67)           6.7594 (2.96)          0.4153 (1.97)           6.7195 (2.96)         0.0745 (2.16)      238;576  147,942.9844 (0.34)      18203           1
test_getattr[True-kilometer]                                       6.5397 (3.00)          23.5066 (2.62)           6.8168 (2.98)          0.4215 (2.00)           6.7689 (2.98)         0.0941 (2.73)    1723;3434  146,695.9958 (0.34)      73258           1
test_getattr[False-second]                                         6.5416 (3.01)          24.5376 (2.73)           6.7842 (2.97)          0.4373 (2.07)           6.7437 (2.97)         0.0829 (2.41)      317;762  147,400.9271 (0.34)      27309           1
test_build_by_mul[float]                                           6.5556 (3.01)          17.0711 (1.90)           6.8282 (2.99)          0.3913 (1.85)           6.7940 (2.99)         0.0820 (2.38)     412;1309  146,450.7666 (0.33)      58166           1
test_getattr[True-angstrom]                                        6.5649 (3.02)          38.3593 (4.27)           6.8497 (3.00)          0.4611 (2.18)           6.8061 (3.00)         0.0894 (2.59)     840;2199  145,991.7357 (0.33)      71237           1
test_base_units[True-kilometer/second]                             6.5798 (3.02)          36.9316 (4.11)           6.8323 (2.99)          0.4336 (2.05)           6.7949 (2.99)         0.0810 (2.35)     730;1883  146,364.5535 (0.33)      76581           1
test_base_units[True-angstrom/minute]                              6.5817 (3.02)          42.8036 (4.77)           6.8356 (2.99)          0.4605 (2.18)           6.7921 (2.99)         0.0829 (2.41)    1093;2453  146,292.7516 (0.33)      81573           1
test_getattr[True-millisecond]                                     6.5994 (3.03)          65.7300 (7.32)           6.8756 (3.01)          0.4869 (2.31)           6.8285 (3.01)         0.0903 (2.62)     880;3249  145,442.5528 (0.33)      75653           1
test_base_units[False-kilometer/second]                            6.6003 (3.03)          17.4241 (1.94)           6.8009 (2.98)          0.4087 (1.93)           6.7633 (2.98)         0.0671 (1.95)       57;209  147,039.4055 (0.34)       7694           1
test_getattr[False-kilometer]                                      6.6152 (3.04)          17.6309 (1.96)           6.8447 (2.99)          0.4027 (1.91)           6.8070 (3.00)         0.0857 (2.49)       76;218  146,098.9990 (0.33)       8873           1
test_finding_meter_getattr                                         6.6608 (3.06)          23.8093 (2.65)           6.9133 (3.02)          0.4033 (1.91)           6.8750 (3.03)         0.0782 (2.27)     546;1545  144,649.0957 (0.33)      51872           1
test_base_units[angstrom/minute]                                   6.8042 (3.13)          17.7370 (1.98)           7.0504 (3.08)          0.4217 (2.00)           7.0138 (3.09)         0.0885 (2.57)        45;87  141,835.9257 (0.32)       5445           1
test_base_units[meter/second]                                      6.8285 (3.14)          17.7920 (1.98)           7.0295 (3.08)          0.4247 (2.01)           6.9914 (3.08)         0.0754 (2.19)       43;102  142,257.4829 (0.33)       5382           1
test_op1[neg-short_array_kilometer]                                6.9542 (3.20)          24.5385 (2.73)           7.2462 (3.17)          0.4771 (2.26)           7.1917 (3.17)         0.0866 (2.51)     791;1782  138,003.7225 (0.32)      37996           1
test_op1[neg-short_array_meter]                                    7.0268 (3.23)          60.8731 (6.78)           7.3994 (3.24)          0.6582 (3.12)           7.2541 (3.19)         0.1583 (4.59)     375;5619  135,146.9797 (0.31)      25430           1
test_op1[neg-mid_array_meter]                                      7.7449 (3.56)          32.5693 (3.63)           8.0742 (3.53)          0.5235 (2.48)           8.0215 (3.53)         0.1099 (3.19)     452;1121  123,851.0591 (0.28)      36123           1
test_op1[neg-mid_array_kilometer]                                  7.7784 (3.57)          58.6249 (6.53)           8.0797 (3.53)          0.5523 (2.62)           8.0271 (3.54)         0.0941 (2.73)     475;1408  123,766.5798 (0.28)      37048           1
test_base_units[True-angstrom]                                     8.1109 (3.73)          32.6131 (3.63)           8.4428 (3.69)          0.4624 (2.19)           8.3968 (3.70)         0.1062 (3.08)     793;1961  118,444.2240 (0.27)      68799           1
test_base_units[False-meter]                                       8.1509 (3.74)          28.2573 (3.15)           8.4806 (3.71)          0.4814 (2.28)           8.4303 (3.71)         0.1080 (3.14)      490;804  117,916.4988 (0.27)      31455           1
test_base_units[False-angstrom]                                    8.1798 (3.76)          21.3217 (2.38)           8.5047 (3.72)          0.4390 (2.08)           8.4657 (3.73)         0.0978 (2.84)      290;764  117,581.6983 (0.27)      32554           1
test_op2[eq-keys3]                                                 8.2217 (3.78)          32.2787 (3.60)           8.5471 (3.74)          0.5107 (2.42)           8.4890 (3.74)         0.0969 (2.81)     545;1002  116,998.7791 (0.27)      27929           1
test_base_units[True-meter]                                        8.2254 (3.78)          39.6911 (4.42)           8.5493 (3.74)          0.4601 (2.18)           8.5076 (3.75)         0.0978 (2.84)     607;1628  116,968.2983 (0.27)      68409           1
test_base_units[angstrom]                                          8.2552 (3.79)          19.0772 (2.13)           8.5431 (3.74)          0.4461 (2.11)           8.5020 (3.74)         0.1062 (3.08)       77;128  117,053.6784 (0.27)       8038           1
test_op2[eq-keys0]                                                 8.2990 (3.81)          18.2698 (2.04)           8.6058 (3.77)          0.4880 (2.31)           8.5523 (3.77)         0.1024 (2.97)      181;387  116,201.1528 (0.27)      12645           1
test_base_units[meter]                                             8.3493 (3.84)          19.1964 (2.14)           8.6386 (3.78)          0.4310 (2.04)           8.5961 (3.79)         0.0931 (2.70)      343;716  115,759.5233 (0.26)      37579           1
test_op2[eq-keys4]                                                 8.9156 (4.10)          20.3541 (2.27)           9.2256 (4.04)          0.4990 (2.36)           9.1689 (4.04)         0.0987 (2.86)      527;899  108,394.5328 (0.25)      26974           1
test_op2[eq-keys7]                                                 8.9230 (4.10)          41.2073 (4.59)           9.2456 (4.05)          0.5432 (2.57)           9.1875 (4.05)         0.1062 (3.08)     569;1015  108,159.6838 (0.25)      27158           1
test_convert_from_uc[True-key0]                                    9.5600 (4.39)          42.3677 (4.72)           9.9508 (4.35)          0.4894 (2.32)           9.9000 (4.36)         0.1341 (3.89)     673;1111  100,494.0985 (0.23)      58426           1
test_convert_from_uc[False-key0]                                   9.6820 (4.45)          19.3622 (2.16)           9.9978 (4.37)          0.4764 (2.26)           9.9484 (4.38)         0.1024 (2.97)      128;303  100,021.7057 (0.23)      12643           1
test_to_units_container_registry[True-kilometer/second]           12.9491 (5.95)          30.3769 (3.38)          13.4028 (5.86)          0.5821 (2.76)          13.3254 (5.87)         0.1499 (4.35)     781;1570   74,611.0852 (0.17)      45467           1
test_to_units_container_registry[False-angstrom/minute]           12.9705 (5.96)          35.1518 (3.92)          13.4926 (5.90)          0.6196 (2.93)          13.3999 (5.90)         0.1788 (5.19)     609;1281   74,114.7235 (0.17)      32230           1
test_to_units_container_detached[True-angstrom/minute]            12.9994 (5.97)          39.9221 (4.45)          13.4600 (5.89)          0.5889 (2.79)          13.3868 (5.90)         0.1518 (4.41)     706;1570   74,294.1445 (0.17)      45606           1
test_to_units_container_registry[True-angstrom/minute]            13.0944 (6.02)          47.7284 (5.32)          13.5931 (5.95)          0.6185 (2.93)          13.5200 (5.95)         0.1676 (4.86)     756;1075   73,566.7280 (0.17)      44636           1
test_to_units_container_detached[False-kilometer/second]          13.1205 (6.03)          47.4909 (5.29)          13.6526 (5.97)          0.9227 (4.37)          13.5154 (5.95)         0.1455 (4.22)      332;682   73,246.2301 (0.17)       9161           1
test_to_units_container_detached[True-kilometer/second]           13.1615 (6.05)          43.3419 (4.83)          13.6774 (5.98)          0.6381 (3.02)          13.6076 (5.99)         0.1490 (4.32)     752;1219   73,113.0938 (0.17)      44716           1
test_to_units_container_registry[False-kilometer/second]          13.2425 (6.08)          41.9971 (4.68)          13.7024 (5.99)          0.6334 (3.00)          13.6299 (6.00)         0.1648 (4.78)      135;209   72,979.7546 (0.17)       8909           1
test_to_units_container_detached[False-angstrom/minute]           13.2527 (6.09)          33.8722 (3.77)          13.7256 (6.01)          0.5887 (2.79)          13.6485 (6.01)         0.1714 (4.97)      438;660   72,856.3531 (0.17)      30935           1
test_convert_from_uc[True-key1]                                   13.2797 (6.10)          56.2379 (6.27)          13.6813 (5.99)          0.6461 (3.06)          13.6076 (5.99)         0.1257 (3.65)     972;1498   73,092.2394 (0.17)      51085           1
test_convert_from_uc[False-key1]                                  13.3412 (6.13)          22.7205 (2.53)          13.7114 (6.00)          0.5204 (2.46)          13.6467 (6.01)         0.1322 (3.84)      121;220   72,931.9082 (0.17)       8501           1
test_wrapper[float_meter]                                         13.4502 (6.18)          32.0803 (3.57)          13.9607 (6.11)          0.7709 (3.65)          13.8385 (6.09)         0.1844 (5.35)      521;746   71,629.5503 (0.16)      13521           1
test_wrapper[float_kilometer]                                     13.5088 (6.21)          34.7253 (3.87)          13.9287 (6.09)          0.6160 (2.92)          13.8516 (6.10)         0.1397 (4.05)      224;383   71,794.3909 (0.16)      11222           1
test_wrapper[int_kilometer]                                       13.5880 (6.24)          23.5271 (2.62)          14.0292 (6.14)          0.5795 (2.74)          13.9605 (6.15)         0.1444 (4.19)       97;162   71,279.8597 (0.16)       6580           1
test_wrapper[complex_kilometer]                                   13.5908 (6.24)          37.3852 (4.17)          14.0760 (6.16)          0.7401 (3.50)          13.9670 (6.15)         0.1499 (4.35)      408;634   71,042.7121 (0.16)      11247           1
test_wrapper[complex_meter]                                       13.6467 (6.27)          36.3197 (4.05)          14.2318 (6.23)          0.7604 (3.60)          14.0797 (6.20)         0.1751 (5.08)     926;1325   70,265.2393 (0.16)      13390           1
test_wrapper[int_meter]                                           13.6476 (6.27)          30.7681 (3.43)          14.1395 (6.19)          0.6286 (2.98)          14.0509 (6.19)         0.1695 (4.92)      240;389   70,723.7282 (0.16)      11788           1
test_parse_unit_name[False-second]                                14.7922 (6.80)          44.4707 (4.95)          15.3340 (6.71)          0.7231 (3.42)          15.2364 (6.71)         0.1434 (4.16)    1310;1681   65,214.3974 (0.15)      41562           1
test_parse_unit_name[True-second]                                 14.8602 (6.83)          44.9335 (5.01)          15.2929 (6.69)          0.6458 (3.06)          15.2150 (6.70)         0.1397 (4.05)     997;1399   65,389.6612 (0.15)      53333           1
test_op2[sub-keys11]                                              14.9757 (6.88)          26.5501 (2.96)          15.4853 (6.77)          0.6106 (2.89)          15.4059 (6.79)         0.1611 (4.68)      254;394   64,577.5155 (0.15)      15664           1
test_op2[sub-keys9]                                               15.0511 (6.92)          25.7753 (2.87)          15.5035 (6.78)          0.5993 (2.84)          15.4106 (6.79)         0.1648 (4.78)      274;773   64,501.5290 (0.15)      15825           1
test_op2[sub-keys4]                                               15.0558 (6.92)          57.6545 (6.42)          15.5523 (6.80)          0.7137 (3.38)          15.4637 (6.81)         0.1593 (4.62)      428;706   64,299.0172 (0.15)      20004           1
test_op2[sub-keys21]                                              15.0586 (6.92)          29.0582 (3.24)          15.5679 (6.81)          0.6299 (2.98)          15.4842 (6.82)         0.1751 (5.08)      262;518   64,234.6438 (0.15)      16251           1
test_op2[sub-keys7]                                               15.0641 (6.92)          32.5982 (3.63)          15.5156 (6.79)          0.6220 (2.94)          15.4348 (6.80)         0.1425 (4.14)      331;524   64,451.4533 (0.15)      16395           1
test_op2[sub-keys26]                                              15.0669 (6.92)         260.2981 (29.00)         15.7588 (6.89)          1.9356 (9.16)          15.5121 (6.83)         0.2384 (6.92)     320;3423   63,456.4427 (0.15)      19709           1
test_op2[sub-keys14]                                              15.0735 (6.93)          25.1196 (2.80)          15.5108 (6.79)          0.6007 (2.84)          15.4357 (6.80)         0.1462 (4.24)      346;586   64,471.2287 (0.15)      22021           1
test_op2[sub-keys35]                                              15.0874 (6.93)          26.5520 (2.96)          15.5618 (6.81)          0.6264 (2.97)          15.4814 (6.82)         0.1490 (4.32)      265;449   64,259.7674 (0.15)      16074           1
test_op2[sub-keys28]                                              15.0949 (6.94)          45.0127 (5.02)          15.6097 (6.83)          0.7871 (3.73)          15.4870 (6.82)         0.1816 (5.27)     689;1018   64,062.6978 (0.15)      21269           1
test_op2[sub-keys19]                                              15.0958 (6.94)          33.1504 (3.69)          15.5744 (6.81)          0.6726 (3.18)          15.4832 (6.82)         0.1621 (4.70)      321;532   64,207.9596 (0.15)      16475           1
test_op2[add-keys0]                                               15.1023 (6.94)          48.6318 (5.42)          15.5956 (6.82)          0.7219 (3.42)          15.4953 (6.82)         0.1583 (4.59)      437;851   64,120.7761 (0.15)      19582           1
test_op2[add-keys7]                                               15.1061 (6.94)          36.8282 (4.10)          15.6182 (6.83)          0.6430 (3.04)          15.5326 (6.84)         0.1816 (5.27)      324;550   64,027.7221 (0.15)      15945           1
test_op2[sub-keys12]                                              15.1079 (6.94)          56.1187 (6.25)          15.5895 (6.82)          0.6836 (3.24)          15.5047 (6.83)         0.1711 (4.97)      318;607   64,145.8592 (0.15)      16923           1
test_op2[sub-keys2]                                               15.1079 (6.94)          33.8517 (3.77)          15.5534 (6.80)          0.6686 (3.17)          15.4590 (6.81)         0.1527 (4.43)      526;696   64,294.7852 (0.15)      20137           1
test_op2[sub-keys16]                                              15.1191 (6.95)         118.7809 (13.23)         15.6432 (6.84)          1.0398 (4.92)          15.5503 (6.85)         0.1574 (4.57)      380;678   63,925.4648 (0.15)      19801           1
test_op2[sub-keys24]                                              15.1237 (6.95)          25.3646 (2.83)          15.5511 (6.80)          0.6123 (2.90)          15.4683 (6.81)         0.1546 (4.49)      323;630   64,304.1654 (0.15)      20038           1
test_op2[sub-keys0]                                               15.1256 (6.95)          47.4416 (5.29)          15.6152 (6.83)          0.7159 (3.39)          15.5242 (6.84)         0.1602 (4.65)      467;679   64,040.3166 (0.15)      21563           1
test_op2[add-keys28]                                              15.1563 (6.96)          32.9548 (3.67)          15.6400 (6.84)          0.6309 (2.99)          15.5540 (6.85)         0.1574 (4.57)      414;829   63,938.5632 (0.15)      21707           1
test_op2[sub-keys31]                                              15.1573 (6.96)          25.9280 (2.89)          15.5832 (6.82)          0.6130 (2.90)          15.4991 (6.83)         0.1462 (4.24)      255;600   64,171.8567 (0.15)      15824           1
test_op2[add-keys2]                                               15.1787 (6.97)          43.0541 (4.80)          15.6610 (6.85)          0.6650 (3.15)          15.5754 (6.86)         0.1593 (4.62)      378;709   63,852.9705 (0.15)      19167           1
test_op2[add-keys4]                                               15.1824 (6.98)          25.9429 (2.89)          15.6871 (6.86)          0.6112 (2.89)          15.6006 (6.87)         0.1926 (5.59)      315;597   63,746.6975 (0.15)      19287           1
test_op2[sub-keys23]                                              15.1927 (6.98)         123.3015 (13.74)         15.7357 (6.88)          1.1462 (5.43)          15.6397 (6.89)         0.1611 (4.68)      257;499   63,549.6680 (0.15)      15798           1
test_op2[add-keys21]                                              15.1992 (6.98)          25.1494 (2.80)          15.6413 (6.84)          0.6000 (2.84)          15.5624 (6.85)         0.1453 (4.22)      261;448   63,933.3828 (0.15)      16102           1
test_op2[add-keys9]                                               15.2299 (7.00)          37.9775 (4.23)          15.7215 (6.88)          0.7070 (3.35)          15.6267 (6.88)         0.1425 (4.14)      352;667   63,607.3260 (0.15)      15488           1
test_op2[add-keys26]                                              15.2327 (7.00)          47.4369 (5.29)          15.7354 (6.88)          0.6943 (3.29)          15.6481 (6.89)         0.1709 (4.96)      388;629   63,550.7748 (0.15)      20024           1
test_op2[add-keys35]                                              15.2476 (7.01)          33.0601 (3.68)          15.7416 (6.89)          0.6327 (3.00)          15.6555 (6.89)         0.1565 (4.54)      328;568   63,525.7842 (0.15)      16361           1
test_op2[add-keys31]                                              15.2523 (7.01)          24.8579 (2.77)          15.7025 (6.87)          0.5866 (2.78)          15.6248 (6.88)         0.1416 (4.11)      253;536   63,684.1699 (0.15)      15595           1
test_op2[add-keys19]                                              15.2672 (7.01)          39.3940 (4.39)          15.7121 (6.87)          0.6359 (3.01)          15.6313 (6.88)         0.1388 (4.03)      259;491   63,645.1440 (0.15)      16167           1
test_op2[add-keys11]                                              15.3072 (7.03)          39.9286 (4.45)          15.8340 (6.93)          0.6674 (3.16)          15.7524 (6.94)         0.1648 (4.78)      265;420   63,155.1071 (0.14)      15659           1
test_op2[add-keys12]                                              15.3100 (7.03)          38.5391 (4.29)          15.7837 (6.91)          0.7387 (3.50)          15.6732 (6.90)         0.1481 (4.30)     686;1006   63,356.5499 (0.14)      20320           1
test_op2[add-keys16]                                              15.3324 (7.04)          29.7716 (3.32)          15.8029 (6.91)          0.6488 (3.07)          15.7142 (6.92)         0.1518 (4.41)      390;576   63,279.4828 (0.14)      18024           1
test_op2[add-keys33]                                              15.3482 (7.05)          48.4679 (5.40)          15.8531 (6.94)          0.6926 (3.28)          15.7505 (6.94)         0.1593 (4.62)      372;824   63,079.2846 (0.14)      15202           1
test_op2[add-keys23]                                              15.3603 (7.06)          34.1106 (3.80)          15.8470 (6.93)          0.6874 (3.25)          15.7561 (6.94)         0.1667 (4.84)      317;488   63,103.4182 (0.14)      15562           1
test_op2[sub-keys33]                                              15.4776 (7.11)          86.7108 (9.66)          16.0675 (7.03)          0.9973 (4.72)          15.9526 (7.03)         0.2058 (5.97)      366;572   62,237.3469 (0.14)      15118           1
test_op2[add-keys24]                                              15.4963 (7.12)          43.9659 (4.90)          16.0335 (7.01)          0.6474 (3.06)          15.9461 (7.02)         0.2068 (6.00)      338;461   62,369.3477 (0.14)      20420           1
test_op2[add-keys14]                                              15.7086 (7.22)          37.8247 (4.21)          16.2069 (7.09)          0.6355 (3.01)          16.1240 (7.10)         0.1583 (4.59)      404;730   61,702.0189 (0.14)      20872           1
test_parse_unit_name[True-angstrom]                               16.2832 (7.48)          49.4914 (5.51)          16.7242 (7.32)          0.6579 (3.11)          16.6409 (7.33)         0.1378 (4.00)     927;1335   59,793.5481 (0.14)      48612           1
test_parse_unit_name[True-meter]                                  16.3112 (7.49)          69.8240 (7.78)          16.8109 (7.35)          0.7684 (3.64)          16.6679 (7.34)         0.1453 (4.22)    3352;3590   59,485.3079 (0.14)      48595           1
test_parse_unit_name[False-meter]                                 16.3466 (7.51)         660.2118 (73.56)         16.8781 (7.38)          3.3377 (15.80)         16.7657 (7.38)         0.1369 (3.97)     671;1402   59,248.5163 (0.14)      38823           1
test_parse_unit_name[False-minute]                                16.3568 (7.52)          43.1128 (4.80)          16.8372 (7.37)          0.7850 (3.72)          16.7144 (7.36)         0.1322 (3.84)    1802;2149   59,392.3890 (0.14)      39276           1
test_parse_unit_name[False-angstrom]                              16.3829 (7.53)          42.9330 (4.78)          16.8226 (7.36)          0.7244 (3.43)          16.7219 (7.36)         0.1388 (4.03)    1101;1417   59,443.8801 (0.14)      38677           1
test_op2[sub-keys3]                                               16.4025 (7.54)          58.4247 (6.51)          16.9002 (7.39)          0.7449 (3.53)          16.8076 (7.40)         0.1546 (4.49)      244;551   59,170.8071 (0.14)      14024           1
test_parse_unit_name[True-minute]                                 16.4313 (7.55)          55.3243 (6.16)          16.8822 (7.39)          0.6732 (3.19)          16.7964 (7.40)         0.1276 (3.70)    1011;1400   59,234.1459 (0.14)      49151           1
test_op2[add0-keys0]                                              16.4919 (7.58)          75.0199 (8.36)          17.0122 (7.44)          0.9063 (4.29)          16.9016 (7.44)         0.1779 (5.16)      420;689   58,781.2995 (0.13)      15453           1
test_op2[sub-keys0]                                               16.5952 (7.62)          41.7409 (4.65)          17.0347 (7.45)          0.6695 (3.17)          16.9454 (7.46)         0.1444 (4.19)      293;638   58,703.8460 (0.13)      16694           1
test_op2[add0-keys3]                                              16.6232 (7.64)          38.7887 (4.32)          17.1129 (7.49)          0.7311 (3.46)          17.0153 (7.49)         0.2030 (5.89)      300;404   58,435.5495 (0.13)      13791           1
test_op2[eq-keys27]                                               17.1922 (7.90)          56.0200 (6.24)          17.7454 (7.76)          0.8106 (3.84)          17.6309 (7.76)         0.2198 (6.38)      241;363   56,352.6564 (0.13)       9760           1
test_op2[eq-keys29]                                               17.2323 (7.92)          66.2236 (7.38)          17.8315 (7.80)          0.8593 (4.07)          17.7268 (7.81)         0.2021 (5.86)      223;356   56,080.4595 (0.13)      10023           1
test_op2[eq-keys34]                                               17.2425 (7.92)          28.5143 (3.18)          17.7759 (7.78)          0.6841 (3.24)          17.6765 (7.79)         0.2040 (5.92)      196;332   56,255.9413 (0.13)       9965           1
test_op2[eq-keys20]                                               17.2500 (7.93)          43.1240 (4.80)          17.8320 (7.80)          0.7535 (3.57)          17.7333 (7.81)         0.2552 (7.41)      232;272   56,078.8183 (0.13)       9667           1
test_op2[eq-keys22]                                               17.2630 (7.93)          35.6082 (3.97)          17.8663 (7.82)          0.7853 (3.72)          17.7426 (7.81)         0.2012 (5.84)      344;431   55,971.1793 (0.13)       9946           1
test_op2[eq-keys3]                                                17.3012 (7.95)          35.1947 (3.92)          17.9275 (7.84)          0.8518 (4.03)          17.6923 (7.79)         0.2095 (6.08)    1276;1334   55,780.3540 (0.13)       9997           1
test_op2[eq-keys25]                                               17.3077 (7.95)          39.4201 (4.39)          17.8563 (7.81)          0.7546 (3.57)          17.7426 (7.81)         0.1732 (5.03)      241;436   56,002.7714 (0.13)       9445           1
test_op2[eq-keys13]                                               17.3142 (7.96)          38.9433 (4.34)          17.8657 (7.82)          0.7799 (3.69)          17.6886 (7.79)         0.1891 (5.49)      886;978   55,973.2543 (0.13)       9778           1
test_op2[eq-keys8]                                                17.3822 (7.99)          51.5375 (5.74)          18.0002 (7.88)          0.9575 (4.53)          17.8078 (7.84)         0.2002 (5.81)      753;977   55,555.0848 (0.13)      10097           1
test_op2[eq-keys15]                                               17.4157 (8.00)          27.3362 (3.05)          17.9220 (7.84)          0.6687 (3.17)          17.8274 (7.85)         0.1583 (4.59)      189;386   55,797.2955 (0.13)      10008           1
test_op2[eq-keys17]                                               17.4278 (8.01)          43.7340 (4.87)          17.9403 (7.85)          0.7245 (3.43)          17.8432 (7.86)         0.1648 (4.78)      192;400   55,740.3516 (0.13)      10248           1
test_op2[eq-keys5]                                                17.4316 (8.01)          39.3698 (4.39)          17.9919 (7.87)          0.7796 (3.69)          17.8693 (7.87)         0.1714 (4.97)      338;566   55,580.4957 (0.13)      10092           1
test_op2[eq-keys10]                                               17.4390 (8.01)          55.4025 (6.17)          18.0839 (7.91)          1.0573 (5.01)          17.8907 (7.88)         0.1909 (5.54)      510;641   55,297.9429 (0.13)       9356           1
test_op2[eq-keys18]                                               17.4455 (8.02)          61.6768 (6.87)          17.9336 (7.85)          0.8555 (4.05)          17.8199 (7.85)         0.1686 (4.89)      246;395   55,761.3248 (0.13)      10464           1
test_op2[eq-keys32]                                               17.4493 (8.02)          39.1454 (4.36)          18.0059 (7.88)          0.8202 (3.88)          17.8777 (7.87)         0.1853 (5.38)      258;411   55,537.2970 (0.13)       7797           1
test_op2[eq-keys1]                                                17.5405 (8.06)          39.4406 (4.39)          18.0785 (7.91)          0.7805 (3.70)          17.9647 (7.91)         0.2021 (5.86)      274;425   55,314.1816 (0.13)       9388           1
test_op2[sub-keys4]                                               17.6439 (8.11)          48.6383 (5.42)          18.2659 (7.99)          0.9252 (4.38)          18.1030 (7.97)         0.2179 (6.32)      606;883   54,746.8659 (0.13)      16573           1
test_parse_unit_name[False-kilometer]                             17.6439 (8.11)          52.2733 (5.82)          18.1183 (7.93)          0.6743 (3.19)          18.0257 (7.94)         0.1350 (3.92)     818;1109   55,192.7555 (0.13)      35952           1
test_parse_unit_name[True-kilometer]                              17.6495 (8.11)          64.6971 (7.21)          18.1221 (7.93)          0.8134 (3.85)          18.0015 (7.93)         0.1406 (4.08)    1696;1976   55,181.3892 (0.13)      45084           1
test_op2[mul-keys9]                                               17.7072 (8.14)          66.8243 (7.45)          18.2945 (8.00)          0.8480 (4.01)          18.1431 (7.99)         0.1760 (5.11)    1474;1760   54,661.1702 (0.12)      24914           1
test_op2[mul-keys16]                                              17.7082 (8.14)          45.9179 (5.12)          18.2388 (7.98)          0.7349 (3.48)          18.1217 (7.98)         0.1872 (5.43)     613;1037   54,828.1448 (0.13)      24116           1
test_op2[eq-keys6]                                                17.7212 (8.14)          64.0061 (7.13)          18.5992 (8.14)          1.0214 (4.84)          18.2455 (8.04)         1.1073 (32.14)     454;197   53,765.6641 (0.12)      10127           1
test_op2[mul-keys7]                                               17.7342 (8.15)          28.4743 (3.17)          18.3010 (8.01)          0.6660 (3.15)          18.2064 (8.02)         0.1770 (5.14)      459;877   54,641.9073 (0.12)      24272           1
test_op2[sub-keys7]                                               17.7575 (8.16)          52.7380 (5.88)          18.3983 (8.05)          0.7508 (3.55)          18.2921 (8.06)         0.2151 (6.24)      258;448   54,352.7907 (0.12)      13727           1
test_parse_unit_name[True-millisecond]                            17.7613 (8.16)          86.4984 (9.64)          18.2460 (7.98)          0.8968 (4.25)          18.1133 (7.98)         0.1406 (4.08)    2025;2411   54,806.6642 (0.13)      44491           1
test_op2[mul-keys11]                                              17.7771 (8.17)          65.4655 (7.29)          18.4204 (8.06)          0.8660 (4.10)          18.2912 (8.06)         0.1816 (5.27)     842;1161   54,287.6297 (0.12)      23610           1
test_op2[mul-keys4]                                               17.7855 (8.17)          79.6169 (8.87)          18.3926 (8.05)          0.8609 (4.08)          18.2716 (8.05)         0.2049 (5.95)     833;1053   54,369.5822 (0.12)      24420           1
test_parse_unit_name[False-millisecond]                           17.8032 (8.18)          51.0616 (5.69)          18.3167 (8.01)          0.8076 (3.82)          18.1589 (8.00)         0.1444 (4.19)    2491;2715   54,594.9062 (0.12)      35301           1
test_op2[mul-keys12]                                              17.8088 (8.18)          63.6512 (7.09)          18.3702 (8.04)          0.7349 (3.48)          18.2735 (8.05)         0.1993 (5.78)      499;731   54,435.9263 (0.12)      24341           1
test_op2[mul-keys2]                                               17.8199 (8.19)         221.1109 (24.64)         18.3541 (8.03)          1.4958 (7.08)          18.2400 (8.03)         0.1816 (5.27)      509;908   54,483.8026 (0.12)      24493           1
test_op2[mul-keys19]                                              17.8330 (8.19)          65.9926 (7.35)          18.5680 (8.12)          1.0549 (4.99)          18.3694 (8.09)         0.2636 (7.65)    1204;1759   53,856.0545 (0.12)      23637           1
test_op2[mul-keys21]                                              17.8451 (8.20)          62.7972 (7.00)          18.4722 (8.08)          0.8264 (3.91)          18.3620 (8.09)         0.2002 (5.81)      597;872   54,135.3711 (0.12)      24040           1
test_op2[mul-keys24]                                              17.8488 (8.20)          47.8150 (5.33)          18.5062 (8.10)          0.8843 (4.19)          18.3592 (8.09)         0.2524 (7.32)    1091;1207   54,035.9929 (0.12)      23891           1
test_op2[mul-keys31]                                              17.8553 (8.20)          52.7492 (5.88)          18.4718 (8.08)          0.7250 (3.43)          18.3666 (8.09)         0.1974 (5.73)      543;923   54,136.6141 (0.12)      23717           1
test_op2[mul-keys33]                                              17.8562 (8.20)          67.7463 (7.55)          18.5110 (8.10)          0.9098 (4.31)          18.3852 (8.10)         0.2328 (6.76)      710;975   54,021.8730 (0.12)      23905           1
test_op2[add0-keys4]                                              17.8628 (8.21)          48.0087 (5.35)          18.3636 (8.03)          0.7944 (3.76)          18.2455 (8.04)         0.1742 (5.05)      419;841   54,455.6420 (0.12)      16931           1
test_op2[mul-keys26]                                              17.9047 (8.23)          43.2236 (4.82)          18.5702 (8.12)          0.9047 (4.28)          18.4225 (8.11)         0.1881 (5.46)    1262;1526   53,849.7718 (0.12)      24865           1
test_op2[mul-keys0]                                               17.9447 (8.24)          92.0612 (10.26)         18.5709 (8.12)          0.9724 (4.60)          18.4365 (8.12)         0.2095 (6.08)     840;1109   53,847.7410 (0.12)      23797           1
test_op2[mul-keys30]                                              17.9671 (8.26)          41.4262 (4.62)          18.5835 (8.13)          0.7239 (3.43)          18.4830 (8.14)         0.1984 (5.76)      575;919   53,811.1651 (0.12)      24588           1
test_op2[mul-keys35]                                              17.9689 (8.26)          59.2712 (6.60)          18.6570 (8.16)          0.8042 (3.81)          18.5473 (8.17)         0.2012 (5.84)      663;973   53,599.2142 (0.12)      23829           1
test_op2[mul-keys8]                                               17.9857 (8.26)          59.0943 (6.58)          18.6075 (8.14)          0.7430 (3.52)          18.5054 (8.15)         0.2598 (7.54)      525;682   53,741.7336 (0.12)      24357           1
test_op2[mul-keys23]                                              17.9932 (8.27)          94.9409 (10.58)         18.5795 (8.13)          0.8778 (4.16)          18.4765 (8.14)         0.1881 (5.46)      543;760   53,822.8178 (0.12)      24146           1
test_op2[eq-keys30]                                               17.9959 (8.27)          35.7674 (3.99)          18.5205 (8.10)          0.7092 (3.36)          18.4160 (8.11)         0.1863 (5.41)      245;396   53,994.2810 (0.12)       9848           1
test_op2[mul-keys5]                                               18.0015 (8.27)          42.7449 (4.76)          18.6201 (8.15)          0.7009 (3.32)          18.5231 (8.16)         0.1797 (5.22)      438;738   53,705.3179 (0.12)      22743           1
test_op2[mul-keys25]                                              18.0705 (8.30)          74.8336 (8.34)          18.7098 (8.19)          1.0577 (5.01)          18.5333 (8.16)         0.2282 (6.62)    1116;1593   53,447.9207 (0.12)      23383           1
test_op2[add0-keys7]                                              18.0714 (8.30)          38.9917 (4.34)          18.7232 (8.19)          0.8165 (3.87)          18.6013 (8.19)         0.1732 (5.03)      358;758   53,409.6715 (0.12)      13174           1
test_op2[mul-keys34]                                              18.0881 (8.31)          41.8033 (4.66)          18.6985 (8.18)          0.7055 (3.34)          18.6022 (8.19)         0.1993 (5.78)      440;697   53,480.1424 (0.12)      19810           1
test_op2[mul-keys18]                                              18.1040 (8.32)          43.8858 (4.89)          18.7460 (8.20)          0.9188 (4.35)          18.5892 (8.19)         0.2068 (6.00)    1219;1375   53,344.8509 (0.12)      23335           1
test_op2[mul-keys1]                                               18.1571 (8.34)          35.9640 (4.01)          18.7399 (8.20)          0.7066 (3.35)          18.6330 (8.21)         0.2123 (6.16)      583;789   53,361.9372 (0.12)      24721           1
test_op2[mul-keys28]                                              18.1617 (8.34)          44.1140 (4.92)          18.8511 (8.25)          0.9030 (4.28)          18.6963 (8.23)         0.2123 (6.16)    1155;1462   53,047.3369 (0.12)      24676           1
test_op2[mul-keys3]                                               18.1617 (8.34)          40.2359 (4.48)          18.8748 (8.26)          0.8241 (3.90)          18.7457 (8.26)         0.1993 (5.78)     865;1093   52,980.8254 (0.12)      23900           1
test_op2[mul-keys10]                                              18.1654 (8.35)          65.9488 (7.35)          18.7556 (8.21)          0.8186 (3.88)          18.6460 (8.21)         0.2049 (5.95)      564;816   53,317.5073 (0.12)      23721           1
test_op2[mul-keys20]                                              18.1710 (8.35)          43.2478 (4.82)          18.8422 (8.24)          0.8562 (4.05)          18.7112 (8.24)         0.2212 (6.42)    1022;1181   53,072.3270 (0.12)      25192           1
test_op2[mul-keys22]                                              18.1729 (8.35)          58.0642 (6.47)          18.7631 (8.21)          0.7846 (3.71)          18.6404 (8.21)         0.2123 (6.16)     575;1042   53,296.1705 (0.12)      23299           1
test_op2[mul-keys32]                                              18.2325 (8.38)          52.5536 (5.86)          18.9186 (8.28)          0.7382 (3.50)          18.8220 (8.29)         0.1965 (5.70)      561;790   52,858.0777 (0.12)      24061           1
test_op2[mul-keys15]                                              18.2437 (8.38)          79.9252 (8.91)          18.8264 (8.24)          0.8225 (3.89)          18.7112 (8.24)         0.1807 (5.24)     617;1014   53,116.8039 (0.12)      24199           1
test_op2[mul-keys17]                                              18.2660 (8.39)          71.3356 (7.95)          18.9485 (8.29)          1.0210 (4.83)          18.7783 (8.27)         0.2235 (6.49)    1234;1576   52,774.6891 (0.12)      24505           1
test_op2[mul-keys6]                                               18.3275 (8.42)          51.9594 (5.79)          18.9541 (8.29)          0.7972 (3.77)          18.8332 (8.29)         0.1946 (5.65)      572;826   52,758.9418 (0.12)      18377           1
test_op2[mul-keys29]                                              18.3620 (8.44)          59.7890 (6.66)          18.9647 (8.30)          0.8558 (4.05)          18.8500 (8.30)         0.1891 (5.49)      616;966   52,729.5446 (0.12)      24740           1
test_op2[mul-keys13]                                              18.3964 (8.45)          83.2984 (9.28)          19.0977 (8.36)          0.9773 (4.63)          18.8788 (8.31)         0.2058 (5.97)    2234;2720   52,362.2626 (0.12)      23639           1
test_op2[mul-keys14]                                              18.4104 (8.46)          45.9654 (5.12)          19.0642 (8.34)          0.7549 (3.57)          18.9580 (8.35)         0.2012 (5.84)      603;875   52,454.2440 (0.12)      23587           1
test_op2[mul-keys27]                                              18.4420 (8.47)          70.8541 (7.89)          19.2521 (8.42)          1.0556 (5.00)          19.0577 (8.39)         0.2077 (6.03)    1637;1999   51,942.3340 (0.12)      23624           1
test_parse_unit_name[False-ms]                                    18.6143 (8.55)          61.3937 (6.84)          19.1276 (8.37)          0.7902 (3.74)          19.0185 (8.38)         0.1416 (4.11)     996;1301   52,280.4084 (0.12)      33889           1
test_parse_unit_name[True-ms]                                     18.6199 (8.55)          54.0102 (6.02)          19.1711 (8.39)          0.7813 (3.70)          19.0586 (8.39)         0.1481 (4.30)    1284;1696   52,161.8688 (0.12)      42863           1
test_op2[truediv-keys16]                                          18.7298 (8.61)          77.3855 (8.62)          19.2863 (8.44)          0.8329 (3.94)          19.1778 (8.45)         0.1956 (5.68)      559;818   51,850.3212 (0.12)      23134           1
test_op2[truediv-keys21]                                          18.8518 (8.66)          36.5833 (4.08)          19.4267 (8.50)          0.7287 (3.45)          19.3128 (8.51)         0.1853 (5.38)     562;1009   51,475.4360 (0.12)      22791           1
test_op2[truediv-keys23]                                          18.9561 (8.71)          36.4417 (4.06)          19.5631 (8.56)          0.7261 (3.44)          19.4535 (8.57)         0.1956 (5.68)      601;872   51,116.6078 (0.12)      22724           1
test_op2[truediv-keys26]                                          18.9608 (8.71)          58.7292 (6.54)          19.5451 (8.55)          0.8483 (4.02)          19.4283 (8.56)         0.1853 (5.38)      611;957   51,163.7266 (0.12)      23081           1
test_op2[truediv-keys27]                                          19.0092 (8.73)          41.3628 (4.61)          19.6891 (8.61)          0.7180 (3.40)          19.5801 (8.62)         0.2030 (5.89)      526;900   50,789.4719 (0.12)      22818           1
test_op2[truediv-keys35]                                          19.0763 (8.76)          50.3073 (5.61)          19.6476 (8.60)          0.7238 (3.43)          19.5410 (8.61)         0.1965 (5.70)      463;860   50,896.8161 (0.12)      22647           1
test_op2[truediv-keys17]                                          19.0921 (8.77)          39.5123 (4.40)          19.7618 (8.65)          0.7762 (3.67)          19.6435 (8.65)         0.1993 (5.78)      659;864   50,602.6995 (0.12)      20885           1
test_op2[truediv-keys15]                                          19.1396 (8.79)          48.3384 (5.39)          19.7476 (8.64)          0.7489 (3.55)          19.6379 (8.65)         0.1993 (5.78)      563;864   50,638.9693 (0.12)      23367           1
test_op2[truediv-keys20]                                          19.2020 (8.82)          53.6321 (5.98)          19.8911 (8.70)          0.8031 (3.80)          19.7729 (8.71)         0.2384 (6.92)      649;775   50,273.7717 (0.11)      22903           1
test_op2[truediv-keys34]                                          19.2132 (8.83)          45.6050 (5.08)          19.7923 (8.66)          0.7418 (3.51)          19.6854 (8.67)         0.1853 (5.38)      504;807   50,524.6354 (0.12)      22570           1
test_op2[truediv-keys29]                                          19.2467 (8.84)          57.1534 (6.37)          19.9154 (8.71)          0.7485 (3.54)          19.8092 (8.72)         0.2030 (5.89)      547;773   50,212.5008 (0.11)      22943           1
test_op2[truediv-keys28]                                          19.2868 (8.86)          41.3684 (4.61)          19.8569 (8.69)          0.7966 (3.77)          19.7291 (8.69)         0.1835 (5.32)      668;961   50,360.2370 (0.12)      19424           1
test_op2[truediv-keys33]                                          19.3873 (8.91)          53.6386 (5.98)          20.0464 (8.77)          0.8978 (4.25)          19.9033 (8.77)         0.1984 (5.76)     886;1087   49,884.3906 (0.11)      22110           1
test_op2[truediv-keys9]                                           19.4032 (8.91)          42.3007 (4.71)          19.9769 (8.74)          0.7059 (3.34)          19.8781 (8.75)         0.1863 (5.41)      448;704   50,057.7979 (0.11)      21542           1
test_op2[truediv-keys2]                                           19.4097 (8.92)          30.0733 (3.35)          20.0017 (8.75)          0.7267 (3.44)          19.8949 (8.76)         0.2075 (6.02)      447;727   49,995.7586 (0.11)      21427           1
test_op2[truediv-keys14]                                          19.4451 (8.93)          66.0261 (7.36)          20.1214 (8.80)          0.8310 (3.93)          20.0067 (8.81)         0.2393 (6.95)      601;783   49,698.4322 (0.11)      22297           1
test_op2[truediv-keys0]                                           19.4842 (8.95)          43.2367 (4.82)          20.1104 (8.80)          0.8674 (4.11)          19.9564 (8.79)         0.2142 (6.22)     748;1498   49,725.4218 (0.11)      20140           1
test_op2[truediv-keys8]                                           19.4944 (8.96)          57.9981 (6.46)          20.2086 (8.84)          0.9033 (4.28)          20.0672 (8.84)         0.2440 (7.08)     833;1014   49,483.8605 (0.11)      21542           1
test_op2[truediv-keys11]                                          19.5270 (8.97)          57.6479 (6.42)          20.1385 (8.81)          0.7750 (3.67)          20.0290 (8.82)         0.2040 (5.92)      541;770   49,656.0314 (0.11)      21959           1
test_op2[mul-keys3]                                               19.5662 (8.99)          58.5439 (6.52)          20.2538 (8.86)          0.8336 (3.95)          20.1399 (8.87)         0.2105 (6.11)      440;699   49,373.4809 (0.11)      18567           1
test_op2[truediv-keys4]                                           19.5736 (8.99)          34.2317 (3.81)          20.1635 (8.82)          0.7311 (3.46)          20.0542 (8.83)         0.1956 (5.68)      454;740   49,594.5698 (0.11)      21239           1
test_op2[truediv-keys24]                                          19.5941 (9.00)          59.1502 (6.59)          20.3008 (8.88)          0.8383 (3.97)          20.1734 (8.88)         0.2068 (6.00)      633;952   49,259.1296 (0.11)      21171           1
test_op2[truediv-keys10]                                          19.6025 (9.01)          57.3937 (6.39)          20.2578 (8.86)          0.8480 (4.01)          20.1231 (8.86)         0.2682 (7.78)      840;945   49,363.6624 (0.11)      21645           1
test_op2[truediv-keys6]                                           19.6360 (9.02)          61.2708 (6.83)          20.1944 (8.84)          0.8002 (3.79)          20.0775 (8.84)         0.1770 (5.14)      618;927   49,518.5851 (0.11)      21389           1
test_op2[truediv-keys3]                                           19.6490 (9.03)          59.0272 (6.58)          20.1881 (8.83)          0.8731 (4.13)          20.0514 (8.83)         0.1704 (4.95)     717;1252   49,534.0883 (0.11)      21700           1
test_op2[truediv-keys1]                                           19.6882 (9.05)          58.8568 (6.56)          20.4254 (8.94)          0.8962 (4.24)          20.2982 (8.94)         0.2654 (7.70)      592;708   48,958.6175 (0.11)      21336           1
test_op2[truediv-keys7]                                           19.6900 (9.05)          54.7087 (6.10)          20.3096 (8.89)          0.8498 (4.02)          20.1846 (8.89)         0.1984 (5.76)      593;882   49,237.7590 (0.11)      21366           1
test_op2[truediv-keys19]                                          19.7245 (9.06)          44.0329 (4.91)          20.4606 (8.95)          0.8928 (4.23)          20.3140 (8.95)         0.2040 (5.92)     950;1161   48,874.4940 (0.11)      21493           1
test_op2[mul-keys1]                                               19.7617 (9.08)          46.3435 (5.16)          20.3540 (8.90)          0.7893 (3.74)          20.2311 (8.91)         0.1984 (5.76)      488;848   49,130.4818 (0.11)      18229           1
test_op2[truediv-keys32]                                          19.7617 (9.08)          48.4530 (5.40)          20.3895 (8.92)          0.7832 (3.71)          20.2777 (8.93)         0.2040 (5.92)      559;848   49,044.8337 (0.11)      21661           1
test_op2[truediv-keys12]                                          19.7869 (9.09)          67.2592 (7.49)          20.4754 (8.96)          0.7949 (3.76)          20.3596 (8.97)         0.1984 (5.76)      502;894   48,839.0694 (0.11)      21477           1
test_op2[truediv-keys31]                                          19.8130 (9.10)          30.2028 (3.37)          20.4488 (8.95)          0.7150 (3.39)          20.3429 (8.96)         0.2049 (5.95)      454;763   48,902.6372 (0.11)      21008           1
test_op2[truediv-keys30]                                          19.8726 (9.13)          68.2343 (7.60)          20.5300 (8.98)          0.7958 (3.77)          20.4202 (8.99)         0.1872 (5.43)      495;810   48,709.2048 (0.11)      21361           1
test_op2[mul-keys0]                                               19.9676 (9.17)          65.4534 (7.29)          20.7359 (9.07)          0.8394 (3.97)          20.6204 (9.08)         0.2207 (6.41)      461;657   48,225.6561 (0.11)      17433           1
test_op2[truediv-keys13]                                          19.9731 (9.18)          30.5055 (3.40)          20.5664 (9.00)          0.6935 (3.28)          20.4649 (9.01)         0.1919 (5.57)      448;685   48,622.9566 (0.11)      21146           1
test_op2[truediv-keys25]                                          19.9759 (9.18)          43.8178 (4.88)          20.6132 (9.02)          0.8875 (4.20)          20.4658 (9.01)         0.2151 (6.24)     854;1053   48,512.5741 (0.11)      20501           1
test_op2[mul-keys2]                                               20.0113 (9.19)          37.0843 (4.13)          20.6106 (9.02)          0.7402 (3.50)          20.5003 (9.03)         0.1825 (5.30)      389;655   48,518.7948 (0.11)      16157           1
test_op2[truediv-keys18]                                          20.0169 (9.20)          59.0254 (6.58)          20.6537 (9.04)          0.8283 (3.92)          20.5394 (9.05)         0.2012 (5.84)      534;816   48,417.5847 (0.11)      21025           1
test_op2[truediv-keys22]                                          20.0253 (9.20)          58.5830 (6.53)          20.6993 (9.06)          0.8405 (3.98)          20.5738 (9.06)         0.2356 (6.84)      551;910   48,310.7463 (0.11)      21529           1
test_op2[truediv-keys5]                                           20.0626 (9.22)          95.6003 (10.65)         20.6857 (9.05)          0.9300 (4.40)          20.5729 (9.06)         0.1900 (5.51)      537;782   48,342.4841 (0.11)      21536           1
test_wrapper_ret[float_kilometer]                                 20.4975 (9.42)          76.9962 (8.58)          21.1513 (9.25)          0.9816 (4.65)          21.0088 (9.25)         0.2421 (7.03)      256;558   47,278.4244 (0.11)       9808           1
test_wrapper_ret[int_kilometer]                                   20.5524 (9.44)          85.1583 (9.49)          21.3165 (9.33)          1.2830 (6.07)          21.1047 (9.29)         0.2468 (7.16)      491;668   46,912.0231 (0.11)       9557           1
test_wrapper_ret[int_meter]                                       20.5785 (9.45)          38.6303 (4.30)          21.3667 (9.35)          0.8095 (3.83)          21.2369 (9.35)         0.2515 (7.30)      270;467   46,801.7631 (0.11)      10057           1
test_op2[truediv-keys1]                                           20.6111 (9.47)          69.2792 (7.72)          21.4299 (9.38)          1.1486 (5.44)          21.1056 (9.30)         0.2263 (6.57)    2151;2442   46,663.7294 (0.11)      16190           1
test_wrapper_ret[float_meter]                                     20.6204 (9.47)          33.9719 (3.79)          21.2997 (9.32)          0.7568 (3.58)          21.1811 (9.33)         0.2368 (6.87)      249;462   46,948.9505 (0.11)      10881           1
test_wrapper_ret[complex_meter]                                   20.6614 (9.49)          39.0997 (4.36)          21.3516 (9.34)          0.8144 (3.86)          21.2174 (9.34)         0.2729 (7.92)      314;474   46,834.8161 (0.11)      11260           1
test_op2[truediv-keys2]                                           20.8020 (9.56)          55.9259 (6.23)          21.4843 (9.40)          0.8532 (4.04)          21.3413 (9.40)         0.2282 (6.62)      488;908   46,545.7153 (0.11)      17717           1
test_op2[truediv-keys3]                                           20.9343 (9.62)          69.5968 (7.75)          21.5928 (9.45)          0.8905 (4.22)          21.4586 (9.45)         0.2198 (6.38)      549;871   46,311.8121 (0.11)      17857           1
test_wrapper_ret[complex_kilometer]                               20.9808 (9.64)          81.7068 (9.10)          21.6944 (9.49)          0.9986 (4.73)          21.5601 (9.50)         0.2580 (7.49)      225;492   46,094.7652 (0.11)       9781           1
test_op2[truediv-keys0]                                           21.1736 (9.73)          65.5018 (7.30)          22.3620 (9.78)          1.3620 (6.45)          21.8311 (9.61)         1.4799 (42.95)     985;402   44,718.7595 (0.10)      16539           1
test_op2[mul-keys7]                                               21.1922 (9.74)          41.6413 (4.64)          22.1301 (9.68)          1.2631 (5.98)          21.7818 (9.59)         0.2924 (8.49)    1248;1998   45,187.3011 (0.10)      17945           1
test_op2[mul-keys5]                                               21.2491 (9.76)          69.7682 (7.77)          21.9537 (9.60)          0.9286 (4.40)          21.7939 (9.60)         0.2654 (7.70)      593;898   45,550.4287 (0.10)      18194           1
test_op2[mul-keys4]                                               21.2584 (9.77)          46.2551 (5.15)          21.9033 (9.58)          0.8095 (3.83)          21.7669 (9.59)         0.2496 (7.24)      471;760   45,655.2578 (0.10)      18187           1
test_op2[truediv-keys4]                                           21.5136 (9.88)          46.6174 (5.19)          22.3490 (9.78)          0.9617 (4.55)          22.1087 (9.74)         0.2505 (7.27)    1667;1830   44,744.7807 (0.10)      17474           1
test_op2[truediv-keys5]                                           21.7622 (10.00)         95.3199 (10.62)         22.6836 (9.92)          1.3320 (6.31)          22.3368 (9.84)         0.3064 (8.89)    1193;2474   44,084.6461 (0.10)      17248           1
test_op2[mul-keys6]                                               21.7836 (10.01)         48.3608 (5.39)          22.5845 (9.88)          1.1055 (5.23)          22.3862 (9.86)         0.2431 (7.05)     792;1051   44,278.0976 (0.10)      17566           1
test_op2[truediv-keys6]                                           21.9056 (10.06)         44.0031 (4.90)          22.9884 (10.06)         1.2932 (6.12)          22.4896 (9.90)         0.4445 (12.90)   2133;3423   43,500.2864 (0.10)      16457           1
test_op2[truediv-keys7]                                           21.9317 (10.08)         40.9344 (4.56)          22.6400 (9.91)          0.8249 (3.91)          22.5073 (9.91)         0.2133 (6.19)      440;767   44,169.5161 (0.10)      16967           1
test_op1[square-short_array_kilometer]                            23.5969 (10.84)         71.2853 (7.94)          24.5689 (10.75)         0.9587 (4.54)          24.4249 (10.76)        0.2813 (8.16)      496;718   40,701.8874 (0.09)      16590           1
test_build_by_mul[complex]                                        23.6323 (10.86)         50.5522 (5.63)          24.4074 (10.68)         0.8999 (4.26)          24.2479 (10.68)        0.2189 (6.35)      751;871   40,971.1248 (0.09)      20982           1
test_op1[square-short_array_meter]                                23.6779 (10.88)         57.9124 (6.45)          24.5162 (10.73)         0.9260 (4.38)          24.3746 (10.74)        0.3045 (8.84)      374;546   40,789.3787 (0.09)      14517           1
test_op1[sqrt-short_array_meter]                                  23.8111 (10.94)         53.8900 (6.00)          24.7093 (10.81)         0.9475 (4.49)          24.5562 (10.82)        0.3073 (8.92)      458;640   40,470.5344 (0.09)      15602           1
test_op1[sqrt-short_array_kilometer]                              24.0114 (11.03)         58.4470 (6.51)          24.8756 (10.88)         0.9508 (4.50)          24.7173 (10.89)        0.3362 (9.76)      575;716   40,199.9661 (0.09)      16365           1
test_op2[eq-keys1]                                                24.1436 (11.09)         71.3607 (7.95)          24.9951 (10.94)         1.4314 (6.78)          24.6922 (10.87)        0.2682 (7.78)      406;661   40,007.8223 (0.09)       7377           1
test_op2[eq-keys2]                                                24.2935 (11.16)         51.3745 (5.72)          24.9464 (10.91)         0.9647 (4.57)          24.7806 (10.91)        0.2272 (6.59)      224;440   40,086.0032 (0.09)       7572           1
test_op1[square-mid_array_meter]                                  24.5264 (11.27)         61.7485 (6.88)          25.5045 (11.16)         1.1396 (5.40)          25.3068 (11.15)        0.2645 (7.68)      733;972   39,208.7243 (0.09)      16368           1
test_op1[square-mid_array_kilometer]                              24.6214 (11.31)         43.9603 (4.90)          25.5998 (11.20)         1.0556 (5.00)          25.4028 (11.19)        0.3204 (9.30)     834;1020   39,062.7820 (0.09)      16378           1
test_op1[sqrt-mid_array_meter]                                    25.3543 (11.65)         71.9372 (8.02)          26.2331 (11.48)         0.9464 (4.48)          26.0901 (11.49)        0.2859 (8.30)      441;657   38,119.7980 (0.09)      16227           1
test_op1[sqrt-mid_array_kilometer]                                25.4782 (11.71)         69.4674 (7.74)          26.4107 (11.55)         1.0587 (5.01)          26.2465 (11.56)        0.3483 (10.11)     504;646   37,863.4472 (0.09)      15964           1
test_op2[eq-keys6]                                                25.8526 (11.88)         67.4147 (7.51)          26.6295 (11.65)         1.1346 (5.37)          26.4375 (11.64)        0.2317 (6.72)      322;515   37,552.3113 (0.09)       7595           1
test_op2[eq-keys5]                                                25.9271 (11.91)         83.1559 (9.27)          26.6621 (11.66)         1.1326 (5.36)          26.4784 (11.66)        0.2971 (8.62)      218;425   37,506.4764 (0.09)       7427           1
test_op2[equal-keys3]                                             32.1083 (14.75)         56.7483 (6.32)          33.1296 (14.49)         1.1324 (5.36)          32.9185 (14.50)        0.3446 (10.00)     410;602   30,184.5317 (0.07)      11522           1
test_op2[equal-keys0]                                             32.5171 (14.94)         62.1732 (6.93)          33.6188 (14.71)         1.3374 (6.33)          33.3460 (14.69)        0.3651 (10.59)     651;795   29,745.2924 (0.07)      12711           1
test_op2[less-keys3]                                              32.5609 (14.96)         58.1061 (6.47)          33.6341 (14.72)         1.2898 (6.11)          33.3712 (14.70)        0.3511 (10.19)     671;828   29,731.7492 (0.07)      12974           1
test_op2[less-keys0]                                              32.6503 (15.00)         59.8654 (6.67)          33.6545 (14.72)         1.1003 (5.21)          33.4531 (14.73)        0.3418 (9.92)      453;607   29,713.6714 (0.07)      12735           1
test_op2[equal-keys4]                                             34.0641 (15.65)         71.8581 (8.01)          35.2078 (15.40)         1.2704 (6.01)          34.9656 (15.40)        0.3297 (9.57)      515;748   28,402.7623 (0.06)      13021           1
test_op2[less-keys4]                                              34.0939 (15.66)         56.3143 (6.27)          35.2217 (15.41)         1.2872 (6.09)          34.9749 (15.40)        0.4023 (11.68)     538;704   28,391.6141 (0.06)      12930           1
test_op2[less-keys7]                                              34.0957 (15.67)         52.4810 (5.85)          35.0630 (15.34)         1.0875 (5.15)          34.8538 (15.35)        0.3483 (10.11)     516;655   28,520.0859 (0.07)      13196           1
test_op2[equal-keys7]                                             34.2838 (15.75)         72.4848 (8.08)          35.3352 (15.46)         1.2337 (5.84)          35.1053 (15.46)        0.3679 (10.68)     527;734   28,300.4101 (0.06)      13085           1
test_op2[sub-keys20]                                              36.7370 (16.88)      2,791.4308 (311.02)        38.2917 (16.75)        32.2257 (152.57)        37.7018 (16.60)        0.3714 (10.78)       2;391   26,115.3447 (0.06)       7311           1
test_op2[sub-keys18]                                              36.8143 (16.91)         50.9648 (5.68)          37.7700 (16.52)         1.0039 (4.75)          37.5863 (16.55)        0.3353 (9.73)      249;299   26,476.0298 (0.06)       6493           1
test_op2[add-keys3]                                               36.8170 (16.92)         90.9204 (10.13)         37.9487 (16.60)         1.2072 (5.72)          37.7437 (16.62)        0.3669 (10.65)     299;351   26,351.3562 (0.06)       7112           1
test_op2[sub-keys27]                                              36.9027 (16.96)         50.8605 (5.67)          38.0522 (16.65)         1.0253 (4.85)          37.8620 (16.68)        0.3632 (10.54)     277;332   26,279.6689 (0.06)       7102           1
test_op2[sub-keys10]                                              36.9092 (16.96)         91.1215 (10.15)         38.1768 (16.70)         1.3375 (6.33)          37.9281 (16.70)        0.3790 (11.00)     393;434   26,193.9111 (0.06)       7390           1
test_op2[sub-keys13]                                              36.9363 (16.97)         62.7683 (6.99)          38.1646 (16.70)         1.1304 (5.35)          37.9561 (16.72)        0.3763 (10.92)     309;362   26,202.2775 (0.06)       7256           1
test_op2[sub-keys22]                                              37.0014 (17.00)         49.3051 (5.49)          38.0798 (16.66)         1.0654 (5.04)          37.8639 (16.68)        0.3418 (9.92)      338;390   26,260.6511 (0.06)       7275           1
test_op2[sub-keys34]                                              37.0620 (17.03)         66.0168 (7.36)          38.5747 (16.88)         1.5541 (7.36)          38.0101 (16.74)        0.4582 (13.30)   1276;1306   25,923.7448 (0.06)       7256           1
test_op2[sub-keys25]                                              37.0694 (17.03)         59.8226 (6.67)          38.2641 (16.74)         1.0801 (5.11)          38.0613 (16.76)        0.3725 (10.81)     309;364   26,134.1817 (0.06)       7246           1
test_op2[sub-keys3]                                               37.0899 (17.04)         69.5866 (7.75)          38.2589 (16.74)         1.1685 (5.53)          38.0408 (16.75)        0.3502 (10.16)     311;388   26,137.7290 (0.06)       7291           1
test_op2[sub-keys1]                                               37.0909 (17.04)         60.7762 (6.77)          38.1350 (16.68)         1.0529 (4.99)          37.9384 (16.71)        0.3637 (10.55)     284;337   26,222.6069 (0.06)       7124           1
test_op2[add-keys18]                                              37.1058 (17.05)         51.2451 (5.71)          38.2136 (16.72)         1.0232 (4.84)          38.0147 (16.74)        0.3469 (10.07)     292;336   26,168.6845 (0.06)       7128           1
test_op2[sub-keys15]                                              37.1654 (17.08)        247.5381 (27.58)         38.5035 (16.85)         2.7812 (13.17)         38.1917 (16.82)        0.3809 (11.05)     372;496   25,971.6363 (0.06)       7399           1
test_op2[sub-keys17]                                              37.1700 (17.08)         56.7362 (6.32)          38.3668 (16.79)         1.1263 (5.33)          38.1367 (16.80)        0.3579 (10.39)     368;406   26,064.2145 (0.06)       7177           1
test_op2[sub-keys8]                                               37.1700 (17.08)         60.0377 (6.69)          38.3029 (16.76)         1.0880 (5.15)          38.0920 (16.78)        0.3621 (10.51)     326;381   26,107.6516 (0.06)       7279           1
test_op2[add-keys15]                                              37.1719 (17.08)         68.8732 (7.67)          38.2514 (16.74)         1.0600 (5.02)          38.0622 (16.76)        0.3576 (10.38)     275;331   26,142.8248 (0.06)       7164           1
test_op2[add-keys32]                                              37.1728 (17.08)         51.7163 (5.76)          38.1981 (16.71)         1.0000 (4.73)          38.0101 (16.74)        0.3586 (10.41)     290;353   26,179.3326 (0.06)       7235           1
test_op2[sub-keys32]                                              37.2017 (17.09)         60.1495 (6.70)          38.2800 (16.75)         1.1333 (5.37)          38.0594 (16.76)        0.3744 (10.86)     341;384   26,123.2869 (0.06)       7343           1
test_op2[add-keys20]                                              37.2138 (17.10)         73.4702 (8.19)          38.3665 (16.79)         1.1954 (5.66)          38.1349 (16.80)        0.3774 (10.95)     331;392   26,064.4291 (0.06)       7173           1
test_op2[add-keys27]                                              37.2222 (17.10)         61.0882 (6.81)          38.3209 (16.77)         1.1181 (5.29)          38.1023 (16.78)        0.3641 (10.57)     348;408   26,095.4451 (0.06)       7265           1
test_op2[sub-keys5]                                               37.2278 (17.10)         59.6102 (6.64)          38.2689 (16.74)         1.1007 (5.21)          38.0459 (16.76)        0.3558 (10.32)     344;386   26,130.8918 (0.06)       7226           1
test_op2[add-keys17]                                              37.2650 (17.12)         57.4216 (6.40)          38.3327 (16.77)         1.1182 (5.29)          38.1032 (16.78)        0.3511 (10.19)     363;405   26,087.3552 (0.06)       7151           1
test_op2[add-keys22]                                              37.2846 (17.13)         60.2091 (6.71)          38.3487 (16.78)         1.1351 (5.37)          38.1097 (16.78)        0.3716 (10.78)     357;416   26,076.5031 (0.06)       6990           1
test_op2[add-keys30]                                              37.2976 (17.14)         58.2011 (6.48)          38.3701 (16.79)         1.0656 (5.05)          38.1647 (16.81)        0.3539 (10.27)     314;372   26,061.9613 (0.06)       7238           1
test_op2[sub-keys29]                                              37.3051 (17.14)         85.1499 (9.49)          38.4904 (16.84)         1.3066 (6.19)          38.2448 (16.84)        0.3881 (11.26)     365;403   25,980.4932 (0.06)       7315           1
test_op2[add-keys6]                                               37.3125 (17.14)         67.8673 (7.56)          38.4271 (16.81)         1.2131 (5.74)          38.2075 (16.83)        0.3644 (10.57)     315;367   26,023.2728 (0.06)       7257           1
test_op2[sub-keys30]                                              37.3274 (17.15)        113.1007 (12.60)         38.6554 (16.91)         1.6405 (7.77)          38.3155 (16.87)        0.3881 (11.26)     591;629   25,869.5741 (0.06)       7203           1
test_op2[sub-keys6]                                               37.3423 (17.16)         66.2599 (7.38)          38.4067 (16.80)         1.1581 (5.48)          38.1926 (16.82)        0.3641 (10.57)     333;374   26,037.1526 (0.06)       7231           1
test_op2[add-keys1]                                               37.3479 (17.16)         51.3224 (5.72)          38.4591 (16.83)         1.0282 (4.87)          38.2634 (16.85)        0.3623 (10.51)     252;286   26,001.6771 (0.06)       6063           1
test_op2[add-keys10]                                              37.4168 (17.19)         91.2072 (10.16)         38.7356 (16.95)         1.3432 (6.36)          38.4869 (16.95)        0.3607 (10.47)     358;407   25,816.0396 (0.06)       7017           1
test_op2[add-keys29]                                              37.4550 (17.21)         72.9850 (8.13)          38.5715 (16.88)         1.2684 (6.01)          38.3127 (16.87)        0.3716 (10.78)     405;442   25,925.9073 (0.06)       7185           1
test_op2[add-keys25]                                              37.5016 (17.23)         62.6529 (6.98)          38.6418 (16.91)         1.4079 (6.67)          38.3416 (16.89)        0.3874 (11.24)     442;483   25,878.7423 (0.06)       7160           1
test_op2[add-keys34]                                              37.5602 (17.26)         61.0845 (6.81)          38.8597 (17.00)         1.2674 (6.00)          38.5223 (16.97)        0.3977 (11.54)     673;702   25,733.6246 (0.06)       7279           1
test_op2[add-keys8]                                               37.5602 (17.26)         50.6472 (5.64)          38.5290 (16.86)         1.0173 (4.82)          38.3304 (16.88)        0.3660 (10.62)     278;335   25,954.4866 (0.06)       7080           1
test_op2[add-keys13]                                              37.5863 (17.27)         69.7952 (7.78)          38.7263 (16.94)         1.2026 (5.69)          38.5130 (16.96)        0.3688 (10.70)     307;360   25,822.2654 (0.06)       7093           1
test_op2[add-keys5]                                               37.7847 (17.36)         53.2065 (5.93)          38.8972 (17.02)         1.0780 (5.10)          38.6797 (17.04)        0.3681 (10.68)     329;370   25,708.7755 (0.06)       6849           1
test_op2[divide-keys1]                                            39.4061 (18.11)         66.9844 (7.46)          40.6235 (17.77)         1.2754 (6.04)          40.3710 (17.78)        0.3721 (10.80)     573;696   24,616.2825 (0.06)      12432           1
test_op2[divide-keys2]                                            39.9444 (18.35)         67.5274 (7.52)          41.2522 (18.05)         1.2422 (5.88)          41.0080 (18.06)        0.3837 (11.14)     517;645   24,241.1280 (0.06)      12071           1
test_op2[divide-keys3]                                            40.0441 (18.40)         65.5632 (7.30)          41.1950 (18.02)         1.2886 (6.10)          40.9344 (18.03)        0.3623 (10.51)     569;708   24,274.8033 (0.06)      12303           1
test_op2[divide-keys6]                                            40.2955 (18.51)         64.4363 (7.18)          41.4980 (18.16)         1.3277 (6.29)          41.2231 (18.16)        0.3995 (11.59)     515;639   24,097.5218 (0.06)      10731           1
test_op2[divide-keys7]                                            40.3710 (18.55)         74.4285 (8.29)          41.6766 (18.23)         1.4078 (6.67)          41.3861 (18.23)        0.3763 (10.92)     623;756   23,994.3047 (0.05)      12283           1
test_op2[divide-keys5]                                            40.7100 (18.70)         96.5418 (10.76)         41.8659 (18.32)         1.4025 (6.64)          41.5994 (18.32)        0.4098 (11.89)     464;563   23,885.8098 (0.05)      10210           1
test_op2[divide-keys4]                                            40.7258 (18.71)         57.2652 (6.38)          41.8321 (18.30)         1.2501 (5.92)          41.5789 (18.31)        0.3707 (10.76)     495;616   23,905.0645 (0.05)      11222           1
test_op2[sub-keys2]                                               41.3181 (18.98)         82.9371 (9.24)          42.5951 (18.64)         1.5431 (7.31)          42.2867 (18.62)        0.4289 (12.45)     332;428   23,476.8960 (0.05)       6376           1
test_op2[add0-keys2]                                              41.3703 (19.01)         70.7628 (7.88)          42.6619 (18.66)         1.2915 (6.11)          42.4087 (18.68)        0.3912 (11.35)     289;379   23,440.1034 (0.05)       5978           1
test_op2[sub-keys1]                                               41.5184 (19.08)         69.7561 (7.77)          42.6367 (18.65)         1.2912 (6.11)          42.3836 (18.67)        0.3951 (11.47)     281;348   23,453.9917 (0.05)       5881           1
test_op2[add1-keys3]                                              41.5547 (19.09)         68.3675 (7.62)          42.6597 (18.66)         1.1994 (5.68)          42.4180 (18.68)        0.3651 (10.59)     531;639   23,441.3231 (0.05)      11511           1
test_op2[add1-keys0]                                              41.5882 (19.11)         76.7522 (8.55)          42.6917 (18.68)         1.2860 (6.09)          42.4278 (18.69)        0.3893 (11.30)     584;674   23,423.7528 (0.05)      10950           1
test_op2[subtract-keys0]                                          41.7139 (19.17)         78.6176 (8.76)          43.0660 (18.84)         1.4903 (7.06)          42.7496 (18.83)        0.4061 (11.78)     676;789   23,220.1543 (0.05)      11373           1
test_op2[add0-keys1]                                              41.9086 (19.26)        104.7300 (11.67)         43.2160 (18.91)         1.4240 (6.74)          42.9684 (18.92)        0.4123 (11.97)     271;333   23,139.5647 (0.05)       5727           1
test_op2[lt-keys1]                                                42.0501 (19.32)         78.1184 (8.70)          43.3060 (18.95)         1.2953 (6.13)          43.0639 (18.97)        0.3958 (11.49)     254;321   23,091.4967 (0.05)       5646           1
test_op2[subtract-keys3]                                          42.1107 (19.35)         66.2254 (7.38)          43.4294 (19.00)         1.1800 (5.59)          43.1947 (19.02)        0.4014 (11.65)     497;599   23,025.8676 (0.05)      11201           1
test_op2[lt-keys2]                                                43.5226 (20.00)         69.0492 (7.69)          44.8115 (19.61)         1.4292 (6.77)          44.5116 (19.60)        0.4331 (12.57)     300;362   22,315.6867 (0.05)       5725           1
test_op2[subtract-keys7]                                          44.2509 (20.33)         64.8461 (7.23)          45.5433 (19.93)         1.2239 (5.79)          45.2846 (19.94)        0.4242 (12.31)     498;567   21,957.1406 (0.05)      10060           1
test_op2[multiply-keys3]                                          44.2676 (20.34)         66.2217 (7.38)          45.5642 (19.93)         1.2822 (6.07)          45.2972 (19.95)        0.4373 (12.69)     625;706   21,947.0699 (0.05)      11552           1
test_op2[add1-keys7]                                              44.3431 (20.37)         70.3307 (7.84)          45.4526 (19.89)         1.2356 (5.85)          45.1971 (19.91)        0.3939 (11.43)     545;669   22,000.9311 (0.05)      11335           1
test_op2[multiply-keys2]                                          44.4259 (20.41)         98.9689 (11.03)         45.7179 (20.00)         1.3485 (6.38)          45.4606 (20.02)        0.4349 (12.62)     571;683   21,873.2690 (0.05)      11824           1
test_op2[add1-keys4]                                              44.4669 (20.43)         70.6753 (7.87)          46.0111 (20.13)         1.2048 (5.70)          45.7680 (20.16)        0.4359 (12.65)     535;628   21,733.8647 (0.05)      11154           1
test_op2[multiply-keys1]                                          44.5386 (20.46)         68.3023 (7.61)          45.8636 (20.07)         1.4103 (6.68)          45.5584 (20.06)        0.4328 (12.56)     684;775   21,803.7682 (0.05)      11623           1
test_op2[sub-keys5]                                               44.6122 (20.50)         71.6792 (7.99)          45.9616 (20.11)         1.3913 (6.59)          45.6711 (20.11)        0.4321 (12.54)     307;383   21,757.3055 (0.05)       6215           1
test_op2[lt-keys5]                                                44.7836 (20.58)         75.7398 (8.44)          46.1884 (20.21)         1.4222 (6.73)          45.9170 (20.22)        0.4265 (12.38)     261;334   21,650.4698 (0.05)       5486           1
test_op2[multiply-keys0]                                          44.9568 (20.66)        100.9591 (11.25)         46.2521 (20.24)         1.3680 (6.48)          45.9868 (20.25)        0.4303 (12.49)     593;685   21,620.6437 (0.05)      11579           1
test_op2[divide-keys0]                                            45.0211 (20.69)        101.3977 (11.30)         46.2708 (20.24)         1.5720 (7.44)          45.9459 (20.24)        0.4116 (11.95)     677;756   21,611.9011 (0.05)      11370           1
test_op2[subtract-keys4]                                          45.0285 (20.69)         81.1871 (9.05)          46.6026 (20.39)         1.4891 (7.05)          46.2844 (20.38)        0.4470 (12.97)     688;783   21,458.0480 (0.05)      10806           1
test_op2[add0-keys6]                                              45.2204 (20.78)         81.9797 (9.13)          46.4858 (20.34)         1.3623 (6.45)          46.2206 (20.36)        0.4682 (13.59)     269;321   21,511.9243 (0.05)       5703           1
test_op2[multiply-keys7]                                          45.5687 (20.94)         77.1759 (8.60)          47.9262 (20.97)         1.4745 (6.98)          47.6073 (20.97)        0.4582 (13.30)     671;737   20,865.4035 (0.05)      11347           1
test_op2[add0-keys5]                                              45.6264 (20.96)         65.1609 (7.26)          47.0353 (20.58)         1.2451 (5.89)          46.7710 (20.60)        0.4135 (12.00)     321;389   21,260.6189 (0.05)       6000           1
test_op2[sub-keys6]                                               45.7130 (21.00)         70.8727 (7.90)          47.0353 (20.58)         1.4852 (7.03)          46.6844 (20.56)        0.4489 (13.03)     424;483   21,260.6349 (0.05)       6138           1
test_op2[lt-keys6]                                                46.1359 (21.20)         73.3696 (8.17)          47.4923 (20.78)         1.5521 (7.35)          47.1654 (20.77)        0.4675 (13.57)     293;342   21,056.0337 (0.05)       5236           1
test_op2[multiply-keys4]                                          46.3650 (21.30)         92.5912 (10.32)         47.8891 (20.95)         1.6323 (7.73)          47.5543 (20.94)        0.4694 (13.62)     654;718   20,881.5902 (0.05)      10685           1
test_op2[multiply-keys6]                                          46.5568 (21.39)         91.6701 (10.21)         49.2074 (21.53)         1.7714 (8.39)          48.8386 (21.51)        0.4703 (13.65)    942;1074   20,322.1322 (0.05)      11149           1
test_op2[multiply-keys5]                                          47.0020 (21.60)         88.4151 (9.85)          48.5881 (21.26)         1.9143 (9.06)          48.0441 (21.16)        0.5271 (15.30)   1140;1174   20,581.1895 (0.05)      10618           1
test_op2[equal-keys2]                                             49.6423 (22.81)         95.5053 (10.64)         51.1770 (22.39)         1.7149 (8.12)          50.8195 (22.38)        0.5043 (14.64)     333;411   19,540.0188 (0.04)       5737           1
test_op2[equal-keys1]                                             49.6535 (22.81)         80.0071 (8.91)          51.1869 (22.39)         1.5110 (7.15)          50.8521 (22.40)        0.4868 (14.13)     312;392   19,536.2550 (0.04)       5823           1
test_op2[less-keys1]                                              51.7592 (23.78)         81.4535 (9.08)          53.3622 (23.35)         1.7368 (8.22)          52.9801 (23.33)        0.5346 (15.51)     361;445   18,739.8452 (0.04)       6045           1
test_op2[less-keys2]                                              52.0004 (23.89)         76.5836 (8.53)          53.8679 (23.57)         1.7564 (8.32)          53.3760 (23.51)        0.6158 (17.87)     586;624   18,563.9168 (0.04)       6077           1
test_op2[less-keys5]                                              52.4400 (24.09)         73.7514 (8.22)          53.9868 (23.62)         1.5894 (7.53)          53.6200 (23.62)        0.5122 (14.86)     348;426   18,523.0410 (0.04)       5785           1
test_op2[equal-keys6]                                             52.7101 (24.22)        396.3085 (44.16)         54.3035 (23.76)         4.7212 (22.35)         53.8854 (23.73)        0.5071 (14.72)     313;413   18,415.0026 (0.04)       5888           1
test_op2[equal-keys5]                                             52.8591 (24.29)         85.4991 (9.53)          54.3203 (23.77)         1.5969 (7.56)          53.9534 (23.76)        0.5197 (15.08)     329;396   18,409.3155 (0.04)       5724           1
test_op2[less-keys6]                                              53.0519 (24.37)         79.6374 (8.87)          54.4667 (23.83)         1.5549 (7.36)          54.1084 (23.83)        0.4992 (14.49)     341;412   18,359.8338 (0.04)       5696           1
test_build_by_mul[short_array]                                    54.5410 (25.06)        304.5201 (33.93)         56.4640 (24.70)         3.0029 (14.22)         56.0600 (24.69)        0.6668 (19.35)     584;720   17,710.3975 (0.04)       9718           1
test_op2[add1-keys1]                                              58.3138 (26.79)        648.0394 (72.20)         59.9838 (26.24)         8.2033 (38.84)         59.4910 (26.20)        0.6026 (17.49)      12;394   16,671.1810 (0.04)       5377           1
test_op2[subtract-keys1]                                          58.4209 (26.84)         91.8908 (10.24)         60.1274 (26.31)         1.6666 (7.89)          59.7155 (26.30)        0.6624 (19.22)     432;449   16,631.3546 (0.04)       5565           1
test_op2[add1-keys2]                                              58.4247 (26.84)         91.2370 (10.17)         59.9211 (26.22)         1.5190 (7.19)          59.5907 (26.24)        0.5430 (15.76)     346;392   16,688.6032 (0.04)       5684           1
test_build_by_mul[mid_array]                                      58.4954 (26.88)        139.1862 (15.51)         60.3322 (26.40)         1.9356 (9.16)          59.9297 (26.39)        0.5641 (16.37)     650;699   16,574.8888 (0.04)       9691           1
test_op2[subtract-keys2]                                          58.8177 (27.02)         97.7907 (10.90)         60.5350 (26.48)         1.7205 (8.15)          60.1448 (26.49)        0.6622 (19.22)     402;434   16,519.3780 (0.04)       5685           1
test_op2[add1-keys5]                                              61.5111 (28.26)        101.3260 (11.29)         63.4583 (27.76)         1.6866 (7.99)          63.0626 (27.77)        0.6407 (18.59)     380;418   15,758.3733 (0.04)       5522           1
test_op2[add1-keys6]                                              61.6238 (28.31)         86.7052 (9.66)          63.4538 (27.76)         1.6363 (7.75)          63.0533 (27.77)        0.6300 (18.28)     383;427   15,759.4921 (0.04)       5504           1
test_op2[subtract-keys5]                                          62.6771 (28.80)         89.5122 (9.97)          64.5077 (28.22)         1.7079 (8.09)          64.0880 (28.23)        0.6554 (19.02)     407;445   15,502.0233 (0.04)       5507           1
test_op2[subtract-keys6]                                          63.0720 (28.98)         84.0444 (9.36)          65.0784 (28.47)         1.5785 (7.47)          64.7018 (28.50)        0.6594 (19.14)     380;417   15,366.0917 (0.04)       5505           1
test_parse_units[True-ms]                                         63.9725 (29.39)        104.6453 (11.66)         65.7587 (28.77)         1.5570 (7.37)          65.3993 (28.80)        0.5101 (14.80)     896;958   15,207.1117 (0.03)      12583           1
test_parse_units[False-ms]                                        64.0126 (29.41)        125.6773 (14.00)         65.6462 (28.72)         1.7807 (8.43)          65.2405 (28.73)        0.5187 (15.05)     722;777   15,233.1667 (0.03)       9520           1
test_getattr[False-ms]                                            68.5751 (31.51)        115.2242 (12.84)         70.4223 (30.81)         1.6583 (7.85)          70.0364 (30.85)        0.5467 (15.86)     640;695   14,200.0410 (0.03)       8635           1
test_getattr[True-ms]                                             69.9330 (32.13)      1,198.1744 (133.50)        71.6484 (31.35)        10.6682 (50.51)         71.1381 (31.33)        0.5690 (16.51)      19;962   13,957.0487 (0.03)      11466           1
test_finding_meter_getitem                                       102.4725 (47.08)      1,343.3611 (149.68)       107.1596 (46.88)        22.3282 (105.71)       104.9894 (46.24)        4.3223 (125.43)     24;108    9,331.8765 (0.02)       3942           1
test_getitem[True-second]                                        102.8087 (47.24)        337.4815 (37.60)        105.6523 (46.22)         4.1355 (19.58)        104.6676 (46.10)        1.1250 (32.65)    847;1045    9,465.0087 (0.02)       7489           1
test_getitem[False-meter]                                        102.9149 (47.28)        350.5507 (39.06)        105.4688 (46.14)         4.5832 (21.70)        104.5354 (46.04)        1.0096 (29.30)     548;697    9,481.4755 (0.02)       5478           1
test_getitem[False-second]                                       103.0536 (47.35)        580.5613 (64.69)        106.6450 (46.66)         7.8330 (37.09)        105.0867 (46.28)        1.4170 (41.12)     195;917    9,376.9031 (0.02)       5273           1
test_getitem[True-minute]                                        103.2744 (47.45)     65,863.3728 (>1000.0)      116.2525 (50.86)       789.4126 (>1000.0)      105.2711 (46.36)        1.3371 (38.80)      1;1234    8,601.9645 (0.02)       6939           1
test_getitem[True-meter]                                         103.3442 (47.48)      5,363.7801 (597.63)       108.6106 (47.52)        63.6324 (301.27)       106.0162 (46.69)        4.6643 (135.36)      5;199    9,207.2046 (0.02)       6905           1
test_getitem[False-minute]                                       103.5910 (47.60)        427.5246 (47.63)        106.3376 (46.52)         5.4151 (25.64)        105.3736 (46.41)        1.0657 (30.93)     384;693    9,404.0103 (0.02)       5445           1
test_getitem[True-angstrom]                                      104.2476 (47.90)        489.5879 (54.55)        107.5485 (47.05)         6.4393 (30.49)        106.4399 (46.88)        1.1595 (33.65)    246;1011    9,298.1285 (0.02)       7152           1
test_getitem[False-angstrom]                                     104.9805 (48.23)        375.2196 (41.81)        107.6535 (47.10)         5.3248 (25.21)        106.6905 (46.99)        1.1541 (33.49)     371;679    9,289.0621 (0.02)       5361           1
test_getitem[True-kilometer]                                     106.3980 (48.88)        536.5927 (59.79)        109.4302 (47.88)         5.9982 (28.40)        108.4534 (47.76)        1.2433 (36.08)     303;936    9,138.2451 (0.02)       7022           1
test_parse_expression[True-meter]                                106.5349 (48.95)        159.1509 (17.73)        109.4269 (47.87)         2.8549 (13.52)        108.5764 (47.82)        1.0449 (30.32)     952;963    9,138.5225 (0.02)       7210           1
test_parse_expression[False-meter]                               106.5647 (48.96)        133.2788 (14.85)        109.2770 (47.81)         2.1228 (10.05)        108.6099 (47.83)        0.9197 (26.69)     678;683    9,151.0579 (0.02)       5648           1
test_getitem[False-kilometer]                                    106.8544 (49.09)        527.7274 (58.80)        110.0148 (48.13)         7.7478 (36.68)        108.8846 (47.95)        1.2410 (36.01)      68;504    9,089.6854 (0.02)       3731           1
test_parse_expression[False-second]                              107.3685 (49.33)        167.1379 (18.62)        110.5216 (48.35)         2.6780 (12.68)        109.6530 (48.29)        0.9602 (27.86)     766;773    9,048.0027 (0.02)       5451           1
test_parse_expression[True-minute]                               107.4029 (49.35)        149.1383 (16.62)        110.1331 (48.18)         2.5399 (12.03)        109.3177 (48.15)        0.9167 (26.60)     964;993    9,079.9235 (0.02)       7337           1
test_parse_expression[True-second]                               107.6758 (49.47)        161.8909 (18.04)        110.7928 (48.47)         2.3086 (10.93)        110.0739 (48.48)        0.9055 (26.28)     915;934    9,025.8572 (0.02)       7441           1
test_getitem[True-millisecond]                                   107.8965 (49.57)        617.2489 (68.77)        111.0910 (48.60)         7.0113 (33.19)        109.9668 (48.43)        1.2531 (36.36)     188;977    9,001.6320 (0.02)       6899           1
test_parse_expression[False-minute]                              108.1517 (49.69)        159.7935 (17.80)        111.1625 (48.63)         2.8771 (13.62)        110.2947 (48.58)        1.0207 (29.62)     682;716    8,995.8382 (0.02)       5236           1
test_getitem[False-millisecond]                                  108.2178 (49.72)        219.3125 (24.44)        111.5049 (48.78)         3.7165 (17.60)        110.4125 (48.63)        1.3248 (38.45)     488;517    8,968.2196 (0.02)       3584           1
test_parse_expression[True-angstrom]                             108.3128 (49.76)        160.4995 (17.88)        111.5579 (48.81)         3.0750 (14.56)        110.5359 (48.68)        1.0438 (30.29)   1142;1173    8,963.9578 (0.02)       7479           1
test_parse_expression[False-angstrom]                            108.7040 (49.94)        146.1012 (16.28)        111.5376 (48.80)         2.3843 (11.29)        110.8050 (48.80)        0.8990 (26.09)     696;717    8,965.5832 (0.02)       5625           1
test_parse_expression[True-kilometer]                            109.2097 (50.18)        139.5773 (15.55)        112.0219 (49.01)         2.6717 (12.65)        111.1012 (48.93)        0.9760 (28.32)   1026;1048    8,926.8257 (0.02)       7028           1
test_parse_expression[False-kilometer]                           109.4081 (50.27)        175.5664 (19.56)        112.1269 (49.06)         2.5936 (12.28)        111.3811 (49.05)        0.9062 (26.30)     484;505    8,918.4658 (0.02)       3908           1
test_parse_expression[False-millisecond]                         110.1708 (50.62)        145.4502 (16.21)        112.7882 (49.35)         2.2707 (10.75)        112.0633 (49.35)        0.9132 (26.50)     470;482    8,866.1733 (0.02)       3804           1
test_parse_expression[True-millisecond]                          111.1012 (51.05)        162.1600 (18.07)        113.6655 (49.73)         2.3257 (11.01)        112.9527 (49.75)        0.8927 (25.91)     880;907    8,797.7475 (0.02)       7135           1
test_create_empty_registry                                       128.7693 (59.16)        529.8974 (59.04)        150.6440 (65.91)        44.3678 (210.06)       135.4734 (59.67)        9.3356 (270.92)    329;354    6,638.1653 (0.02)       3090           1
test_load_definitions_stage_1[None]                              130.8657 (60.13)     12,916.5743 (>1000.0)      154.6756 (67.67)       191.1330 (904.92)       135.9922 (59.89)        6.6333 (192.50)     42;616    6,465.1423 (0.01)       4724           1
test_parse_math_expression                                       156.9800 (72.12)        496.3130 (55.30)        161.0651 (70.47)         6.5523 (31.02)        159.9444 (70.44)        2.3057 (66.91)      88;435    6,208.6703 (0.01)       3399           1
test_load_definitions_stage_1[True]                              165.0089 (75.81)        516.3550 (57.53)        190.3471 (83.28)        53.6822 (254.16)       171.2358 (75.42)        7.8192 (226.91)    469;503    5,253.5594 (0.01)       4219           1
test_parse_expression[True-ms]                                   167.9799 (77.18)        205.5513 (22.90)        172.1937 (75.34)         3.0040 (14.22)        171.1091 (75.36)        1.6857 (48.92)     941;910    5,807.4136 (0.01)       4962           1
test_parse_expression[False-ms]                                  169.5845 (77.92)        240.2663 (26.77)        173.7074 (76.00)         3.4043 (16.12)        172.5703 (76.00)        1.7984 (52.19)     536;552    5,756.8081 (0.01)       3022           1
test_getitem[False-ms]                                           169.9980 (78.11)        388.5105 (43.29)        176.0337 (77.02)         5.4905 (25.99)        174.4768 (76.84)        2.9141 (84.57)     434;543    5,680.7290 (0.01)       3786           1
test_getitem[True-ms]                                            171.5599 (78.82)        341.9574 (38.10)        176.7106 (77.31)         4.6605 (22.06)        175.3732 (77.24)        2.8056 (81.42)     702;688    5,658.9701 (0.01)       4836           1
test_build_cache                                                 501.1978 (230.28)       579.9280 (64.61)        508.7244 (222.57)        4.6881 (22.20)        508.6544 (224.02)       5.3910 (156.45)     214;12    1,965.7009 (0.00)       1768           1
test_load_definitions_stage_3[True]                            2,719.2719 (>1000.0)   81,628.9289 (>1000.0)    8,406.5146 (>1000.0)  21,074.9371 (>1000.0)    2,745.6833 (>1000.0)     89.4405 (>1000.0)       1;1      118.9554 (0.00)         14           1
test_create_tiny_registry                                      4,185.6123 (>1000.0)    5,284.9092 (588.84)     4,299.8863 (>1000.0)     137.4087 (650.56)     4,248.9879 (>1000.0)    138.6225 (>1000.0)       7;5      232.5643 (0.00)        143           1
test_create_default_registry_use_cache                        17,349.7442 (>1000.0)   87,774.5068 (>1000.0)   23,771.5315 (>1000.0)  19,811.4741 (>1000.0)   17,600.4861 (>1000.0)    342.3064 (>1000.0)       5;7       42.0671 (0.00)         57           1
test_load_definitions_stage_3[None]                           69,037.3639 (>1000.0)  150,488.2900 (>1000.0)   74,805.0242 (>1000.0)  20,938.4137 (>1000.0)   69,380.4547 (>1000.0)    470.3489 (>1000.0)       1;1       13.3681 (0.00)         15           1
test_create_default_registry                                 237,261.2227 (>1000.0)  240,359.4078 (>1000.0)  238,565.7277 (>1000.0)   1,213.2905 (>1000.0)  238,167.3399 (>1000.0)  1,727.0399 (>1000.0)       2;0        4.1917 (0.00)          5           1
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Legend:
  Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile.
  OPS: Operations Per Second, computed as 1 / Mean
=========================== short test summary info ============================
SKIPPED [1] pint/testsuite/test_compat_downcast.py:11: sparse is not available
SKIPPED [1] pint/testsuite/test_compat_upcast.py:9: xarray is not available
SKIPPED [1] pint/testsuite/test_dask.py:12: Dask is not available
SKIPPED [2] pint/testsuite/benchmarks/test_10_registry.py:167: Test failing ValueError: Group USCSLengthInternational already present in registry
SKIPPED [6] pint/testsuite/test_application_registry.py:56: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_application_registry.py:68: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_application_registry.py:97: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_application_registry.py:143: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_application_registry.py:155: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_application_registry.py:227: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_application_registry.py:246: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_babel.py:11: Requires Babel not to be installed
SKIPPED [1] pint/testsuite/test_issues.py:173: Requires NumPy not to be installed.
SKIPPED [1] pint/testsuite/test_issues.py:249: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_issues.py:882: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_issues.py:920: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_issues.py:948: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_measurement.py:21: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_measurement.py:26: Requires Uncertainties
SKIPPED [12] pint/testsuite/test_measurement.py:44: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_measurement.py:67: Requires Uncertainties
SKIPPED [7] pint/testsuite/test_measurement.py:84: Requires Uncertainties
SKIPPED [5] pint/testsuite/test_measurement.py:105: Requires Uncertainties
SKIPPED [5] pint/testsuite/test_measurement.py:121: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_measurement.py:140: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_measurement.py:158: Requires Uncertainties
SKIPPED [12] pint/testsuite/test_measurement.py:177: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_measurement.py:203: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_measurement.py:215: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_measurement.py:262: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_measurement.py:288: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_measurement.py:294: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_numpy.py:449: Requires NumPy >= 2.0
SKIPPED [6] pint/testsuite/test_numpy.py: unconditional skip
SKIPPED [2] pint/testsuite/test_quantity.py:380: Requires MIP
SKIPPED [2] pint/testsuite/test_quantity.py:418: Requires MIP
SKIPPED [2] pint/testsuite/test_quantity.py:433: Requires MIP
SKIPPED [2] pint/testsuite/test_quantity.py:693: Requires NumPy not to be installed.
XFAIL pint/testsuite/test_issues.py::TestIssues::test_issue25
XFAIL pint/testsuite/test_issues.py::TestIssues::test_issue37
XFAIL pint/testsuite/test_issues.py::TestIssues::test_issue39
XFAIL pint/testsuite/test_issues.py::TestIssues::test_issue86c
XFAIL pint/testsuite/test_issues.py::test_issues_1841_xfail
XFAIL pint/testsuite/test_log_units.py::test_compound_log_unit_multiply_definition
XFAIL pint/testsuite/test_log_units.py::test_compound_log_unit_quantity_definition
XFAIL pint/testsuite/test_log_units.py::test_dbm_db_addition
XFAIL pint/testsuite/test_log_units.py::test_frequency_octave_addition[100-2.0-400]
XFAIL pint/testsuite/test_log_units.py::test_frequency_octave_addition[50-1.0-100]
XFAIL pint/testsuite/test_log_units.py::test_frequency_octave_addition[200-0.0-200]
XFAIL pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_exponentiation_array_exp_2
XFAIL pint/testsuite/test_quantity.py::TestQuantityWithDefaultRegistry::test_formatting_override_default_units - Still not clear how default formatting will work.
XFAIL pint/testsuite/test_quantity.py::TestQuantityWithDefaultRegistry::test_formatting_override_default_magnitude - Still not clear how default formatting will work.
XFAIL pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_defaults_warning - Still not clear how default formatting will work.
XPASS pint/testsuite/test_quantity.py::TestQuantity::test_formatting_override_default_units - Still not clear how default formatting will work.
XPASS pint/testsuite/test_quantity.py::TestQuantity::test_formatting_override_default_magnitude - Still not clear how default formatting will work.
FAILED pint/testsuite/test_babel.py::test_format - locale.Error: unsupported ...
FAILED pint/testsuite/test_babel.py::test_registry_locale - locale.Error: uns...
FAILED pint/testsuite/test_babel.py::test_str - locale.Error: unsupported loc...
FAILED pint/testsuite/test_issues.py::TestIssues::test_issue_1400 - locale.Er...
= 4 failed, 2487 passed, 134 skipped, 15 xfailed, 2 xpassed, 50 warnings, 298 subtests passed in 291.32s (0:04:51) =

@huard
Copy link

huard commented Jun 14, 2024

Unit.format_babel seems to have changed signature. Got failing tests on my end with the recent 0.24 release.

Something like
x.units.format_babel("~", locale)
worked with 0.23 and breaks with 0.24.

@andrewgsavage
Copy link
Collaborator

could you try with master? should be fixed following #2020

@kloczek
Copy link
Author

kloczek commented Jun 21, 2024

one sec 😋

@kloczek
Copy link
Author

kloczek commented Jun 21, 2024

Here is pytest output:
+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-pint-0.24-2.fc37.x86_64/usr/lib64/python3.10/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-pint-0.24-2.fc37.x86_64/usr/lib/python3.10/site-packages
+ /usr/bin/pytest -ra -m 'not network'
==================================================================================== test session starts ====================================================================================
platform linux -- Python 3.10.14, pytest-8.2.2, pluggy-1.5.0
Matplotlib: 3.9.0
Freetype: 2.13.2
benchmark: 4.0.0 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /home/tkloczko/rpmbuild/BUILD/pint-0.24
configfile: pyproject.toml
plugins: mpl-0.17.0, subtests-0.12.1, benchmark-4.0.0
collected 2641 items / 3 skipped

pint/testsuite/benchmarks/test_00_common.py .                                                                                                                                         [  0%]
pint/testsuite/benchmarks/test_01_registry_creation.py ....                                                                                                                           [  0%]
pint/testsuite/benchmarks/test_10_registry.py ......................................................................................................ss..                              [  4%]
pint/testsuite/benchmarks/test_20_quantity.py ....................................................................................................................................... [  9%]
..............................................................................                                                                                                        [ 12%]
pint/testsuite/benchmarks/test_30_numpy.py ....................................................................................................................                       [ 16%]
pint/testsuite/test_application_registry.py ..................ssssssssssss.......ssssss..................ssssssssssss..................ssssssssssss..                                 [ 20%]
pint/testsuite/test_babel.py sFF..F                                                                                                                                                   [ 20%]
pint/testsuite/test_compat.py ..........                                                                                                                                              [ 21%]
pint/testsuite/test_contexts.py ...............................,,,..,,,,........,,...                                                                                                 [ 22%]
pint/testsuite/test_converters.py .......                                                                                                                                             [ 23%]
pint/testsuite/test_definitions.py .......                                                                                                                                            [ 23%]
pint/testsuite/test_diskcache.py .....                                                                                                                                                [ 23%]
pint/testsuite/test_errors.py .......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..                                                                                                           [ 23%]
pint/testsuite/test_formatter.py ....                                                                                                                                                 [ 24%]
pint/testsuite/test_formatting.py ..................................                                                                                                                  [ 25%]
pint/testsuite/test_infer_base_unit.py ........                                                                                                                                       [ 25%]
pint/testsuite/test_issues.py x.xx........s......s...x................................................s.Fss.......................................................................x.. [ 31%]
.....                                                                                                                                                                                 [ 31%]
pint/testsuite/test_log_units.py ..............................................................................................xx..xxxx                                               [ 35%]
pint/testsuite/test_matplotlib.py ...                                                                                                                                                 [ 35%]
pint/testsuite/test_measurement.py .ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss                                                                                [ 38%]
pint/testsuite/test_non_int.py .............,,,,,,,,,,,,,,,,,,,,,,,,................................................................................................................. [ 42%]
.........................................................................................,,,,,,,,,,,,,,,,,,,,,,,,.................................................................... [ 48%]
......................................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,....................... [ 54%]
......................................................................................................................................................................                [ 61%]
pint/testsuite/test_numpy.py .....................,,,,,.,,......................s.........x....................................................................,,,,,,................ [ 66%]
....................ssssss                                                                                                                                                            [ 67%]
pint/testsuite/test_numpy_func.py ..........................                                                                                                                          [ 68%]
pint/testsuite/test_pint_eval.py ................................................................                                                                                     [ 70%]
pint/testsuite/test_pitheorem.py ..                                                                                                                                                   [ 70%]
pint/testsuite/test_quantity.py .......,,,,,,,,,,,,,,,,,,,,.,,,,,,,,.,,..,,,,,,,,,.XX....sss........,,,,,,,,,,,,,,,,,,,,,,,,.....s.................................................,,,,,,,,,,,,,,,,,,,,. [ 74%]
,,,,,,,,.,,..,,,,,,,,,.xx....sss........,,,,,,,,,,,,,,,,,,,,,,,,.....s............................................................................................................... [ 79%]
..................................................................................................................................................................................... [ 86%]
....................................................................................................................                                                                  [ 90%]
pint/testsuite/test_systems.py ...................                                                                                                                                    [ 91%]
pint/testsuite/test_testing.py ............                                                                                                                                           [ 91%]
pint/testsuite/test_umath.py ..............................................................                                                                                           [ 94%]
pint/testsuite/test_unit.py ...,,,,,,,,,,,,,.,,,,,,,.,,,,,,,,,.x,,,,,,,,,............................................................................................................ [ 98%]
...............                                                                                                                                                                       [ 98%]
pint/testsuite/test_util.py ...............,,,,.............                                                                                                                          [100%]

========================================================================================= FAILURES ==========================================================================================
________________________________________________________________________________________ test_format ________________________________________________________________________________________

func_registry = <pint.registry.UnitRegistry object at 0x7fac2bdc88b0>

    @helpers.requires_babel()
    def test_format(func_registry):
        ureg = func_registry
        dirname = os.path.dirname(__file__)
        ureg.load_definitions(os.path.join(dirname, "../xtranslated.txt"))

        distance = 24.1 * ureg.meter
>       assert distance.format_babel(locale="fr_FR", length="long") == "24,1 mètres"

pint/testsuite/test_babel.py:26:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/typing_extensions.py:2853: in wrapper
    return arg(*args, **kwargs)
pint/facets/plain/quantity.py:263: in format_babel
    return self._REGISTRY.formatter.format_quantity_babel(self, spec, **kwspec)
pint/delegates/formatter/full.py:249: in format_quantity_babel
    return self.format_quantity(
pint/delegates/formatter/full.py:170: in format_quantity
    return self.get_formatter(spec).format_quantity(
pint/delegates/formatter/plain.py:136: in format_quantity
    self.format_magnitude(quantity.magnitude, mspec, **babel_kwds),
pint/delegates/formatter/plain.py:69: in format_magnitude
    with override_locale(mspec, babel_kwds.get("locale", None)) as format_number:
/usr/lib64/python3.10/contextlib.py:135: in __enter__
    return next(self.gen)
pint/delegates/formatter/_format_helpers.py:94: in override_locale
    setlocale(LC_NUMERIC, locale)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

category = 1, locale = 'fr_FR'

    def setlocale(category, locale=None):

        """ Set the locale for the given category.  The locale can be
            a string, an iterable of two strings (language code and encoding),
            or None.

            Iterables are converted to strings using the locale aliasing
            engine.  Locale strings are passed directly to the C lib.

            category may be given as one of the LC_* values.

        """
        if locale and not isinstance(locale, _builtin_str):
            # convert to string
            locale = normalize(_build_localename(locale))
>       return _setlocale(category, locale)
E       locale.Error: unsupported locale setting

/usr/lib64/python3.10/locale.py:620: Error
___________________________________________________________________________________ test_registry_locale ____________________________________________________________________________________

    @helpers.requires_babel()
    def test_registry_locale():
        ureg = UnitRegistry(fmt_locale="fr_FR")
        dirname = os.path.dirname(__file__)
        ureg.load_definitions(os.path.join(dirname, "../xtranslated.txt"))

        distance = 24.1 * ureg.meter
>       assert distance.format_babel(length="long") == "24,1 mètres"

pint/testsuite/test_babel.py:46:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/typing_extensions.py:2853: in wrapper
    return arg(*args, **kwargs)
pint/facets/plain/quantity.py:263: in format_babel
    return self._REGISTRY.formatter.format_quantity_babel(self, spec, **kwspec)
pint/delegates/formatter/full.py:249: in format_quantity_babel
    return self.format_quantity(
pint/delegates/formatter/full.py:170: in format_quantity
    return self.get_formatter(spec).format_quantity(
pint/delegates/formatter/plain.py:136: in format_quantity
    self.format_magnitude(quantity.magnitude, mspec, **babel_kwds),
pint/delegates/formatter/plain.py:69: in format_magnitude
    with override_locale(mspec, babel_kwds.get("locale", None)) as format_number:
/usr/lib64/python3.10/contextlib.py:135: in __enter__
    return next(self.gen)
pint/delegates/formatter/_format_helpers.py:94: in override_locale
    setlocale(LC_NUMERIC, locale)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

category = 1, locale = 'fr_FR'

    def setlocale(category, locale=None):

        """ Set the locale for the given category.  The locale can be
            a string, an iterable of two strings (language code and encoding),
            or None.

            Iterables are converted to strings using the locale aliasing
            engine.  Locale strings are passed directly to the C lib.

            category may be given as one of the LC_* values.

        """
        if locale and not isinstance(locale, _builtin_str):
            # convert to string
            locale = normalize(_build_localename(locale))
>       return _setlocale(category, locale)
E       locale.Error: unsupported locale setting

/usr/lib64/python3.10/locale.py:620: Error
_________________________________________________________________________________________ test_str __________________________________________________________________________________________

func_registry = <pint.registry.UnitRegistry object at 0x7fac42ac9f00>

    @helpers.requires_babel()
    def test_str(func_registry):
        ureg = func_registry
        d = 24.1 * ureg.meter

        s = "24.1 meter"
        assert str(d) == s
        assert "%s" % d == s
        assert f"{d}" == s

        ureg.set_fmt_locale("fr_FR")
        s = "24,1 mètres"
>       assert str(d) == s

pint/testsuite/test_babel.py:100:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/quantity.py:269: in __str__
    return self._REGISTRY.formatter.format_quantity(self)
pint/delegates/formatter/full.py:170: in format_quantity
    return self.get_formatter(spec).format_quantity(
pint/delegates/formatter/plain.py:136: in format_quantity
    self.format_magnitude(quantity.magnitude, mspec, **babel_kwds),
pint/delegates/formatter/plain.py:69: in format_magnitude
    with override_locale(mspec, babel_kwds.get("locale", None)) as format_number:
/usr/lib64/python3.10/contextlib.py:135: in __enter__
    return next(self.gen)
pint/delegates/formatter/_format_helpers.py:94: in override_locale
    setlocale(LC_NUMERIC, locale)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

category = 1, locale = 'fr_FR'

    def setlocale(category, locale=None):

        """ Set the locale for the given category.  The locale can be
            a string, an iterable of two strings (language code and encoding),
            or None.

            Iterables are converted to strings using the locale aliasing
            engine.  Locale strings are passed directly to the C lib.

            category may be given as one of the LC_* values.

        """
        if locale and not isinstance(locale, _builtin_str):
            # convert to string
            locale = normalize(_build_localename(locale))
>       return _setlocale(category, locale)
E       locale.Error: unsupported locale setting

/usr/lib64/python3.10/locale.py:620: Error
________________________________________________________________________________ TestIssues.test_issue_1400 _________________________________________________________________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7fac43afcb20>, sess_registry = <pint.registry.UnitRegistry object at 0x7fac2ba66650>

    @helpers.requires_babel()
    def test_issue_1400(self, sess_registry):
        q1 = 3.1 * sess_registry.W
        q2 = 3.1 * sess_registry.W / sess_registry.cm
>       assert q1.format_babel("~", locale="es_ES") == "3,1 W"

pint/testsuite/test_issues.py:920:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/typing_extensions.py:2853: in wrapper
    return arg(*args, **kwargs)
pint/facets/plain/quantity.py:263: in format_babel
    return self._REGISTRY.formatter.format_quantity_babel(self, spec, **kwspec)
pint/delegates/formatter/full.py:249: in format_quantity_babel
    return self.format_quantity(
pint/delegates/formatter/full.py:170: in format_quantity
    return self.get_formatter(spec).format_quantity(
pint/delegates/formatter/plain.py:136: in format_quantity
    self.format_magnitude(quantity.magnitude, mspec, **babel_kwds),
pint/delegates/formatter/plain.py:69: in format_magnitude
    with override_locale(mspec, babel_kwds.get("locale", None)) as format_number:
/usr/lib64/python3.10/contextlib.py:135: in __enter__
    return next(self.gen)
pint/delegates/formatter/_format_helpers.py:94: in override_locale
    setlocale(LC_NUMERIC, locale)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

category = 1, locale = 'es_ES'

    def setlocale(category, locale=None):

        """ Set the locale for the given category.  The locale can be
            a string, an iterable of two strings (language code and encoding),
            or None.

            Iterables are converted to strings using the locale aliasing
            engine.  Locale strings are passed directly to the C lib.

            category may be given as one of the LC_* values.

        """
        if locale and not isinstance(locale, _builtin_str):
            # convert to string
            locale = normalize(_build_localename(locale))
>       return _setlocale(category, locale)
E       locale.Error: unsupported locale setting

/usr/lib64/python3.10/locale.py:620: Error
========================================================================================= XFAILURES =========================================================================================
__________________________________________________________________________________ TestIssues.test_issue25 __________________________________________________________________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7fac43af8610>, module_registry = <pint.registry.UnitRegistry object at 0x7fac2b7afd60>

    @pytest.mark.xfail
    def test_issue25(self, module_registry):
>       x = ParserHelper.from_string("10 %")

pint/testsuite/test_issues.py:32:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/util.py:774: in from_string
    ret = build_eval_tree(gen).evaluate(
pint/pint_eval.py:565: in build_eval_tree
    result, _ = _build_eval_tree(tokens, op_priority, 0, 0)
pint/pint_eval.py:482: in _build_eval_tree
    right, index = _build_eval_tree(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

tokens = [TokenInfo(type=2 (NUMBER), string='10', start=(1, 0), end=(1, 2), line='10 %'), TokenInfo(type=54 (OP), string='%', s...ng='', start=(1, 4), end=(1, 5), line=''), TokenInfo(type=0 (ENDMARKER), string='', start=(2, 0), end=(2, 0), line='')]
op_priority = {'': 1, '%': 1, '*': 1, '**': 3, ...}, index = 3, depth = 1, prev_op = '%'

    def _build_eval_tree(
        tokens: list[TokenInfo],
        op_priority: dict[str, int],
        index: int = 0,
        depth: int = 0,
        prev_op: str = "<none>",
    ) -> tuple[EvalTreeNode, int]:
        """Build an evaluation tree from a set of tokens.

        Params:
        Index, depth, and prev_op used recursively, so don't touch.
        Tokens is an iterable of tokens from an expression to be evaluated.

        Transform the tokens from an expression into a recursive parse tree, following order
        of operations. Operations can include binary ops (3 + 4), implicit ops (3 kg), or
        unary ops (-1).

        General Strategy:
        1) Get left side of operator
        2) If no tokens left, return final result
        3) Get operator
        4) Use recursion to create tree starting at token on right side of operator (start at step #1)
        4.1) If recursive call encounters an operator with lower or equal priority to step #2, exit recursion
        5) Combine left side, operator, and right side into a new left side
        6) Go back to step #2

        Raises
        ------
        DefinitionSyntaxError
            If there is a syntax error.

        """

        result = None

        while True:
            current_token = tokens[index]
            token_type = current_token.type
            token_text = current_token.string

            if token_type == tokenlib.OP:
                if token_text == ")":
                    if prev_op == "<none>":
                        raise DefinitionSyntaxError(
                            f"unopened parentheses in tokens: {current_token}"
                        )
                    elif prev_op == "(":
                        # close parenthetical group
                        assert result is not None
                        return result, index
                    else:
                        # parenthetical group ending, but we need to close sub-operations within group
                        assert result is not None
                        return result, index - 1
                elif token_text == "(":
                    # gather parenthetical group
                    right, index = _build_eval_tree(
                        tokens, op_priority, index + 1, 0, token_text
                    )
                    if not tokens[index][1] == ")":
                        raise DefinitionSyntaxError("weird exit from parentheses")
                    if result:
                        # implicit op with a parenthetical group, i.e. "3 (kg ** 2)"
                        result = EvalTreeNode(left=result, right=right)
                    else:
                        # get first token
                        result = right
                elif token_text in op_priority:
                    if result:
                        # equal-priority operators are grouped in a left-to-right order,
                        # unless they're exponentiation, in which case they're grouped
                        # right-to-left this allows us to get the expected behavior for
                        # multiple exponents
                        #     (2^3^4)  --> (2^(3^4))
                        #     (2 * 3 / 4) --> ((2 * 3) / 4)
                        if op_priority[token_text] <= op_priority.get(
                            prev_op, -1
                        ) and token_text not in ("**", "^"):
                            # previous operator is higher priority, so end previous binary op
                            return result, index - 1
                        # get right side of binary op
                        right, index = _build_eval_tree(
                            tokens, op_priority, index + 1, depth + 1, token_text
                        )
                        result = EvalTreeNode(
                            left=result, operator=current_token, right=right
                        )
                    else:
                        # unary operator
                        right, index = _build_eval_tree(
                            tokens, op_priority, index + 1, depth + 1, "unary"
                        )
                        result = EvalTreeNode(left=right, operator=current_token)
            elif token_type in (tokenlib.NUMBER, tokenlib.NAME):
                if result:
                    # tokens with an implicit operation i.e. "1 kg"
                    if op_priority[""] <= op_priority.get(prev_op, -1):
                        # previous operator is higher priority than implicit, so end
                        # previous binary op
                        return result, index - 1
                    right, index = _build_eval_tree(
                        tokens, op_priority, index, depth + 1, ""
                    )
                    result = EvalTreeNode(left=result, right=right)
                else:
                    # get first token
                    result = EvalTreeNode(left=current_token)

            if tokens[index][0] == tokenlib.ENDMARKER:
                if prev_op == "(":
                    raise DefinitionSyntaxError("unclosed parentheses in tokens")
                if depth > 0 or prev_op:
                    # have to close recursion
>                   assert result is not None
E                   AssertionError

pint/pint_eval.py:514: AssertionError
__________________________________________________________________________________ TestIssues.test_issue37 __________________________________________________________________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7fac43af9ed0>, module_registry = <pint.registry.UnitRegistry object at 0x7fac2b7afd60>

    @pytest.mark.xfail
    @helpers.requires_numpy
    def test_issue37(self, module_registry):
        x = np.ma.masked_array([1, 2, 3], mask=[True, True, False])
        q = module_registry.meter * x
        assert isinstance(q, module_registry.Quantity)
        np.testing.assert_array_equal(q.magnitude, x)
>       assert q.units == module_registry.meter.units
E       AttributeError: 'Unit' object has no attribute 'units'. Did you mean: '_units'?

pint/testsuite/test_issues.py:57: AttributeError
__________________________________________________________________________________ TestIssues.test_issue39 __________________________________________________________________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7fac43afada0>, module_registry = <pint.registry.UnitRegistry object at 0x7fac2b7afd60>

    @pytest.mark.xfail
    @helpers.requires_numpy
    def test_issue39(self, module_registry):
        x = np.matrix([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
        q = module_registry.meter * x
        assert isinstance(q, module_registry.Quantity)
        np.testing.assert_array_equal(q.magnitude, x)
>       assert q.units == module_registry.meter.units
E       AttributeError: 'Unit' object has no attribute 'units'. Did you mean: '_units'?

pint/testsuite/test_issues.py:80: AttributeError
_________________________________________________________________________________ TestIssues.test_issue86c __________________________________________________________________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7fac43afa5c0>, module_registry = <pint.registry.UnitRegistry object at 0x7fac2b7afd60>

    @pytest.mark.xfail
    def test_issue86c(self, module_registry):
        module_registry.autoconvert_offset_to_baseunit = True
        T = module_registry.degC
        T = 100.0 * T
>       helpers.assert_quantity_almost_equal(
            module_registry.k * 2 * T, module_registry.k * (2 * T)
        )

pint/testsuite/test_issues.py:327:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

first = <Quantity(746.3, 'boltzmann_constant * kelvin')>, second = <Quantity(473.15, 'boltzmann_constant * kelvin')>, rtol = 1e-07, atol = 0
msg = "Comparing <Quantity(746.3, 'boltzmann_constant * kelvin')> and <Quantity(473.15, 'boltzmann_constant * kelvin')>.  (Converted to 746.3 and 473.15)"

    def assert_allclose(
        first, second, rtol: float = 1e-07, atol: float = 0, msg: str | None = None
    ) -> None:
        if msg is None:
            try:
                msg = f"Comparing {first!r} and {second!r}. "
            except (TypeError, ValueError):
                try:
                    msg = f"Comparing {first} and {second}. "
                except Exception:
                    msg = "Comparing"

        m1, m2 = _get_comparable_magnitudes(first, second, msg)
        msg += f" (Converted to {m1!r} and {m2!r})"

        if isinstance(m1, ndarray) or isinstance(m2, ndarray):
            np.testing.assert_allclose(m1, m2, rtol=rtol, atol=atol, err_msg=msg)
        elif not isinstance(m1, Number):
            warnings.warn("In assert_equal, m1 is not a number ", UserWarning)
            return
        elif not isinstance(m2, Number):
            warnings.warn("In assert_equal, m2 is not a number ", UserWarning)
            return
        elif math.isnan(m1):
            assert math.isnan(m2), msg
        elif math.isnan(m2):
            assert math.isnan(m1), msg
        elif math.isinf(m1):
            assert math.isinf(m2), msg
        elif math.isinf(m2):
            assert math.isinf(m1), msg
        else:
            # Numpy version (don't like because is not symmetric)
            # assert abs(m1 - m2) <= atol + rtol * abs(m2), msg
>           assert abs(m1 - m2) <= max(rtol * max(abs(m1), abs(m2)), atol), msg
E           AssertionError: Comparing <Quantity(746.3, 'boltzmann_constant * kelvin')> and <Quantity(473.15, 'boltzmann_constant * kelvin')>.  (Converted to 746.3 and 473.15)

pint/testing.py:94: AssertionError
__________________________________________________________________________________ test_issues_1841_xfail ___________________________________________________________________________________

    @pytest.mark.xfail
    def test_issues_1841_xfail():
        from pint import formatting as fmt
        from pint.delegates.formatter._compound_unit_helpers import sort_by_dimensionality

        # sets compact display mode by default
        ur = UnitRegistry()
        ur.default_format = "~P"
        ur.formatter.default_sort_func = sort_by_dimensionality

        q = ur.Quantity("2*pi radian * hour")

        # Note that `radian` (and `bit` and `count`) are treated as dimensionless.
        # And note that dimensionless quantities are stripped by this process,
        # leading to errorneous output.  Suggestions?
>       assert (
            fmt.format_unit(q.u._units, spec="", registry=ur, sort_dims=True)
            == "radian * hour"
        )
E       AssertionError: assert 'pi * radian * hour' == 'radian * hour'
E
E         - radian * hour
E         + pi * radian * hour
E         ? +++++

pint/testsuite/test_issues.py:1225: AssertionError
________________________________________________________________________ test_compound_log_unit_multiply_definition _________________________________________________________________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7fac2c1229e0>

    @pytest.mark.xfail
    def test_compound_log_unit_multiply_definition(module_registry_auto_offset):
        """Check that compound log units can be defined using multiply."""
        Q_ = module_registry_auto_offset.Quantity
        canonical_def = Q_(-161, "dBm") / module_registry_auto_offset.Hz
        mult_def = -161 * module_registry_auto_offset("dBm/Hz")
>       assert mult_def == canonical_def
E       AssertionError: assert <Quantity(-202.686991, 'gram * meter ** 2 / second ** 3 / hertz')> == <Quantity(7.94328235e-17, 'gram * meter ** 2 / second ** 3 / hertz')>

pint/testsuite/test_log_units.py:231: AssertionError
________________________________________________________________________ test_compound_log_unit_quantity_definition _________________________________________________________________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7fac2c1229e0>

    @pytest.mark.xfail
    def test_compound_log_unit_quantity_definition(module_registry_auto_offset):
        """Check that compound log units can be defined using ``Quantity()``."""
        Q_ = module_registry_auto_offset.Quantity
        canonical_def = Q_(-161, "dBm") / module_registry_auto_offset.Hz
        quantity_def = Q_(-161, "dBm/Hz")
>       assert quantity_def == canonical_def

pint/testsuite/test_log_units.py:240:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/quantity.py:100: in wrapped
    return f(self, *args, **kwargs)
pint/facets/plain/quantity.py:1351: in __eq__
    self._convert_magnitude_not_inplace(other._units),
pint/facets/plain/quantity.py:479: in _convert_magnitude_not_inplace
    return self._REGISTRY.convert(self._magnitude, self._units, other)
pint/facets/plain/registry.py:1038: in convert
    return self._convert(value, src, dst, inplace)
pint/facets/context/registry.py:405: in _convert
    return super()._convert(value, src, dst, inplace)
pint/facets/nonmultiplicative/registry.py:246: in _convert
    src_offset_unit = self._validate_and_extract(src)
pint/facets/nonmultiplicative/registry.py:165: in _validate_and_extract
    nonmult_units = [
pint/facets/nonmultiplicative/registry.py:166: in <listcomp>
    (u, e) for u, e in units.items() if not self._is_multiplicative(u)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pint.registry.UnitRegistry object at 0x7fac2c1229e0>, unit_name = 'delta_decibelmilliwatt'

    def _is_multiplicative(self, unit_name: str) -> bool:
        """True if the unit is multiplicative.

        Parameters
        ----------
        unit_name
            Name of the unit to check.
            Can be prefixed, pluralized or even an alias

        Raises
        ------
        UndefinedUnitError
            If the unit is not in the registry.
        """
        if unit_name in self._units:
            return self._units[unit_name].is_multiplicative

        # If the unit is not in the registry might be because it is not
        # registered with its prefixed version.
        # TODO: Might be better to register them.
        names = self.parse_unit_name(unit_name)
>       assert len(names) == 1
E       AssertionError

pint/facets/nonmultiplicative/registry.py:131: AssertionError
___________________________________________________________________________________ test_dbm_db_addition ____________________________________________________________________________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7fac2c1229e0>

    @pytest.mark.xfail
    def test_dbm_db_addition(module_registry_auto_offset):
        """Test a dB value can be added to a dBm and the answer is correct."""
>       power = (5 * module_registry_auto_offset.dBm) + (
            10 * module_registry_auto_offset.dB
        )

pint/testsuite/test_log_units.py:261:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/quantity.py:848: in __add__
    return self._add_sub(other, operator.add)
pint/facets/plain/quantity.py:100: in wrapped
    return f(self, *args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <Quantity(5, 'decibelmilliwatt')>, other = <Quantity(10, 'decibel')>, op = <built-in function add>

    @check_implemented
    def _add_sub(self, other, op):
        """Perform addition or subtraction operation and return the result.

        Parameters
        ----------
        other : pint.PlainQuantity or any type accepted by :func:`_to_magnitude`
            object to be added to / subtracted from self
        op : function
            operator function (e.g. operator.add, operator.isub)
        """
        if not self._check(other):
            # other not from same Registry or not a PlainQuantity
            if zero_or_nan(other, True):
                # If the other value is 0 or NaN (but not a PlainQuantity)
                # do the operation without checking units.
                # We do the calculation instead of just returning the same
                # value to enforce any shape checking and type casting due to
                # the operation.
                units = self._units
                magnitude = op(
                    self._magnitude,
                    _to_magnitude(other, self.force_ndarray, self.force_ndarray_like),
                )
            elif self.dimensionless:
                units = self.UnitsContainer()
                magnitude = op(
                    self.to(units)._magnitude,
                    _to_magnitude(other, self.force_ndarray, self.force_ndarray_like),
                )
            else:
                raise DimensionalityError(self._units, "dimensionless")
            return self.__class__(magnitude, units)

        if not self.dimensionality == other.dimensionality:
>           raise DimensionalityError(
                self._units, other._units, self.dimensionality, other.dimensionality
            )
E           pint.errors.DimensionalityError: Cannot convert from 'decibelmilliwatt' ([mass] * [length] ** 2 / [time] ** 3) to 'decibel' (dimensionless)

pint/facets/plain/quantity.py:750: DimensionalityError
________________________________________________________________________ test_frequency_octave_addition[100-2.0-400] ________________________________________________________________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7fac2c1229e0>, freq1 = <Quantity(100, 'hertz')>, octaves = 2.0, freq2 = 400

    @pytest.mark.xfail
    @pytest.mark.parametrize(
        "freq1,octaves,freq2",
        [
            (100, 2.0, 400),
            (50, 1.0, 100),
            (200, 0.0, 200),
        ],  # noqa: E231
    )
    def test_frequency_octave_addition(module_registry_auto_offset, freq1, octaves, freq2):
        """Test an Octave can be added to a frequency correctly"""
        freq1 = freq1 * module_registry_auto_offset.Hz
>       shift = octaves * module_registry_auto_offset.Octave

pint/testsuite/test_log_units.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/registry.py:367: in __getattr__
    return self.Unit(item)
pint/facets/plain/unit.py:41: in __init__
    self._units = self._REGISTRY.parse_units(units)._units
pint/facets/plain/registry.py:1199: in parse_units
    self.parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/nonmultiplicative/registry.py:69: in parse_units_as_container
    return super().parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1214: in parse_units_as_container
    return self._parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1249: in _parse_units_as_container
    cname = self.get_name(name, case_sensitive=case_sensitive)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pint.registry.UnitRegistry object at 0x7fac2c1229e0>, name_or_alias = 'Octave', case_sensitive = True

    def get_name(self, name_or_alias: str, case_sensitive: bool | None = None) -> str:
        """Return the canonical name of a unit."""

        if name_or_alias == "dimensionless":
            return ""

        try:
            return self._units[name_or_alias].name
        except KeyError:
            pass

        candidates = self.parse_unit_name(name_or_alias, case_sensitive)
        if not candidates:
>           raise UndefinedUnitError(name_or_alias)
E           pint.errors.UndefinedUnitError: 'Octave' is not defined in the unit registry

pint/facets/plain/registry.py:658: UndefinedUnitError
________________________________________________________________________ test_frequency_octave_addition[50-1.0-100] _________________________________________________________________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7fac2c1229e0>, freq1 = <Quantity(50, 'hertz')>, octaves = 1.0, freq2 = 100

    @pytest.mark.xfail
    @pytest.mark.parametrize(
        "freq1,octaves,freq2",
        [
            (100, 2.0, 400),
            (50, 1.0, 100),
            (200, 0.0, 200),
        ],  # noqa: E231
    )
    def test_frequency_octave_addition(module_registry_auto_offset, freq1, octaves, freq2):
        """Test an Octave can be added to a frequency correctly"""
        freq1 = freq1 * module_registry_auto_offset.Hz
>       shift = octaves * module_registry_auto_offset.Octave

pint/testsuite/test_log_units.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/registry.py:367: in __getattr__
    return self.Unit(item)
pint/facets/plain/unit.py:41: in __init__
    self._units = self._REGISTRY.parse_units(units)._units
pint/facets/plain/registry.py:1199: in parse_units
    self.parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/nonmultiplicative/registry.py:69: in parse_units_as_container
    return super().parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1214: in parse_units_as_container
    return self._parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1249: in _parse_units_as_container
    cname = self.get_name(name, case_sensitive=case_sensitive)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pint.registry.UnitRegistry object at 0x7fac2c1229e0>, name_or_alias = 'Octave', case_sensitive = True

    def get_name(self, name_or_alias: str, case_sensitive: bool | None = None) -> str:
        """Return the canonical name of a unit."""

        if name_or_alias == "dimensionless":
            return ""

        try:
            return self._units[name_or_alias].name
        except KeyError:
            pass

        candidates = self.parse_unit_name(name_or_alias, case_sensitive)
        if not candidates:
>           raise UndefinedUnitError(name_or_alias)
E           pint.errors.UndefinedUnitError: 'Octave' is not defined in the unit registry

pint/facets/plain/registry.py:658: UndefinedUnitError
________________________________________________________________________ test_frequency_octave_addition[200-0.0-200] ________________________________________________________________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7fac2c1229e0>, freq1 = <Quantity(200, 'hertz')>, octaves = 0.0, freq2 = 200

    @pytest.mark.xfail
    @pytest.mark.parametrize(
        "freq1,octaves,freq2",
        [
            (100, 2.0, 400),
            (50, 1.0, 100),
            (200, 0.0, 200),
        ],  # noqa: E231
    )
    def test_frequency_octave_addition(module_registry_auto_offset, freq1, octaves, freq2):
        """Test an Octave can be added to a frequency correctly"""
        freq1 = freq1 * module_registry_auto_offset.Hz
>       shift = octaves * module_registry_auto_offset.Octave

pint/testsuite/test_log_units.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/registry.py:367: in __getattr__
    return self.Unit(item)
pint/facets/plain/unit.py:41: in __init__
    self._units = self._REGISTRY.parse_units(units)._units
pint/facets/plain/registry.py:1199: in parse_units
    self.parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/nonmultiplicative/registry.py:69: in parse_units_as_container
    return super().parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1214: in parse_units_as_container
    return self._parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1249: in _parse_units_as_container
    cname = self.get_name(name, case_sensitive=case_sensitive)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pint.registry.UnitRegistry object at 0x7fac2c1229e0>, name_or_alias = 'Octave', case_sensitive = True

    def get_name(self, name_or_alias: str, case_sensitive: bool | None = None) -> str:
        """Return the canonical name of a unit."""

        if name_or_alias == "dimensionless":
            return ""

        try:
            return self._units[name_or_alias].name
        except KeyError:
            pass

        candidates = self.parse_unit_name(name_or_alias, case_sensitive)
        if not candidates:
>           raise UndefinedUnitError(name_or_alias)
E           pint.errors.UndefinedUnitError: 'Octave' is not defined in the unit registry

pint/facets/plain/registry.py:658: UndefinedUnitError
______________________________________________________________ TestNumpyMathematicalFunctions.test_exponentiation_array_exp_2 _______________________________________________________________

self = <pint.testsuite.test_numpy.TestNumpyMathematicalFunctions object at 0x7fac430217e0>

    @pytest.mark.xfail
    @helpers.requires_numpy
    def test_exponentiation_array_exp_2(self):
        arr = np.array(range(3), dtype=float)
        # q = self.Q_(copy.copy(arr), None)
        q = self.Q_(copy.copy(arr), "meter")
        arr_cp = copy.copy(arr)
        q_cp = copy.copy(q)
        # this fails as expected since numpy 1.8.0 but...
        with pytest.raises(DimensionalityError):
            op.pow(arr_cp, q_cp)
        # ..not for op.ipow !
        # q_cp is treated as if it is an array. The units are ignored.
        # Quantity.__ipow__ is never called
        arr_cp = copy.copy(arr)
        q_cp = copy.copy(q)
        with pytest.raises(DimensionalityError):
>           op.ipow(arr_cp, q_cp)

pint/testsuite/test_numpy.py:566:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/numpy/quantity.py:72: in __array_ufunc__
    return numpy_wrap("ufunc", ufunc, inputs, kwargs, types)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

func_type = 'ufunc', func = <ufunc 'power'>, args = (array([0., 1., 2.]), <Quantity([0. 1. 2.], 'meter')>), kwargs = {'out': (array([0., 1., 2.]),)}
types = {<class 'pint.Quantity'>, <class 'numpy.ndarray'>}

    def numpy_wrap(func_type, func, args, kwargs, types):
        """Return the result from a NumPy function/ufunc as wrapped by Pint."""

        if func_type == "function":
            handled = HANDLED_FUNCTIONS
            # Need to handle functions in submodules
            name = ".".join(func.__module__.split(".")[1:] + [func.__name__])
        elif func_type == "ufunc":
            handled = HANDLED_UFUNCS
            # ufuncs do not have func.__module__
            name = func.__name__
        else:
            raise ValueError(f"Invalid func_type {func_type}")

        if name not in handled or any(is_upcast_type(t) for t in types):
            return NotImplemented
>       return handled[name](*args, **kwargs)
E       TypeError: _power() got an unexpected keyword argument 'out'

pint/facets/numpy/numpy_func.py:1071: TypeError
__________________________________________________________ TestQuantityWithDefaultRegistry.test_formatting_override_default_units ___________________________________________________________

self = <pint.testsuite.test_quantity.TestQuantityWithDefaultRegistry object at 0x7fac4307f400>

    @pytest.mark.xfail(reason="Still not clear how default formatting will work.")
    def test_formatting_override_default_units(self):
        ureg = UnitRegistry()
        ureg.formatter.default_format = "~"
        x = ureg.Quantity(4, "m ** 2")

        assert f"{x:dP}" == "4 meter²"
>       with pytest.warns(DeprecationWarning):
E       Failed: DID NOT WARN. No warnings of type (<class 'DeprecationWarning'>,) were emitted.
E        Emitted warnings: [].

pint/testsuite/test_quantity.py:278: Failed
________________________________________________________ TestQuantityWithDefaultRegistry.test_formatting_override_default_magnitude _________________________________________________________

self = <pint.testsuite.test_quantity.TestQuantityWithDefaultRegistry object at 0x7fac4307efe0>

    @pytest.mark.xfail(reason="Still not clear how default formatting will work.")
    def test_formatting_override_default_magnitude(self):
        ureg = UnitRegistry()
        ureg.formatter.default_format = ".2f"
        x = ureg.Quantity(4, "m ** 2")

        assert f"{x:dP}" == "4 meter²"
>       with pytest.warns(DeprecationWarning):
E       Failed: DID NOT WARN. No warnings of type (<class 'DeprecationWarning'>,) were emitted.
E        Emitted warnings: [].

pint/testsuite/test_quantity.py:292: Failed
______________________________________________________________________ TestUnit.test_unit_formatting_defaults_warning _______________________________________________________________________

self = <pint.testsuite.test_unit.TestUnit object at 0x7fac429190f0>

    @pytest.mark.xfail(reason="Still not clear how default formatting will work.")
    def test_unit_formatting_defaults_warning(self):
        ureg = UnitRegistry()
        ureg.default_format = "~P"
        x = ureg.Unit("m / s ** 2")

>       with pytest.warns(DeprecationWarning):
E       Failed: DID NOT WARN. No warnings of type (<class 'DeprecationWarning'>,) were emitted.
E        Emitted warnings: [].

pint/testsuite/test_unit.py:116: Failed
===================================================================================== warnings summary ======================================================================================
pint/testsuite/benchmarks/test_00_common.py::test_import
  /usr/lib/python3.10/site-packages/_pytest/python.py:166: PytestReturnNotNoneWarning: Expected None, but pint/testsuite/benchmarks/test_00_common.py::test_import returned 313623, which will be an error in a future version of pytest.  Did you mean to use `assert` instead of `return`?
    warnings.warn(

pint/testsuite/benchmarks/test_00_common.py::test_import
  pint/testsuite/benchmarks/test_00_common.py:7: PytestBenchmarkWarning: Benchmark fixture was not used at all in this test!
    def test_import(benchmark):

pint/testsuite/test_babel.py::test_format
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:26: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_quantity_babel
    assert distance.format_babel(locale="fr_FR", length="long") == "24,1 mètres"

pint/testsuite/test_babel.py::test_registry_locale
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:46: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_quantity_babel
    assert distance.format_babel(length="long") == "24,1 mètres"

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:67: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_unit_babel
    assert volume.format_babel() == "millilitre"

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:69: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = "~"

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:70: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_unit_babel
    assert volume.format_babel() == "ml"

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:73: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_unit_babel
    assert dimensionless_unit.format_babel() == ""

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:75: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.set_locale
    ureg.set_fmt_locale(None)

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:77: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_unit_babel
    volume.format_babel()

pint/testsuite/test_babel.py::test_no_registry_locale
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:85: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_quantity_babel
    distance.format_babel()

pint/testsuite/test_babel.py::test_str
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_babel.py:98: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.set_locale
    ureg.set_fmt_locale("fr_FR")

pint/testsuite/test_issues.py::TestIssues::test_issue39
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_issues.py:76: PendingDeprecationWarning: the matrix subclass is not the recommended way to represent matrices or deal with linear algebra (see https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please adjust your code to use regular ndarray.
    x = np.matrix([[1, 2, 3], [1, 2, 3], [1, 2, 3]])

pint/testsuite/test_issues.py::TestIssues::test_issue_1400
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_issues.py:920: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_quantity_babel
    assert q1.format_babel("~", locale="es_ES") == "3,1 W"

pint/testsuite/test_issues.py::test_issues_1841[units0-P~-V\xb7A]
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_issues.py:1205: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ur.default_format = spec

pint/testsuite/test_issues.py::test_issues_1841_xfail
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_issues.py:1217: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ur.default_format = "~P"

pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_put
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/facets/numpy/quantity.py:154: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.
    self.magnitude.put(indices, values, mode)

pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_copyto
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/facets/numpy/numpy_func.py:1071: UnitStrippedWarning: The unit of the quantity is stripped when copying to non-quantity
    return handled[name](*args, **kwargs)

pint/testsuite/test_quantity.py::TestQuantityToCompact::test_nonnumeric_magnitudes
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testing.py:78: UserWarning: In assert_equal, m1 is not a number
    warnings.warn("In assert_equal, m1 is not a number ", UserWarning)

pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:73: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = spec

pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:86: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = spec

pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:107: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = spec

pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_defaults_warning
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:113: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = "~P"

pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:139: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = spec

pint/testsuite/test_unit.py::TestUnit::test_ipython
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:180: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = "~"

pint/testsuite/test_unit.py::TestRegistry::test_default_format
pint/testsuite/test_unit.py::TestRegistryWithDefaultRegistry::test_default_format
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:325: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = "~"

pint/testsuite/test_unit.py::TestRegistry::test_default_format
pint/testsuite/test_unit.py::TestRegistryWithDefaultRegistry::test_default_format
  /home/tkloczko/rpmbuild/BUILD/pint-0.24/pint/testsuite/test_unit.py:329: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    assert ureg.default_format == "~"

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
========================================================================================== XPASSES ==========================================================================================

---------------------------------------------------------------------------------------------------------------------- benchmark: 437 tests ---------------------------------------------------------------------------------------------------------------------
Name (time in us)                                                     Min                     Max                    Mean                  StdDev                  Median                     IQR            Outliers           OPS            Rounds  Iterations
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_op1[truth-int_meter]                                          2.1551 (1.0)           28.0549 (2.73)           2.2789 (1.00)           0.2448 (1.21)           2.2630 (1.0)            0.0491 (1.07)     285;2703  438,810.9205 (1.00)      84524           1
test_op1[truth-complex_meter]                                      2.1571 (1.00)          43.6150 (4.24)           2.2761 (1.0)            0.2368 (1.17)           2.2639 (1.00)           0.0499 (1.09)     246;1764  439,352.2001 (1.0)       90050           1
test_op1[truth-float_kilometer]                                    2.1871 (1.01)          51.5879 (5.01)           2.3333 (1.03)           0.2624 (1.30)           2.3141 (1.02)           0.0560 (1.22)     315;4705  428,573.4031 (0.98)     115048           1
test_op1[truth-float_meter]                                        2.1880 (1.02)          19.1970 (1.86)           2.3417 (1.03)           0.2696 (1.33)           2.3091 (1.02)           0.0610 (1.33)    1062;9431  427,037.2211 (0.97)      98030           1
test_op1[truth-int_kilometer]                                      2.1909 (1.02)          19.1620 (1.86)           2.3185 (1.02)           0.2026 (1.0)            2.3050 (1.02)           0.0501 (1.09)     329;2160  431,308.0993 (0.98)     106532           1
test_op1[truth-complex_kilometer]                                  2.2060 (1.02)          23.5350 (2.29)           2.3460 (1.03)           0.2484 (1.23)           2.3220 (1.03)           0.0560 (1.22)     642;8413  426,250.3515 (0.97)     118274           1
test_wrapper_nonstrict[float_meter]                                2.7979 (1.30)          54.5640 (5.30)           2.9327 (1.29)           0.3110 (1.54)           2.9131 (1.29)           0.0460 (1.0)      959;3622  340,977.1457 (0.78)     123320           1
test_wrapper_nonstrict[complex_kilometer]                          2.8010 (1.30)          28.2710 (2.75)           2.9556 (1.30)           0.2982 (1.47)           2.9210 (1.29)           0.0539 (1.17)   2432;10250  338,344.5423 (0.77)     123336           1
test_to_units_container_detached[True-angstrom]                    2.8110 (1.30)          43.8720 (4.26)           3.0330 (1.33)           0.4038 (1.99)           2.9920 (1.32)           0.0721 (1.57)    669;16404  329,711.1020 (0.75)     145201           1
test_wrapper_nonstrict[complex_meter]                              2.8120 (1.30)          61.7270 (6.00)           2.9886 (1.31)           0.3128 (1.54)           2.9741 (1.31)           0.0657 (1.43)     370;1257  334,606.4452 (0.76)     110351           1
test_to_units_container_detached[True-meter]                       2.8150 (1.31)          31.6029 (3.07)           3.0081 (1.32)           0.3737 (1.84)           2.9739 (1.31)           0.0610 (1.33)    709;12183  332,431.3833 (0.76)     144758           1
test_wrapper_nonstrict[int_kilometer]                              2.8200 (1.31)          27.5819 (2.68)           2.9862 (1.31)           0.2913 (1.44)           2.9610 (1.31)           0.0591 (1.29)     803;7539  334,877.4585 (0.76)     125533           1
test_to_units_container_registry[True-angstrom]                    2.8210 (1.31)          35.4131 (3.44)           3.0023 (1.32)           0.3639 (1.80)           2.9720 (1.31)           0.0581 (1.26)    576;10184  333,080.8903 (0.76)     142067           1
test_wrapper_nonstrict[float_kilometer]                            2.8260 (1.31)          32.5750 (3.16)           2.9833 (1.31)           0.2884 (1.42)           2.9550 (1.31)           0.0560 (1.22)     765;8608  335,197.7815 (0.76)     109254           1
test_wrapper_nonstrict[int_meter]                                  2.8290 (1.31)          11.1209 (1.08)           2.9684 (1.30)           0.2457 (1.21)           2.9510 (1.30)           0.0501 (1.09)     402;2530  336,882.0027 (0.77)     122926           1
test_to_units_container_registry[True-meter]                       2.8310 (1.31)          28.8120 (2.80)           3.0390 (1.34)           0.3795 (1.87)           2.9930 (1.32)           0.0671 (1.46)    904;18180  329,057.7982 (0.75)     140430           1
test_to_units_container_registry[False-meter]                      2.8370 (1.32)          42.7890 (4.16)           3.0267 (1.33)           0.4375 (2.16)           2.9911 (1.32)           0.0590 (1.28)     146;2782  330,397.9868 (0.75)      35959           1
test_to_units_container_detached[False-angstrom]                   2.8450 (1.32)          25.7430 (2.50)           3.0840 (1.35)           0.4655 (2.30)           3.0200 (1.33)           0.1059 (2.30)     160;3177  324,254.1061 (0.74)      35702           1
test_to_units_container_registry[False-angstrom]                   2.8540 (1.32)          23.0350 (2.24)           3.0272 (1.33)           0.3776 (1.86)           2.9950 (1.32)           0.0540 (1.17)     159;3163  330,336.6347 (0.75)      39494           1
test_to_units_container_detached[False-meter]                      2.8770 (1.33)          19.8920 (1.93)           3.0667 (1.35)           0.3448 (1.70)           3.0249 (1.34)           0.0750 (1.63)     500;3809  326,078.9063 (0.74)      38231           1
test_parse_units[True-angstrom]                                    3.3090 (1.54)          50.2280 (4.88)           3.4600 (1.52)           0.3195 (1.58)           3.4360 (1.52)           0.0531 (1.15)     625;3925  289,020.1594 (0.66)     116769           1
test_parse_units[True-second]                                      3.3240 (1.54)          30.4581 (2.96)           3.5331 (1.55)           0.3060 (1.51)           3.5040 (1.55)           0.0650 (1.41)    1135;7739  283,040.7270 (0.64)     126823           1
test_parse_units[True-meter]                                       3.3451 (1.55)          19.6219 (1.91)           3.5289 (1.55)           0.2973 (1.47)           3.4990 (1.55)           0.0601 (1.31)     986;8045  283,371.5849 (0.64)     124348           1
test_parse_units[False-second]                                     3.3471 (1.55)          50.1170 (4.87)           3.4913 (1.53)           0.3898 (1.92)           3.4660 (1.53)           0.0549 (1.19)     146;1107  286,425.1056 (0.65)      35574           1
test_parse_units[True-millisecond]                                 3.3490 (1.55)          32.4060 (3.15)           3.5567 (1.56)           0.3227 (1.59)           3.5220 (1.56)           0.0820 (1.78)    3848;8683  281,162.1450 (0.64)     139802           1
test_parse_units[True-minute]                                      3.3501 (1.55)          20.3670 (1.98)           3.5098 (1.54)           0.3037 (1.50)           3.4790 (1.54)           0.0590 (1.28)    3345;5572  284,919.8514 (0.65)     126327           1
test_parse_units[True-kilometer]                                   3.3510 (1.55)          27.2440 (2.65)           3.5105 (1.54)           0.2874 (1.42)           3.4899 (1.54)           0.0620 (1.35)     608;3187  284,861.8302 (0.65)     142634           1
test_parse_units[False-millisecond]                                3.3630 (1.56)          34.1400 (3.32)           3.4842 (1.53)           0.4204 (2.08)           3.4600 (1.53)           0.0482 (1.05)       39;227  287,012.6725 (0.65)       9677           1
test_parse_units[False-meter]                                      3.3870 (1.57)          12.1041 (1.18)           3.5324 (1.55)           0.2771 (1.37)           3.5131 (1.55)           0.0522 (1.13)      130;663  283,093.2234 (0.64)      33031           1
test_parse_units[False-minute]                                     3.3891 (1.57)          11.8889 (1.15)           3.5396 (1.56)           0.2660 (1.31)           3.5210 (1.56)           0.0531 (1.15)      128;603  282,515.3596 (0.64)      34164           1
test_parse_units[False-angstrom]                                   3.3900 (1.57)          11.6370 (1.13)           3.5557 (1.56)           0.2832 (1.40)           3.5351 (1.56)           0.0590 (1.28)      150;594  281,239.7066 (0.64)      35561           1
test_parse_units[False-kilometer]                                  3.4090 (1.58)          10.2951 (1.0)            3.5427 (1.56)           0.2616 (1.29)           3.5240 (1.56)           0.0530 (1.15)       37;197  282,269.9783 (0.64)       9436           1
test_op2[lt-keys3]                                                 4.2011 (1.95)          21.3491 (2.07)           4.4766 (1.97)           0.3730 (1.84)           4.4270 (1.96)           0.0991 (2.15)     695;5434  223,383.8848 (0.51)      49274           1
test_op2[lt-keys0]                                                 4.2140 (1.96)          14.9240 (1.45)           4.4506 (1.96)           0.3122 (1.54)           4.4260 (1.96)           0.0820 (1.78)     245;1108  224,686.9945 (0.51)      39978           1
test_op2[lt-keys4]                                                 4.6639 (2.16)          14.1150 (1.37)           4.9146 (2.16)           0.3353 (1.66)           4.8870 (2.16)           0.0860 (1.87)     283;1024  203,474.4029 (0.46)      47978           1
test_op2[lt-keys7]                                                 4.6710 (2.17)          13.8620 (1.35)           4.9266 (2.16)           0.3195 (1.58)           4.9020 (2.17)           0.0880 (1.91)      268;897  202,979.0666 (0.46)      50328           1
test_op2[eq-keys7]                                                 4.8660 (2.26)          33.3420 (3.24)           5.1436 (2.26)           0.3496 (1.73)           5.1190 (2.26)           0.0839 (1.83)     507;1226  194,415.7767 (0.44)      64864           1
test_op2[eq-keys0]                                                 4.8680 (2.26)          26.4220 (2.57)           5.1036 (2.24)           0.4799 (2.37)           5.0550 (2.23)           0.0770 (1.67)     340;3540  195,940.7526 (0.45)      52615           1
test_op2[eq-keys11]                                                4.8759 (2.26)          14.6190 (1.42)           5.1331 (2.26)           0.3236 (1.60)           5.1101 (2.26)           0.0850 (1.85)      365;961  194,812.5255 (0.44)      62097           1
test_op2[eq-keys31]                                                4.8809 (2.26)          60.6531 (5.89)           5.1473 (2.26)           0.4518 (2.23)           5.1160 (2.26)           0.0879 (1.91)     859;1741  194,274.9031 (0.44)      61931           1
test_op2[eq-keys24]                                                4.8880 (2.27)          56.1511 (5.45)           5.1279 (2.25)           0.4100 (2.02)           5.0990 (2.25)           0.0830 (1.81)     339;1157  195,011.1879 (0.44)      59949           1
test_op2[eq-keys28]                                                4.8920 (2.27)          61.8880 (6.01)           5.1692 (2.27)           0.4498 (2.22)           5.1231 (2.26)           0.0818 (1.78)     758;4238  193,452.3467 (0.44)      64667           1
test_op2[eq-keys21]                                                4.8929 (2.27)          22.1020 (2.15)           5.1451 (2.26)           0.3464 (1.71)           5.1180 (2.26)           0.0990 (2.15)     402;1086  194,358.0351 (0.44)      64801           1
test_op2[eq-keys35]                                                4.8950 (2.27)          59.4700 (5.78)           5.1584 (2.27)           0.4375 (2.16)           5.1120 (2.26)           0.0910 (1.98)     987;5011  193,857.1607 (0.44)      65096           1
test_op2[eq-keys12]                                                4.9010 (2.27)          59.1910 (5.75)           5.2074 (2.29)           0.4526 (2.23)           5.1500 (2.28)           0.1040 (2.26)    2143;5952  192,033.4353 (0.44)      64025           1
test_op2[eq-keys26]                                                4.9151 (2.28)          20.0040 (1.94)           5.1716 (2.27)           0.3286 (1.62)           5.1480 (2.27)           0.0880 (1.91)      334;819  193,362.0757 (0.44)      60599           1
test_op2[eq-keys14]                                                4.9210 (2.28)          23.4840 (2.28)           5.1424 (2.26)           0.3045 (1.50)           5.1161 (2.26)           0.0910 (1.98)      353;955  194,460.2441 (0.44)      61279           1
test_op2[eq-keys2]                                                 4.9210 (2.28)          51.2400 (4.98)           5.2003 (2.28)           0.5447 (2.69)           5.1210 (2.26)           0.0959 (2.09)     508;8963  192,296.9170 (0.44)      59524           1
test_op2[eq-keys23]                                                4.9240 (2.28)          46.0750 (4.48)           5.1888 (2.28)           0.3899 (1.92)           5.1610 (2.28)           0.0981 (2.13)     445;1366  192,723.7461 (0.44)      61547           1
test_op2[eq-keys9]                                                 4.9360 (2.29)          60.6300 (5.89)           5.2015 (2.29)           0.4701 (2.32)           5.1550 (2.28)           0.0790 (1.72)     671;3902  192,253.1008 (0.44)      62941           1
test_op2[eq-keys16]                                                4.9390 (2.29)          46.9510 (4.56)           5.1633 (2.27)           0.3682 (1.82)           5.1340 (2.27)           0.0871 (1.89)     465;1472  193,675.1969 (0.44)      61185           1
test_op2[eq-keys4]                                                 4.9530 (2.30)          28.0880 (2.73)           5.2847 (2.32)           0.5198 (2.57)           5.1830 (2.29)           0.1352 (2.94)    717;11163  189,224.8431 (0.43)      60039           1
test_op2[eq-keys19]                                                4.9811 (2.31)          54.0761 (5.25)           5.2615 (2.31)           0.4678 (2.31)           5.2000 (2.30)           0.0960 (2.09)    2521;5378  190,060.1884 (0.43)      64738           1
test_op2[eq-keys33]                                                5.1020 (2.37)          20.1480 (1.96)           5.3578 (2.35)           0.3372 (1.66)           5.3321 (2.36)           0.0971 (2.11)      345;744  186,644.9225 (0.42)      61174           1
test_op1[neg-float_kilometer]                                      5.8149 (2.70)          54.0600 (5.25)           6.1058 (2.68)           0.5097 (2.52)           6.0251 (2.66)           0.0990 (2.15)    2777;4988  163,779.8291 (0.37)      50935           1
test_op1[neg-float_meter]                                          5.8380 (2.71)          17.1841 (1.67)           6.0737 (2.67)           0.3604 (1.78)           6.0441 (2.67)           0.0859 (1.87)      336;749  164,643.9279 (0.37)      53246           1
test_op1[neg-complex_meter]                                        5.8410 (2.71)          27.2890 (2.65)           6.0852 (2.67)           0.4179 (2.06)           6.0450 (2.67)           0.0841 (1.83)     920;1480  164,332.2109 (0.37)      51811           1
test_op1[neg-complex_kilometer]                                    5.8470 (2.71)          32.8530 (3.19)           6.1507 (2.70)           0.4734 (2.34)           6.0910 (2.69)           0.0920 (2.00)    2199;3045  162,582.5284 (0.37)      51499           1
test_op1[neg-int_kilometer]                                        5.8570 (2.72)          28.8740 (2.80)           6.1070 (2.68)           0.4121 (2.03)           6.0600 (2.68)           0.0810 (1.76)     906;2738  163,745.8298 (0.37)      51957           1
test_op1[neg-int_meter]                                            5.8759 (2.73)          24.0580 (2.34)           6.1586 (2.71)           0.4261 (2.10)           6.0820 (2.69)           0.0930 (2.02)    3077;5098  162,375.4143 (0.37)      48354           1
test_getattr[True-meter]                                           6.4400 (2.99)          36.2550 (3.52)           6.7152 (2.95)           0.3862 (1.91)           6.6840 (2.95)           0.0870 (1.89)     521;1020  148,916.6099 (0.34)      72125           1
test_build_by_mul[int]                                             6.4670 (3.00)          19.0409 (1.85)           6.7430 (2.96)           0.3954 (1.95)           6.7070 (2.96)           0.0880 (1.91)     413;1043  148,301.4034 (0.34)      55929           1
test_getattr[True-angstrom]                                        6.4960 (3.01)          23.5679 (2.29)           6.7477 (2.96)           0.4276 (2.11)           6.7080 (2.96)           0.0831 (1.81)     629;1919  148,197.6834 (0.34)      70029           1
test_getattr[False-meter]                                          6.5219 (3.03)          19.1550 (1.86)           6.7733 (2.98)           0.3758 (1.86)           6.7401 (2.98)           0.0868 (1.89)      201;519  147,638.6600 (0.34)      25733           1
test_getattr[False-minute]                                         6.5289 (3.03)          27.9720 (2.72)           6.7920 (2.98)           0.4484 (2.21)           6.7480 (2.98)           0.0790 (1.72)      377;944  147,231.9381 (0.34)      27123           1
test_getattr[True-kilometer]                                       6.5321 (3.03)          36.7890 (3.57)           6.9991 (3.08)           0.8202 (4.05)           6.8321 (3.02)           0.1540 (3.35)   1369;14647  142,874.8568 (0.33)      72570           1
test_getattr[False-angstrom]                                       6.5580 (3.04)          48.5000 (4.71)           6.7953 (2.99)           0.4589 (2.27)           6.7579 (2.99)           0.0790 (1.72)      286;789  147,160.4879 (0.33)      27970           1
test_getattr[True-second]                                          6.5840 (3.06)          39.9140 (3.88)           6.9027 (3.03)           0.4494 (2.22)           6.8661 (3.03)           0.1009 (2.19)     695;1479  144,870.0024 (0.33)      74102           1
test_getattr[False-second]                                         6.5931 (3.06)          26.4189 (2.57)           6.8444 (3.01)           0.4297 (2.12)           6.8060 (3.01)           0.0930 (2.02)      207;532  146,103.8114 (0.33)      26386           1
test_build_by_mul[float]                                           6.6019 (3.06)          24.2130 (2.35)           6.8873 (3.03)           0.4483 (2.21)           6.8230 (3.02)           0.1109 (2.41)    1688;4525  145,194.0341 (0.33)      57881           1
test_getattr[True-millisecond]                                     6.6110 (3.07)          53.2090 (5.17)           6.9144 (3.04)           0.5330 (2.63)           6.8290 (3.02)           0.0970 (2.11)     971;8551  144,626.4108 (0.33)      72151           1
test_getattr[False-millisecond]                                    6.6309 (3.08)          53.3330 (5.18)           6.8729 (3.02)           0.6992 (3.45)           6.8130 (3.01)           0.0866 (1.88)       79;388  145,498.7916 (0.33)       8920           1
test_finding_meter_getattr                                         6.6321 (3.08)          59.1180 (5.74)           6.9477 (3.05)           0.5062 (2.50)           6.8829 (3.04)           0.1150 (2.50)     834;4386  143,932.0254 (0.33)      51039           1
test_base_units[True-kilometer/second]                             6.6509 (3.09)          30.4719 (2.96)           7.1148 (3.13)           0.6869 (3.39)           6.8931 (3.05)           0.5291 (11.51)     607;516  140,551.7101 (0.32)      47464           1
test_base_units[False-angstrom/minute]                             6.6520 (3.09)          27.8290 (2.70)           6.9070 (3.03)           0.5877 (2.90)           6.8360 (3.02)           0.0820 (1.78)     128;1102  144,780.8094 (0.33)      15079           1
test_base_units[meter/second]                                      6.6550 (3.09)          18.5079 (1.80)           6.9171 (3.04)           0.4979 (2.46)           6.8725 (3.04)           0.0951 (2.07)        51;85  144,569.1572 (0.33)       5464           1
test_base_units[True-angstrom/minute]                              6.7520 (3.13)          27.8860 (2.71)           7.0448 (3.10)           0.5623 (2.78)           6.9760 (3.08)           0.0900 (1.96)    1049;5695  141,949.2321 (0.32)      76653           1
test_getattr[True-minute]                                          6.8040 (3.16)          36.9491 (3.59)           7.0661 (3.10)           0.5492 (2.71)           7.0040 (3.10)           0.0790 (1.72)    1617;2921  141,521.2584 (0.32)      65907           1
test_base_units[angstrom/minute]                                   6.8200 (3.16)          17.7510 (1.72)           7.0260 (3.09)           0.3235 (1.60)           6.9999 (3.09)           0.0830 (1.81)        46;87  142,329.0291 (0.32)       5303           1
test_op1[neg-short_array_kilometer]                                6.8770 (3.19)          54.6321 (5.31)           7.2182 (3.17)           0.6194 (3.06)           7.1030 (3.14)           0.1061 (2.31)    2288;4328  138,539.2784 (0.32)      36641           1
test_getattr[False-kilometer]                                      6.8940 (3.20)          23.7710 (2.31)           7.3131 (3.21)           0.5602 (2.77)           7.1269 (3.15)           0.5009 (10.89)      224;67  136,740.3013 (0.31)       8644           1
test_op1[neg-short_array_meter]                                    7.0580 (3.28)          34.0270 (3.31)           7.3644 (3.24)           0.4313 (2.13)           7.3260 (3.24)           0.1030 (2.24)      187;614  135,788.3873 (0.31)      23571           1
test_base_units[False-kilometer/second]                            7.1699 (3.33)          23.8860 (2.32)           7.4452 (3.27)           0.5713 (2.82)           7.3740 (3.26)           0.0900 (1.96)       90;490  134,314.2110 (0.31)       7094           1
test_op1[neg-mid_array_kilometer]                                  7.6260 (3.54)          23.0810 (2.24)           7.9430 (3.49)           0.4674 (2.31)           7.8981 (3.49)           0.1029 (2.24)      333;893  125,896.9715 (0.29)      35099           1
test_base_units[True-angstrom]                                     8.0840 (3.75)          47.7590 (4.64)           8.4685 (3.72)           0.7465 (3.69)           8.3660 (3.70)           0.1190 (2.59)    1805;6059  118,084.4574 (0.27)      72255           1
test_base_units[meter]                                             8.1081 (3.76)          71.0840 (6.90)           8.4942 (3.73)           0.6329 (3.12)           8.4051 (3.71)           0.1150 (2.50)     723;3460  117,727.5461 (0.27)      34975           1
test_op1[neg-mid_array_meter]                                      8.1309 (3.77)          22.3040 (2.17)           8.4213 (3.70)           0.4300 (2.12)           8.3770 (3.70)           0.1059 (2.30)     464;1076  118,746.1923 (0.27)      35559           1
test_base_units[False-meter]                                       8.1360 (3.78)          25.9010 (2.52)           8.6330 (3.79)           0.7064 (3.49)           8.4970 (3.75)           0.1460 (3.17)     783;5314  115,834.8011 (0.26)      31200           1
test_base_units[True-meter]                                        8.1729 (3.79)          41.3270 (4.01)           8.5861 (3.77)           0.7714 (3.81)           8.4500 (3.73)           0.1290 (2.81)    2364;8412  116,467.3939 (0.27)      68251           1
test_base_units[False-angstrom]                                    8.2019 (3.81)          55.4411 (5.39)           8.5572 (3.76)           0.7044 (3.48)           8.4720 (3.74)           0.1111 (2.42)     326;2272  116,860.7602 (0.27)      31073           1
test_op2[eq-keys3]                                                 8.4520 (3.92)          62.3980 (6.06)           8.8895 (3.91)           0.7083 (3.50)           8.7610 (3.87)           0.1339 (2.91)     787;3688  112,491.7742 (0.26)      28746           1
test_op2[eq-keys0]                                                 8.5310 (3.96)          18.0190 (1.75)           8.8249 (3.88)           0.4920 (2.43)           8.7710 (3.88)           0.1031 (2.24)      187;395  113,315.7846 (0.26)      12847           1
test_base_units[angstrom]                                          8.5660 (3.97)          24.4711 (2.38)           8.8615 (3.89)           0.4678 (2.31)           8.8190 (3.90)           0.0930 (2.02)       65;103  112,847.7845 (0.26)       6751           1
test_op2[eq-keys7]                                                 9.1310 (4.24)          30.6880 (2.98)           9.6575 (4.24)           0.8262 (4.08)           9.4359 (4.17)           0.1390 (3.02)    2333;3836  103,546.7835 (0.24)      28147           1
test_convert_from_uc[True-key0]                                    9.6409 (4.47)          54.9069 (5.33)          10.0446 (4.41)           0.7434 (3.67)           9.9071 (4.38)           0.1240 (2.70)    1514;7190   99,555.8500 (0.23)      59436           1
test_convert_from_uc[False-key0]                                   9.6649 (4.48)          34.9600 (3.40)          10.0750 (4.43)           0.8512 (4.20)           9.9509 (4.40)           0.1290 (2.81)     276;1091   99,255.0988 (0.23)      12353           1
test_op2[eq-keys4]                                                10.0411 (4.66)          27.6749 (2.69)          10.3724 (4.56)           0.5703 (2.82)          10.3100 (4.56)           0.1130 (2.46)      351;850   96,409.7973 (0.22)      25860           1
test_to_units_container_detached[False-angstrom/minute]           13.1350 (6.09)          44.0070 (4.27)          13.6983 (6.02)           0.8437 (4.17)          13.5450 (5.99)           0.2070 (4.50)    1131;2403   73,001.8399 (0.17)      30310           1
test_to_units_container_detached[True-kilometer/second]           13.2089 (6.13)          37.8139 (3.67)          13.8824 (6.10)           0.9517 (4.70)          13.6610 (6.04)           0.2580 (5.61)    2882;5433   72,033.7665 (0.16)      44685           1
test_to_units_container_detached[True-angstrom/minute]            13.2450 (6.15)          43.8089 (4.26)          13.8460 (6.08)           0.8878 (4.38)          13.7109 (6.06)           0.1841 (4.00)    1653;3570   72,223.2039 (0.16)      45828           1
test_convert_from_uc[True-key1]                                   13.2751 (6.16)          53.9600 (5.24)          13.8823 (6.10)           1.0189 (5.03)          13.6649 (6.04)           0.1680 (3.65)    2887;6280   72,034.1156 (0.16)      48874           1
test_to_units_container_registry[False-angstrom/minute]           13.2979 (6.17)          35.9220 (3.49)          13.9703 (6.14)           0.9438 (4.66)          13.7490 (6.08)           0.2099 (4.56)    1938;4238   71,580.5022 (0.16)      30273           1
test_to_units_container_registry[True-kilometer/second]           13.3190 (6.18)          60.2531 (5.85)          14.0476 (6.17)           0.9448 (4.66)          13.8720 (6.13)           0.2671 (5.81)    1878;5203   71,186.3380 (0.16)      43688           1
test_to_units_container_registry[True-angstrom/minute]            13.3200 (6.18)          51.2791 (4.98)          13.9975 (6.15)           0.9822 (4.85)          13.7901 (6.09)           0.1850 (4.02)    2499;5521   71,441.4356 (0.16)      43013           1
test_to_units_container_detached[False-kilometer/second]          13.3750 (6.21)          33.4179 (3.25)          13.9916 (6.15)           0.9357 (4.62)          13.8310 (6.11)           0.2240 (4.87)      293;727   71,471.4236 (0.16)       8337           1
test_to_units_container_registry[False-kilometer/second]          13.4110 (6.22)          30.8009 (2.99)          13.8768 (6.10)           0.7757 (3.83)          13.7460 (6.07)           0.1519 (3.30)      502;690   72,062.8126 (0.16)       9040           1
test_convert_from_uc[False-key1]                                  13.4349 (6.23)          34.2730 (3.33)          13.9352 (6.12)           0.9466 (4.67)          13.7680 (6.08)           0.1319 (2.87)      330;814   71,760.9199 (0.16)       9009           1
test_wrapper[float_kilometer]                                     13.9311 (6.46)          68.6049 (6.66)          14.4189 (6.33)           0.8688 (4.29)          14.3370 (6.34)           0.1350 (2.94)      179;394   69,353.2729 (0.16)      11577           1
test_wrapper[int_meter]                                           13.9449 (6.47)          39.3920 (3.83)          14.4457 (6.35)           0.7056 (3.48)          14.3349 (6.33)           0.2740 (5.96)      249;280   69,224.6695 (0.16)      12150           1
test_wrapper[complex_kilometer]                                   13.9520 (6.47)          46.3580 (4.50)          14.4351 (6.34)           0.7373 (3.64)          14.3510 (6.34)           0.1810 (3.94)      183;301   69,275.7718 (0.16)      11278           1
test_wrapper[int_kilometer]                                       13.9930 (6.49)          30.3451 (2.95)          14.4020 (6.33)           0.5885 (2.91)          14.3190 (6.33)           0.1839 (4.00)      171;222   69,434.9924 (0.16)      11032           1
test_wrapper[complex_meter]                                       14.1350 (6.56)          39.4740 (3.83)          14.8232 (6.51)           0.8994 (4.44)          14.5719 (6.44)           0.2621 (5.70)     593;2640   67,461.8011 (0.15)      13223           1
test_wrapper[float_meter]                                         14.1900 (6.58)          37.6020 (3.65)          14.6381 (6.43)           0.6467 (3.19)          14.5601 (6.43)           0.1501 (3.26)      183;332   68,315.0205 (0.16)      11807           1
test_op2[sub-keys2]                                               14.4920 (6.72)          49.9510 (4.85)          15.2868 (6.72)           1.0747 (5.31)          14.9460 (6.60)           0.3080 (6.70)    1880;4374   65,415.9062 (0.15)      20106           1
test_op2[sub-keys21]                                              14.5551 (6.75)          39.0050 (3.79)          15.2655 (6.71)           1.0440 (5.15)          14.9800 (6.62)           0.3690 (8.03)     554;2848   65,507.3637 (0.15)      14283           1
test_op2[sub-keys23]                                              14.5901 (6.77)          50.9280 (4.95)          15.1934 (6.68)           0.9790 (4.83)          15.0229 (6.64)           0.2820 (6.13)     566;1210   65,818.0218 (0.15)      15912           1
test_op2[sub-keys31]                                              14.6270 (6.79)          39.7420 (3.86)          15.2829 (6.71)           1.0082 (4.98)          15.0501 (6.65)           0.2200 (4.78)     563;2404   65,432.4480 (0.15)      15957           1
test_op2[sub-keys9]                                               14.6329 (6.79)          39.0870 (3.80)          15.1876 (6.67)           0.8893 (4.39)          15.0329 (6.64)           0.1830 (3.98)     762;1250   65,843.3719 (0.15)      16184           1
test_op2[sub-keys7]                                               14.6370 (6.79)          60.7420 (5.90)          15.4288 (6.78)           1.0855 (5.36)          15.1390 (6.69)           0.2650 (5.76)     762;3358   64,813.6883 (0.15)      16425           1
test_op2[sub-keys14]                                              14.6450 (6.80)          60.5640 (5.88)          15.4296 (6.78)           1.1918 (5.88)          15.0481 (6.65)           0.3291 (7.16)    1841;4743   64,810.2987 (0.15)      20926           1
test_op2[sub-keys26]                                              14.6710 (6.81)          43.1240 (4.19)          15.2023 (6.68)           0.9441 (4.66)          15.0340 (6.64)           0.1751 (3.81)     684;1708   65,779.4821 (0.15)      19565           1
test_op2[add-keys14]                                              14.6821 (6.81)          38.9371 (3.78)          15.1824 (6.67)           0.6555 (3.24)          15.1040 (6.67)           0.1490 (3.24)      387;608   65,865.8082 (0.15)      20895           1
test_op2[add-keys0]                                               14.6941 (6.82)          39.0770 (3.80)          15.2853 (6.72)           0.6359 (3.14)          15.2020 (6.72)           0.1980 (4.31)      286;375   65,422.3254 (0.15)      17572           1
test_op2[sub-keys19]                                              14.6959 (6.82)          38.1081 (3.70)          15.2205 (6.69)           0.9127 (4.51)          15.0619 (6.66)           0.1580 (3.44)     652;1376   65,700.7329 (0.15)      15831           1
test_op2[sub-keys11]                                              14.7120 (6.83)          38.6090 (3.75)          15.5093 (6.81)           1.1793 (5.82)          15.1700 (6.70)           0.2820 (6.13)     904;3332   64,477.2895 (0.15)      15610           1
test_op2[add-keys35]                                              14.7170 (6.83)          39.6660 (3.85)          15.3268 (6.73)           1.0678 (5.27)          15.1261 (6.68)           0.2510 (5.46)     690;1574   65,245.2551 (0.15)      16425           1
test_op2[sub-keys4]                                               14.7191 (6.83)          39.1350 (3.80)          15.3757 (6.76)           1.0974 (5.42)          15.1050 (6.67)           0.2519 (5.48)     869;2992   65,037.6926 (0.15)      19121           1
test_op2[sub-keys12]                                              14.7379 (6.84)          38.2910 (3.72)          15.2849 (6.72)           0.9065 (4.47)          15.1240 (6.68)           0.1809 (3.93)     998;1578   65,424.2373 (0.15)      19592           1
test_op2[add-keys28]                                              14.7449 (6.84)          39.7940 (3.87)          15.3891 (6.76)           0.8264 (4.08)          15.2780 (6.75)           0.1850 (4.02)     727;1174   64,981.1063 (0.15)      20886           1
test_op2[sub-keys28]                                              14.7501 (6.84)          51.2360 (4.98)          15.5060 (6.81)           1.0379 (5.12)          15.2440 (6.74)           0.2041 (4.44)    1671;3306   64,490.9943 (0.15)      21262           1
test_parse_unit_name[True-second]                                 14.7570 (6.85)          59.8440 (5.81)          15.3051 (6.72)           0.8202 (4.05)          15.1710 (6.70)           0.1572 (3.42)    2802;3242   65,337.5380 (0.15)      52939           1
test_op2[sub-keys24]                                              14.7590 (6.85)          37.9190 (3.68)          15.4527 (6.79)           1.0570 (5.22)          15.2111 (6.72)           0.2610 (5.68)    1421;2741   64,713.5533 (0.15)      19825           1
test_op2[add-keys19]                                              14.7680 (6.85)          38.3139 (3.72)          15.3833 (6.76)           0.8473 (4.18)          15.1620 (6.70)           0.1870 (4.07)     949;2436   65,005.7250 (0.15)      15655           1
test_op2[add-keys2]                                               14.7900 (6.86)          42.3680 (4.12)          15.3860 (6.76)           0.8481 (4.19)          15.2000 (6.72)           0.1790 (3.89)    1136;2424   64,994.3392 (0.15)      19346           1
test_op2[add-keys21]                                              14.7950 (6.87)          38.3820 (3.73)          15.3157 (6.73)           0.6389 (3.15)          15.2370 (6.73)           0.1671 (3.63)      266;409   65,292.6573 (0.15)      16092           1
test_op2[sub-keys33]                                              14.8159 (6.87)          38.7240 (3.76)          15.3715 (6.75)           0.8787 (4.34)          15.2220 (6.73)           0.1839 (4.00)     671;1049   65,055.3810 (0.15)      13679           1
test_op2[sub-keys16]                                              14.8171 (6.88)          39.1641 (3.80)          15.3464 (6.74)           0.8784 (4.34)          15.1980 (6.72)           0.1770 (3.85)     971;1481   65,161.7180 (0.15)      19284           1
test_op2[sub-keys35]                                              14.8340 (6.88)       2,148.0831 (208.65)        15.6432 (6.87)          17.6279 (87.02)         15.2680 (6.75)           0.1980 (4.31)       6;1921   63,925.4067 (0.15)      14685           1
test_op2[add-keys4]                                               14.8470 (6.89)          39.0691 (3.79)          15.3896 (6.76)           0.7519 (3.71)          15.2910 (6.76)           0.1780 (3.87)      634;742   64,978.7696 (0.15)      19040           1
test_parse_unit_name[False-second]                                14.8620 (6.90)          60.2059 (5.85)          15.3042 (6.72)           0.6813 (3.36)          15.2300 (6.73)           0.1561 (3.39)      710;955   65,341.6909 (0.15)      41455           1
test_op2[add-keys11]                                              14.8660 (6.90)          40.4409 (3.93)          15.3752 (6.76)           0.6720 (3.32)          15.2980 (6.76)           0.1721 (3.74)      251;405   65,039.9901 (0.15)      15185           1
test_op2[add-keys33]                                              14.8920 (6.91)          44.7569 (4.35)          15.7312 (6.91)           1.2102 (5.97)          15.3530 (6.78)           0.3160 (6.87)    1445;2953   63,568.0709 (0.14)      14048           1
test_op2[add-keys26]                                              14.8939 (6.91)          41.7680 (4.06)          15.5913 (6.85)           0.8792 (4.34)          15.3950 (6.80)           0.2441 (5.31)    1690;2117   64,138.4801 (0.15)      19100           1
test_op2[add-keys24]                                              14.9159 (6.92)          39.1060 (3.80)          15.3854 (6.76)           0.7015 (3.46)          15.2971 (6.76)           0.1560 (3.39)      359;631   64,996.8078 (0.15)      18585           1
test_op2[add-keys7]                                               14.9270 (6.93)          39.8130 (3.87)          15.4215 (6.78)           0.6899 (3.41)          15.3399 (6.78)           0.1561 (3.39)      272;534   64,844.7226 (0.15)      16103           1
test_op2[add-keys23]                                              14.9310 (6.93)          56.0881 (5.45)          15.6007 (6.85)           0.9093 (4.49)          15.3930 (6.80)           0.1921 (4.18)    1031;1994   64,099.7581 (0.15)      15325           1
test_op2[add-keys31]                                              15.0281 (6.97)          44.9941 (4.37)          15.5802 (6.85)           1.0458 (5.16)          15.3780 (6.80)           0.1710 (3.72)     579;1597   64,183.9180 (0.15)      15413           1
test_op2[add-keys12]                                              15.0730 (6.99)          39.4100 (3.83)          15.6941 (6.90)           0.8085 (3.99)          15.5340 (6.86)           0.2050 (4.46)    1173;1978   63,718.2294 (0.15)      19075           1
test_op2[sub-keys0]                                               15.1030 (7.01)          58.7859 (5.71)          15.7267 (6.91)           1.0402 (5.14)          15.4910 (6.85)           0.1970 (4.28)     718;2681   63,585.9849 (0.14)      19339           1
test_op2[add-keys9]                                               15.1050 (7.01)          64.0310 (6.22)          15.7398 (6.92)           0.9494 (4.69)          15.5229 (6.86)           0.2300 (5.00)     625;2425   63,533.2954 (0.14)      15329           1
test_op2[add-keys16]                                              15.1830 (7.05)          59.4479 (5.77)          15.8136 (6.95)           0.8702 (4.30)          15.6150 (6.90)           0.2109 (4.59)    1406;2214   63,236.5116 (0.14)      18391           1
test_op2[add0-keys3]                                              16.0530 (7.45)          57.5579 (5.59)          16.7935 (7.38)           1.0122 (5.00)          16.5320 (7.31)           0.2569 (5.59)     870;2086   59,546.8397 (0.14)      13522           1
test_op2[sub-keys0]                                               16.0570 (7.45)          45.4190 (4.41)          16.5918 (7.29)           0.7848 (3.87)          16.4930 (7.29)           0.1640 (3.57)      348;638   60,270.7921 (0.14)      16924           1
test_op2[sub-keys3]                                               16.0850 (7.46)          44.4810 (4.32)          16.5637 (7.28)           0.7420 (3.66)          16.4720 (7.28)           0.1630 (3.54)      246;578   60,373.0386 (0.14)      13911           1
test_op2[add0-keys0]                                              16.0871 (7.46)          42.9200 (4.17)          16.5851 (7.29)           0.7942 (3.92)          16.4779 (7.28)           0.1730 (3.76)      322;775   60,294.9850 (0.14)      15061           1
test_parse_unit_name[True-minute]                                 16.2650 (7.55)          46.2260 (4.49)          16.7863 (7.38)           0.7120 (3.51)          16.6720 (7.37)           0.1411 (3.07)    2406;2643   59,572.3307 (0.14)      48915           1
test_parse_unit_name[True-meter]                                  16.2871 (7.56)          46.6990 (4.54)          16.7909 (7.38)           0.7843 (3.87)          16.6571 (7.36)           0.1310 (2.85)    2533;2745   59,556.2091 (0.14)      47747           1
test_parse_unit_name[False-angstrom]                              16.2990 (7.56)          46.4490 (4.51)          16.8264 (7.39)           0.7667 (3.79)          16.6760 (7.37)           0.1510 (3.28)    2948;3145   59,430.5197 (0.14)      37911           1
test_parse_unit_name[True-angstrom]                               16.3079 (7.57)          45.3420 (4.40)          16.7591 (7.36)           0.7090 (3.50)          16.6741 (7.37)           0.1409 (3.06)     971;1306   59,668.9081 (0.14)      47124           1
test_parse_unit_name[False-minute]                                16.3161 (7.57)          50.1169 (4.87)          16.8306 (7.39)           0.7913 (3.91)          16.6870 (7.37)           0.1371 (2.98)    2616;2904   59,415.4167 (0.14)      38211           1
test_parse_unit_name[False-meter]                                 16.4129 (7.62)       2,862.1140 (278.01)        17.0156 (7.48)          14.8935 (73.52)         16.7850 (7.42)           0.1421 (3.09)      18;2676   58,769.7396 (0.13)      36618           1
test_op2[eq-keys29]                                               17.3961 (8.07)          35.2270 (3.42)          17.9375 (7.88)           0.7032 (3.47)          17.8380 (7.88)           0.1721 (3.74)      235;405   55,749.0145 (0.13)       9903           1
test_op2[eq-keys32]                                               17.4011 (8.07)          45.2960 (4.40)          18.2707 (8.03)           1.0426 (5.15)          18.0011 (7.95)           0.5051 (10.98)    488;1471   54,732.3295 (0.12)       9331           1
test_op2[eq-keys30]                                               17.4280 (8.09)          30.5469 (2.97)          17.9856 (7.90)           0.7097 (3.50)          17.8800 (7.90)           0.1880 (4.09)      200;361   55,600.0924 (0.13)       9449           1
test_op2[sub-keys7]                                               17.4470 (8.10)          43.9079 (4.26)          18.0161 (7.92)           0.7785 (3.84)          17.9120 (7.92)           0.1710 (3.72)      264;581   55,505.8166 (0.13)      13875           1
test_op2[eq-keys34]                                               17.5150 (8.13)          49.7070 (4.83)          18.1378 (7.97)           0.8603 (4.25)          18.0290 (7.97)           0.2069 (4.50)      249;422   55,133.4790 (0.13)      10021           1
test_op2[eq-keys22]                                               17.5440 (8.14)          70.6189 (6.86)          18.2235 (8.01)           1.0509 (5.19)          17.9841 (7.95)           0.1990 (4.33)     693;1302   54,874.2497 (0.12)      10040           1
test_op2[eq-keys27]                                               17.5481 (8.14)          42.9830 (4.18)          18.1008 (7.95)           0.7835 (3.87)          17.9959 (7.95)           0.2290 (4.98)      246;334   55,246.0708 (0.13)       9844           1
test_op2[eq-keys13]                                               17.5569 (8.15)          44.7979 (4.35)          18.2044 (8.00)           0.7214 (3.56)          18.1191 (8.01)           0.1891 (4.11)      196;324   54,931.8822 (0.13)       9654           1
test_op2[eq-keys3]                                                17.5680 (8.15)          44.2381 (4.30)          18.2482 (8.02)           1.0620 (5.24)          18.0440 (7.97)           0.2120 (4.61)      493;867   54,799.9003 (0.12)       9222           1
test_op2[add0-keys7]                                              17.5770 (8.16)          43.7100 (4.25)          18.1791 (7.99)           0.7702 (3.80)          18.0721 (7.99)           0.1801 (3.92)      261;596   55,008.0795 (0.13)      13292           1
test_op2[eq-keys15]                                               17.5909 (8.16)          44.4910 (4.32)          18.3200 (8.05)           0.9505 (4.69)          18.0800 (7.99)           0.2129 (4.63)    1027;1294   54,585.0637 (0.12)       9347           1
test_parse_unit_name[True-kilometer]                              17.5970 (8.17)          48.7061 (4.73)          18.0832 (7.94)           0.7717 (3.81)          17.9469 (7.93)           0.1420 (3.09)    1854;1972   55,299.9519 (0.13)      30368           1
test_op2[eq-keys10]                                               17.6029 (8.17)          42.2291 (4.10)          18.1010 (7.95)           0.7488 (3.70)          17.9940 (7.95)           0.1910 (4.15)      251;377   55,245.6843 (0.13)       9722           1
test_op2[eq-keys1]                                                17.6119 (8.17)          48.2040 (4.68)          18.3294 (8.05)           1.0451 (5.16)          18.1530 (8.02)           0.2120 (4.61)      453;717   54,557.2936 (0.12)       9144           1
test_op2[eq-keys6]                                                17.6220 (8.18)          36.7860 (3.57)          18.4523 (8.11)           1.1504 (5.68)          18.0689 (7.98)           0.2980 (6.48)    1098;1791   54,193.7320 (0.12)      10104           1
test_op2[eq-keys18]                                               17.6301 (8.18)          44.5821 (4.33)          18.2581 (8.02)           0.8480 (4.19)          18.1389 (8.02)           0.2641 (5.74)      340;369   54,770.3135 (0.12)      10265           1
test_op2[eq-keys17]                                               17.6370 (8.18)          28.4549 (2.76)          18.1629 (7.98)           0.6211 (3.07)          18.0791 (7.99)           0.1789 (3.89)      177;280   55,057.3615 (0.13)       9181           1
test_parse_unit_name[False-kilometer]                             17.6500 (8.19)          49.6079 (4.82)          18.1818 (7.99)           0.8187 (4.04)          18.0290 (7.97)           0.1430 (3.11)    2207;2389   55,000.0503 (0.13)      35168           1
test_parse_unit_name[True-millisecond]                            17.6640 (8.20)          51.3101 (4.98)          18.1948 (7.99)           0.7928 (3.91)          18.0610 (7.98)           0.1440 (3.13)    2223;2443   54,960.6262 (0.13)      46252           1
test_op2[eq-keys5]                                                17.6829 (8.21)          80.0239 (7.77)          18.4215 (8.09)           1.3975 (6.90)          18.1440 (8.02)           0.2523 (5.49)     538;1094   54,284.2980 (0.12)       9385           1
test_parse_unit_name[False-millisecond]                           17.7081 (8.22)          73.5790 (7.15)          18.1723 (7.98)           0.7581 (3.74)          18.0810 (7.99)           0.1410 (3.07)     772;1032   55,028.7553 (0.13)      34086           1
test_op2[sub-keys4]                                               17.7190 (8.22)          52.9740 (5.15)          18.2870 (8.03)           0.7919 (3.91)          18.1830 (8.03)           0.1710 (3.72)      323;699   54,683.7381 (0.12)      16680           1
test_op2[eq-keys20]                                               17.7390 (8.23)          46.0140 (4.47)          18.3802 (8.08)           0.7657 (3.78)          18.2880 (8.08)           0.2931 (6.37)      203;246   54,406.2893 (0.12)       9879           1
test_op2[mul-keys31]                                              17.9360 (8.32)          79.7380 (7.75)          18.6214 (8.18)           0.8460 (4.18)          18.5190 (8.18)           0.2440 (5.31)      515;655   53,701.6454 (0.12)      23688           1
test_op2[eq-keys25]                                               17.9501 (8.33)          38.3280 (3.72)          18.7855 (8.25)           1.0196 (5.03)          18.4580 (8.16)           0.2860 (6.22)     938;1705   53,232.6543 (0.12)       9812           1
test_op2[mul-keys19]                                              17.9840 (8.34)          46.9880 (4.56)          18.6636 (8.20)           0.7698 (3.80)          18.5600 (8.20)           0.2359 (5.13)      645;974   53,580.1901 (0.12)      24989           1
test_op2[mul-keys0]                                               17.9920 (8.35)          56.0341 (5.44)          18.6721 (8.20)           0.9016 (4.45)          18.5320 (8.19)           0.2701 (5.87)      802;927   53,555.8697 (0.12)      23020           1
test_op2[eq-keys8]                                                18.0010 (8.35)          45.1640 (4.39)          18.6095 (8.18)           0.7835 (3.87)          18.5140 (8.18)           0.2250 (4.89)      197;308   53,736.0737 (0.12)       9866           1
test_op2[mul-keys7]                                               18.0340 (8.37)          70.9221 (6.89)          18.8001 (8.26)           0.9997 (4.94)          18.5859 (8.21)           0.2660 (5.78)    1819;2218   53,191.2245 (0.12)      24294           1
test_op2[mul-keys2]                                               18.0410 (8.37)          46.6200 (4.53)          18.6565 (8.20)           0.7637 (3.77)          18.5480 (8.20)           0.2201 (4.79)      513;799   53,600.6737 (0.12)      23072           1
test_op2[mul-keys35]                                              18.0471 (8.37)          73.0740 (7.10)          18.6904 (8.21)           0.9304 (4.59)          18.5199 (8.18)           0.2290 (4.98)    1526;1955   53,503.4464 (0.12)      25244           1
test_op2[add0-keys4]                                              18.0489 (8.38)          47.5020 (4.61)          18.5819 (8.16)           0.7325 (3.62)          18.4741 (8.16)           0.2031 (4.42)      330;703   53,815.9136 (0.12)      15700           1
test_op2[mul-keys11]                                              18.0759 (8.39)          64.5170 (6.27)          18.8033 (8.26)           1.0935 (5.40)          18.6120 (8.22)           0.2609 (5.67)    1195;1871   53,182.2608 (0.12)      23029           1
test_op2[mul-keys23]                                              18.0880 (8.39)          58.0261 (5.64)          18.8045 (8.26)           0.8427 (4.16)          18.7031 (8.26)           0.2391 (5.20)      668;799   53,178.6866 (0.12)      23957           1
test_op2[mul-keys16]                                              18.1020 (8.40)          79.0621 (7.68)          18.9776 (8.34)           1.3160 (6.50)          18.6530 (8.24)           0.2789 (6.07)    1709;3572   52,693.8006 (0.12)      22786           1
test_op2[mul-keys12]                                              18.1220 (8.41)         244.2830 (23.73)         19.1088 (8.40)           2.0406 (10.07)         18.7480 (8.28)           0.3219 (7.00)     532;3755   52,331.8963 (0.12)      20928           1
test_op2[mul-keys9]                                               18.1500 (8.42)          46.1219 (4.48)          18.8357 (8.28)           0.8770 (4.33)          18.6641 (8.25)           0.2390 (5.20)    1804;1889   53,090.6429 (0.12)      23634           1
test_op2[mul-keys29]                                              18.1580 (8.43)          47.5380 (4.62)          18.9929 (8.34)           0.7643 (3.77)          18.9170 (8.36)           0.2710 (5.89)      481;711   52,651.1523 (0.12)      23462           1
test_op2[mul-keys33]                                              18.1640 (8.43)          75.4481 (7.33)          18.8521 (8.28)           0.9777 (4.83)          18.7110 (8.27)           0.2520 (5.48)      819;950   53,044.4108 (0.12)      22330           1
test_op2[mul-keys14]                                              18.1730 (8.43)          78.8181 (7.66)          19.0456 (8.37)           1.3351 (6.59)          18.7301 (8.28)           0.2891 (6.29)     879;3783   52,505.6071 (0.12)      23537           1
test_op2[mul-keys8]                                               18.1739 (8.43)          83.5831 (8.12)          18.7777 (8.25)           0.9096 (4.49)          18.6490 (8.24)           0.2090 (4.54)     708;1116   53,254.6391 (0.12)      23446           1
test_op2[mul-keys28]                                              18.2040 (8.45)         100.4870 (9.76)          19.0202 (8.36)           1.1233 (5.55)          18.8090 (8.31)           0.2070 (4.50)    1662;2085   52,575.6218 (0.12)      24241           1
test_op2[mul-keys4]                                               18.2060 (8.45)         174.3630 (16.94)         18.7902 (8.26)           1.2929 (6.38)          18.6780 (8.25)           0.1990 (4.33)     471;1017   53,219.1657 (0.12)      22943           1
test_op2[mul-keys26]                                              18.2280 (8.46)          72.3740 (7.03)          18.8700 (8.29)           0.8973 (4.43)          18.7120 (8.27)           0.2090 (4.54)    1525;1810   52,994.1323 (0.12)      23964           1
test_op2[mul-keys30]                                              18.2639 (8.47)          47.3340 (4.60)          19.0283 (8.36)           0.9009 (4.45)          18.8165 (8.31)           0.2470 (5.37)    2120;2264   52,553.2228 (0.12)      22444           1
test_op2[mul-keys13]                                              18.2650 (8.48)          48.0401 (4.67)          18.9859 (8.34)           1.2313 (6.08)          18.7251 (8.27)           0.2130 (4.63)    1004;2774   52,670.5506 (0.12)      23525           1
test_op2[mul-keys21]                                              18.2680 (8.48)          47.0880 (4.57)          18.9513 (8.33)           0.7600 (3.75)          18.8580 (8.33)           0.2250 (4.89)      535;754   52,766.8438 (0.12)      24818           1
test_op2[mul-keys15]                                              18.2810 (8.48)          46.3300 (4.50)          19.1924 (8.43)           1.0792 (5.33)          18.9960 (8.39)           0.3221 (7.01)    1315;1866   52,104.0181 (0.12)      22293           1
test_op2[mul-keys34]                                              18.2990 (8.49)          45.6179 (4.43)          18.9314 (8.32)           0.7725 (3.81)          18.8181 (8.32)           0.2443 (5.31)      465;732   52,822.4205 (0.12)      22765           1
test_op2[mul-keys5]                                               18.3280 (8.50)          46.5930 (4.53)          19.0298 (8.36)           0.9268 (4.58)          18.8050 (8.31)           0.2490 (5.42)    2420;2819   52,549.2837 (0.12)      23446           1
test_op2[mul-keys32]                                              18.3730 (8.53)          55.7530 (5.42)          19.0599 (8.37)           0.9676 (4.78)          18.8689 (8.34)           0.2289 (4.98)    1363;1565   52,466.1909 (0.12)      23320           1
test_op2[mul-keys10]                                              18.4389 (8.56)          79.2950 (7.70)          19.0636 (8.38)           0.8738 (4.31)          18.9620 (8.38)           0.2520 (5.48)      684;850   52,456.0909 (0.12)      23187           1
test_op2[mul-keys27]                                              18.4560 (8.56)          45.5260 (4.42)          19.0777 (8.38)           0.7537 (3.72)          18.9809 (8.39)           0.2000 (4.35)      394;637   52,417.2937 (0.12)      19472           1
test_op2[mul-keys3]                                               18.4589 (8.57)          62.3710 (6.06)          19.1493 (8.41)           0.9362 (4.62)          18.9539 (8.38)           0.2420 (5.26)    1992;2318   52,221.3401 (0.12)      23181           1
test_parse_unit_name[False-ms]                                    18.6510 (8.65)          50.8301 (4.94)          19.2179 (8.44)           0.9766 (4.82)          19.0289 (8.41)           0.1510 (3.28)    2165;2331   52,034.9373 (0.12)      33039           1
test_parse_unit_name[True-ms]                                     18.6620 (8.66)          80.3310 (7.80)          19.2243 (8.45)           0.9128 (4.51)          19.0750 (8.43)           0.1510 (3.28)    2488;2716   52,017.3688 (0.12)      42595           1
test_op2[mul-keys24]                                              18.7239 (8.69)         115.3650 (11.21)         19.5263 (8.58)           1.2385 (6.11)          19.2890 (8.52)           0.2770 (6.02)    1681;2115   51,212.9317 (0.12)      22884           1
test_op2[mul-keys17]                                              18.7240 (8.69)          46.4619 (4.51)          19.4538 (8.55)           1.0638 (5.25)          19.2600 (8.51)           0.2302 (5.01)    1326;1789   51,403.8757 (0.12)      21225           1
test_op2[mul-keys1]                                               18.7301 (8.69)         102.3561 (9.94)          19.3965 (8.52)           1.0032 (4.95)          19.2601 (8.51)           0.2270 (4.94)     940;1138   51,555.6903 (0.12)      22478           1
test_op2[mul-keys20]                                              18.8550 (8.75)          78.1789 (7.59)          19.8092 (8.70)           1.0916 (5.39)          19.5820 (8.65)           0.2731 (5.94)    1914;2080   50,481.5526 (0.11)      22863           1
test_op2[mul-keys6]                                               19.0070 (8.82)          91.3180 (8.87)          19.7059 (8.66)           0.8972 (4.43)          19.5950 (8.66)           0.2211 (4.81)      564;837   50,746.2332 (0.12)      22870           1
test_op2[truediv-keys14]                                          19.0390 (8.83)          82.1230 (7.98)          19.9897 (8.78)           1.4966 (7.39)          19.6199 (8.67)           0.3461 (7.53)    1189;3708   50,025.6771 (0.11)      21635           1
test_op2[mul-keys25]                                              19.0401 (8.83)          49.4630 (4.80)          19.6689 (8.64)           0.7489 (3.70)          19.5659 (8.65)           0.1999 (4.35)      519;803   50,841.7009 (0.12)      22326           1
test_op2[mul-keys22]                                              19.0550 (8.84)          75.7859 (7.36)          19.7851 (8.69)           1.0117 (4.99)          19.5670 (8.65)           0.2340 (5.09)    2104;2340   50,542.9937 (0.12)      22455           1
test_op2[truediv-keys21]                                          19.0650 (8.85)          69.3550 (6.74)          19.8535 (8.72)           1.1237 (5.55)          19.6501 (8.68)           0.2460 (5.35)    1298;1911   50,369.0492 (0.11)      22182           1
test_op2[truediv-keys23]                                          19.0759 (8.85)          48.6261 (4.72)          19.8541 (8.72)           1.1069 (5.46)          19.6380 (8.68)           0.2331 (5.07)    1348;2016   50,367.3693 (0.11)      22204           1
test_op2[mul-keys18]                                              19.1400 (8.88)          77.4061 (7.52)          19.9918 (8.78)           1.2626 (6.23)          19.7090 (8.71)           0.2481 (5.39)    1272;2878   50,020.4406 (0.11)      22496           1
test_op2[truediv-keys26]                                          19.1510 (8.89)          74.3500 (7.22)          19.9953 (8.78)           1.2874 (6.36)          19.6720 (8.69)           0.2381 (5.18)    1629;3292   50,011.7921 (0.11)      22122           1
test_op2[truediv-keys15]                                          19.1870 (8.90)          51.5881 (5.01)          20.0347 (8.80)           1.2252 (6.05)          19.7560 (8.73)           0.2350 (5.11)    1428;2726   49,913.3592 (0.11)      22091           1
test_op2[truediv-keys35]                                          19.1900 (8.90)          63.1399 (6.13)          20.0682 (8.82)           1.2845 (6.34)          19.7281 (8.72)           0.3170 (6.89)    1154;3095   49,830.0257 (0.11)      19185           1
test_op2[truediv-keys29]                                          19.1990 (8.91)          70.3280 (6.83)          19.9503 (8.77)           1.1609 (5.73)          19.7319 (8.72)           0.2520 (5.48)    1155;1914   50,124.4730 (0.11)      21916           1
test_op2[truediv-keys22]                                          19.2000 (8.91)          70.6511 (6.86)          20.2012 (8.88)           1.3527 (6.68)          19.8231 (8.76)           0.4089 (8.89)    1689;3893   49,501.9335 (0.11)      22128           1
test_op2[truediv-keys33]                                          19.2000 (8.91)          77.0990 (7.49)          20.0661 (8.82)           1.3109 (6.47)          19.7260 (8.72)           0.3030 (6.59)    1291;2924   49,835.2637 (0.11)      18926           1
test_op2[truediv-keys20]                                          19.2419 (8.93)          97.1470 (9.44)          20.1488 (8.85)           1.3055 (6.44)          19.8500 (8.77)           0.2820 (6.13)    1257;3043   49,630.7679 (0.11)      22270           1
test_op2[truediv-keys32]                                          19.2550 (8.93)          51.2240 (4.98)          19.9628 (8.77)           1.0997 (5.43)          19.7400 (8.72)           0.2519 (5.48)    1285;2019   50,093.2794 (0.11)      21934           1
test_op2[truediv-keys27]                                          19.2741 (8.94)          48.1230 (4.67)          19.9995 (8.79)           1.0816 (5.34)          19.7940 (8.75)           0.2311 (5.03)    1439;1913   50,001.2618 (0.11)      22259           1
test_op2[truediv-keys0]                                           19.3249 (8.97)          61.3150 (5.96)          20.1219 (8.84)           0.8253 (4.07)          20.0020 (8.84)           0.2509 (5.46)     544;1171   49,697.1358 (0.11)      20650           1
test_op2[truediv-keys28]                                          19.3630 (8.98)          84.4020 (8.20)          20.3404 (8.94)           1.3361 (6.60)          20.0150 (8.84)           0.3370 (7.33)    1768;3126   49,163.2815 (0.11)      22530           1
test_op2[truediv-keys34]                                          19.3710 (8.99)          64.8600 (6.30)          20.0975 (8.83)           1.1290 (5.57)          19.8820 (8.79)           0.2701 (5.87)    1342;1869   49,757.3099 (0.11)      21670           1
test_op2[truediv-keys17]                                          19.5029 (9.05)          61.7449 (6.00)          20.1867 (8.87)           1.1366 (5.61)          19.9659 (8.82)           0.2150 (4.68)    1367;2077   49,537.5022 (0.11)      21727           1
test_op2[truediv-keys16]                                          19.5050 (9.05)          65.9301 (6.40)          20.3284 (8.93)           1.2553 (6.20)          20.0580 (8.86)           0.2773 (6.03)    1046;2448   49,192.2826 (0.11)      21021           1
test_op2[truediv-keys7]                                           19.5050 (9.05)          72.4420 (7.04)          20.2909 (8.91)           0.9653 (4.77)          20.0900 (8.88)           0.2461 (5.35)    1824;1974   49,283.2432 (0.11)      21162           1
test_op2[truediv-keys2]                                           19.5340 (9.06)          48.3941 (4.70)          20.2292 (8.89)           0.8330 (4.11)          20.1201 (8.89)           0.2211 (4.81)      520;742   49,433.4838 (0.11)      19962           1
test_op2[truediv-keys9]                                           19.5630 (9.08)          62.5000 (6.07)          20.4189 (8.97)           1.1001 (5.43)          20.1691 (8.91)           0.2470 (5.37)    1806;2075   48,974.3369 (0.11)      21330           1
test_op2[mul-keys0]                                               19.5700 (9.08)          63.6880 (6.19)          20.3292 (8.93)           1.0504 (5.19)          20.0870 (8.88)           0.2689 (5.85)    1408;2024   49,190.4409 (0.11)      17169           1
test_op2[truediv-keys11]                                          19.5740 (9.08)          49.7440 (4.83)          20.3140 (8.93)           1.0104 (4.99)          20.1371 (8.90)           0.2640 (5.74)    1146;1345   49,227.0968 (0.11)      21020           1
test_op2[truediv-keys8]                                           19.6421 (9.11)          49.7809 (4.84)          20.2397 (8.89)           0.7867 (3.88)          20.1300 (8.90)           0.2091 (4.55)      467;783   49,407.8164 (0.11)      21415           1
test_op2[truediv-keys6]                                           19.7020 (9.14)          55.1780 (5.36)          20.4055 (8.97)           0.8400 (4.15)          20.2870 (8.96)           0.2671 (5.81)      469;783   49,006.4348 (0.11)      20965           1
test_op2[mul-keys3]                                               19.7230 (9.15)          50.6350 (4.92)          20.5215 (9.02)           0.9269 (4.58)          20.3000 (8.97)           0.2560 (5.57)    1968;2133   48,729.3413 (0.11)      18549           1
test_op2[truediv-keys10]                                          19.7890 (9.18)          50.6579 (4.92)          20.5607 (9.03)           0.8098 (4.00)          20.4550 (9.04)           0.2960 (6.44)      512;574   48,636.5460 (0.11)      21149           1
test_op2[truediv-keys31]                                          19.8049 (9.19)          52.0770 (5.06)          20.5906 (9.05)           1.0861 (5.36)          20.3600 (9.00)           0.3049 (6.63)    1214;1761   48,565.7706 (0.11)      19828           1
test_op2[truediv-keys5]                                           19.8090 (9.19)          74.3640 (7.22)          20.6357 (9.07)           1.1493 (5.67)          20.3720 (9.00)           0.2679 (5.83)    1736;2151   48,459.6428 (0.11)      20483           1
test_op2[truediv-keys1]                                           19.8369 (9.20)          76.4710 (7.43)          20.6465 (9.07)           1.0992 (5.43)          20.4029 (9.02)           0.2449 (5.33)    1695;2057   48,434.3900 (0.11)      20909           1
test_op2[truediv-keys24]                                          19.8840 (9.23)          71.6711 (6.96)          20.8059 (9.14)           1.2638 (6.24)          20.4931 (9.06)           0.3020 (6.57)    1526;3041   48,063.3992 (0.11)      21029           1
test_op2[truediv-keys19]                                          19.8920 (9.23)          49.5260 (4.81)          20.7930 (9.14)           1.0974 (5.42)          20.5741 (9.09)           0.2859 (6.22)    1407;1850   48,093.1053 (0.11)      21476           1
test_op2[truediv-keys4]                                           19.8981 (9.23)          50.5721 (4.91)          20.6096 (9.05)           0.8366 (4.13)          20.4880 (9.05)           0.2430 (5.28)      579;782   48,521.1728 (0.11)      20198           1
test_op2[mul-keys2]                                               19.9120 (9.24)          59.6780 (5.80)          20.4791 (9.00)           0.9765 (4.82)          20.3310 (8.98)           0.1859 (4.04)     634;1112   48,830.2025 (0.11)      17843           1
test_op2[truediv-keys3]                                           19.9460 (9.26)          73.8370 (7.17)          20.8013 (9.14)           1.0292 (5.08)          20.6210 (9.11)           0.3261 (7.09)    1335;1446   48,074.0259 (0.11)      20534           1
test_op2[mul-keys1]                                               19.9650 (9.26)          62.1909 (6.04)          20.7162 (9.10)           0.9024 (4.45)          20.6060 (9.11)           0.2091 (4.55)      443;822   48,271.3825 (0.11)      18361           1
test_op2[truediv-keys25]                                          20.0371 (9.30)          52.1390 (5.06)          20.9364 (9.20)           1.1386 (5.62)          20.7330 (9.16)           0.3130 (6.81)    1223;1709   47,763.8108 (0.11)      20165           1
test_op2[truediv-keys30]                                          20.0950 (9.32)          68.4690 (6.65)          21.0539 (9.25)           1.4497 (7.16)          20.6571 (9.13)           0.2949 (6.41)    1716;3310   47,497.1543 (0.11)      20873           1
test_op2[truediv-keys18]                                          20.1170 (9.33)          96.8170 (9.40)          21.1331 (9.28)           1.3182 (6.51)          20.8269 (9.20)           0.2870 (6.24)    1091;2896   47,319.2300 (0.11)      20716           1
test_op2[truediv-keys13]                                          20.2310 (9.39)          61.1870 (5.94)          21.1088 (9.27)           1.3163 (6.50)          20.8350 (9.21)           0.2870 (6.24)    1043;2428   47,373.7031 (0.11)      20493           1
test_op2[truediv-keys12]                                          20.4990 (9.51)          55.1181 (5.35)          21.4815 (9.44)           1.3298 (6.56)          21.1509 (9.35)           0.3210 (6.98)    1186;2960   46,551.6005 (0.11)      20289           1
test_op2[truediv-keys0]                                           20.5740 (9.55)          53.8910 (5.23)          21.3745 (9.39)           0.9923 (4.90)          21.1600 (9.35)           0.2560 (5.57)    1302;1513   46,784.7846 (0.11)      15817           1
test_op2[truediv-keys1]                                           20.6650 (9.59)          53.3180 (5.18)          21.4130 (9.41)           0.8165 (4.03)          21.3019 (9.41)           0.2420 (5.26)      346;571   46,700.7052 (0.11)      15067           1
test_op2[truediv-keys3]                                           20.6830 (9.60)          51.1181 (4.97)          21.3811 (9.39)           0.8525 (4.21)          21.2491 (9.39)           0.2470 (5.37)      515;740   46,770.2656 (0.11)      17752           1
test_op2[truediv-keys2]                                           20.7849 (9.64)          61.3581 (5.96)          21.5155 (9.45)           1.0910 (5.39)          21.2799 (9.40)           0.2431 (5.29)    1376;1917   46,478.0988 (0.11)      17557           1
test_wrapper_ret[float_meter]                                     20.8140 (9.66)          53.1640 (5.16)          21.8839 (9.61)           1.1542 (5.70)          21.5841 (9.54)           0.3634 (7.90)     944;1625   45,695.6693 (0.10)      10904           1
test_wrapper_ret[int_meter]                                       20.9310 (9.71)          52.7741 (5.13)          21.9675 (9.65)           0.9459 (4.67)          21.7840 (9.63)           0.3271 (7.11)      537;765   45,521.8532 (0.10)       9325           1
test_wrapper_ret[int_kilometer]                                   20.9340 (9.71)          80.0010 (7.77)          21.8053 (9.58)           1.1299 (5.58)          21.6800 (9.58)           0.2713 (5.90)      204;350   45,860.3304 (0.10)       8925           1
test_wrapper_ret[float_kilometer]                                 20.9360 (9.71)          52.5010 (5.10)          21.6924 (9.53)           0.8740 (4.31)          21.5620 (9.53)           0.2471 (5.37)      223;451   46,099.0122 (0.10)       9581           1
test_wrapper_ret[complex_kilometer]                               21.0070 (9.75)          54.3799 (5.28)          21.7175 (9.54)           0.8541 (4.22)          21.5895 (9.54)           0.2801 (6.09)      224;349   46,045.9166 (0.10)       9576           1
test_wrapper_ret[complex_meter]                                   21.0670 (9.78)          54.1339 (5.26)          21.8214 (9.59)           0.8552 (4.22)          21.7030 (9.59)           0.2750 (5.98)      242;399   45,826.5664 (0.10)      10102           1
test_op2[mul-keys6]                                               21.1579 (9.82)          55.1749 (5.36)          22.0224 (9.68)           0.8288 (4.09)          21.9070 (9.68)           0.3021 (6.57)      421;537   45,408.2353 (0.10)      17523           1
test_op2[mul-keys4]                                               21.2301 (9.85)          54.4881 (5.29)          21.9938 (9.66)           0.8905 (4.40)          21.8611 (9.66)           0.2639 (5.74)      456;689   45,467.4291 (0.10)      17418           1
test_op2[mul-keys7]                                               21.3219 (9.89)          56.5511 (5.49)          22.0969 (9.71)           0.9487 (4.68)          21.9730 (9.71)           0.2360 (5.13)      420;748   45,255.2213 (0.10)      18100           1
test_op2[mul-keys5]                                               21.6970 (10.07)         62.0539 (6.03)          22.5425 (9.90)           1.1698 (5.77)          22.2831 (9.85)           0.2719 (5.91)    1468;1792   44,360.6226 (0.10)      17647           1
test_op2[truediv-keys7]                                           21.7521 (10.09)         62.9510 (6.11)          22.6903 (9.97)           1.0885 (5.37)          22.4580 (9.92)           0.2730 (5.94)    1466;1708   44,071.6535 (0.10)      17308           1
test_op2[truediv-keys4]                                           21.8081 (10.12)         68.3670 (6.64)          22.5010 (9.89)           1.0202 (5.04)          22.3559 (9.88)           0.2290 (4.98)      439;823   44,442.5562 (0.10)      16318           1
test_op2[truediv-keys5]                                           22.1931 (10.30)         57.1491 (5.55)          22.9826 (10.10)          1.0448 (5.16)          22.7609 (10.06)          0.2488 (5.41)    1329;1588   43,511.2488 (0.10)      16679           1
test_op2[truediv-keys6]                                           22.6659 (10.52)         55.0090 (5.34)          23.4630 (10.31)          0.8832 (4.36)          23.3280 (10.31)          0.2711 (5.90)      447;648   42,620.3343 (0.10)      16185           1
test_op1[square-short_array_meter]                                23.3001 (10.81)        410.6561 (39.89)         24.2805 (10.67)          3.1923 (15.76)         24.1020 (10.65)          0.3919 (8.52)      413;636   41,185.2945 (0.09)      16420           1
test_op1[square-short_array_kilometer]                            23.5219 (10.91)         67.1000 (6.52)          24.5929 (10.80)          1.2042 (5.94)          24.3429 (10.76)          0.4150 (9.03)    1337;1508   40,662.1591 (0.09)      16649           1
test_op1[sqrt-short_array_meter]                                  23.6090 (10.96)         72.5610 (7.05)          24.7690 (10.88)          1.3394 (6.61)          24.4210 (10.79)          0.3660 (7.96)    1581;1858   40,373.1077 (0.09)      15669           1
test_build_by_mul[complex]                                        23.7799 (11.03)         62.6530 (6.09)          24.5284 (10.78)          0.9797 (4.84)          24.3810 (10.77)          0.2619 (5.70)      679;750   40,769.0100 (0.09)      19695           1
test_op1[sqrt-short_array_kilometer]                              23.9540 (11.12)         62.5710 (6.08)          24.8737 (10.93)          0.9991 (4.93)          24.7280 (10.93)          0.3129 (6.81)      460;679   40,203.1501 (0.09)      16117           1
test_op1[square-mid_array_meter]                                  24.0341 (11.15)         67.6331 (6.57)          24.8843 (10.93)          1.0179 (5.02)          24.7270 (10.93)          0.2950 (6.42)      459;851   40,185.9864 (0.09)      16217           1
test_op1[square-mid_array_kilometer]                              24.4151 (11.33)         62.1860 (6.04)          25.5546 (11.23)          1.2252 (6.05)          25.2550 (11.16)          0.3818 (8.30)    1525;1641   39,131.8293 (0.09)      16147           1
test_op2[eq-keys1]                                                24.4610 (11.35)         57.2649 (5.56)          25.2238 (11.08)          1.0001 (4.94)          25.0610 (11.07)          0.2703 (5.88)      209;363   39,645.0346 (0.09)       7361           1
test_op2[eq-keys2]                                                24.8030 (11.51)         61.7401 (6.00)          25.5468 (11.22)          1.0564 (5.22)          25.3770 (11.21)          0.2559 (5.56)      217;454   39,143.7716 (0.09)       7711           1
test_op1[sqrt-mid_array_kilometer]                                24.8209 (11.52)         72.3910 (7.03)          25.8703 (11.37)          1.2835 (6.34)          25.5480 (11.29)          0.3091 (6.72)    1525;1716   38,654.3900 (0.09)      15678           1
test_op1[sqrt-mid_array_meter]                                    24.8610 (11.54)         69.0961 (6.71)          25.7666 (11.32)          1.2200 (6.02)          25.5610 (11.30)          0.3241 (7.05)      577;767   38,809.9584 (0.09)      13734           1
test_op2[eq-keys5]                                                25.9710 (12.05)         66.1899 (6.43)          26.8441 (11.79)          1.1081 (5.47)          26.6359 (11.77)          0.3870 (8.42)      238;355   37,252.1834 (0.08)       7502           1
test_op2[eq-keys6]                                                26.3730 (12.24)         71.1150 (6.91)          27.0924 (11.90)          1.0722 (5.29)          26.9170 (11.89)          0.2390 (5.20)      247;440   36,910.7008 (0.08)       7531           1
test_op2[less-keys3]                                              32.1580 (14.92)         80.0249 (7.77)          33.6097 (14.77)          1.6423 (8.11)          33.1270 (14.64)          0.4240 (9.22)    1536;1809   29,753.3408 (0.07)      13035           1
test_op2[equal-keys0]                                             32.3111 (14.99)         79.2269 (7.70)          33.2510 (14.61)          1.3405 (6.62)          33.0211 (14.59)          0.3207 (6.97)      579;756   30,074.2933 (0.07)      12595           1
test_op2[less-keys0]                                              32.3569 (15.01)         81.9680 (7.96)          33.5606 (14.74)          1.5263 (7.53)          33.1620 (14.65)          0.4170 (9.07)    1276;1377   29,796.8514 (0.07)      12833           1
test_op2[equal-keys3]                                             32.3690 (15.02)         83.7491 (8.13)          33.4337 (14.69)          1.2865 (6.35)          33.2199 (14.68)          0.3630 (7.89)      551;703   29,909.9199 (0.07)      13160           1
test_op2[less-keys4]                                              33.8070 (15.69)         85.0360 (8.26)          34.8838 (15.33)          1.3676 (6.75)          34.6180 (15.30)          0.3270 (7.11)      840;994   28,666.5897 (0.07)      12890           1
test_op2[less-keys7]                                              33.9750 (15.77)         85.0430 (8.26)          34.9935 (15.37)          1.1501 (5.68)          34.8079 (15.38)          0.3340 (7.26)      526;725   28,576.6979 (0.07)      12827           1
test_op2[equal-keys7]                                             34.0170 (15.78)        351.0800 (34.10)         35.1713 (15.45)          3.1621 (15.61)         34.8720 (15.41)          0.3581 (7.79)      532;811   28,432.2768 (0.06)      12960           1
test_op2[equal-keys4]                                             34.0660 (15.81)         83.3210 (8.09)          35.3781 (15.54)          1.9810 (9.78)          34.8410 (15.40)          0.3887 (8.45)    1183;1364   28,266.0571 (0.06)      12819           1
test_op2[sub-keys30]                                              36.7331 (17.04)         85.1310 (8.27)          38.1796 (16.77)          1.7745 (8.76)          37.7849 (16.70)          0.4230 (9.20)      664;707   26,192.0117 (0.06)       7328           1
test_op2[sub-keys13]                                              36.7570 (17.06)         90.6930 (8.81)          38.1794 (16.77)          1.8162 (8.97)          37.7260 (16.67)          0.3899 (8.48)      720;789   26,192.1553 (0.06)       6708           1
test_op2[sub-keys15]                                              36.8720 (17.11)         83.0559 (8.07)          38.0902 (16.74)          1.6423 (8.11)          37.7040 (16.66)          0.3821 (8.31)      665;698   26,253.4493 (0.06)       6953           1
test_op2[sub-keys1]                                               36.8910 (17.12)         80.6220 (7.83)          38.2279 (16.80)          1.5661 (7.73)          37.8600 (16.73)          0.4400 (9.57)      605;635   26,158.9047 (0.06)       6652           1
test_op2[sub-keys34]                                              36.9140 (17.13)         89.9520 (8.74)          38.2982 (16.83)          1.7664 (8.72)          37.8980 (16.75)          0.4070 (8.85)      697;726   26,110.9086 (0.06)       7202           1
test_op2[sub-keys18]                                              36.9221 (17.13)         78.0880 (7.58)          38.3018 (16.83)          1.6089 (7.94)          37.9070 (16.75)          0.4280 (9.31)      699;730   26,108.4481 (0.06)       7239           1
test_op2[sub-keys20]                                              36.9590 (17.15)         82.2340 (7.99)          38.1836 (16.78)          1.7213 (8.50)          37.7869 (16.70)          0.3850 (8.37)      702;745   26,189.2832 (0.06)       7272           1
test_op2[sub-keys5]                                               36.9820 (17.16)         90.2649 (8.77)          38.3688 (16.86)          1.7125 (8.45)          37.9441 (16.77)          0.4030 (8.76)      730;788   26,062.8211 (0.06)       6874           1
test_op2[sub-keys10]                                              36.9940 (17.17)         90.2259 (8.76)          38.2945 (16.82)          1.7677 (8.73)          37.8840 (16.74)          0.4130 (8.98)      730;772   26,113.3846 (0.06)       7195           1
test_op2[sub-keys29]                                              37.0030 (17.17)         86.3050 (8.38)          38.4152 (16.88)          1.6551 (8.17)          38.0280 (16.80)          0.4120 (8.96)      661;692   26,031.3353 (0.06)       6660           1
test_op2[add-keys6]                                               37.0380 (17.19)         97.0130 (9.42)          38.1623 (16.77)          1.3650 (6.74)          37.9559 (16.77)          0.3680 (8.00)      288;353   26,203.8437 (0.06)       7092           1
test_op2[add-keys15]                                              37.0550 (17.19)         93.4800 (9.08)          38.0660 (16.72)          1.1914 (5.88)          37.8690 (16.73)          0.3560 (7.74)      283;342   26,270.1377 (0.06)       7180           1
test_op2[add-keys29]                                              37.0691 (17.20)         85.3990 (8.30)          39.1395 (17.20)          2.5035 (12.36)         38.0700 (16.82)          2.7253 (59.27)     904;153   25,549.6294 (0.06)       6685           1
test_op2[sub-keys8]                                               37.1020 (17.22)         98.1560 (9.53)          39.0337 (17.15)          2.3364 (11.53)         38.1371 (16.85)          2.5762 (56.02)     552;122   25,618.8734 (0.06)       7015           1
test_op2[add-keys25]                                              37.1099 (17.22)         91.8231 (8.92)          38.2378 (16.80)          1.2242 (6.04)          38.0340 (16.81)          0.3570 (7.76)      290;354   26,152.1361 (0.06)       7118           1
test_op2[sub-keys27]                                              37.1110 (17.22)        107.2650 (10.42)         38.3177 (16.83)          1.7768 (8.77)          37.9219 (16.76)          0.3910 (8.50)      610;656   26,097.6319 (0.06)       6400           1
test_op2[sub-keys22]                                              37.1210 (17.22)         84.8060 (8.24)          38.6203 (16.97)          1.9166 (9.46)          38.1080 (16.84)          0.4488 (9.76)      720;778   25,893.0849 (0.06)       6247           1
test_op2[add-keys13]                                              37.1350 (17.23)         92.4070 (8.98)          38.1891 (16.78)          1.3708 (6.77)          37.9790 (16.78)          0.3470 (7.55)      287;384   26,185.5070 (0.06)       7055           1
test_op2[sub-keys25]                                              37.1550 (17.24)         90.4901 (8.79)          38.4708 (16.90)          1.7761 (8.77)          38.0180 (16.80)          0.4473 (9.73)      802;856   25,993.7180 (0.06)       7085           1
test_op2[sub-keys17]                                              37.1780 (17.25)         87.0300 (8.45)          38.7548 (17.03)          1.9793 (9.77)          38.0699 (16.82)          0.5199 (11.31)    873;1427   25,803.2661 (0.06)       7186           1
test_op2[add-keys8]                                               37.1869 (17.26)         89.5670 (8.70)          38.3613 (16.85)          1.3522 (6.68)          38.0900 (16.83)          0.3960 (8.61)      462;507   26,067.9713 (0.06)       7067           1
test_op2[add-keys20]                                              37.2060 (17.26)         92.3830 (8.97)          38.1900 (16.78)          1.1890 (5.87)          37.9960 (16.79)          0.3601 (7.83)      264;314   26,184.8945 (0.06)       6650           1
test_op2[add-keys18]                                              37.2160 (17.27)         91.4040 (8.88)          38.2043 (16.79)          1.1085 (5.47)          38.0339 (16.81)          0.3965 (8.62)      293;338   26,175.0917 (0.06)       7152           1
test_op2[add-keys27]                                              37.2741 (17.30)         87.0411 (8.45)          38.3256 (16.84)          1.1761 (5.81)          38.1300 (16.85)          0.3701 (8.05)      290;338   26,092.2225 (0.06)       7241           1
test_op2[add-keys3]                                               37.3730 (17.34)        403.3700 (39.18)         38.4734 (16.90)          4.6077 (22.75)         38.2240 (16.89)          0.3539 (7.70)       77;323   25,991.9939 (0.06)       6761           1
test_op2[add-keys5]                                               37.3940 (17.35)         85.8360 (8.34)          39.0489 (17.16)          1.7649 (8.71)          38.4881 (17.01)          0.5190 (11.29)   1078;1167   25,608.9385 (0.06)       6859           1
test_op2[add-keys10]                                              37.4020 (17.36)        247.8521 (24.07)         38.5482 (16.94)          2.7673 (13.66)         38.2951 (16.92)          0.3701 (8.05)      323;380   25,941.5622 (0.06)       7086           1
test_op2[add-keys34]                                              37.5250 (17.41)         86.2021 (8.37)          38.8555 (17.07)          1.6888 (8.34)          38.4391 (16.99)          0.4047 (8.80)      683;714   25,736.3498 (0.06)       6619           1
test_op2[add-keys32]                                              37.5640 (17.43)         80.6069 (7.83)          39.4528 (17.33)          2.1388 (10.56)         38.5890 (17.05)          1.0210 (22.20)    929;1628   25,346.7136 (0.06)       7185           1
test_op2[sub-keys3]                                               37.5930 (17.44)         89.4160 (8.69)          38.9349 (17.11)          1.6817 (8.30)          38.5490 (17.03)          0.3820 (8.31)      595;629   25,683.8745 (0.06)       6213           1
test_op2[add-keys17]                                              37.6201 (17.46)         88.5950 (8.61)          38.8140 (17.05)          1.6356 (8.07)          38.4980 (17.01)          0.3810 (8.29)      474;536   25,763.8825 (0.06)       7202           1
test_op2[sub-keys32]                                              37.7090 (17.50)         82.8120 (8.04)          39.4957 (17.35)          1.6392 (8.09)          39.1090 (17.28)          0.4070 (8.85)      660;704   25,319.2420 (0.06)       7171           1
test_op2[sub-keys6]                                               37.7491 (17.52)         75.9229 (7.37)          39.0291 (17.15)          1.5937 (7.87)          38.6540 (17.08)          0.4050 (8.81)      639;669   25,621.9072 (0.06)       6659           1
test_op2[add-keys22]                                              37.7550 (17.52)         89.0100 (8.65)          38.9091 (17.09)          1.3157 (6.50)          38.6679 (17.09)          0.3820 (8.31)      385;414   25,700.9340 (0.06)       7182           1
test_op2[add-keys30]                                              37.7670 (17.52)         92.5430 (8.99)          39.2311 (17.24)          1.7546 (8.66)          38.8270 (17.16)          0.4810 (10.46)     684;720   25,489.9753 (0.06)       6973           1
test_op2[add-keys1]                                               38.2250 (17.74)         93.4501 (9.08)          39.5486 (17.38)          1.3328 (6.58)          39.3160 (17.37)          0.4261 (9.27)      295;317   25,285.3385 (0.06)       5846           1
test_op2[divide-keys1]                                            38.8480 (18.03)         89.8751 (8.73)          40.2853 (17.70)          1.4341 (7.08)          39.9580 (17.66)          0.3850 (8.37)     978;1078   24,822.9571 (0.06)      12345           1
test_op2[divide-keys0]                                            39.2359 (18.21)         91.5080 (8.89)          40.3496 (17.73)          1.4201 (7.01)          40.0970 (17.72)          0.3610 (7.85)      582;724   24,783.3704 (0.06)      11768           1
test_op2[divide-keys3]                                            39.5870 (18.37)         92.9590 (9.03)          40.7795 (17.92)          1.3703 (6.76)          40.4830 (17.89)          0.4061 (8.83)      888;948   24,522.0962 (0.06)      11417           1
test_op2[divide-keys2]                                            39.7200 (18.43)         92.7040 (9.00)          40.8419 (17.94)          1.2995 (6.42)          40.6110 (17.95)          0.3701 (8.05)      510;626   24,484.6430 (0.06)      11910           1
test_op2[divide-keys6]                                            40.4910 (18.79)         82.1820 (7.98)          41.7294 (18.33)          1.3026 (6.43)          41.5000 (18.34)          0.3750 (8.15)      473;586   23,963.9060 (0.05)      10829           1
test_op2[divide-keys7]                                            40.5080 (18.80)         91.9830 (8.93)          41.9200 (18.42)          1.5640 (7.72)          41.5210 (18.35)          0.4510 (9.81)    1139;1198   23,854.9363 (0.05)      11751           1
test_op2[divide-keys4]                                            40.6920 (18.88)         95.3049 (9.26)          42.0142 (18.46)          1.5765 (7.78)          41.6720 (18.41)          0.4091 (8.90)      915;983   23,801.4920 (0.05)      11950           1
test_op2[divide-keys5]                                            40.7490 (18.91)         80.0120 (7.77)          42.0717 (18.48)          1.6168 (7.98)          41.7050 (18.43)          0.4090 (8.89)      849;915   23,768.9577 (0.05)       9859           1
test_op2[sub-keys2]                                               41.2270 (19.13)         84.1770 (8.18)          43.0104 (18.90)          2.1926 (10.82)         42.2690 (18.68)          0.5097 (11.08)     822;985   23,250.1679 (0.05)       5927           1
test_op2[add0-keys2]                                              41.2479 (19.14)         99.8700 (9.70)          42.4340 (18.64)          1.6389 (8.09)          42.1660 (18.63)          0.4321 (9.40)      272;369   23,565.9835 (0.05)       6110           1
test_op2[subtract-keys0]                                          41.2640 (19.15)        102.7100 (9.98)          42.6582 (18.74)          1.6835 (8.31)          42.2529 (18.67)          0.4070 (8.85)    1057;1158   23,442.1520 (0.05)      11209           1
test_op2[add0-keys1]                                              41.3350 (19.18)         70.3880 (6.84)          42.6974 (18.76)          1.1946 (5.90)          42.4569 (18.76)          0.4173 (9.07)      250;300   23,420.6480 (0.05)       5117           1
test_op2[add1-keys3]                                              41.4100 (19.22)         96.8410 (9.41)          42.7005 (18.76)          1.4322 (7.07)          42.3940 (18.73)          0.3923 (8.53)      809;912   23,418.9328 (0.05)      11465           1
test_op2[sub-keys1]                                               41.4540 (19.24)        114.8480 (11.16)         42.8046 (18.81)          1.6338 (8.07)          42.5361 (18.80)          0.4482 (9.75)      290;374   23,361.9508 (0.05)       6121           1
test_op2[subtract-keys3]                                          41.4610 (19.24)         97.5591 (9.48)          42.9536 (18.87)          1.6380 (8.09)          42.5740 (18.81)          0.5090 (11.07)    993;1063   23,280.9144 (0.05)      11405           1
test_op2[add1-keys0]                                              41.7751 (19.38)        102.3661 (9.94)          43.0472 (18.91)          1.4407 (7.11)          42.8030 (18.91)          0.4099 (8.91)      498;583   23,230.3079 (0.05)      10707           1
test_op2[subtract-keys7]                                          43.1800 (20.04)         97.9881 (9.52)          44.8350 (19.70)          1.8507 (9.14)          44.4000 (19.62)          0.4440 (9.66)     924;1049   22,303.9998 (0.05)      11166           1
test_op2[add1-keys4]                                              43.3060 (20.09)        106.5871 (10.35)         44.6760 (19.63)          1.8476 (9.12)          44.2419 (19.55)          0.4800 (10.44)    944;1008   22,383.3694 (0.05)      11235           1
test_op2[add1-keys7]                                              43.4100 (20.14)        106.3590 (10.33)         44.5259 (19.56)          1.3875 (6.85)          44.2800 (19.57)          0.4059 (8.83)      533;657   22,458.8217 (0.05)      11170           1
test_op2[lt-keys1]                                                43.9540 (20.40)         96.7589 (9.40)          45.3383 (19.92)          2.0965 (10.35)         44.9095 (19.85)          0.4210 (9.15)      364;455   22,056.4130 (0.05)       5524           1
test_op2[multiply-keys1]                                          44.0760 (20.45)        100.3621 (9.75)          45.7460 (20.10)          1.7442 (8.61)          45.3580 (20.04)          0.4729 (10.28)   1018;1064   21,859.8341 (0.05)      11521           1
test_op2[multiply-keys0]                                          44.1490 (20.49)         86.2210 (8.37)          45.4711 (19.98)          1.3459 (6.64)          45.2261 (19.99)          0.4569 (9.94)      557;617   21,991.9929 (0.05)      11538           1
test_op2[multiply-keys2]                                          44.1930 (20.51)         87.6040 (8.51)          45.4784 (19.98)          1.3472 (6.65)          45.2350 (19.99)          0.4430 (9.63)      536;632   21,988.4792 (0.05)      11346           1
test_op2[subtract-keys4]                                          44.3410 (20.58)        100.6270 (9.77)          45.6387 (20.05)          1.4976 (7.39)          45.3490 (20.04)          0.4030 (8.76)      600;745   21,911.2456 (0.05)      11025           1
test_op2[multiply-keys3]                                          44.4370 (20.62)        105.6370 (10.26)         45.7676 (20.11)          1.6307 (8.05)          45.3680 (20.05)          0.4721 (10.27)   1054;1110   21,849.5203 (0.05)      11520           1
test_op2[lt-keys2]                                                44.4870 (20.64)         97.0151 (9.42)          45.7350 (20.09)          1.5411 (7.61)          45.4575 (20.09)          0.4409 (9.59)      264;340   21,865.0749 (0.05)       5656           1
test_op2[sub-keys6]                                               44.5030 (20.65)        100.0511 (9.72)          45.7772 (20.11)          1.5699 (7.75)          45.4970 (20.10)          0.4940 (10.74)     298;372   21,844.9422 (0.05)       6241           1
test_op2[sub-keys5]                                               44.5520 (20.67)        108.9619 (10.58)         46.2407 (20.32)          2.0779 (10.26)         45.6010 (20.15)          0.6019 (13.09)     859;916   21,625.9760 (0.05)       5821           1
test_op2[add0-keys5]                                              44.6730 (20.73)        107.7050 (10.46)         46.1636 (20.28)          2.0855 (10.30)         45.7225 (20.20)          0.4589 (9.98)      411;460   21,662.0747 (0.05)       5922           1
test_op2[add0-keys6]                                              44.6960 (20.74)        105.8140 (10.28)         46.3864 (20.38)          2.1404 (10.57)         45.7451 (20.21)          0.5652 (12.29)     804;860   21,558.0382 (0.05)       6045           1
test_op2[lt-keys5]                                                45.0519 (20.90)        114.3019 (11.10)         46.4302 (20.40)          2.0081 (9.91)          46.1091 (20.38)          0.4490 (9.76)      288;380   21,537.7160 (0.05)       5512           1
test_op2[lt-keys6]                                                45.1710 (20.96)         92.6340 (9.00)          47.2325 (20.75)          3.0940 (15.27)         46.2061 (20.42)          0.5220 (11.35)     591;903   21,171.8727 (0.05)       5669           1
test_op2[multiply-keys5]                                          45.2850 (21.01)        111.1930 (10.80)         48.3204 (21.23)          2.2113 (10.92)         47.7870 (21.12)          0.5190 (11.29)   1167;1286   20,695.1774 (0.05)      11182           1
test_op2[multiply-keys4]                                          46.0480 (21.37)        109.4900 (10.64)         47.8024 (21.00)          1.4877 (7.34)          47.5460 (21.01)          0.4760 (10.35)     566;671   20,919.4475 (0.05)      11314           1
test_op2[multiply-keys7]                                          46.1041 (21.39)        104.1390 (10.12)         48.6858 (21.39)          2.3197 (11.45)         48.1210 (21.26)          0.5219 (11.35)     794;878   20,539.8766 (0.05)       9218           1
test_op2[multiply-keys6]                                          46.8690 (21.75)        108.0070 (10.49)         48.2329 (21.19)          1.4910 (7.36)          47.9670 (21.20)          0.4760 (10.35)     558;642   20,732.7344 (0.05)      11218           1
test_op2[equal-keys1]                                             49.4880 (22.96)        112.4840 (10.93)         51.1015 (22.45)          1.9262 (9.51)          50.5624 (22.34)          0.5231 (11.37)     685;721   19,568.8923 (0.04)       5858           1
test_op2[less-keys1]                                              49.5489 (22.99)        105.9440 (10.29)         50.9252 (22.37)          1.4801 (7.31)          50.6450 (22.38)          0.5249 (11.42)     320;371   19,636.6456 (0.04)       5959           1
test_op2[equal-keys2]                                             49.5790 (23.01)        107.3770 (10.43)         51.0096 (22.41)          1.5958 (7.88)          50.7119 (22.41)          0.4619 (10.05)     302;375   19,604.1483 (0.04)       5634           1
test_op2[less-keys2]                                              50.9780 (23.65)        120.5290 (11.71)         52.7387 (23.17)          1.7418 (8.60)          52.3970 (23.15)          0.5510 (11.98)     393;454   18,961.3900 (0.04)       6103           1
test_op2[less-keys5]                                              52.4949 (24.36)         99.2040 (9.64)          54.1102 (23.77)          1.5517 (7.66)          53.7881 (23.77)          0.5643 (12.27)     355;415   18,480.7939 (0.04)       5913           1
test_op2[equal-keys6]                                             52.6140 (24.41)        111.4140 (10.82)         55.5711 (24.42)          3.7380 (18.45)         54.0165 (23.87)          3.4831 (75.75)     544;434   17,994.9631 (0.04)       5966           1
test_op2[equal-keys5]                                             52.6600 (24.44)         97.1670 (9.44)          54.2227 (23.82)          1.7596 (8.69)          53.8430 (23.79)          0.5250 (11.42)     395;471   18,442.4773 (0.04)       5807           1
test_op2[less-keys6]                                              52.6950 (24.45)        121.2930 (11.78)         55.0852 (24.20)          3.4287 (16.93)         53.9820 (23.85)          0.6457 (14.04)     487;687   18,153.6816 (0.04)       4627           1
test_build_by_mul[short_array]                                    54.2579 (25.18)        127.5050 (12.39)         56.2527 (24.71)          1.8448 (9.11)          55.8200 (24.67)          0.6920 (15.05)     806;900   17,776.9295 (0.04)       9718           1
test_build_by_mul[mid_array]                                      57.3930 (26.63)        145.4700 (14.13)         59.5874 (26.18)          3.1005 (15.31)         58.7851 (25.98)          0.6440 (14.01)   1043;1119   16,782.0675 (0.04)       9867           1
test_op2[add1-keys1]                                              57.6620 (26.76)        134.8440 (13.10)         59.7589 (26.26)          2.2002 (10.86)         59.1570 (26.14)          0.7289 (15.85)     629;644   16,733.9045 (0.04)       5365           1
test_op2[subtract-keys1]                                          58.0590 (26.94)        122.6900 (11.92)         59.8928 (26.31)          2.0524 (10.13)         59.4570 (26.27)          0.6161 (13.40)     468;515   16,696.4907 (0.04)       5585           1
test_op2[subtract-keys2]                                          58.0640 (26.94)        130.0670 (12.63)         59.8001 (26.27)          1.7532 (8.66)          59.4630 (26.28)          0.6340 (13.79)     344;384   16,722.3665 (0.04)       5574           1
test_op2[add1-keys2]                                              58.7110 (27.24)        127.2600 (12.36)         60.2787 (26.48)          2.1295 (10.51)         59.8850 (26.46)          0.5717 (12.43)     133;157   16,589.6101 (0.04)       2047           1
test_op2[add1-keys6]                                              61.5419 (28.56)        128.6730 (12.50)         63.7308 (28.00)          2.5986 (12.83)         63.0310 (27.85)          0.6855 (14.91)     648;688   15,691.0015 (0.04)       5624           1
test_op2[add1-keys5]                                              61.5660 (28.57)        130.2500 (12.65)         63.6215 (27.95)          2.5018 (12.35)         63.0610 (27.87)          0.6743 (14.66)     439;475   15,717.9484 (0.04)       5281           1
test_op2[subtract-keys6]                                          61.7261 (28.64)        109.6260 (10.65)         63.7790 (28.02)          2.4321 (12.01)         63.2311 (27.94)          0.6987 (15.19)     436;471   15,679.1365 (0.04)       5491           1
test_op2[subtract-keys5]                                          61.8870 (28.72)        430.6070 (41.83)         64.7735 (28.46)          5.8005 (28.64)         63.8100 (28.20)          0.8170 (17.77)     117;832   15,438.4110 (0.04)       5233           1
test_parse_units[True-ms]                                         63.9760 (29.69)        153.3231 (14.89)         65.7533 (28.89)          2.1126 (10.43)         65.2231 (28.82)          0.5555 (12.08)   1274;1321   15,208.3543 (0.03)      12365           1
test_parse_units[False-ms]                                        64.1741 (29.78)        148.4660 (14.42)         65.9488 (28.97)          2.2669 (11.19)         65.3560 (28.88)          0.5673 (12.34)   1113;1139   15,163.2736 (0.03)       9605           1
test_getattr[False-ms]                                            68.8930 (31.97)        144.7940 (14.06)         70.7147 (31.07)          2.3198 (11.45)         70.1119 (30.98)          0.5760 (12.53)     926;964   14,141.3336 (0.03)       8313           1
test_getattr[True-ms]                                             69.3490 (32.18)      1,430.6530 (138.96)        71.3972 (31.37)         12.8391 (63.38)         70.9190 (31.34)          0.5520 (12.01)      13;918   14,006.1452 (0.03)      11440           1
test_getitem[True-minute]                                        102.5089 (47.57)        372.7220 (36.20)        106.0828 (46.61)          5.4398 (26.85)        104.9050 (46.36)          1.4348 (31.20)    561;1118    9,426.6032 (0.02)       7427           1
test_getitem[False-second]                                       102.5670 (47.59)        699.7950 (67.97)        106.2759 (46.69)          9.0059 (44.46)        104.9010 (46.35)          1.5952 (34.69)     113;921    9,409.4703 (0.02)       5453           1
test_finding_meter_getitem                                       102.6170 (47.62)    134,394.4800 (>1000.0)      145.2144 (63.80)      2,195.9030 (>1000.0)      105.0025 (46.40)          2.6891 (58.48)       2;425    6,886.3704 (0.02)       3762           1
test_getitem[False-minute]                                       102.9191 (47.76)        497.2500 (48.30)        106.6458 (46.86)          7.1798 (35.44)        104.8855 (46.35)          1.7170 (37.34)    299;1028    9,376.8362 (0.02)       5394           1
test_getitem[False-meter]                                        102.9570 (47.77)        748.9909 (72.75)        106.2324 (46.67)         10.1685 (50.20)        105.1730 (46.48)          1.3465 (29.28)      34;565    9,413.3281 (0.02)       4583           1
test_getitem[True-second]                                        103.4969 (48.02)        376.1470 (36.54)        107.0847 (47.05)          5.1426 (25.39)        105.7170 (46.72)          1.4284 (31.06)    672;1220    9,338.3995 (0.02)       7301           1
test_getitem[True-meter]                                         104.4450 (48.46)      5,300.4089 (514.85)       110.0124 (48.33)         64.4890 (318.36)       107.4020 (47.46)          4.8230 (104.88)      8;202    9,089.8858 (0.02)       6572           1
test_getitem[False-angstrom]                                     105.0530 (48.75)        315.6110 (30.66)        108.1550 (47.52)          4.5840 (22.63)        107.2190 (47.38)          1.3652 (29.69)     472;672    9,245.9891 (0.02)       5281           1
test_getitem[True-angstrom]                                      105.8261 (49.11)        414.7521 (40.29)        109.5801 (48.14)          6.5432 (32.30)        108.1571 (47.79)          1.6290 (35.43)    375;1152    9,125.7439 (0.02)       7234           1
test_parse_expression[False-meter]                               106.9979 (49.65)        173.1470 (16.82)        110.5378 (48.57)          3.9963 (19.73)        109.0000 (48.17)          1.2282 (26.71)    887;1025    9,046.6752 (0.02)       5286           1
test_getitem[False-kilometer]                                    107.1499 (49.72)        629.4680 (61.14)        110.4297 (48.52)          9.2997 (45.91)        109.3240 (48.31)          1.4305 (31.11)      33;464    9,055.5379 (0.02)       3673           1
test_getitem[True-kilometer]                                     107.5690 (49.91)        566.2030 (55.00)        111.1047 (48.81)          6.5399 (32.29)        110.0145 (48.61)          1.5175 (33.00)     224;992    9,000.5227 (0.02)       6988           1
test_parse_expression[True-meter]                                107.6299 (49.94)        179.3321 (17.42)        110.7031 (48.64)          3.2622 (16.10)        109.5640 (48.42)          1.1450 (24.90)   1139;1168    9,033.1727 (0.02)       7177           1
test_parse_expression[False-minute]                              107.7971 (50.02)        215.8920 (20.97)        111.9957 (49.21)          4.6137 (22.78)        110.0340 (48.62)          2.0635 (44.87)    892;1315    8,928.9124 (0.02)       5575           1
test_parse_expression[True-minute]                               107.8401 (50.04)        193.8270 (18.83)        111.1068 (48.81)          3.5738 (17.64)        109.8800 (48.56)          1.1052 (24.04)   1196;1260    9,000.3530 (0.02)       7225           1
test_parse_expression[False-second]                              107.8889 (50.06)        173.9911 (16.90)        111.6183 (49.04)          4.0613 (20.05)        110.1630 (48.68)          1.1581 (25.18)     814;943    8,959.1047 (0.02)       5110           1
test_parse_expression[True-second]                               107.9330 (50.08)        180.4220 (17.53)        110.6381 (48.61)          2.7897 (13.77)        109.8129 (48.53)          0.9635 (20.95)     928;972    9,038.4800 (0.02)       7276           1
test_getitem[False-millisecond]                                  108.4030 (50.30)        214.5340 (20.84)        112.2997 (49.34)          4.2000 (20.73)        110.8195 (48.97)          1.7410 (37.86)     612;696    8,904.7429 (0.02)       3634           1
test_getitem[True-millisecond]                                   108.4260 (50.31)        574.5860 (55.81)        112.1055 (49.25)          6.9432 (34.28)        110.6469 (48.89)          1.6350 (35.56)    232;1216    8,920.1727 (0.02)       6851           1
test_parse_expression[False-angstrom]                            108.7111 (50.44)        174.9520 (16.99)        113.1032 (49.69)          4.7933 (23.66)        111.1290 (49.11)          1.6059 (34.92)    786;1237    8,841.4813 (0.02)       5494           1
test_parse_expression[True-angstrom]                             109.1131 (50.63)        193.4780 (18.79)        112.1406 (49.27)          3.6941 (18.24)        110.8750 (48.99)          1.0920 (23.75)   1134;1215    8,917.3752 (0.02)       7324           1
test_parse_expression[True-kilometer]                            109.6789 (50.89)        201.4560 (19.57)        113.3172 (49.79)          4.3716 (21.58)        111.6550 (49.34)          1.2472 (27.12)    995;1308    8,824.7843 (0.02)       6509           1
test_parse_expression[False-kilometer]                           109.7190 (50.91)        187.7220 (18.23)        113.8991 (50.04)          5.0281 (24.82)        111.7280 (49.37)          2.2380 (48.67)     539;899    8,779.7017 (0.02)       3924           1
test_parse_expression[True-millisecond]                          111.7520 (51.86)        192.2260 (18.67)        115.3365 (50.67)          4.3844 (21.64)        113.5829 (50.19)          1.3805 (30.02)   1101;1492    8,670.2800 (0.02)       6983           1
test_parse_expression[False-millisecond]                         112.1069 (52.02)      1,075.8520 (104.50)       115.7078 (50.84)         16.0138 (79.05)        114.0835 (50.41)          1.1519 (25.05)      29;695    8,642.4615 (0.02)       3822           1
test_load_definitions_stage_1[None]                              136.3290 (63.26)     12,771.8610 (>1000.0)      162.1410 (71.24)        199.2816 (983.78)       142.6149 (63.02)          7.9143 (172.11)     39;542    6,167.4734 (0.01)       4229           1
test_create_empty_registry                                       139.4120 (64.69)     83,130.0589 (>1000.0)      359.2595 (157.84)     1,558.3861 (>1000.0)      322.9550 (142.71)        39.5848 (860.84)      2;643    2,783.5031 (0.01)       2841           1
test_parse_math_expression                                       158.8810 (73.72)        237.5160 (23.07)        164.6879 (72.36)          6.1206 (30.22)        162.1069 (71.63)          5.7243 (124.49)    482;197    6,072.0909 (0.01)       3407           1
test_getitem[True-ms]                                            169.6660 (78.73)     58,607.1300 (>1000.0)      187.2786 (82.28)        846.4241 (>1000.0)      173.4064 (76.63)          3.2950 (71.66)       1;437    5,339.6389 (0.01)       4766           1
test_getitem[False-ms]                                           170.0600 (78.91)        316.1590 (30.71)        175.0502 (76.91)          5.2506 (25.92)        173.6030 (76.71)          3.1060 (67.55)     412;410    5,712.6457 (0.01)       3772           1
test_load_definitions_stage_1[True]                              173.1550 (80.35)        561.1479 (54.51)        200.1729 (87.95)         55.8796 (275.86)       179.5409 (79.34)         10.2856 (223.68)    407;472    4,995.6820 (0.01)       3663           1
test_parse_expression[True-ms]                                   173.2640 (80.40)        245.6181 (23.86)        179.4086 (78.82)          6.6548 (32.85)        176.4949 (77.99)          6.4525 (140.32)    621;291    5,573.8677 (0.01)       4883           1
test_parse_expression[False-ms]                                  174.2990 (80.88)        252.7121 (24.55)        180.4899 (79.30)          6.7856 (33.50)        177.4610 (78.42)          6.5293 (141.99)    516;236    5,540.4750 (0.01)       3825           1
test_build_cache                                                 504.0010 (233.87)       616.9711 (59.93)        511.7854 (224.85)         5.6836 (28.06)        511.4330 (226.00)         4.8925 (106.39)      82;21    1,953.9439 (0.00)       1783           1
test_load_definitions_stage_3[True]                            2,706.0070 (>1000.0)    3,505.8440 (340.54)     2,818.6196 (>1000.0)      209.4796 (>1000.0)    2,726.6760 (>1000.0)      151.0710 (>1000.0)       1;1      354.7836 (0.00)         14           1
test_create_tiny_registry                                      9,054.9850 (>1000.0)   11,111.0581 (>1000.0)   10,200.3128 (>1000.0)      529.8235 (>1000.0)   10,130.8570 (>1000.0)      849.2809 (>1000.0)      22;0       98.0362 (0.00)         61           1
test_create_default_registry_use_cache                        17,500.0530 (>1000.0)  135,083.6850 (>1000.0)   27,766.2978 (>1000.0)   26,494.7516 (>1000.0)   18,516.7639 (>1000.0)    3,062.6614 (>1000.0)       5;5       36.0149 (0.00)         47           1
test_load_definitions_stage_3[None]                           70,661.0710 (>1000.0)  147,040.1910 (>1000.0)   76,673.3784 (>1000.0)   20,258.8753 (>1000.0)   71,163.9131 (>1000.0)      417.7981 (>1000.0)       1;3       13.0423 (0.00)         14           1
test_create_default_registry                                 311,807.1420 (>1000.0)  661,985.7471 (>1000.0)  498,759.6558 (>1000.0)  158,516.1769 (>1000.0)  582,142.5130 (>1000.0)  271,816.9744 (>1000.0)       2;0        2.0050 (0.00)          5           1
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Legend:
  Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile.
  OPS: Operations Per Second, computed as 1 / Mean
================================================================================== short test summary info ==================================================================================
SKIPPED [1] pint/testsuite/test_compat_downcast.py:11: sparse is not available
SKIPPED [1] pint/testsuite/test_compat_upcast.py:9: xarray is not available
SKIPPED [1] pint/testsuite/test_dask.py:12: Dask is not available
SKIPPED [2] pint/testsuite/benchmarks/test_10_registry.py:167: Test failing ValueError: Group USCSLengthInternational already present in registry
SKIPPED [6] pint/testsuite/test_application_registry.py:56: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_application_registry.py:68: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_application_registry.py:97: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_application_registry.py:143: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_application_registry.py:155: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_application_registry.py:227: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_application_registry.py:246: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_babel.py:11: Requires Babel not to be installed
SKIPPED [1] pint/testsuite/test_issues.py:178: Requires NumPy not to be installed.
SKIPPED [1] pint/testsuite/test_issues.py:254: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_issues.py:887: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_issues.py:925: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_issues.py:953: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_measurement.py:21: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_measurement.py:26: Requires Uncertainties
SKIPPED [12] pint/testsuite/test_measurement.py:44: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_measurement.py:67: Requires Uncertainties
SKIPPED [7] pint/testsuite/test_measurement.py:84: Requires Uncertainties
SKIPPED [5] pint/testsuite/test_measurement.py:105: Requires Uncertainties
SKIPPED [5] pint/testsuite/test_measurement.py:121: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_measurement.py:140: Requires Uncertainties
SKIPPED [6] pint/testsuite/test_measurement.py:158: Requires Uncertainties
SKIPPED [12] pint/testsuite/test_measurement.py:177: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_measurement.py:203: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_measurement.py:215: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_measurement.py:262: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_measurement.py:288: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_measurement.py:294: Requires Uncertainties
SKIPPED [1] pint/testsuite/test_numpy.py:449: Requires NumPy >= 2.0
SKIPPED [6] pint/testsuite/test_numpy.py: unconditional skip
SKIPPED [2] pint/testsuite/test_quantity.py:380: Requires MIP
SKIPPED [2] pint/testsuite/test_quantity.py:418: Requires MIP
SKIPPED [2] pint/testsuite/test_quantity.py:433: Requires MIP
SKIPPED [2] pint/testsuite/test_quantity.py:693: Requires NumPy not to be installed.
XFAIL pint/testsuite/test_issues.py::TestIssues::test_issue25
XFAIL pint/testsuite/test_issues.py::TestIssues::test_issue37
XFAIL pint/testsuite/test_issues.py::TestIssues::test_issue39
XFAIL pint/testsuite/test_issues.py::TestIssues::test_issue86c
XFAIL pint/testsuite/test_issues.py::test_issues_1841_xfail
XFAIL pint/testsuite/test_log_units.py::test_compound_log_unit_multiply_definition
XFAIL pint/testsuite/test_log_units.py::test_compound_log_unit_quantity_definition
XFAIL pint/testsuite/test_log_units.py::test_dbm_db_addition
XFAIL pint/testsuite/test_log_units.py::test_frequency_octave_addition[100-2.0-400]
XFAIL pint/testsuite/test_log_units.py::test_frequency_octave_addition[50-1.0-100]
XFAIL pint/testsuite/test_log_units.py::test_frequency_octave_addition[200-0.0-200]
XFAIL pint/testsuite/test_numpy.py::TestNumpyMathematicalFunctions::test_exponentiation_array_exp_2
XFAIL pint/testsuite/test_quantity.py::TestQuantityWithDefaultRegistry::test_formatting_override_default_units - Still not clear how default formatting will work.
XFAIL pint/testsuite/test_quantity.py::TestQuantityWithDefaultRegistry::test_formatting_override_default_magnitude - Still not clear how default formatting will work.
XFAIL pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_defaults_warning - Still not clear how default formatting will work.
XPASS pint/testsuite/test_quantity.py::TestQuantity::test_formatting_override_default_units - Still not clear how default formatting will work.
XPASS pint/testsuite/test_quantity.py::TestQuantity::test_formatting_override_default_magnitude - Still not clear how default formatting will work.
FAILED pint/testsuite/test_babel.py::test_format - locale.Error: unsupported locale setting
FAILED pint/testsuite/test_babel.py::test_registry_locale - locale.Error: unsupported locale setting
FAILED pint/testsuite/test_babel.py::test_str - locale.Error: unsupported locale setting
FAILED pint/testsuite/test_issues.py::TestIssues::test_issue_1400 - locale.Error: unsupported locale setting
===================================== 4 failed, 2489 passed, 134 skipped, 15 xfailed, 2 xpassed, 50 warnings, 298 subtests passed in 287.11s (0:04:47) ======================================

@andrewgsavage
Copy link
Collaborator

it looks like you do not have the locales installed on your machine the tests are run on
I think those tests can be skipped

@kloczek
Copy link
Author

kloczek commented Jun 21, 2024

Hmm .. which one locales? 🤔

@andrewgsavage
Copy link
Collaborator

["fr_FR", "ro_RO", "es_ES"]

Try it again now, I've set the tests to skip if the locales can't be loaded.

@andrewgsavage
Copy link
Collaborator

can this be closed now with 0.24.1 released?

@kloczek
Copy link
Author

kloczek commented Jun 27, 2024

If you think that issue has been resolved just close it.
Have no time to test that.
On next release my automation automatically will test that.

@HurricanePootis
Copy link

I am still getting this issue on version 0.24.1, while using a system locale of en_US.UTF-8

@kloczek
Copy link
Author

kloczek commented Jul 1, 2024

I am still getting this issue on version 0.24.1, while using a system locale of en_US.UTF-8

The same.
I'm usig defailt locale C.UTF-8

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-pint-0.24.1-2.fc37.x86_64/usr/lib64/python3.10/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-pint-0.24.1-2.fc37.x86_64/usr/lib/python3.10/site-packages
+ /usr/bin/pytest -ra -m 'not network'
==================================================================================== test session starts ====================================================================================
platform linux -- Python 3.10.14, pytest-8.2.2, pluggy-1.5.0
Matplotlib: 3.9.0
Freetype: 2.13.2
benchmark: 4.0.0 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /home/tkloczko/rpmbuild/BUILD/pint-0.24.1
configfile: pyproject.toml
plugins: mpl-0.17.0, subtests-0.12.1, benchmark-4.0.0
collected 2641 items / 3 skipped

pint/testsuite/benchmarks/test_00_common.py .                                                                                                                                         [  0%]
pint/testsuite/benchmarks/test_01_registry_creation.py ....                                                                                                                           [  0%]
pint/testsuite/benchmarks/test_10_registry.py ......................................................................................................ss..                              [  4%]
pint/testsuite/benchmarks/test_20_quantity.py ............................................................................................................................... [  9%]
..............................................................................                                                                                                        [ 12%]
pint/testsuite/benchmarks/test_30_numpy.py ....................................................................................................................                       [ 16%]
pint/testsuite/test_application_registry.py ..................ssssssssssss.......ssssss..................ssssssssssss..................ssssssssssss..                                 [ 20%]
pint/testsuite/test_babel.py sFF..F                                                                                                                                                   [ 20%]
pint/testsuite/test_compat.py ..........                                                                                                                                              [ 21%]
pint/testsuite/test_contexts.py ...............................,,,..,,,,........,,...                                                                                                 [ 22%]
pint/testsuite/test_converters.py .......                                                                                                                                             [ 23%]
pint/testsuite/test_definitions.py .......                                                                                                                                            [ 23%]
pint/testsuite/test_diskcache.py .....                                                                                                                                                [ 23%]
pint/testsuite/test_errors.py .......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..                                                                                                           [ 23%]
pint/testsuite/test_formatter.py ....                                                                                                                                                 [ 24%]
pint/testsuite/test_formatting.py ..................................                                                                                                                  [ 25%]
pint/testsuite/test_infer_base_unit.py ........                                                                                                                                       [ 25%]
pint/testsuite/test_issues.py x.xx........s......s...x................................................s.Fss.......................................................................x.. [ 31%]
.....                                                                                                                                                                                 [ 31%]
pint/testsuite/test_log_units.py ..............................................................................................xx..xxxx                                               [ 35%]
pint/testsuite/test_matplotlib.py ...                                                                                                                                                 [ 35%]
pint/testsuite/test_measurement.py .ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss                                                                                [ 38%]
pint/testsuite/test_non_int.py .............,,,,,,,,,,,,,,,,,,,,,,,,................................................................................................................. [ 42%]
.........................................................................................,,,,,,,,,,,,,,,,,,,,,,,,.................................................................... [ 48%]
......................................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,....................... [ 54%]
......................................................................................................................................................................                [ 61%]
pint/testsuite/test_numpy.py .....................,,,,,.,,......................s.........x....................................................................,,,,,,................ [ 66%]
....................ssssss                                                                                                                                                            [ 67%]
pint/testsuite/test_numpy_func.py ..........................                                                                                                                          [ 68%]
pint/testsuite/test_pint_eval.py ................................................................                                                                                     [ 70%]
pint/testsuite/test_pitheorem.py ..                                                                                                                                                   [ 70%]
pint/testsuite/test_quantity.py .......,,,,,,,,,,,,,,,,,,,,.,,,,,,,,.,,..,,,,,,,,,.XX....sss........,,,,,,,,,,,,,,,,,,,,,,,,.....s.................................................,,,,,,,,,,,,,,,,,,,,. [ 74%]
,,,,,,,,.,,..,,,,,,,,,.xx....sss........,,,,,,,,,,,,,,,,,,,,,,,,.....s............................................................................................................... [ 79%]
..................................................................................................................................................................................... [ 86%]
....................................................................................................................                                                                  [ 90%]
pint/testsuite/test_systems.py ...................                                                                                                                                    [ 91%]
pint/testsuite/test_testing.py ............                                                                                                                                           [ 91%]
pint/testsuite/test_umath.py ..............................................................                                                                                           [ 94%]
pint/testsuite/test_unit.py ...,,,,,,,,,,,,,.,,,,,,,.,,,,,,,,,.x,,,,,,,,,............................................................................................................ [ 98%]
...............                                                                                                                                                                       [ 98%]
pint/testsuite/test_util.py ...............,,,,.............                                                                                                                          [100%]

========================================================================================= FAILURES ==========================================================================================
________________________________________________________________________________________ test_format ________________________________________________________________________________________

func_registry = <pint.registry.UnitRegistry object at 0x7fc6f38c2c80>

    @helpers.requires_babel()
    def test_format(func_registry):
        ureg = func_registry
        dirname = os.path.dirname(__file__)
        ureg.load_definitions(os.path.join(dirname, "../xtranslated.txt"))

        distance = 24.1 * ureg.meter
>       assert distance.format_babel(locale="fr_FR", length="long") == "24,1 mètres"

pint/testsuite/test_babel.py:26:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/typing_extensions.py:2853: in wrapper
    return arg(*args, **kwargs)
pint/facets/plain/quantity.py:263: in format_babel
    return self._REGISTRY.formatter.format_quantity_babel(self, spec, **kwspec)
pint/delegates/formatter/full.py:249: in format_quantity_babel
    return self.format_quantity(
pint/delegates/formatter/full.py:170: in format_quantity
    return self.get_formatter(spec).format_quantity(
pint/delegates/formatter/plain.py:136: in format_quantity
    self.format_magnitude(quantity.magnitude, mspec, **babel_kwds),
pint/delegates/formatter/plain.py:69: in format_magnitude
    with override_locale(mspec, babel_kwds.get("locale", None)) as format_number:
/usr/lib64/python3.10/contextlib.py:135: in __enter__
    return next(self.gen)
pint/delegates/formatter/_format_helpers.py:94: in override_locale
    setlocale(LC_NUMERIC, locale)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

category = 1, locale = 'fr_FR'

    def setlocale(category, locale=None):

        """ Set the locale for the given category.  The locale can be
            a string, an iterable of two strings (language code and encoding),
            or None.

            Iterables are converted to strings using the locale aliasing
            engine.  Locale strings are passed directly to the C lib.

            category may be given as one of the LC_* values.

        """
        if locale and not isinstance(locale, _builtin_str):
            # convert to string
            locale = normalize(_build_localename(locale))
>       return _setlocale(category, locale)
E       locale.Error: unsupported locale setting

/usr/lib64/python3.10/locale.py:620: Error
___________________________________________________________________________________ test_registry_locale ____________________________________________________________________________________

    @helpers.requires_babel()
    def test_registry_locale():
        ureg = UnitRegistry(fmt_locale="fr_FR")
        dirname = os.path.dirname(__file__)
        ureg.load_definitions(os.path.join(dirname, "../xtranslated.txt"))

        distance = 24.1 * ureg.meter
>       assert distance.format_babel(length="long") == "24,1 mètres"

pint/testsuite/test_babel.py:46:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/typing_extensions.py:2853: in wrapper
    return arg(*args, **kwargs)
pint/facets/plain/quantity.py:263: in format_babel
    return self._REGISTRY.formatter.format_quantity_babel(self, spec, **kwspec)
pint/delegates/formatter/full.py:249: in format_quantity_babel
    return self.format_quantity(
pint/delegates/formatter/full.py:170: in format_quantity
    return self.get_formatter(spec).format_quantity(
pint/delegates/formatter/plain.py:136: in format_quantity
    self.format_magnitude(quantity.magnitude, mspec, **babel_kwds),
pint/delegates/formatter/plain.py:69: in format_magnitude
    with override_locale(mspec, babel_kwds.get("locale", None)) as format_number:
/usr/lib64/python3.10/contextlib.py:135: in __enter__
    return next(self.gen)
pint/delegates/formatter/_format_helpers.py:94: in override_locale
    setlocale(LC_NUMERIC, locale)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

category = 1, locale = 'fr_FR'

    def setlocale(category, locale=None):

        """ Set the locale for the given category.  The locale can be
            a string, an iterable of two strings (language code and encoding),
            or None.

            Iterables are converted to strings using the locale aliasing
            engine.  Locale strings are passed directly to the C lib.

            category may be given as one of the LC_* values.

        """
        if locale and not isinstance(locale, _builtin_str):
            # convert to string
            locale = normalize(_build_localename(locale))
>       return _setlocale(category, locale)
E       locale.Error: unsupported locale setting

/usr/lib64/python3.10/locale.py:620: Error
_________________________________________________________________________________________ test_str __________________________________________________________________________________________

func_registry = <pint.registry.UnitRegistry object at 0x7fc709411c30>

    @helpers.requires_babel()
    def test_str(func_registry):
        ureg = func_registry
        d = 24.1 * ureg.meter

        s = "24.1 meter"
        assert str(d) == s
        assert "%s" % d == s
        assert f"{d}" == s

        ureg.set_fmt_locale("fr_FR")
        s = "24,1 mètres"
>       assert str(d) == s

pint/testsuite/test_babel.py:100:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/quantity.py:269: in __str__
    return self._REGISTRY.formatter.format_quantity(self)
pint/delegates/formatter/full.py:170: in format_quantity
    return self.get_formatter(spec).format_quantity(
pint/delegates/formatter/plain.py:136: in format_quantity
    self.format_magnitude(quantity.magnitude, mspec, **babel_kwds),
pint/delegates/formatter/plain.py:69: in format_magnitude
    with override_locale(mspec, babel_kwds.get("locale", None)) as format_number:
/usr/lib64/python3.10/contextlib.py:135: in __enter__
    return next(self.gen)
pint/delegates/formatter/_format_helpers.py:94: in override_locale
    setlocale(LC_NUMERIC, locale)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

category = 1, locale = 'fr_FR'

    def setlocale(category, locale=None):

        """ Set the locale for the given category.  The locale can be
            a string, an iterable of two strings (language code and encoding),
            or None.

            Iterables are converted to strings using the locale aliasing
            engine.  Locale strings are passed directly to the C lib.

            category may be given as one of the LC_* values.

        """
        if locale and not isinstance(locale, _builtin_str):
            # convert to string
            locale = normalize(_build_localename(locale))
>       return _setlocale(category, locale)
E       locale.Error: unsupported locale setting

/usr/lib64/python3.10/locale.py:620: Error
________________________________________________________________________________ TestIssues.test_issue_1400 _________________________________________________________________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7fc70a7428f0>, sess_registry = <pint.registry.UnitRegistry object at 0x7fc6f38dc5e0>

    @helpers.requires_babel()
    def test_issue_1400(self, sess_registry):
        q1 = 3.1 * sess_registry.W
        q2 = 3.1 * sess_registry.W / sess_registry.cm
>       assert q1.format_babel("~", locale="es_ES") == "3,1 W"

pint/testsuite/test_issues.py:920:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.10/site-packages/typing_extensions.py:2853: in wrapper
    return arg(*args, **kwargs)
pint/facets/plain/quantity.py:263: in format_babel
    return self._REGISTRY.formatter.format_quantity_babel(self, spec, **kwspec)
pint/delegates/formatter/full.py:249: in format_quantity_babel
    return self.format_quantity(
pint/delegates/formatter/full.py:170: in format_quantity
    return self.get_formatter(spec).format_quantity(
pint/delegates/formatter/plain.py:136: in format_quantity
    self.format_magnitude(quantity.magnitude, mspec, **babel_kwds),
pint/delegates/formatter/plain.py:69: in format_magnitude
    with override_locale(mspec, babel_kwds.get("locale", None)) as format_number:
/usr/lib64/python3.10/contextlib.py:135: in __enter__
    return next(self.gen)
pint/delegates/formatter/_format_helpers.py:94: in override_locale
    setlocale(LC_NUMERIC, locale)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

category = 1, locale = 'es_ES'

    def setlocale(category, locale=None):

        """ Set the locale for the given category.  The locale can be
            a string, an iterable of two strings (language code and encoding),
            or None.

            Iterables are converted to strings using the locale aliasing
            engine.  Locale strings are passed directly to the C lib.

            category may be given as one of the LC_* values.

        """
        if locale and not isinstance(locale, _builtin_str):
            # convert to string
            locale = normalize(_build_localename(locale))
>       return _setlocale(category, locale)
E       locale.Error: unsupported locale setting

/usr/lib64/python3.10/locale.py:620: Error
========================================================================================= XFAILURES =========================================================================================
__________________________________________________________________________________ TestIssues.test_issue25 __________________________________________________________________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7fc70a73ee60>, module_registry = <pint.registry.UnitRegistry object at 0x7fc6f381ae30>

    @pytest.mark.xfail
    def test_issue25(self, module_registry):
>       x = ParserHelper.from_string("10 %")

pint/testsuite/test_issues.py:32:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/util.py:774: in from_string
    ret = build_eval_tree(gen).evaluate(
pint/pint_eval.py:565: in build_eval_tree
    result, _ = _build_eval_tree(tokens, op_priority, 0, 0)
pint/pint_eval.py:482: in _build_eval_tree
    right, index = _build_eval_tree(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

tokens = [TokenInfo(type=2 (NUMBER), string='10', start=(1, 0), end=(1, 2), line='10 %'), TokenInfo(type=54 (OP), string='%', s...ng='', start=(1, 4), end=(1, 5), line=''), TokenInfo(type=0 (ENDMARKER), string='', start=(2, 0), end=(2, 0), line='')]
op_priority = {'': 1, '%': 1, '*': 1, '**': 3, ...}, index = 3, depth = 1, prev_op = '%'

    def _build_eval_tree(
        tokens: list[TokenInfo],
        op_priority: dict[str, int],
        index: int = 0,
        depth: int = 0,
        prev_op: str = "<none>",
    ) -> tuple[EvalTreeNode, int]:
        """Build an evaluation tree from a set of tokens.

        Params:
        Index, depth, and prev_op used recursively, so don't touch.
        Tokens is an iterable of tokens from an expression to be evaluated.

        Transform the tokens from an expression into a recursive parse tree, following order
        of operations. Operations can include binary ops (3 + 4), implicit ops (3 kg), or
        unary ops (-1).

        General Strategy:
        1) Get left side of operator
        2) If no tokens left, return final result
        3) Get operator
        4) Use recursion to create tree starting at token on right side of operator (start at step #1)
        4.1) If recursive call encounters an operator with lower or equal priority to step #2, exit recursion
        5) Combine left side, operator, and right side into a new left side
        6) Go back to step #2

        Raises
        ------
        DefinitionSyntaxError
            If there is a syntax error.

        """

        result = None

        while True:
            current_token = tokens[index]
            token_type = current_token.type
            token_text = current_token.string

            if token_type == tokenlib.OP:
                if token_text == ")":
                    if prev_op == "<none>":
                        raise DefinitionSyntaxError(
                            f"unopened parentheses in tokens: {current_token}"
                        )
                    elif prev_op == "(":
                        # close parenthetical group
                        assert result is not None
                        return result, index
                    else:
                        # parenthetical group ending, but we need to close sub-operations within group
                        assert result is not None
                        return result, index - 1
                elif token_text == "(":
                    # gather parenthetical group
                    right, index = _build_eval_tree(
                        tokens, op_priority, index + 1, 0, token_text
                    )
                    if not tokens[index][1] == ")":
                        raise DefinitionSyntaxError("weird exit from parentheses")
                    if result:
                        # implicit op with a parenthetical group, i.e. "3 (kg ** 2)"
                        result = EvalTreeNode(left=result, right=right)
                    else:
                        # get first token
                        result = right
                elif token_text in op_priority:
                    if result:
                        # equal-priority operators are grouped in a left-to-right order,
                        # unless they're exponentiation, in which case they're grouped
                        # right-to-left this allows us to get the expected behavior for
                        # multiple exponents
                        #     (2^3^4)  --> (2^(3^4))
                        #     (2 * 3 / 4) --> ((2 * 3) / 4)
                        if op_priority[token_text] <= op_priority.get(
                            prev_op, -1
                        ) and token_text not in ("**", "^"):
                            # previous operator is higher priority, so end previous binary op
                            return result, index - 1
                        # get right side of binary op
                        right, index = _build_eval_tree(
                            tokens, op_priority, index + 1, depth + 1, token_text
                        )
                        result = EvalTreeNode(
                            left=result, operator=current_token, right=right
                        )
                    else:
                        # unary operator
                        right, index = _build_eval_tree(
                            tokens, op_priority, index + 1, depth + 1, "unary"
                        )
                        result = EvalTreeNode(left=right, operator=current_token)
            elif token_type in (tokenlib.NUMBER, tokenlib.NAME):
                if result:
                    # tokens with an implicit operation i.e. "1 kg"
                    if op_priority[""] <= op_priority.get(prev_op, -1):
                        # previous operator is higher priority than implicit, so end
                        # previous binary op
                        return result, index - 1
                    right, index = _build_eval_tree(
                        tokens, op_priority, index, depth + 1, ""
                    )
                    result = EvalTreeNode(left=result, right=right)
                else:
                    # get first token
                    result = EvalTreeNode(left=current_token)

            if tokens[index][0] == tokenlib.ENDMARKER:
                if prev_op == "(":
                    raise DefinitionSyntaxError("unclosed parentheses in tokens")
                if depth > 0 or prev_op:
                    # have to close recursion
>                   assert result is not None
E                   AssertionError

pint/pint_eval.py:514: AssertionError
__________________________________________________________________________________ TestIssues.test_issue37 __________________________________________________________________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7fc70a73dc00>, module_registry = <pint.registry.UnitRegistry object at 0x7fc6f381ae30>

    @pytest.mark.xfail
    @helpers.requires_numpy
    def test_issue37(self, module_registry):
        x = np.ma.masked_array([1, 2, 3], mask=[True, True, False])
        q = module_registry.meter * x
        assert isinstance(q, module_registry.Quantity)
        np.testing.assert_array_equal(q.magnitude, x)
>       assert q.units == module_registry.meter.units
E       AttributeError: 'Unit' object has no attribute 'units'. Did you mean: '_units'?

pint/testsuite/test_issues.py:57: AttributeError
__________________________________________________________________________________ TestIssues.test_issue39 __________________________________________________________________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7fc70a73c7f0>, module_registry = <pint.registry.UnitRegistry object at 0x7fc6f381ae30>

    @pytest.mark.xfail
    @helpers.requires_numpy
    def test_issue39(self, module_registry):
        x = np.matrix([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
        q = module_registry.meter * x
        assert isinstance(q, module_registry.Quantity)
        np.testing.assert_array_equal(q.magnitude, x)
>       assert q.units == module_registry.meter.units
E       AttributeError: 'Unit' object has no attribute 'units'. Did you mean: '_units'?

pint/testsuite/test_issues.py:80: AttributeError
_________________________________________________________________________________ TestIssues.test_issue86c __________________________________________________________________________________

self = <pint.testsuite.test_issues.TestIssues object at 0x7fc70a73d090>, module_registry = <pint.registry.UnitRegistry object at 0x7fc6f381ae30>

    @pytest.mark.xfail
    def test_issue86c(self, module_registry):
        module_registry.autoconvert_offset_to_baseunit = True
        T = module_registry.degC
        T = 100.0 * T
>       helpers.assert_quantity_almost_equal(
            module_registry.k * 2 * T, module_registry.k * (2 * T)
        )

pint/testsuite/test_issues.py:327:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

first = <Quantity(746.3, 'boltzmann_constant * kelvin')>, second = <Quantity(473.15, 'boltzmann_constant * kelvin')>, rtol = 1e-07, atol = 0
msg = "Comparing <Quantity(746.3, 'boltzmann_constant * kelvin')> and <Quantity(473.15, 'boltzmann_constant * kelvin')>.  (Converted to 746.3 and 473.15)"

    def assert_allclose(
        first, second, rtol: float = 1e-07, atol: float = 0, msg: str | None = None
    ) -> None:
        if msg is None:
            try:
                msg = f"Comparing {first!r} and {second!r}. "
            except (TypeError, ValueError):
                try:
                    msg = f"Comparing {first} and {second}. "
                except Exception:
                    msg = "Comparing"

        m1, m2 = _get_comparable_magnitudes(first, second, msg)
        msg += f" (Converted to {m1!r} and {m2!r})"

        if isinstance(m1, ndarray) or isinstance(m2, ndarray):
            np.testing.assert_allclose(m1, m2, rtol=rtol, atol=atol, err_msg=msg)
        elif not isinstance(m1, Number):
            warnings.warn("In assert_equal, m1 is not a number ", UserWarning)
            return
        elif not isinstance(m2, Number):
            warnings.warn("In assert_equal, m2 is not a number ", UserWarning)
            return
        elif math.isnan(m1):
            assert math.isnan(m2), msg
        elif math.isnan(m2):
            assert math.isnan(m1), msg
        elif math.isinf(m1):
            assert math.isinf(m2), msg
        elif math.isinf(m2):
            assert math.isinf(m1), msg
        else:
            # Numpy version (don't like because is not symmetric)
            # assert abs(m1 - m2) <= atol + rtol * abs(m2), msg
>           assert abs(m1 - m2) <= max(rtol * max(abs(m1), abs(m2)), atol), msg
E           AssertionError: Comparing <Quantity(746.3, 'boltzmann_constant * kelvin')> and <Quantity(473.15, 'boltzmann_constant * kelvin')>.  (Converted to 746.3 and 473.15)

pint/testing.py:94: AssertionError
__________________________________________________________________________________ test_issues_1841_xfail ___________________________________________________________________________________

    @pytest.mark.xfail
    def test_issues_1841_xfail():
        from pint import formatting as fmt
        from pint.delegates.formatter._compound_unit_helpers import sort_by_dimensionality

        # sets compact display mode by default
        ur = UnitRegistry()
        ur.default_format = "~P"
        ur.formatter.default_sort_func = sort_by_dimensionality

        q = ur.Quantity("2*pi radian * hour")

        # Note that `radian` (and `bit` and `count`) are treated as dimensionless.
        # And note that dimensionless quantities are stripped by this process,
        # leading to errorneous output.  Suggestions?
>       assert (
            fmt.format_unit(q.u._units, spec="", registry=ur, sort_dims=True)
            == "radian * hour"
        )
E       AssertionError: assert 'pi * radian * hour' == 'radian * hour'
E
E         - radian * hour
E         + pi * radian * hour
E         ? +++++

pint/testsuite/test_issues.py:1225: AssertionError
________________________________________________________________________ test_compound_log_unit_multiply_definition _________________________________________________________________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7fc6f29496c0>

    @pytest.mark.xfail
    def test_compound_log_unit_multiply_definition(module_registry_auto_offset):
        """Check that compound log units can be defined using multiply."""
        Q_ = module_registry_auto_offset.Quantity
        canonical_def = Q_(-161, "dBm") / module_registry_auto_offset.Hz
        mult_def = -161 * module_registry_auto_offset("dBm/Hz")
>       assert mult_def == canonical_def
E       AssertionError: assert <Quantity(-202.686991, 'gram * meter ** 2 / second ** 3 / hertz')> == <Quantity(7.94328235e-17, 'gram * meter ** 2 / second ** 3 / hertz')>

pint/testsuite/test_log_units.py:231: AssertionError
________________________________________________________________________ test_compound_log_unit_quantity_definition _________________________________________________________________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7fc6f29496c0>

    @pytest.mark.xfail
    def test_compound_log_unit_quantity_definition(module_registry_auto_offset):
        """Check that compound log units can be defined using ``Quantity()``."""
        Q_ = module_registry_auto_offset.Quantity
        canonical_def = Q_(-161, "dBm") / module_registry_auto_offset.Hz
        quantity_def = Q_(-161, "dBm/Hz")
>       assert quantity_def == canonical_def

pint/testsuite/test_log_units.py:240:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/quantity.py:100: in wrapped
    return f(self, *args, **kwargs)
pint/facets/plain/quantity.py:1351: in __eq__
    self._convert_magnitude_not_inplace(other._units),
pint/facets/plain/quantity.py:479: in _convert_magnitude_not_inplace
    return self._REGISTRY.convert(self._magnitude, self._units, other)
pint/facets/plain/registry.py:1038: in convert
    return self._convert(value, src, dst, inplace)
pint/facets/context/registry.py:405: in _convert
    return super()._convert(value, src, dst, inplace)
pint/facets/nonmultiplicative/registry.py:246: in _convert
    src_offset_unit = self._validate_and_extract(src)
pint/facets/nonmultiplicative/registry.py:165: in _validate_and_extract
    nonmult_units = [
pint/facets/nonmultiplicative/registry.py:166: in <listcomp>
    (u, e) for u, e in units.items() if not self._is_multiplicative(u)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pint.registry.UnitRegistry object at 0x7fc6f29496c0>, unit_name = 'delta_decibelmilliwatt'

    def _is_multiplicative(self, unit_name: str) -> bool:
        """True if the unit is multiplicative.

        Parameters
        ----------
        unit_name
            Name of the unit to check.
            Can be prefixed, pluralized or even an alias

        Raises
        ------
        UndefinedUnitError
            If the unit is not in the registry.
        """
        if unit_name in self._units:
            return self._units[unit_name].is_multiplicative

        # If the unit is not in the registry might be because it is not
        # registered with its prefixed version.
        # TODO: Might be better to register them.
        names = self.parse_unit_name(unit_name)
>       assert len(names) == 1
E       AssertionError

pint/facets/nonmultiplicative/registry.py:131: AssertionError
___________________________________________________________________________________ test_dbm_db_addition ____________________________________________________________________________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7fc6f29496c0>

    @pytest.mark.xfail
    def test_dbm_db_addition(module_registry_auto_offset):
        """Test a dB value can be added to a dBm and the answer is correct."""
>       power = (5 * module_registry_auto_offset.dBm) + (
            10 * module_registry_auto_offset.dB
        )

pint/testsuite/test_log_units.py:261:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/quantity.py:848: in __add__
    return self._add_sub(other, operator.add)
pint/facets/plain/quantity.py:100: in wrapped
    return f(self, *args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <Quantity(5, 'decibelmilliwatt')>, other = <Quantity(10, 'decibel')>, op = <built-in function add>

    @check_implemented
    def _add_sub(self, other, op):
        """Perform addition or subtraction operation and return the result.

        Parameters
        ----------
        other : pint.PlainQuantity or any type accepted by :func:`_to_magnitude`
            object to be added to / subtracted from self
        op : function
            operator function (e.g. operator.add, operator.isub)
        """
        if not self._check(other):
            # other not from same Registry or not a PlainQuantity
            if zero_or_nan(other, True):
                # If the other value is 0 or NaN (but not a PlainQuantity)
                # do the operation without checking units.
                # We do the calculation instead of just returning the same
                # value to enforce any shape checking and type casting due to
                # the operation.
                units = self._units
                magnitude = op(
                    self._magnitude,
                    _to_magnitude(other, self.force_ndarray, self.force_ndarray_like),
                )
            elif self.dimensionless:
                units = self.UnitsContainer()
                magnitude = op(
                    self.to(units)._magnitude,
                    _to_magnitude(other, self.force_ndarray, self.force_ndarray_like),
                )
            else:
                raise DimensionalityError(self._units, "dimensionless")
            return self.__class__(magnitude, units)

        if not self.dimensionality == other.dimensionality:
>           raise DimensionalityError(
                self._units, other._units, self.dimensionality, other.dimensionality
            )
E           pint.errors.DimensionalityError: Cannot convert from 'decibelmilliwatt' ([mass] * [length] ** 2 / [time] ** 3) to 'decibel' (dimensionless)

pint/facets/plain/quantity.py:750: DimensionalityError
________________________________________________________________________ test_frequency_octave_addition[100-2.0-400] ________________________________________________________________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7fc6f29496c0>, freq1 = <Quantity(100, 'hertz')>, octaves = 2.0, freq2 = 400

    @pytest.mark.xfail
    @pytest.mark.parametrize(
        "freq1,octaves,freq2",
        [
            (100, 2.0, 400),
            (50, 1.0, 100),
            (200, 0.0, 200),
        ],  # noqa: E231
    )
    def test_frequency_octave_addition(module_registry_auto_offset, freq1, octaves, freq2):
        """Test an Octave can be added to a frequency correctly"""
        freq1 = freq1 * module_registry_auto_offset.Hz
>       shift = octaves * module_registry_auto_offset.Octave

pint/testsuite/test_log_units.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/registry.py:367: in __getattr__
    return self.Unit(item)
pint/facets/plain/unit.py:41: in __init__
    self._units = self._REGISTRY.parse_units(units)._units
pint/facets/plain/registry.py:1199: in parse_units
    self.parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/nonmultiplicative/registry.py:69: in parse_units_as_container
    return super().parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1214: in parse_units_as_container
    return self._parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1249: in _parse_units_as_container
    cname = self.get_name(name, case_sensitive=case_sensitive)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pint.registry.UnitRegistry object at 0x7fc6f29496c0>, name_or_alias = 'Octave', case_sensitive = True

    def get_name(self, name_or_alias: str, case_sensitive: bool | None = None) -> str:
        """Return the canonical name of a unit."""

        if name_or_alias == "dimensionless":
            return ""

        try:
            return self._units[name_or_alias].name
        except KeyError:
            pass

        candidates = self.parse_unit_name(name_or_alias, case_sensitive)
        if not candidates:
>           raise UndefinedUnitError(name_or_alias)
E           pint.errors.UndefinedUnitError: 'Octave' is not defined in the unit registry

pint/facets/plain/registry.py:658: UndefinedUnitError
________________________________________________________________________ test_frequency_octave_addition[50-1.0-100] _________________________________________________________________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7fc6f29496c0>, freq1 = <Quantity(50, 'hertz')>, octaves = 1.0, freq2 = 100

    @pytest.mark.xfail
    @pytest.mark.parametrize(
        "freq1,octaves,freq2",
        [
            (100, 2.0, 400),
            (50, 1.0, 100),
            (200, 0.0, 200),
        ],  # noqa: E231
    )
    def test_frequency_octave_addition(module_registry_auto_offset, freq1, octaves, freq2):
        """Test an Octave can be added to a frequency correctly"""
        freq1 = freq1 * module_registry_auto_offset.Hz
>       shift = octaves * module_registry_auto_offset.Octave

pint/testsuite/test_log_units.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/registry.py:367: in __getattr__
    return self.Unit(item)
pint/facets/plain/unit.py:41: in __init__
    self._units = self._REGISTRY.parse_units(units)._units
pint/facets/plain/registry.py:1199: in parse_units
    self.parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/nonmultiplicative/registry.py:69: in parse_units_as_container
    return super().parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1214: in parse_units_as_container
    return self._parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1249: in _parse_units_as_container
    cname = self.get_name(name, case_sensitive=case_sensitive)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pint.registry.UnitRegistry object at 0x7fc6f29496c0>, name_or_alias = 'Octave', case_sensitive = True

    def get_name(self, name_or_alias: str, case_sensitive: bool | None = None) -> str:
        """Return the canonical name of a unit."""

        if name_or_alias == "dimensionless":
            return ""

        try:
            return self._units[name_or_alias].name
        except KeyError:
            pass

        candidates = self.parse_unit_name(name_or_alias, case_sensitive)
        if not candidates:
>           raise UndefinedUnitError(name_or_alias)
E           pint.errors.UndefinedUnitError: 'Octave' is not defined in the unit registry

pint/facets/plain/registry.py:658: UndefinedUnitError
________________________________________________________________________ test_frequency_octave_addition[200-0.0-200] ________________________________________________________________________

module_registry_auto_offset = <pint.registry.UnitRegistry object at 0x7fc6f29496c0>, freq1 = <Quantity(200, 'hertz')>, octaves = 0.0, freq2 = 200

    @pytest.mark.xfail
    @pytest.mark.parametrize(
        "freq1,octaves,freq2",
        [
            (100, 2.0, 400),
            (50, 1.0, 100),
            (200, 0.0, 200),
        ],  # noqa: E231
    )
    def test_frequency_octave_addition(module_registry_auto_offset, freq1, octaves, freq2):
        """Test an Octave can be added to a frequency correctly"""
        freq1 = freq1 * module_registry_auto_offset.Hz
>       shift = octaves * module_registry_auto_offset.Octave

pint/testsuite/test_log_units.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/plain/registry.py:367: in __getattr__
    return self.Unit(item)
pint/facets/plain/unit.py:41: in __init__
    self._units = self._REGISTRY.parse_units(units)._units
pint/facets/plain/registry.py:1199: in parse_units
    self.parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/nonmultiplicative/registry.py:69: in parse_units_as_container
    return super().parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1214: in parse_units_as_container
    return self._parse_units_as_container(input_string, as_delta, case_sensitive)
pint/facets/plain/registry.py:1249: in _parse_units_as_container
    cname = self.get_name(name, case_sensitive=case_sensitive)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pint.registry.UnitRegistry object at 0x7fc6f29496c0>, name_or_alias = 'Octave', case_sensitive = True

    def get_name(self, name_or_alias: str, case_sensitive: bool | None = None) -> str:
        """Return the canonical name of a unit."""

        if name_or_alias == "dimensionless":
            return ""

        try:
            return self._units[name_or_alias].name
        except KeyError:
            pass

        candidates = self.parse_unit_name(name_or_alias, case_sensitive)
        if not candidates:
>           raise UndefinedUnitError(name_or_alias)
E           pint.errors.UndefinedUnitError: 'Octave' is not defined in the unit registry

pint/facets/plain/registry.py:658: UndefinedUnitError
______________________________________________________________ TestNumpyMathematicalFunctions.test_exponentiation_array_exp_2 _______________________________________________________________

self = <pint.testsuite.test_numpy.TestNumpyMathematicalFunctions object at 0x7fc709c79780>

    @pytest.mark.xfail
    @helpers.requires_numpy
    def test_exponentiation_array_exp_2(self):
        arr = np.array(range(3), dtype=float)
        # q = self.Q_(copy.copy(arr), None)
        q = self.Q_(copy.copy(arr), "meter")
        arr_cp = copy.copy(arr)
        q_cp = copy.copy(q)
        # this fails as expected since numpy 1.8.0 but...
        with pytest.raises(DimensionalityError):
            op.pow(arr_cp, q_cp)
        # ..not for op.ipow !
        # q_cp is treated as if it is an array. The units are ignored.
        # Quantity.__ipow__ is never called
        arr_cp = copy.copy(arr)
        q_cp = copy.copy(q)
        with pytest.raises(DimensionalityError):
>           op.ipow(arr_cp, q_cp)

pint/testsuite/test_numpy.py:566:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pint/facets/numpy/quantity.py:72: in __array_ufunc__
    return numpy_wrap("ufunc", ufunc, inputs, kwargs, types)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

func_type = 'ufunc', func = <ufunc 'power'>, args = (array([0., 1., 2.]), <Quantity([0. 1. 2.], 'meter')>), kwargs = {'out': (array([0., 1., 2.]),)}
types = {<class 'pint.Quantity'>, <class 'numpy.ndarray'>}

    def numpy_wrap(func_type, func, args, kwargs, types):
        """Return the result from a NumPy function/ufunc as wrapped by Pint."""

        if func_type == "function":
            handled = HANDLED_FUNCTIONS
            # Need to handle functions in submodules
            name = ".".join(func.__module__.split(".")[1:] + [func.__name__])
        elif func_type == "ufunc":
            handled = HANDLED_UFUNCS
            # ufuncs do not have func.__module__
            name = func.__name__
        else:
            raise ValueError(f"Invalid func_type {func_type}")

        if name not in handled or any(is_upcast_type(t) for t in types):
            return NotImplemented
>       return handled[name](*args, **kwargs)
E       TypeError: _power() got an unexpected keyword argument 'out'

pint/facets/numpy/numpy_func.py:1071: TypeError
__________________________________________________________ TestQuantityWithDefaultRegistry.test_formatting_override_default_units ___________________________________________________________

self = <pint.testsuite.test_quantity.TestQuantityWithDefaultRegistry object at 0x7fc70988f430>

    @pytest.mark.xfail(reason="Still not clear how default formatting will work.")
    def test_formatting_override_default_units(self):
        ureg = UnitRegistry()
        ureg.formatter.default_format = "~"
        x = ureg.Quantity(4, "m ** 2")

        assert f"{x:dP}" == "4 meter²"
>       with pytest.warns(DeprecationWarning):
E       Failed: DID NOT WARN. No warnings of type (<class 'DeprecationWarning'>,) were emitted.
E        Emitted warnings: [].

pint/testsuite/test_quantity.py:278: Failed
________________________________________________________ TestQuantityWithDefaultRegistry.test_formatting_override_default_magnitude _________________________________________________________

self = <pint.testsuite.test_quantity.TestQuantityWithDefaultRegistry object at 0x7fc70988f010>

    @pytest.mark.xfail(reason="Still not clear how default formatting will work.")
    def test_formatting_override_default_magnitude(self):
        ureg = UnitRegistry()
        ureg.formatter.default_format = ".2f"
        x = ureg.Quantity(4, "m ** 2")

        assert f"{x:dP}" == "4 meter²"
>       with pytest.warns(DeprecationWarning):
E       Failed: DID NOT WARN. No warnings of type (<class 'DeprecationWarning'>,) were emitted.
E        Emitted warnings: [].

pint/testsuite/test_quantity.py:292: Failed
______________________________________________________________________ TestUnit.test_unit_formatting_defaults_warning _______________________________________________________________________

self = <pint.testsuite.test_unit.TestUnit object at 0x7fc708ea5270>

    @pytest.mark.xfail(reason="Still not clear how default formatting will work.")
    def test_unit_formatting_defaults_warning(self):
        ureg = UnitRegistry()
        ureg.default_format = "~P"
        x = ureg.Unit("m / s ** 2")

>       with pytest.warns(DeprecationWarning):
E       Failed: DID NOT WARN. No warnings of type (<class 'DeprecationWarning'>,) were emitted.
E        Emitted warnings: [].

pint/testsuite/test_unit.py:116: Failed
===================================================================================== warnings summary ======================================================================================
pint/testsuite/benchmarks/test_00_common.py::test_import
  /usr/lib/python3.10/site-packages/_pytest/python.py:166: PytestReturnNotNoneWarning: Expected None, but pint/testsuite/benchmarks/test_00_common.py::test_import returned 318468, which will be an error in a future version of pytest.  Did you mean to use `assert` instead of `return`?
    warnings.warn(

pint/testsuite/benchmarks/test_00_common.py::test_import
  pint/testsuite/benchmarks/test_00_common.py:7: PytestBenchmarkWarning: Benchmark fixture was not used at all in this test!
    def test_import(benchmark):

pint/testsuite/test_babel.py::test_format
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_babel.py:26: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_quantity_babel
    assert distance.format_babel(locale="fr_FR", length="long") == "24,1 mètres"

pint/testsuite/test_babel.py::test_registry_locale
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_babel.py:46: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_quantity_babel
    assert distance.format_babel(length="long") == "24,1 mètres"

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_babel.py:67: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_unit_babel
    assert volume.format_babel() == "millilitre"

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_babel.py:69: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = "~"

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_babel.py:70: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_unit_babel
    assert volume.format_babel() == "ml"

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_babel.py:73: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_unit_babel
    assert dimensionless_unit.format_babel() == ""

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_babel.py:75: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.set_locale
    ureg.set_fmt_locale(None)

pint/testsuite/test_babel.py::test_unit_format_babel
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_babel.py:77: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_unit_babel
    volume.format_babel()

pint/testsuite/test_babel.py::test_no_registry_locale
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_babel.py:85: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_quantity_babel
    distance.format_babel()

pint/testsuite/test_babel.py::test_str
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_babel.py:98: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.set_locale
    ureg.set_fmt_locale("fr_FR")

pint/testsuite/test_issues.py::TestIssues::test_issue39
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_issues.py:76: PendingDeprecationWarning: the matrix subclass is not the recommended way to represent matrices or deal with linear algebra (see https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please adjust your code to use regular ndarray.
    x = np.matrix([[1, 2, 3], [1, 2, 3], [1, 2, 3]])

pint/testsuite/test_issues.py::TestIssues::test_issue_1400
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_issues.py:920: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.format_quantity_babel
    assert q1.format_babel("~", locale="es_ES") == "3,1 W"

pint/testsuite/test_issues.py::test_issues_1841[units0-P~-V\xb7A]
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_issues.py:1205: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ur.default_format = spec

pint/testsuite/test_issues.py::test_issues_1841_xfail
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_issues.py:1217: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ur.default_format = "~P"

pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_put
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/facets/numpy/quantity.py:154: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.
    self.magnitude.put(indices, values, mode)

pint/testsuite/test_numpy.py::TestNumpyUnclassified::test_copyto
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/facets/numpy/numpy_func.py:1071: UnitStrippedWarning: The unit of the quantity is stripped when copying to non-quantity
    return handled[name](*args, **kwargs)

pint/testsuite/test_quantity.py::TestQuantityToCompact::test_nonnumeric_magnitudes
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testing.py:78: UserWarning: In assert_equal, m1 is not a number
    warnings.warn("In assert_equal, m1 is not a number ", UserWarning)

pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_unit.py:73: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = spec

pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
pint/testsuite/test_unit.py::TestUnit::test_latex_escaping
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_unit.py:86: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = spec

pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
pint/testsuite/test_unit.py::TestUnit::test_unit_default_formatting
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_unit.py:107: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = spec

pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_defaults_warning
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_unit.py:113: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = "~P"

pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
pint/testsuite/test_unit.py::TestUnit::test_unit_formatting_snake_case
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_unit.py:139: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = spec

pint/testsuite/test_unit.py::TestUnit::test_ipython
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_unit.py:180: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = "~"

pint/testsuite/test_unit.py::TestRegistry::test_default_format
pint/testsuite/test_unit.py::TestRegistryWithDefaultRegistry::test_default_format
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_unit.py:325: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    ureg.default_format = "~"

pint/testsuite/test_unit.py::TestRegistry::test_default_format
pint/testsuite/test_unit.py::TestRegistryWithDefaultRegistry::test_default_format
  /home/tkloczko/rpmbuild/BUILD/pint-0.24.1/pint/testsuite/test_unit.py:329: DeprecationWarning: This function will be removed in future versions of pint.
  Use ureg.formatter.default_format
    assert ureg.default_format == "~"

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants