Download .venv/Lib/site-packages/numpy/lib/tests/test_utils.py from DrDavis/PythonProject1: direct link, hf CLI and curl.
- Browser
- Download file 2.45 kB
-
https://huggingface.co/DrDavis/PythonProject1/resolve/main/.venv/Lib/site-packages/numpy/lib/tests/test_utils.py
- Command line
-
hf download hf://DrDavis/PythonProject1/.venv/Lib/site-packages/numpy/lib/tests/test_utils.py
-
curl -L -o test_utils.py https://huggingface.co/DrDavis/PythonProject1/resolve/main/.venv/Lib/site-packages/numpy/lib/tests/test_utils.py
2.45 kB
| import pytest | |
| import numpy as np | |
| from numpy.testing import assert_raises_regex | |
| import numpy.lib._utils_impl as _utils_impl | |
| from io import StringIO | |
| def test_assert_raises_regex_context_manager(): | |
| with assert_raises_regex(ValueError, 'no deprecation warning'): | |
| raise ValueError('no deprecation warning') | |
| def test_info_method_heading(): | |
| # info(class) should only print "Methods:" heading if methods exist | |
| class NoPublicMethods: | |
| pass | |
| class WithPublicMethods: | |
| def first_method(): | |
| pass | |
| def _has_method_heading(cls): | |
| out = StringIO() | |
| np.info(cls, output=out) | |
| return 'Methods:' in out.getvalue() | |
| assert _has_method_heading(WithPublicMethods) | |
| assert not _has_method_heading(NoPublicMethods) | |
| def test_drop_metadata(): | |
| def _compare_dtypes(dt1, dt2): | |
| return np.can_cast(dt1, dt2, casting='no') | |
| # structured dtype | |
| dt = np.dtype([('l1', [('l2', np.dtype('S8', metadata={'msg': 'toto'}))])], | |
| metadata={'msg': 'titi'}) | |
| dt_m = _utils_impl.drop_metadata(dt) | |
| assert _compare_dtypes(dt, dt_m) is True | |
| assert dt_m.metadata is None | |
| assert dt_m['l1'].metadata is None | |
| assert dt_m['l1']['l2'].metadata is None | |
| # alignment | |
| dt = np.dtype([('x', '<f8'), ('y', '<i4')], | |
| align=True, | |
| metadata={'msg': 'toto'}) | |
| dt_m = _utils_impl.drop_metadata(dt) | |
| assert _compare_dtypes(dt, dt_m) is True | |
| assert dt_m.metadata is None | |
| # subdtype | |
| dt = np.dtype('8f', | |
| metadata={'msg': 'toto'}) | |
| dt_m = _utils_impl.drop_metadata(dt) | |
| assert _compare_dtypes(dt, dt_m) is True | |
| assert dt_m.metadata is None | |
| # scalar | |
| dt = np.dtype('uint32', | |
| metadata={'msg': 'toto'}) | |
| dt_m = _utils_impl.drop_metadata(dt) | |
| assert _compare_dtypes(dt, dt_m) is True | |
| assert dt_m.metadata is None | |
| def test_drop_metadata_identity_and_copy(dtype): | |
| # If there is no metadata, the identity is preserved: | |
| assert _utils_impl.drop_metadata(dtype) is dtype | |
| # If there is any, it is dropped (subforms are checked above) | |
| dtype = np.dtype(dtype, metadata={1: 2}) | |
| assert _utils_impl.drop_metadata(dtype).metadata is None | |