summaryrefslogtreecommitdiff
path: root/numpy/core
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/core')
-rw-r--r--numpy/core/tests/test_simd.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/numpy/core/tests/test_simd.py b/numpy/core/tests/test_simd.py
index f33db95fc..324948cf2 100644
--- a/numpy/core/tests/test_simd.py
+++ b/numpy/core/tests/test_simd.py
@@ -501,6 +501,34 @@ class _SIMD_FP(_Test_Utility):
nnan = self.notnan(self.setall(self._nan()))
assert nnan == [0]*self.nlanes
+ import operator
+
+ @pytest.mark.parametrize('py_comp,np_comp', [
+ (operator.lt, "cmplt"),
+ (operator.le, "cmple"),
+ (operator.gt, "cmpgt"),
+ (operator.ge, "cmpge"),
+ (operator.eq, "cmpeq"),
+ (operator.ne, "cmpneq")
+ ])
+ def test_comparison_with_nan(self, py_comp, np_comp):
+ pinf, ninf, nan = self._pinfinity(), self._ninfinity(), self._nan()
+ mask_true = self._true_mask()
+
+ def to_bool(vector):
+ return [lane == mask_true for lane in vector]
+
+ intrin = getattr(self, np_comp)
+ cmp_cases = ((0, nan), (nan, 0), (nan, nan), (pinf, nan), (ninf, nan))
+ for case_operand1, case_operand2 in cmp_cases:
+ data_a = [case_operand1]*self.nlanes
+ data_b = [case_operand2]*self.nlanes
+ vdata_a = self.setall(case_operand1)
+ vdata_b = self.setall(case_operand2)
+ vcmp = to_bool(intrin(vdata_a, vdata_b))
+ data_cmp = [py_comp(a, b) for a, b in zip(data_a, data_b)]
+ assert vcmp == data_cmp
+
class _SIMD_ALL(_Test_Utility):
"""
To test all vector types at once