# Test on skipmissing failing but on collect(skipmissing) passing

This is odd. Why ?

``````julia> using Test

julia> y =  [1.1  1.0       0.0   missing  8.0
2.0  0.952381  1.0  1.0       2.0
7.0  0.0       1.0  0.0       1.0]
3×5 Matrix{Union{Missing, Float64}}:
1.1  1.0       0.0   missing  8.0
2.0  0.952381  1.0  1.0       2.0
7.0  0.0       1.0  0.0       1.0

julia> y1 = [1.1  1.0       0.0   missing  8.0
2.0  0.952381  1.0  1.0       2.0
7.0  0.0       1.0  0.0       1.0]
3×5 Matrix{Union{Missing, Float64}}:
1.1  1.0       0.0   missing  8.0
2.0  0.952381  1.0  1.0       2.0
7.0  0.0       1.0  0.0       1.0

julia> @test skipmissing(y) == skipmissing(y1)
Test Failed at REPL[21]:1
Expression: skipmissing(y) == skipmissing(y1)
Evaluated: skipmissing(Union{Missing, Float64}[1.1 1.0 … missing 8.0; 2.0 0.952381 … 1.0 2.0; 7.0 0.0 … 0.0 1.0]) == skipmissing(Union{Missing, Float64}[1.1 1.0 … missing 8.0; 2.0 0.952381 … 1.0 2.0; 7.0 0.0 … 0.0 1.0])
ERROR: There was an error during testing

julia> @test collect(skipmissing(y)) == collect(skipmissing(y1))
Test Passed
``````
``````julia> skipmiss_y = skipmissing(y);

julia> skipmiss_y2 = skipmissing(y2);

julia> @which skm_y == skm_y2
==(x, y) in Base at Base.jl:116
# ==(x, y) = x === y

# And also
julia> @which isequal(skm_y, skm_y2)
isequal(x, y) in Base at operators.jl:140
# isequal(x, y) = (x == y)::Bool # all `missing` cases are handled in missing.jl
``````

There are no specific `==` or `isequal` methods for `SkipMissing`, so it is falling back to the default `===` which will return false since `skipmiss_y` and `skipmiss_y2` are different objects.