4
4
import numpy
5
5
import pytest
6
6
from dpctl .tensor ._numpy_helper import AxisError
7
- from numpy .lib ._arraypad_impl import _as_pairs as numpy_as_pairs
7
+
8
+ if numpy .lib .NumpyVersion (numpy .__version__ ) >= "2.0.0" :
9
+ from numpy .lib ._arraypad_impl import _as_pairs as numpy_as_pairs
10
+ else :
11
+ from numpy .lib .arraypad import _as_pairs as numpy_as_pairs
12
+
8
13
from numpy .testing import assert_array_equal , assert_equal , assert_raises
9
14
10
15
import dpnp
@@ -464,13 +469,18 @@ class TestPad:
464
469
"empty" : {},
465
470
}
466
471
467
- @pytest .mark .parametrize ("mode" , _all_modes .keys () - { "empty" } )
472
+ @pytest .mark .parametrize ("mode" , _all_modes .keys ())
468
473
def test_basic (self , mode ):
469
474
a_np = numpy .arange (100 )
470
475
a_dp = dpnp .array (a_np )
471
476
expected = numpy .pad (a_np , (25 , 20 ), mode = mode )
472
477
result = dpnp .pad (a_dp , (25 , 20 ), mode = mode )
473
- assert_array_equal (result , expected )
478
+ if mode == "empty" :
479
+ # omit uninitialized "empty" boundary from the comparison
480
+ assert result .shape == expected .shape
481
+ assert_equal (result [25 :- 20 ], expected [25 :- 20 ])
482
+ else :
483
+ assert_array_equal (result , expected )
474
484
475
485
@pytest .mark .parametrize ("mode" , _all_modes .keys ())
476
486
def test_memory_layout_persistence (self , mode ):
@@ -493,7 +503,12 @@ def test_non_contiguous_array(self, mode):
493
503
a_dp = dpnp .arange (24 ).reshape (4 , 6 )[::2 , ::2 ]
494
504
expected = numpy .pad (a_np , (2 , 3 ), mode = mode )
495
505
result = dpnp .pad (a_dp , (2 , 3 ), mode = mode )
496
- assert_array_equal (result , expected )
506
+ if mode == "empty" :
507
+ # omit uninitialized "empty" boundary from the comparison
508
+ assert result .shape == expected .shape
509
+ assert_equal (result [2 :- 3 , 2 :- 3 ], expected [2 :- 3 , 2 :- 3 ])
510
+ else :
511
+ assert_array_equal (result , expected )
497
512
498
513
# TODO: include "linear_ramp" when dpnp issue gh-2084 is resolved
499
514
@pytest .mark .parametrize ("pad_width" , [0 , (0 , 0 ), ((0 , 0 ), (0 , 0 ))])
@@ -850,7 +865,7 @@ def test_pad_empty_dim_valid(self, mode):
850
865
a_dp = dpnp .array (a_np )
851
866
expected = numpy .pad (a_np , [(0 ,), (2 ,), (1 ,)], mode )
852
867
result = dpnp .pad (a_dp , [(0 ,), (2 ,), (1 ,)], mode )
853
- assert_array_equal (result , expected )
868
+ assert_dtype_allclose (result , expected )
854
869
855
870
@pytest .mark .parametrize (
856
871
"mode" ,
0 commit comments