@@ -656,14 +656,46 @@ def test_add(self, dtype):
656
656
assert_allclose (expected , result )
657
657
assert_allclose (out , dp_out )
658
658
659
- @pytest .mark .parametrize ("dtype" , get_all_dtypes (no_complex = True , no_none = True ))
660
- def test_invalid_dtype (self , dtype ):
661
- dp_array1 = dpnp .arange (10 , dtype = dpnp .complex64 )
662
- dp_array2 = dpnp .arange (5 , 15 , dtype = dpnp .complex64 )
663
- dp_out = dpnp .empty (10 , dtype = dtype )
659
+ @pytest .mark .parametrize ("dtype" , get_all_dtypes (no_none = True ))
660
+ def test_out_dtypes (self , dtype ):
661
+ size = 2 if dtype == dpnp .bool else 10
664
662
665
- with pytest .raises (ValueError ):
666
- dpnp .add (dp_array1 , dp_array2 , out = dp_out )
663
+ np_array1 = numpy .arange (size , 2 * size , dtype = dtype )
664
+ np_array2 = numpy .arange (size , dtype = dtype )
665
+ np_out = numpy .empty (size , dtype = numpy .complex64 )
666
+ expected = numpy .add (np_array1 , np_array2 , out = np_out )
667
+
668
+ dp_array1 = dpnp .arange (size , 2 * size , dtype = dtype )
669
+ dp_array2 = dpnp .arange (size , dtype = dtype )
670
+ dp_out = dpnp .empty (size , dtype = dpnp .complex64 )
671
+ result = dpnp .add (dp_array1 , dp_array2 , out = dp_out )
672
+
673
+ assert_array_equal (expected , result )
674
+
675
+ @pytest .mark .parametrize ("dtype" , get_all_dtypes (no_none = True ))
676
+ def test_out_overlap (self , dtype ):
677
+ size = 1 if dtype == dpnp .bool else 15
678
+
679
+ np_a = numpy .arange (2 * size , dtype = dtype )
680
+ expected = numpy .add (np_a [size ::], np_a [::2 ], out = np_a [:size :])
681
+
682
+ dp_a = dpnp .arange (2 * size , dtype = dtype )
683
+ result = dpnp .add (dp_a [size ::], dp_a [::2 ], out = dp_a [:size :])
684
+
685
+ assert_allclose (expected , result )
686
+ assert_allclose (dp_a , np_a )
687
+
688
+ @pytest .mark .parametrize ("dtype" , get_all_dtypes (no_bool = True , no_none = True ))
689
+ def test_inplace_strided_out (self , dtype ):
690
+ size = 21
691
+
692
+ np_a = numpy .arange (size , dtype = dtype )
693
+ np_a [::3 ] += 4
694
+
695
+ dp_a = dpnp .arange (size , dtype = dtype )
696
+ dp_a [::3 ] += 4
697
+
698
+ assert_allclose (dp_a , np_a )
667
699
668
700
@pytest .mark .parametrize ("shape" ,
669
701
[(0 ,), (15 , ), (2 , 2 )],
@@ -715,7 +747,7 @@ def test_out_dtypes(self, dtype):
715
747
np_out = numpy .empty (size , dtype = numpy .complex64 )
716
748
expected = numpy .power (np_array1 , np_array2 , out = np_out )
717
749
718
- dp_array1 = dpnp .arange (size , 2 * size , dtype = dtype )
750
+ dp_array1 = dpnp .arange (size , 2 * size , dtype = dtype )
719
751
dp_array2 = dpnp .arange (size , dtype = dtype )
720
752
dp_out = dpnp .empty (size , dtype = dpnp .complex64 )
721
753
result = dpnp .power (dp_array1 , dp_array2 , out = dp_out )
0 commit comments