@@ -46,3 +46,122 @@ array_api_tests/test_special_cases.py::test_binary[__pow__(x1_i is -0 and x2_i >
4646array_api_tests/test_special_cases.py::test_iop[__ipow__(x1_i is -infinity and x2_i > 0 and not (x2_i.is_integer() and x2_i % 2 == 1)) -> +infinity]
4747array_api_tests/test_special_cases.py::test_iop[__ipow__(x1_i is -0 and x2_i > 0 and not (x2_i.is_integer() and x2_i % 2 == 1)) -> +0]
4848array_api_tests/meta/test_hypothesis_helpers.py::test_symmetric_matrices
49+
50+
51+ # NumPy 1.21 specific XFAILS
52+ ############################
53+
54+ # finfo has no smallest_normal
55+ array_api_tests/test_data_type_functions.py::test_finfo[float64]
56+
57+ # dlpack stuff
58+ array_api_tests/test_has_names.py::test_has_names[creation-from_dlpack]
59+ array_api_tests/test_has_names.py::test_has_names[array_method-__dlpack__]
60+ array_api_tests/test_has_names.py::test_has_names[array_method-__dlpack_device__]
61+ array_api_tests/test_signatures.py::test_func_signature[from_dlpack]
62+ array_api_tests/test_signatures.py::test_array_method_signature[__dlpack__]
63+ array_api_tests/test_signatures.py::test_array_method_signature[__dlpack_device__]
64+
65+ # qr() doesn't support matrix stacks
66+ array_api_tests/test_linalg.py::test_qr
67+
68+ # argmax and argmin do not support keepdims
69+ array_api_tests/test_searching_functions.py::test_argmax
70+ array_api_tests/test_searching_functions.py::test_argmin
71+ array_api_tests/test_signatures.py::test_func_signature[argmax]
72+ array_api_tests/test_signatures.py::test_func_signature[argmin]
73+
74+ # NumPy 1.21 doesn't support NPY_PROMOTION_STATE=weak, so many tests fail with
75+ # type promotion issues
76+ array_api_tests/test_operators_and_elementwise_functions.py::test_add[add(x1, x2)]
77+ array_api_tests/test_operators_and_elementwise_functions.py::test_add[__add__(x1, x2)]
78+ array_api_tests/test_operators_and_elementwise_functions.py::test_add[__add__(x, s)]
79+ array_api_tests/test_operators_and_elementwise_functions.py::test_add[__iadd__(x, s)]
80+ array_api_tests/test_operators_and_elementwise_functions.py::test_atan2
81+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_and[bitwise_and(x1, x2)]
82+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_and[__and__(x1, x2)]
83+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_and[__and__(x, s)]
84+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_and[__iand__(x, s)]
85+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_left_shift[bitwise_left_shift(x1, x2)]
86+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_left_shift[__lshift__(x1, x2)]
87+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_left_shift[__lshift__(x, s)]
88+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_left_shift[__ilshift__(x, s)]
89+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_or[bitwise_or(x1, x2)]
90+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_or[__or__(x1, x2)]
91+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_or[__or__(x, s)]
92+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_or[__ior__(x, s)]
93+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_right_shift[bitwise_right_shift(x1, x2)]
94+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_right_shift[__rshift__(x1, x2)]
95+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_right_shift[__rshift__(x, s)]
96+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_right_shift[__irshift__(x, s)]
97+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_xor[bitwise_xor(x1, x2)]
98+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_xor[__xor__(x1, x2)]
99+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_xor[__xor__(x, s)]
100+ array_api_tests/test_operators_and_elementwise_functions.py::test_bitwise_xor[__ixor__(x, s)]
101+ array_api_tests/test_operators_and_elementwise_functions.py::test_divide[divide(x1, x2)]
102+ array_api_tests/test_operators_and_elementwise_functions.py::test_divide[__truediv__(x1, x2)]
103+ array_api_tests/test_operators_and_elementwise_functions.py::test_divide[__truediv__(x, s)]
104+ array_api_tests/test_operators_and_elementwise_functions.py::test_floor_divide[floor_divide(x1, x2)]
105+ array_api_tests/test_operators_and_elementwise_functions.py::test_floor_divide[__floordiv__(x1, x2)]
106+ array_api_tests/test_operators_and_elementwise_functions.py::test_floor_divide[__floordiv__(x, s)]
107+ array_api_tests/test_operators_and_elementwise_functions.py::test_floor_divide[__ifloordiv__(x, s)]
108+ array_api_tests/test_operators_and_elementwise_functions.py::test_logaddexp
109+ array_api_tests/test_operators_and_elementwise_functions.py::test_multiply[multiply(x1, x2)]
110+ array_api_tests/test_operators_and_elementwise_functions.py::test_multiply[__mul__(x1, x2)]
111+ array_api_tests/test_operators_and_elementwise_functions.py::test_multiply[__mul__(x, s)]
112+ array_api_tests/test_operators_and_elementwise_functions.py::test_multiply[__imul__(x, s)]
113+ array_api_tests/test_operators_and_elementwise_functions.py::test_pow[pow(x1, x2)]
114+ array_api_tests/test_operators_and_elementwise_functions.py::test_pow[__pow__(x1, x2)]
115+ array_api_tests/test_operators_and_elementwise_functions.py::test_pow[__pow__(x, s)]
116+ array_api_tests/test_operators_and_elementwise_functions.py::test_pow[__ipow__(x, s)]
117+ array_api_tests/test_operators_and_elementwise_functions.py::test_remainder[remainder(x1, x2)]
118+ array_api_tests/test_operators_and_elementwise_functions.py::test_remainder[__mod__(x1, x2)]
119+ array_api_tests/test_operators_and_elementwise_functions.py::test_remainder[__mod__(x, s)]
120+ array_api_tests/test_operators_and_elementwise_functions.py::test_remainder[__imod__(x, s)]
121+ array_api_tests/test_operators_and_elementwise_functions.py::test_subtract[subtract(x1, x2)]
122+ array_api_tests/test_operators_and_elementwise_functions.py::test_subtract[__sub__(x1, x2)]
123+ array_api_tests/test_operators_and_elementwise_functions.py::test_subtract[__sub__(x, s)]
124+ array_api_tests/test_operators_and_elementwise_functions.py::test_subtract[__isub__(x, s)]
125+ array_api_tests/test_special_cases.py::test_binary[add((x1_i is +0 or x1_i == -0) and isfinite(x2_i) and x2_i != 0) -> x2_i]
126+ array_api_tests/test_special_cases.py::test_binary[__add__((x1_i is +0 or x1_i == -0) and isfinite(x2_i) and x2_i != 0) -> x2_i]
127+ array_api_tests/test_special_cases.py::test_binary[__add__(isfinite(x1_i) and x1_i != 0 and (x2_i is +0 or x2_i == -0)) -> x1_i]
128+ array_api_tests/test_special_cases.py::test_binary[atan2(x1_i < 0 and x2_i is +0) -> roughly -pi/2]
129+ array_api_tests/test_special_cases.py::test_binary[divide(x1_i is +0 and x2_i > 0) -> +0]
130+ array_api_tests/test_special_cases.py::test_binary[divide(x1_i is -0 and x2_i > 0) -> -0]
131+ array_api_tests/test_special_cases.py::test_binary[divide(x1_i is -0 and x2_i < 0) -> +0]
132+ array_api_tests/test_special_cases.py::test_binary[__truediv__(x1_i is +0 and x2_i > 0) -> +0]
133+ array_api_tests/test_special_cases.py::test_binary[__truediv__(x1_i is -0 and x2_i > 0) -> -0]
134+ array_api_tests/test_special_cases.py::test_binary[__truediv__(x1_i is +0 and x2_i < 0) -> -0]
135+ array_api_tests/test_special_cases.py::test_binary[__truediv__(x1_i is -0 and x2_i < 0) -> +0]
136+ array_api_tests/test_special_cases.py::test_binary[__truediv__(x1_i > 0 and x2_i is +0) -> +infinity]
137+ array_api_tests/test_special_cases.py::test_binary[floor_divide(x1_i is +0 and x2_i > 0) -> +0]
138+ array_api_tests/test_special_cases.py::test_binary[floor_divide(x1_i is +0 and x2_i < 0) -> -0]
139+ array_api_tests/test_special_cases.py::test_binary[__floordiv__(x1_i is +0 and x2_i > 0) -> +0]
140+ array_api_tests/test_special_cases.py::test_binary[__floordiv__(x1_i > 0 and x2_i is -0) -> -infinity]
141+ array_api_tests/test_special_cases.py::test_binary[pow(x1_i is NaN and not x2_i == 0) -> NaN]
142+ array_api_tests/test_special_cases.py::test_binary[pow(abs(x1_i) > 1 and x2_i is +infinity) -> +infinity]
143+ array_api_tests/test_special_cases.py::test_binary[pow(abs(x1_i) > 1 and x2_i is -infinity) -> +0]
144+ array_api_tests/test_special_cases.py::test_binary[pow(x1_i is +infinity and x2_i > 0) -> +infinity]
145+ array_api_tests/test_special_cases.py::test_binary[pow(x1_i is +infinity and x2_i < 0) -> +0]
146+ array_api_tests/test_special_cases.py::test_binary[pow(x1_i is -infinity and x2_i < 0 and not (x2_i.is_integer() and x2_i % 2 == 1)) -> +0]
147+ array_api_tests/test_special_cases.py::test_binary[pow(x1_i is +0 and x2_i > 0) -> +0]
148+ array_api_tests/test_special_cases.py::test_binary[pow(x1_i is +0 and x2_i < 0) -> +infinity]
149+ array_api_tests/test_special_cases.py::test_binary[pow(x1_i is -0 and x2_i > 0 and not (x2_i.is_integer() and x2_i % 2 == 1)) -> +0]
150+ array_api_tests/test_special_cases.py::test_binary[pow(x1_i is -0 and x2_i < 0 and not (x2_i.is_integer() and x2_i % 2 == 1)) -> +infinity]
151+ array_api_tests/test_special_cases.py::test_binary[pow(x1_i < 0 and isfinite(x1_i) and isfinite(x2_i) and not x2_i.is_integer()) -> NaN]
152+ array_api_tests/test_special_cases.py::test_binary[__pow__(x1_i is -infinity and x2_i < 0 and x2_i.is_integer() and x2_i % 2 == 1) -> -0]
153+ array_api_tests/test_special_cases.py::test_binary[__pow__(x1_i is +0 and x2_i < 0) -> +infinity]
154+ array_api_tests/test_special_cases.py::test_binary[__pow__(x1_i is -0 and x2_i > 0 and x2_i.is_integer() and x2_i % 2 == 1) -> -0]
155+ array_api_tests/test_special_cases.py::test_binary[__pow__(x1_i is -0 and x2_i < 0 and x2_i.is_integer() and x2_i % 2 == 1) -> -infinity]
156+ array_api_tests/test_special_cases.py::test_binary[remainder(x1_i is +0 and x2_i > 0) -> +0]
157+ array_api_tests/test_special_cases.py::test_binary[remainder(x1_i is -0 and x2_i > 0) -> +0]
158+ array_api_tests/test_special_cases.py::test_binary[remainder(x1_i is +0 and x2_i < 0) -> -0]
159+ array_api_tests/test_special_cases.py::test_binary[remainder(x1_i is -0 and x2_i < 0) -> -0]
160+ array_api_tests/test_special_cases.py::test_binary[remainder(isfinite(x1_i) and x1_i > 0 and x2_i is +infinity) -> x1_i]
161+ array_api_tests/test_special_cases.py::test_binary[remainder(isfinite(x1_i) and x1_i > 0 and x2_i is -infinity) -> x2_i]
162+ array_api_tests/test_special_cases.py::test_binary[remainder(isfinite(x1_i) and x1_i < 0 and x2_i is -infinity) -> x1_i]
163+ array_api_tests/test_special_cases.py::test_binary[__mod__(x1_i is +0 and x2_i > 0) -> +0]
164+ array_api_tests/test_special_cases.py::test_binary[__mod__(x1_i is -0 and x2_i < 0) -> -0]
165+ array_api_tests/test_special_cases.py::test_binary[__mod__(isfinite(x1_i) and x1_i > 0 and x2_i is +infinity) -> x1_i]
166+ array_api_tests/test_special_cases.py::test_binary[__mod__(isfinite(x1_i) and x1_i < 0 and x2_i is -infinity) -> x1_i]
167+ array_api_tests/test_special_cases.py::test_iop[__iadd__(x1_i is -0 and x2_i is -0) -> -0]
0 commit comments