diff --git a/src/ThickNumbers.jl b/src/ThickNumbers.jl index 08f638e..24e7e2b 100644 --- a/src/ThickNumbers.jl +++ b/src/ThickNumbers.jl @@ -484,7 +484,11 @@ _norm(x::AbstractArray) = sqrt(sum(abs2, x)) Returns `true` if `isless(hival(a), loval(b))`, `false` otherwise. See also [`≺`](@ref). """ isless_tn(a::ThickNumber, b::ThickNumber) = isless(hival(a), loval(b)) +isless_tn(a::ThickNumber, b::Number) = isless(hival(a), b) +isless_tn(a::Number, b::ThickNumber) = isless(a, loval(b)) Base.isless(::ThickNumber, ::ThickNumber) = throw(FPTNException(isless, isless_tn)) +Base.isless(::ThickNumber, ::Number) = throw(FPTNException(isless, isless_tn)) +Base.isless(::Number, ::ThickNumber) = throw(FPTNException(isless, isless_tn)) """ a ≺ b diff --git a/test/runtests.jl b/test/runtests.jl index ddab14c..872e4ae 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -45,13 +45,18 @@ using IntervalArith @test_throws FPTNException Interval(1, 2) ≈ Interval(1, nextfloat(2.0)) @test !isapprox_tn(Interval(1, 2), Interval(1, 2.1)) @test isless_tn(Interval(1, 2), Interval(nextfloat(2.0), 3)) + @test isless_tn(Interval(1, 2), nextfloat(2.0)) + @test isless_tn(0, Interval(1, 2)) @test_throws FPTNException isless(Interval(1, 2), Interval(nextfloat(2.0), 3)) + @test_throws FPTNException isless(Interval(1, 2), nextfloat(2.0)) + @test_throws FPTNException isless(1, Interval(1, 2)) @test Interval(1, 2) ≺ Interval(nextfloat(2.0), 3) @test_throws FPTNException Interval(1, 2) < Interval(nextfloat(2.0), 3) @test Interval(nextfloat(2.0), 3) ≻ Interval(1, 2) @test_throws FPTNException Interval(nextfloat(2.0), 3) > Interval(1, 2) @test !isless_tn(Interval(1, 2), Interval(1, 2)) @test !isless_tn(Interval(1, 2), Interval(2, 3)) + @test !isless_tn(Interval(1, 2), 2) @test Interval(1, 2) ⪯ Interval(2, 3) @test Interval(2, 3) ⪰ Interval(1, 2) @test issubset_tn(Interval(1, 2), Interval(1, 2))