Skip to content

Commit dbc86c9

Browse files
committed
fix unique over a dimension to use isequal over == (#42737)
(cherry picked from commit 011fda9)
1 parent eb40cf9 commit dbc86c9

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

base/multidimensional.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1614,7 +1614,7 @@ _unique_dims(A::AbstractArray, dims::Colon) = invoke(unique, Tuple{Any}, A)
16141614
else
16151615
j_d = i_d
16161616
end) begin
1617-
if (@nref $N A j) != (@nref $N A i)
1617+
if !isequal((@nref $N A j), (@nref $N A i))
16181618
collided[k] = true
16191619
end
16201620
end
@@ -1644,7 +1644,7 @@ _unique_dims(A::AbstractArray, dims::Colon) = invoke(unique, Tuple{Any}, A)
16441644
j_d = i_d
16451645
end
16461646
end begin
1647-
if (@nref $N A j) != (@nref $N A i)
1647+
if !isequal((@nref $N A j), (@nref $N A i))
16481648
nowcollided[k] = true
16491649
end
16501650
end

test/arrayops.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -778,6 +778,10 @@ let A, B, C, D
778778

779779
# With hash collisions
780780
@test map(x -> x.x, unique(map(HashCollision, B), dims=1)) == C
781+
782+
# With NaNs:
783+
E = [1 NaN 3; 1 NaN 3; 1 NaN 3];
784+
@test isequal(unique(E, dims=1), [1 NaN 3])
781785
end
782786

783787
@testset "large matrices transpose" begin

0 commit comments

Comments
 (0)