Skip to content

Commit 011fda9

Browse files
authored
fix unique over a dimension to use isequal over == (#42737)
1 parent dc46ad9 commit 011fda9

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
@@ -1666,7 +1666,7 @@ _unique_dims(A::AbstractArray, dims::Colon) = invoke(unique, Tuple{Any}, A)
16661666
else
16671667
j_d = i_d
16681668
end) begin
1669-
if (@nref $N A j) != (@nref $N A i)
1669+
if !isequal((@nref $N A j), (@nref $N A i))
16701670
collided[k] = true
16711671
end
16721672
end
@@ -1696,7 +1696,7 @@ _unique_dims(A::AbstractArray, dims::Colon) = invoke(unique, Tuple{Any}, A)
16961696
j_d = i_d
16971697
end
16981698
end begin
1699-
if (@nref $N A j) != (@nref $N A i)
1699+
if !isequal((@nref $N A j), (@nref $N A i))
17001700
nowcollided[k] = true
17011701
end
17021702
end

test/arrayops.jl

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

792792
# With hash collisions
793793
@test map(x -> x.x, unique(map(HashCollision, B), dims=1)) == C
794+
795+
# With NaNs:
796+
E = [1 NaN 3; 1 NaN 3; 1 NaN 3];
797+
@test isequal(unique(E, dims=1), [1 NaN 3])
794798
end
795799

796800
@testset "large matrices transpose" begin

0 commit comments

Comments
 (0)