@@ -733,7 +733,8 @@ def test_bins(self, bins):
733
733
expected_hist , expected_edges = numpy .histogramdd (v , bins )
734
734
result_hist , result_edges = dpnp .histogramdd (iv , bins_dpnp )
735
735
assert_allclose (result_hist , expected_hist )
736
- assert_allclose (result_edges , expected_edges )
736
+ for x , y in zip (result_edges , expected_edges ):
737
+ assert_allclose (x , y )
737
738
738
739
def test_no_side_effects (self ):
739
740
v = dpnp .array ([[1.3 , 2.5 , 2.3 ]])
@@ -752,7 +753,8 @@ def test_01d(self, data):
752
753
result_hist , result_edges = dpnp .histogramdd (ia )
753
754
754
755
assert_allclose (result_hist , expected_hist )
755
- assert_allclose (result_edges , expected_edges )
756
+ for x , y in zip (result_edges , expected_edges ):
757
+ assert_allclose (x , y )
756
758
757
759
def test_3d (self ):
758
760
a = dpnp .ones ((10 , 10 , 10 ))
@@ -822,15 +824,21 @@ def test_nan_values(self):
822
824
)
823
825
result_hist , result_edges = dpnp .histogramdd (ione_nan , bins = [[0 , 1 ]])
824
826
assert_allclose (result_hist , expected_hist )
825
- assert_allclose (result_edges , expected_edges )
827
+ # dpnp returns both result_hist and result_edges as float64 while
828
+ # numpy returns result_hist as float64 but result_edges as int64
829
+ for x , y in zip (result_edges , expected_edges ):
830
+ assert_allclose (x , y , strict = False )
826
831
827
832
# NaN is not counted
828
833
expected_hist , expected_edges = numpy .histogramdd (
829
834
all_nan , bins = [[0 , 1 ]]
830
835
)
831
836
result_hist , result_edges = dpnp .histogramdd (iall_nan , bins = [[0 , 1 ]])
832
837
assert_allclose (result_hist , expected_hist )
833
- assert_allclose (result_edges , expected_edges )
838
+ # dpnp returns both result_hist and result_edges as float64 while
839
+ # numpy returns result_hist as float64 but result_edges as int64
840
+ for x , y in zip (result_edges , expected_edges ):
841
+ assert_allclose (x , y , strict = False )
834
842
835
843
def test_bins_another_sycl_queue (self ):
836
844
v = dpnp .arange (7 , 12 , sycl_queue = dpctl .SyclQueue ())
@@ -866,7 +874,10 @@ def test_different_bins_amount(self, bins_count):
866
874
expected_hist , expected_edges = numpy .histogramdd (v , bins = [bins_count ])
867
875
result_hist , result_edges = dpnp .histogramdd (iv , bins = [bins_count ])
868
876
assert_array_equal (result_hist , expected_hist )
869
- assert_allclose (result_edges , expected_edges )
877
+ # for float32 input, dpnp returns both result_hist and result_edges
878
+ # as float64 while numpy returns result_hist as float64 but
879
+ for x , y in zip (result_edges , expected_edges ):
880
+ assert_allclose (x , y , strict = False )
870
881
871
882
872
883
class TestHistogram2d :
@@ -1045,8 +1056,10 @@ def test_nan_values(self):
1045
1056
ione_nan , ione_nan , bins = [[0 , 1 ]] * 2
1046
1057
)
1047
1058
assert_allclose (result_hist , expected_hist )
1048
- assert_allclose (result_edges_x , expected_edges_x )
1049
- assert_allclose (result_edges_y , expected_edges_y )
1059
+ # dpnp returns both result_hist and result_edges as float64 while
1060
+ # numpy returns result_hist as float64 but result_edges as int64
1061
+ assert_allclose (result_edges_x , expected_edges_x , strict = False )
1062
+ assert_allclose (result_edges_y , expected_edges_y , strict = False )
1050
1063
1051
1064
# NaN is not counted
1052
1065
expected_hist , expected_edges_x , expected_edges_y = numpy .histogram2d (
@@ -1056,8 +1069,10 @@ def test_nan_values(self):
1056
1069
iall_nan , iall_nan , bins = [[0 , 1 ]] * 2
1057
1070
)
1058
1071
assert_allclose (result_hist , expected_hist )
1059
- assert_allclose (result_edges_x , expected_edges_x )
1060
- assert_allclose (result_edges_y , expected_edges_y )
1072
+ # dpnp returns both result_hist and result_edges as float64 while
1073
+ # numpy returns result_hist as float64 but result_edges as int64
1074
+ assert_allclose (result_edges_x , expected_edges_x , strict = False )
1075
+ assert_allclose (result_edges_y , expected_edges_y , strict = False )
1061
1076
1062
1077
def test_bins_another_sycl_queue (self ):
1063
1078
x = y = dpnp .arange (7 , 12 , sycl_queue = dpctl .SyclQueue ())
@@ -1107,5 +1122,11 @@ def test_different_bins_amount(self, bins_count):
1107
1122
ix , iy , bins = bins_count
1108
1123
)
1109
1124
assert_array_equal (result_hist , expected_hist )
1110
- assert_allclose (result_edges_x , expected_edges_x , rtol = 1e-6 )
1111
- assert_allclose (result_edges_y , expected_edges_y , rtol = 1e-6 )
1125
+ # dpnp returns both result_hist and result_edges as float64 while
1126
+ # numpy returns result_hist as float64 but result_edges as float32
1127
+ assert_allclose (
1128
+ result_edges_x , expected_edges_x , rtol = 1e-6 , strict = False
1129
+ )
1130
+ assert_allclose (
1131
+ result_edges_y , expected_edges_y , rtol = 1e-6 , strict = False
1132
+ )
0 commit comments