Why is `1/5` not equal to `1//5`?

Ah, this appears to be a bug. The rtol for comparing two rationals is defaulting to 0 because the methods for Base.rtoldefault are

rtoldefault(::Type{T}) where {T<:AbstractFloat} = sqrt(eps(T))
rtoldefault(::Type{<:Real}) = 0

This second method seems relatively suspect to me. (alternatively we should have a method for rtoldefault(::Type{Rational{T}}) where {T} = one(T) // isqrt(typemax(T)) which would make this behave as expected.)

2 Likes