Skip to content

Commit d756953

Browse files
committed
remove some redundant tests for logic functions
1 parent 99459d8 commit d756953

File tree

4 files changed

+4
-494
lines changed

4 files changed

+4
-494
lines changed

dpctl/tests/elementwise/test_logical_and.py

Lines changed: 1 addition & 149 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,13 @@
1414
# See the License for the specific language governing permissions and
1515
# limitations under the License.
1616

17-
import ctypes
18-
1917
import numpy as np
2018
import pytest
2119

22-
import dpctl
2320
import dpctl.tensor as dpt
2421
from dpctl.tests.helper import get_queue_or_skip, skip_if_dtype_not_supported
2522

26-
from .utils import _all_dtypes, _compare_dtypes, _usm_types
23+
from .utils import _all_dtypes, _compare_dtypes
2724

2825

2926
@pytest.mark.parametrize("op1_dtype", _all_dtypes)
@@ -157,148 +154,3 @@ def test_logical_and_complex_float():
157154
r3 = dpt.logical_and(ar3, ar1)
158155
expected3 = np.logical_and(ar3_np, ar1_np)
159156
assert (dpt.asnumpy(r3) == expected3).all()
160-
161-
162-
@pytest.mark.parametrize("op1_usm_type", _usm_types)
163-
@pytest.mark.parametrize("op2_usm_type", _usm_types)
164-
def test_logical_and_usm_type_matrix(op1_usm_type, op2_usm_type):
165-
get_queue_or_skip()
166-
167-
sz = 128
168-
ar1 = dpt.asarray(
169-
np.random.randint(0, 2, sz), dtype="i4", usm_type=op1_usm_type
170-
)
171-
ar2 = dpt.asarray(
172-
np.random.randint(0, 2, sz), dtype=ar1.dtype, usm_type=op2_usm_type
173-
)
174-
175-
r = dpt.logical_and(ar1, ar2)
176-
assert isinstance(r, dpt.usm_ndarray)
177-
expected_usm_type = dpctl.utils.get_coerced_usm_type(
178-
(op1_usm_type, op2_usm_type)
179-
)
180-
assert r.usm_type == expected_usm_type
181-
182-
183-
def test_logical_and_order():
184-
get_queue_or_skip()
185-
186-
ar1 = dpt.ones((20, 20), dtype="i4", order="C")
187-
ar2 = dpt.ones((20, 20), dtype="i4", order="C")
188-
r1 = dpt.logical_and(ar1, ar2, order="C")
189-
assert r1.flags.c_contiguous
190-
r2 = dpt.logical_and(ar1, ar2, order="F")
191-
assert r2.flags.f_contiguous
192-
r3 = dpt.logical_and(ar1, ar2, order="A")
193-
assert r3.flags.c_contiguous
194-
r4 = dpt.logical_and(ar1, ar2, order="K")
195-
assert r4.flags.c_contiguous
196-
197-
ar1 = dpt.ones((20, 20), dtype="i4", order="F")
198-
ar2 = dpt.ones((20, 20), dtype="i4", order="F")
199-
r1 = dpt.logical_and(ar1, ar2, order="C")
200-
assert r1.flags.c_contiguous
201-
r2 = dpt.logical_and(ar1, ar2, order="F")
202-
assert r2.flags.f_contiguous
203-
r3 = dpt.logical_and(ar1, ar2, order="A")
204-
assert r3.flags.f_contiguous
205-
r4 = dpt.logical_and(ar1, ar2, order="K")
206-
assert r4.flags.f_contiguous
207-
208-
ar1 = dpt.ones((40, 40), dtype="i4", order="C")[:20, ::-2]
209-
ar2 = dpt.ones((40, 40), dtype="i4", order="C")[:20, ::-2]
210-
r4 = dpt.logical_and(ar1, ar2, order="K")
211-
assert r4.strides == (20, -1)
212-
213-
ar1 = dpt.ones((40, 40), dtype="i4", order="C")[:20, ::-2].mT
214-
ar2 = dpt.ones((40, 40), dtype="i4", order="C")[:20, ::-2].mT
215-
r4 = dpt.logical_and(ar1, ar2, order="K")
216-
assert r4.strides == (-1, 20)
217-
218-
219-
def test_logical_and_broadcasting():
220-
get_queue_or_skip()
221-
222-
m = dpt.asarray(np.random.randint(0, 2, (100, 5)), dtype="i4")
223-
v = dpt.arange(1, 6, dtype="i4")
224-
225-
r = dpt.logical_and(m, v)
226-
227-
expected = np.logical_and(dpt.asnumpy(m), dpt.asnumpy(v))
228-
assert (dpt.asnumpy(r) == expected).all()
229-
230-
r2 = dpt.logical_and(v, m)
231-
expected2 = np.logical_and(dpt.asnumpy(v), dpt.asnumpy(m))
232-
assert (dpt.asnumpy(r2) == expected2).all()
233-
234-
r3 = dpt.empty_like(r)
235-
dpt.logical_and(m, v, out=r3)
236-
assert (dpt.asnumpy(r3) == expected).all()
237-
238-
r4 = dpt.empty_like(r)
239-
dpt.logical_and(v, m, out=r4)
240-
assert (dpt.asnumpy(r4) == expected).all()
241-
242-
243-
@pytest.mark.parametrize("arr_dt", _all_dtypes)
244-
@pytest.mark.parametrize("scalar_val", [0, 1])
245-
def test_logical_and_python_scalar(arr_dt, scalar_val):
246-
q = get_queue_or_skip()
247-
skip_if_dtype_not_supported(arr_dt, q)
248-
249-
X = dpt.asarray(
250-
np.random.randint(0, 2, (10, 10)), dtype=arr_dt, sycl_queue=q
251-
)
252-
py_ones = (
253-
bool(scalar_val),
254-
int(scalar_val),
255-
float(scalar_val),
256-
complex(scalar_val),
257-
np.float32(scalar_val),
258-
ctypes.c_int(scalar_val),
259-
)
260-
for sc in py_ones:
261-
R = dpt.logical_and(X, sc)
262-
assert isinstance(R, dpt.usm_ndarray)
263-
E = np.logical_and(dpt.asnumpy(X), sc)
264-
assert (dpt.asnumpy(R) == E).all()
265-
266-
R = dpt.logical_and(sc, X)
267-
assert isinstance(R, dpt.usm_ndarray)
268-
E = np.logical_and(sc, dpt.asnumpy(X))
269-
assert (dpt.asnumpy(R) == E).all()
270-
271-
272-
class MockArray:
273-
def __init__(self, arr):
274-
self.data_ = arr
275-
276-
@property
277-
def __sycl_usm_array_interface__(self):
278-
return self.data_.__sycl_usm_array_interface__
279-
280-
281-
def test_logical_and_mock_array():
282-
get_queue_or_skip()
283-
a = dpt.arange(10)
284-
b = dpt.ones(10)
285-
c = MockArray(b)
286-
r = dpt.logical_and(a, c)
287-
assert isinstance(r, dpt.usm_ndarray)
288-
289-
290-
def test_logical_and_canary_mock_array():
291-
get_queue_or_skip()
292-
a = dpt.arange(10)
293-
294-
class Canary:
295-
def __init__(self):
296-
pass
297-
298-
@property
299-
def __sycl_usm_array_interface__(self):
300-
return None
301-
302-
c = Canary()
303-
with pytest.raises(ValueError):
304-
dpt.logical_and(a, c)

dpctl/tests/elementwise/test_logical_not.py

Lines changed: 1 addition & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import dpctl.tensor as dpt
2121
from dpctl.tests.helper import get_queue_or_skip, skip_if_dtype_not_supported
2222

23-
from .utils import _all_dtypes, _compare_dtypes, _usm_types
23+
from .utils import _all_dtypes, _compare_dtypes
2424

2525

2626
@pytest.mark.parametrize("op_dtype", _all_dtypes)
@@ -131,49 +131,3 @@ def test_logical_not_complex_float():
131131
r2 = dpt.logical_not(ar2)
132132
expected2 = np.logical_not(dpt.asnumpy(ar2))
133133
assert (dpt.asnumpy(r2) == expected2).all()
134-
135-
136-
@pytest.mark.parametrize("op_usm_type", _usm_types)
137-
def test_logical_not_usm_type_matrix(op_usm_type):
138-
get_queue_or_skip()
139-
140-
sz = 128
141-
ar1 = dpt.asarray(
142-
np.random.randint(0, 2, sz), dtype="i4", usm_type=op_usm_type
143-
)
144-
145-
r = dpt.logical_not(ar1)
146-
assert isinstance(r, dpt.usm_ndarray)
147-
assert r.usm_type == op_usm_type
148-
149-
150-
def test_logical_not_order():
151-
get_queue_or_skip()
152-
153-
ar1 = dpt.ones((20, 20), dtype="i4", order="C")
154-
r1 = dpt.logical_not(ar1, order="C")
155-
assert r1.flags.c_contiguous
156-
r2 = dpt.logical_not(ar1, order="F")
157-
assert r2.flags.f_contiguous
158-
r3 = dpt.logical_not(ar1, order="A")
159-
assert r3.flags.c_contiguous
160-
r4 = dpt.logical_not(ar1, order="K")
161-
assert r4.flags.c_contiguous
162-
163-
ar1 = dpt.zeros((20, 20), dtype="i4", order="F")
164-
r1 = dpt.logical_not(ar1, order="C")
165-
assert r1.flags.c_contiguous
166-
r2 = dpt.logical_not(ar1, order="F")
167-
assert r2.flags.f_contiguous
168-
r3 = dpt.logical_not(ar1, order="A")
169-
assert r3.flags.f_contiguous
170-
r4 = dpt.logical_not(ar1, order="K")
171-
assert r4.flags.f_contiguous
172-
173-
ar1 = dpt.ones((40, 40), dtype="i4", order="C")[:20, ::-2]
174-
r4 = dpt.logical_not(ar1, order="K")
175-
assert r4.strides == (20, -1)
176-
177-
ar1 = dpt.zeros((40, 40), dtype="i4", order="C")[:20, ::-2].mT
178-
r4 = dpt.logical_not(ar1, order="K")
179-
assert r4.strides == (-1, 20)

dpctl/tests/elementwise/test_logical_or.py

Lines changed: 1 addition & 149 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,13 @@
1414
# See the License for the specific language governing permissions and
1515
# limitations under the License.
1616

17-
import ctypes
18-
1917
import numpy as np
2018
import pytest
2119

22-
import dpctl
2320
import dpctl.tensor as dpt
2421
from dpctl.tests.helper import get_queue_or_skip, skip_if_dtype_not_supported
2522

26-
from .utils import _all_dtypes, _compare_dtypes, _usm_types
23+
from .utils import _all_dtypes, _compare_dtypes
2724

2825

2926
@pytest.mark.parametrize("op1_dtype", _all_dtypes)
@@ -158,148 +155,3 @@ def test_logical_or_complex_float():
158155
r3 = dpt.logical_or(ar3, ar1)
159156
expected3 = np.logical_or(ar3_np, ar1_np)
160157
assert (dpt.asnumpy(r3) == expected3).all()
161-
162-
163-
@pytest.mark.parametrize("op1_usm_type", _usm_types)
164-
@pytest.mark.parametrize("op2_usm_type", _usm_types)
165-
def test_logical_or_usm_type_matrix(op1_usm_type, op2_usm_type):
166-
get_queue_or_skip()
167-
168-
sz = 128
169-
ar1 = dpt.asarray(
170-
np.random.randint(0, 2, sz), dtype="i4", usm_type=op1_usm_type
171-
)
172-
ar2 = dpt.asarray(
173-
np.random.randint(0, 2, sz), dtype=ar1.dtype, usm_type=op2_usm_type
174-
)
175-
176-
r = dpt.logical_or(ar1, ar2)
177-
assert isinstance(r, dpt.usm_ndarray)
178-
expected_usm_type = dpctl.utils.get_coerced_usm_type(
179-
(op1_usm_type, op2_usm_type)
180-
)
181-
assert r.usm_type == expected_usm_type
182-
183-
184-
def test_logical_or_order():
185-
get_queue_or_skip()
186-
187-
ar1 = dpt.ones((20, 20), dtype="i4", order="C")
188-
ar2 = dpt.ones((20, 20), dtype="i4", order="C")
189-
r1 = dpt.logical_or(ar1, ar2, order="C")
190-
assert r1.flags.c_contiguous
191-
r2 = dpt.logical_or(ar1, ar2, order="F")
192-
assert r2.flags.f_contiguous
193-
r3 = dpt.logical_or(ar1, ar2, order="A")
194-
assert r3.flags.c_contiguous
195-
r4 = dpt.logical_or(ar1, ar2, order="K")
196-
assert r4.flags.c_contiguous
197-
198-
ar1 = dpt.ones((20, 20), dtype="i4", order="F")
199-
ar2 = dpt.ones((20, 20), dtype="i4", order="F")
200-
r1 = dpt.logical_or(ar1, ar2, order="C")
201-
assert r1.flags.c_contiguous
202-
r2 = dpt.logical_or(ar1, ar2, order="F")
203-
assert r2.flags.f_contiguous
204-
r3 = dpt.logical_or(ar1, ar2, order="A")
205-
assert r3.flags.f_contiguous
206-
r4 = dpt.logical_or(ar1, ar2, order="K")
207-
assert r4.flags.f_contiguous
208-
209-
ar1 = dpt.ones((40, 40), dtype="i4", order="C")[:20, ::-2]
210-
ar2 = dpt.ones((40, 40), dtype="i4", order="C")[:20, ::-2]
211-
r4 = dpt.logical_or(ar1, ar2, order="K")
212-
assert r4.strides == (20, -1)
213-
214-
ar1 = dpt.ones((40, 40), dtype="i4", order="C")[:20, ::-2].mT
215-
ar2 = dpt.ones((40, 40), dtype="i4", order="C")[:20, ::-2].mT
216-
r4 = dpt.logical_or(ar1, ar2, order="K")
217-
assert r4.strides == (-1, 20)
218-
219-
220-
def test_logical_or_broadcasting():
221-
get_queue_or_skip()
222-
223-
m = dpt.asarray(np.random.randint(0, 2, (100, 5)), dtype="i4")
224-
v = dpt.arange(1, 6, dtype="i4")
225-
226-
r = dpt.logical_or(m, v)
227-
228-
expected = np.logical_or(dpt.asnumpy(m), dpt.asnumpy(v))
229-
assert (dpt.asnumpy(r) == expected).all()
230-
231-
r2 = dpt.logical_or(v, m)
232-
expected2 = np.logical_or(dpt.asnumpy(v), dpt.asnumpy(m))
233-
assert (dpt.asnumpy(r2) == expected2).all()
234-
235-
r3 = dpt.empty_like(r)
236-
dpt.logical_or(m, v, out=r3)
237-
assert (dpt.asnumpy(r3) == expected).all()
238-
239-
r4 = dpt.empty_like(r)
240-
dpt.logical_or(v, m, out=r4)
241-
assert (dpt.asnumpy(r4) == expected).all()
242-
243-
244-
@pytest.mark.parametrize("arr_dt", _all_dtypes)
245-
@pytest.mark.parametrize("scalar_val", [0, 1])
246-
def test_logical_or_python_scalar(arr_dt, scalar_val):
247-
q = get_queue_or_skip()
248-
skip_if_dtype_not_supported(arr_dt, q)
249-
250-
X = dpt.asarray(
251-
np.random.randint(0, 2, (10, 10)), dtype=arr_dt, sycl_queue=q
252-
)
253-
py_ones = (
254-
bool(scalar_val),
255-
int(scalar_val),
256-
float(scalar_val),
257-
complex(scalar_val),
258-
np.float32(scalar_val),
259-
ctypes.c_int(scalar_val),
260-
)
261-
for sc in py_ones:
262-
R = dpt.logical_or(X, sc)
263-
assert isinstance(R, dpt.usm_ndarray)
264-
E = np.logical_or(dpt.asnumpy(X), sc)
265-
assert (dpt.asnumpy(R) == E).all()
266-
267-
R = dpt.logical_or(sc, X)
268-
assert isinstance(R, dpt.usm_ndarray)
269-
E = np.logical_or(sc, dpt.asnumpy(X))
270-
assert (dpt.asnumpy(R) == E).all()
271-
272-
273-
class MockArray:
274-
def __init__(self, arr):
275-
self.data_ = arr
276-
277-
@property
278-
def __sycl_usm_array_interface__(self):
279-
return self.data_.__sycl_usm_array_interface__
280-
281-
282-
def test_logical_or_mock_array():
283-
get_queue_or_skip()
284-
a = dpt.arange(10)
285-
b = dpt.ones(10)
286-
c = MockArray(b)
287-
r = dpt.logical_or(a, c)
288-
assert isinstance(r, dpt.usm_ndarray)
289-
290-
291-
def test_logical_or_canary_mock_array():
292-
get_queue_or_skip()
293-
a = dpt.arange(10)
294-
295-
class Canary:
296-
def __init__(self):
297-
pass
298-
299-
@property
300-
def __sycl_usm_array_interface__(self):
301-
return None
302-
303-
c = Canary()
304-
with pytest.raises(ValueError):
305-
dpt.logical_or(a, c)

0 commit comments

Comments
 (0)