Skip to content

Commit 2fa9c55

Browse files
authored
Merge pull request #45 from JuliaAI/confusion-matrix-cornercase
Resolve corner case issue around misleading error message
2 parents d0285f3 + 0623dcc commit 2fa9c55

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

src/confusion_matrices.jl

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -364,11 +364,8 @@ end
364364

365365
# ## Some helpers
366366

367-
function combined_levels(ŷ, y)
368-
unsorted = Set(skipmissing(y))
369-
union!(unsorted, skipmissing(ŷ))
370-
sort(collect(unsorted))
371-
end
367+
combined_levels(ŷ, y) = vcat(levels(ŷ), levels(y)) |> unique |> sort
368+
372369

373370
"""
374371
permutation(perm, rev, levels)

test/confusion_matrices.jl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,4 +168,15 @@ end
168168
@test cm2[2,1] == cm[1,2]
169169
end
170170

171+
@testset "corner case " begin
172+
y1 = categorical([collect("npnp")..., missing])
173+
y2 = categorical([collect("nppn")..., missing], compress=true)
174+
# set invalid levels:
175+
cm = ConfusionMatrix(levels=[1, 2])
176+
@test_throws(
177+
StatisticalMeasures.ConfusionMatrices. ERR_ORPHANED_OBSERVATIONS,
178+
cm(y1, y2),
179+
)
180+
end
181+
171182
true

0 commit comments

Comments
 (0)