@@ -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