@@ -733,7 +733,8 @@ def test_bins(self, bins):
733733 expected_hist , expected_edges = numpy .histogramdd (v , bins )
734734 result_hist , result_edges = dpnp .histogramdd (iv , bins_dpnp )
735735 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 )
737738
738739 def test_no_side_effects (self ):
739740 v = dpnp .array ([[1.3 , 2.5 , 2.3 ]])
@@ -752,7 +753,8 @@ def test_01d(self, data):
752753 result_hist , result_edges = dpnp .histogramdd (ia )
753754
754755 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 )
756758
757759 def test_3d (self ):
758760 a = dpnp .ones ((10 , 10 , 10 ))
@@ -822,15 +824,21 @@ def test_nan_values(self):
822824 )
823825 result_hist , result_edges = dpnp .histogramdd (ione_nan , bins = [[0 , 1 ]])
824826 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 )
826831
827832 # NaN is not counted
828833 expected_hist , expected_edges = numpy .histogramdd (
829834 all_nan , bins = [[0 , 1 ]]
830835 )
831836 result_hist , result_edges = dpnp .histogramdd (iall_nan , bins = [[0 , 1 ]])
832837 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 )
834842
835843 def test_bins_another_sycl_queue (self ):
836844 v = dpnp .arange (7 , 12 , sycl_queue = dpctl .SyclQueue ())
@@ -866,7 +874,10 @@ def test_different_bins_amount(self, bins_count):
866874 expected_hist , expected_edges = numpy .histogramdd (v , bins = [bins_count ])
867875 result_hist , result_edges = dpnp .histogramdd (iv , bins = [bins_count ])
868876 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 )
870881
871882
872883class TestHistogram2d :
@@ -1045,8 +1056,10 @@ def test_nan_values(self):
10451056 ione_nan , ione_nan , bins = [[0 , 1 ]] * 2
10461057 )
10471058 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 )
10501063
10511064 # NaN is not counted
10521065 expected_hist , expected_edges_x , expected_edges_y = numpy .histogram2d (
@@ -1056,8 +1069,10 @@ def test_nan_values(self):
10561069 iall_nan , iall_nan , bins = [[0 , 1 ]] * 2
10571070 )
10581071 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 )
10611076
10621077 def test_bins_another_sycl_queue (self ):
10631078 x = y = dpnp .arange (7 , 12 , sycl_queue = dpctl .SyclQueue ())
@@ -1107,5 +1122,11 @@ def test_different_bins_amount(self, bins_count):
11071122 ix , iy , bins = bins_count
11081123 )
11091124 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