diff --git a/src/domains/interval.jl b/src/domains/interval.jl index e2166c0..d01aa76 100644 --- a/src/domains/interval.jl +++ b/src/domains/interval.jl @@ -48,10 +48,14 @@ function point_in_domain(d::AbstractInterval{T}) where {T<:Integer} end end +# TODO: type-piracy, should be removed in the next breaking release +function isapprox(d1::AbstractInterval, d2::AbstractInterval; + atol=default_tolerance(d1), + rtol=Base.rtoldefault(eltype(d1), eltype(d2), atol)) -isapprox(d1::AbstractInterval, d2::AbstractInterval) = - isapprox(leftendpoint(d1), leftendpoint(d2); atol=default_tolerance(d1)) && - isapprox(rightendpoint(d1), rightendpoint(d2); atol=default_tolerance(d1)) + isapprox(leftendpoint(d1), leftendpoint(d2); atol, rtol) && + isapprox(rightendpoint(d1), rightendpoint(d2); atol, rtol) +end boundary(d::AbstractInterval) = Point(leftendpoint(d)) ∪ Point(rightendpoint(d)) diff --git a/test/test_domain_interval.jl b/test/test_domain_interval.jl index 4574c5e..cd83782 100644 --- a/test/test_domain_interval.jl +++ b/test/test_domain_interval.jl @@ -213,7 +213,7 @@ function test_intervals() @test (0..1) ≈ (1e-16..1) @test (-1..0) ≈ (-1..1e-16) - @test isapprox(HalfLine(), 0..Inf) + @test isapprox(HalfLine(), 0..Inf, atol=100eps()) end @testset "mapping between intervals" begin