Z-Image-Special-Edtion / python_env /lib /site-packages /pandas /tests /arithmetic /test_array_ops.py
| import operator | |
| import numpy as np | |
| import pytest | |
| import pandas._testing as tm | |
| from pandas.core.ops.array_ops import ( | |
| comparison_op, | |
| na_logical_op, | |
| ) | |
| def test_na_logical_op_2d(): | |
| left = np.arange(8).reshape(4, 2) | |
| right = left.astype(object) | |
| right[0, 0] = np.nan | |
| # Check that we fall back to the vec_binop branch | |
| with pytest.raises(TypeError, match="unsupported operand type"): | |
| operator.or_(left, right) | |
| result = na_logical_op(left, right, operator.or_) | |
| expected = right | |
| tm.assert_numpy_array_equal(result, expected) | |
| def test_object_comparison_2d(): | |
| left = np.arange(9).reshape(3, 3).astype(object) | |
| right = left.T | |
| result = comparison_op(left, right, operator.eq) | |
| expected = np.eye(3).astype(bool) | |
| tm.assert_numpy_array_equal(result, expected) | |
| # Ensure that cython doesn't raise on non-writeable arg, which | |
| # we can get from np.broadcast_to | |
| right.flags.writeable = False | |
| result = comparison_op(left, right, operator.ne) | |
| tm.assert_numpy_array_equal(result, ~expected) | |