OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
reader
/
hps
/
faces
/
.venv
/
lib
/
python3.10
/
site-packages
/
numpy
/
core
/
tests
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
10/26/2024 01:28:47 PM
rwxr-xr-x
📄
__init__.py
0 bytes
10/26/2024 01:27:30 PM
rw-r--r--
📁
__pycache__
-
10/26/2024 01:28:51 PM
rwxr-xr-x
📄
_locales.py
2.15 KB
10/26/2024 01:27:30 PM
rw-r--r--
📁
data
-
10/26/2024 01:28:49 PM
rwxr-xr-x
📁
examples
-
10/26/2024 01:29:54 PM
rwxr-xr-x
📄
test__exceptions.py
2.78 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_abc.py
2.17 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_api.py
21.91 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_argparse.py
1.93 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_array_coercion.py
31.51 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_array_interface.py
7.42 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_arraymethod.py
3.49 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_arrayprint.py
36.29 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_casting_floatingpoint_errors.py
4.94 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_casting_unittests.py
33.49 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_conversion_utils.py
6.41 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_cpu_dispatcher.py
1.49 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_cpu_features.py
7 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_custom_dtypes.py
7.5 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_cython.py
3.54 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_datetime.py
112.48 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_defchararray.py
24.03 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_deprecations.py
44.43 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_dlpack.py
3.42 KB
10/26/2024 01:27:28 PM
rw-r--r--
📄
test_dtype.py
70.86 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_einsum.py
49 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_errstate.py
2.17 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_extint128.py
5.51 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_function_base.py
14.07 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_getlimits.py
5.18 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_half.py
23.66 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_hashtable.py
1011 bytes
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_indexerrors.py
5.01 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_indexing.py
53.04 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_item_selection.py
3.5 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_limited_api.py
1.14 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_longdouble.py
12.74 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_machar.py
1.04 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_mem_overlap.py
28.41 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_mem_policy.py
15.57 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_memmap.py
7.31 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_multiarray.py
361.83 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_nditer.py
126.52 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_nep50_promotions.py
6.31 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_numeric.py
134.44 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_numerictypes.py
20.76 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_overrides.py
21.57 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_print.py
6.58 KB
10/26/2024 01:27:29 PM
rw-r--r--
📄
test_protocols.py
1.14 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_records.py
19.79 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_regression.py
89.1 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_scalar_ctors.py
5.97 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_scalar_methods.py
7.69 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_scalarbuffer.py
5.46 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_scalarinherit.py
2.32 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_scalarmath.py
41.81 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_scalarprint.py
18.26 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_shape_base.py
28.97 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_simd.py
42.6 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_simd_module.py
3.72 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_strings.py
3.75 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_ufunc.py
113.7 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_umath.py
168.45 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_umath_accuracy.py
3.81 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_umath_complex.py
22.7 KB
10/26/2024 01:27:30 PM
rw-r--r--
📄
test_unicode.py
12.35 KB
10/26/2024 01:27:30 PM
rw-r--r--
Editing: test_strings.py
Close
import pytest import operator import numpy as np from numpy.testing import assert_array_equal COMPARISONS = [ (operator.eq, np.equal, "=="), (operator.ne, np.not_equal, "!="), (operator.lt, np.less, "<"), (operator.le, np.less_equal, "<="), (operator.gt, np.greater, ">"), (operator.ge, np.greater_equal, ">="), ] @pytest.mark.parametrize(["op", "ufunc", "sym"], COMPARISONS) def test_mixed_string_comparison_ufuncs_fail(op, ufunc, sym): arr_string = np.array(["a", "b"], dtype="S") arr_unicode = np.array(["a", "c"], dtype="U") with pytest.raises(TypeError, match="did not contain a loop"): ufunc(arr_string, arr_unicode) with pytest.raises(TypeError, match="did not contain a loop"): ufunc(arr_unicode, arr_string) @pytest.mark.parametrize(["op", "ufunc", "sym"], COMPARISONS) def test_mixed_string_comparisons_ufuncs_with_cast(op, ufunc, sym): arr_string = np.array(["a", "b"], dtype="S") arr_unicode = np.array(["a", "c"], dtype="U") # While there is no loop, manual casting is acceptable: res1 = ufunc(arr_string, arr_unicode, signature="UU->?", casting="unsafe") res2 = ufunc(arr_string, arr_unicode, signature="SS->?", casting="unsafe") expected = op(arr_string.astype('U'), arr_unicode) assert_array_equal(res1, expected) assert_array_equal(res2, expected) @pytest.mark.parametrize(["op", "ufunc", "sym"], COMPARISONS) @pytest.mark.parametrize("dtypes", [ ("S2", "S2"), ("S2", "S10"), ("<U1", "<U1"), ("<U1", ">U1"), (">U1", ">U1"), ("<U1", "<U10"), ("<U1", ">U10")]) @pytest.mark.parametrize("aligned", [True, False]) def test_string_comparisons(op, ufunc, sym, dtypes, aligned): # ensure native byte-order for the first view to stay within unicode range native_dt = np.dtype(dtypes[0]).newbyteorder("=") arr = np.arange(2**15).view(native_dt).astype(dtypes[0]) if not aligned: # Make `arr` unaligned: new = np.zeros(arr.nbytes + 1, dtype=np.uint8)[1:].view(dtypes[0]) new[...] = arr arr = new arr2 = arr.astype(dtypes[1], copy=True) np.random.shuffle(arr2) arr[0] = arr2[0] # make sure one matches expected = [op(d1, d2) for d1, d2 in zip(arr.tolist(), arr2.tolist())] assert_array_equal(op(arr, arr2), expected) assert_array_equal(ufunc(arr, arr2), expected) assert_array_equal(np.compare_chararrays(arr, arr2, sym, False), expected) expected = [op(d2, d1) for d1, d2 in zip(arr.tolist(), arr2.tolist())] assert_array_equal(op(arr2, arr), expected) assert_array_equal(ufunc(arr2, arr), expected) assert_array_equal(np.compare_chararrays(arr2, arr, sym, False), expected) @pytest.mark.parametrize(["op", "ufunc", "sym"], COMPARISONS) @pytest.mark.parametrize("dtypes", [ ("S2", "S2"), ("S2", "S10"), ("<U1", "<U1"), ("<U1", ">U10")]) def test_string_comparisons_empty(op, ufunc, sym, dtypes): arr = np.empty((1, 0, 1, 5), dtype=dtypes[0]) arr2 = np.empty((100, 1, 0, 1), dtype=dtypes[1]) expected = np.empty(np.broadcast_shapes(arr.shape, arr2.shape), dtype=bool) assert_array_equal(op(arr, arr2), expected) assert_array_equal(ufunc(arr, arr2), expected) assert_array_equal(np.compare_chararrays(arr, arr2, sym, False), expected) @pytest.mark.parametrize("str_dt", ["S", "U"]) @pytest.mark.parametrize("float_dt", np.typecodes["AllFloat"]) def test_float_to_string_cast(str_dt, float_dt): float_dt = np.dtype(float_dt) fi = np.finfo(float_dt) arr = np.array([np.nan, np.inf, -np.inf, fi.max, fi.min], dtype=float_dt) expected = ["nan", "inf", "-inf", repr(fi.max), repr(fi.min)] if float_dt.kind == 'c': expected = [f"({r}+0j)" for r in expected] res = arr.astype(str_dt) assert_array_equal(res, np.array(expected, dtype=str_dt))