From 6b0a009653ed055c21515ee1df6d7d25e3414144 Mon Sep 17 00:00:00 2001 From: Luis Benet Date: Sun, 5 Mar 2017 13:23:07 -0600 Subject: [PATCH 1/4] Adapt IT1788 tests to use Base.Test and run them in parallel Note that in ITF1788_tests.jl does not yet include running the tests in ieee1788-constructors.jl; some of these tests do not pass yet, since some functionality is lacking. --- test/ITF1788_tests/ITF1788_tests.jl | 28 +- test/ITF1788_tests/ieee1788-constructors.jl | 119 + test/ITF1788_tests/libieeep1788_tests_bool.jl | 933 +- .../libieeep1788_tests_cancel.jl | 780 +- test/ITF1788_tests/libieeep1788_tests_elem.jl | 9676 +++++++++-------- .../libieeep1788_tests_mul_rev.jl | 50 +- test/ITF1788_tests/libieeep1788_tests_num.jl | 322 +- .../libieeep1788_tests_overlap.jl | 50 +- .../libieeep1788_tests_rec_bool.jl | 434 +- test/ITF1788_tests/libieeep1788_tests_rev.jl | 110 +- test/ITF1788_tests/libieeep1788_tests_set.jl | 174 +- test/REQUIRE | 1 - 12 files changed, 6394 insertions(+), 6283 deletions(-) create mode 100644 test/ITF1788_tests/ieee1788-constructors.jl diff --git a/test/ITF1788_tests/ITF1788_tests.jl b/test/ITF1788_tests/ITF1788_tests.jl index 4bce938..550ec68 100644 --- a/test/ITF1788_tests/ITF1788_tests.jl +++ b/test/ITF1788_tests/ITF1788_tests.jl @@ -1,10 +1,20 @@ -include("libieeep1788_tests_bool.jl") -include("libieeep1788_tests_cancel.jl") -include("libieeep1788_tests_elem.jl") -include("libieeep1788_tests_mul_rev.jl") -include("libieeep1788_tests_num.jl") -include("libieeep1788_tests_overlap.jl") -include("libieeep1788_tests_rec_bool.jl") -include("libieeep1788_tests_rev.jl") -include("libieeep1788_tests_set.jl") +#= +NOTE: The file `ieee1788-constructors.jl`, while it is +included in this directory, is not tested, due to some +lack of functionality +=# + +testfiles = ( + "libieeep1788_tests_bool.jl", "libieeep1788_tests_cancel.jl", + "libieeep1788_tests_elem.jl", "libieeep1788_tests_mul_rev.jl", + "libieeep1788_tests_num.jl", "libieeep1788_tests_overlap.jl", + "libieeep1788_tests_rec_bool.jl", "libieeep1788_tests_rev.jl", + "libieeep1788_tests_set.jl" +) + +addprocs() +@sync @parallel for tf in testfiles + include(tf) +end +rmprocs() diff --git a/test/ITF1788_tests/ieee1788-constructors.jl b/test/ITF1788_tests/ieee1788-constructors.jl new file mode 100644 index 0000000..de044ce --- /dev/null +++ b/test/ITF1788_tests/ieee1788-constructors.jl @@ -0,0 +1,119 @@ +#= + + Test Cases for interval constructors from IEEE Std 1788-2015 + + Copyright 2016 Oliver Heimlich + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. This file is offered as-is, + without any warranty. + +=# +#Language imports + +#Test library imports +if VERSION >= v"0.5.0-dev+7720" + using Base.Test +else + using BaseTestNext + const Test = BaseTestNext +end + +#Arithmetic library imports +using ValidatedNumerics + +#Preamble +setprecision(53) +setprecision(Interval, Float64) +setrounding(Interval, :narrow) + +# According to the examples in Section 7.4.2, unbounded intervals can be constructed with non-common inputs. +@testset "IEEE1788.a" begin + @test Interval(-Inf, Inf) == entireinterval(Float64) +end + +# Examples from Sections 9.7.1 and 9.8 +@testset "IEEE1788.b" begin + @test @interval("[1.2345]") == Interval(0x1.3c083126e978dp+0, 0x1.3c083126e978ep+0) + @test @interval("[1,+infinity]") == Interval(1.0, Inf) + @test @decorated("[1,1e3]_com") == DecoratedInterval(Interval(1.0, 1000.0), com) + @test decoration(@decorated("[1,1e3]_com")) == decoration(DecoratedInterval(Interval(1.0, 1000.0), com)) + @test @decorated("[1,1E3]_COM") == DecoratedInterval(Interval(1.0, 1000.0), com) + @test decoration(@decorated("[1,1E3]_COM")) == decoration(DecoratedInterval(Interval(1.0, 1000.0), com)) +end + +# Examples from Table 9.4 +@testset "IEEE1788.c" begin + @test @interval("[1.e-3, 1.1e-3]") == Interval(0x4.189374bc6a7ecp-12, 0x4.816f0068db8bcp-12) + @test @interval("[-0x1.3p-1, 2/3]") == Interval(-0x9.8000000000000p-4, +0xa.aaaaaaaaaaab0p-4) + @test @interval("[3.56]") == Interval(0x3.8f5c28f5c28f4p+0, 0x3.8f5c28f5c28f6p+0) + @test @interval("3.56?1") == Interval(0x3.8ccccccccccccp+0, 0x3.91eb851eb8520p+0) + @test @interval("3.56?1e2") == Interval(355.0, 357.0) + @test @interval("3.560?2") == Interval(0x3.8ed916872b020p+0, 0x3.8fdf3b645a1ccp+0) + @test @interval("3.56?") == Interval(0x3.8e147ae147ae0p+0, 0x3.90a3d70a3d70cp+0) + @test @interval("3.560?2u") == Interval(0x3.8f5c28f5c28f4p+0, 0x3.8fdf3b645a1ccp+0) + @test @interval("-10?") == Interval(-10.5, -9.5) + @test @interval("-10?u") == Interval(-10.0, -9.5) + @test @interval("-10?12") == Interval(-22.0, 2.0) +end + +# Examples from Section 10.5.1 +@testset "IEEE1788.d" begin + @test @interval("[1.234e5,Inf]") == Interval(123400.0, Inf) + @test @interval("3.1416?1") == Interval(0x3.24395810624dcp+0, 0x3.24467381d7dc0p+0) + @test @interval("[Empty]") == ∅ +end + +# Example from Section 11.3 +@testset "IEEE1788.e" begin + @test DecoratedInterval(2, 1) == nai() +end + +# Examples from Table 12.1 +@testset "IEEE1788.e" begin + @test @decorated("[ ]") == DecoratedInterval(∅, trv) + @test decoration(@decorated("[ ]")) == decoration(DecoratedInterval(∅, trv)) + @test @decorated("[entire]") == DecoratedInterval(Interval(-Inf, Inf), dac) + @test decoration(@decorated("[entire]")) == decoration(DecoratedInterval(Interval(-Inf, Inf), dac)) + @test @decorated("[1.e-3, 1.1e-3]") == DecoratedInterval(Interval(0x4.189374bc6a7ecp-12, 0x4.816f0068db8bcp-12), com) + @test decoration(@decorated("[1.e-3, 1.1e-3]")) == decoration(DecoratedInterval(Interval(0x4.189374bc6a7ecp-12, 0x4.816f0068db8bcp-12), com)) + @test @decorated("[-Inf, 2/3]") == DecoratedInterval(Interval(-Inf, +0xa.aaaaaaaaaaab0p-4), dac) + @test decoration(@decorated("[-Inf, 2/3]")) == decoration(DecoratedInterval(Interval(-Inf, +0xa.aaaaaaaaaaab0p-4), dac)) + @test @decorated("[0x1.3p-1,]") == DecoratedInterval(Interval(0x1.3p-1, Inf), dac) + @test decoration(@decorated("[0x1.3p-1,]")) == decoration(DecoratedInterval(Interval(0x1.3p-1, Inf), dac)) + @test @decorated("[,]") == DecoratedInterval(entireinterval(Float64), dac) + @test decoration(@decorated("[,]")) == decoration(DecoratedInterval(entireinterval(Float64), dac)) + @test @decorated("3.56?1") == DecoratedInterval(Interval(0x3.8ccccccccccccp+0, 0x3.91eb851eb8520p+0), com) + @test decoration(@decorated("3.56?1")) == decoration(DecoratedInterval(Interval(0x3.8ccccccccccccp+0, 0x3.91eb851eb8520p+0), com)) + @test @decorated("3.56?1e2") == DecoratedInterval(Interval(355.0, 357.0), com) + @test decoration(@decorated("3.56?1e2")) == decoration(DecoratedInterval(Interval(355.0, 357.0), com)) + @test @decorated("3.560?2") == DecoratedInterval(Interval(0x3.8ed916872b020p+0, 0x3.8fdf3b645a1ccp+0), com) + @test decoration(@decorated("3.560?2")) == decoration(DecoratedInterval(Interval(0x3.8ed916872b020p+0, 0x3.8fdf3b645a1ccp+0), com)) + @test @decorated("3.56?") == DecoratedInterval(Interval(0x3.8e147ae147ae0p+0, 0x3.90a3d70a3d70cp+0), com) + @test decoration(@decorated("3.56?")) == decoration(DecoratedInterval(Interval(0x3.8e147ae147ae0p+0, 0x3.90a3d70a3d70cp+0), com)) + @test @decorated("3.560?2u") == DecoratedInterval(Interval(0x3.8f5c28f5c28f4p+0, 0x3.8fdf3b645a1ccp+0), com) + @test decoration(@decorated("3.560?2u")) == decoration(DecoratedInterval(Interval(0x3.8f5c28f5c28f4p+0, 0x3.8fdf3b645a1ccp+0), com)) + @test @decorated("-10?") == DecoratedInterval(Interval(-10.5, -9.5), com) + @test decoration(@decorated("-10?")) == decoration(DecoratedInterval(Interval(-10.5, -9.5), com)) + @test @decorated("-10?u") == DecoratedInterval(Interval(-10.0, -9.5), com) + @test decoration(@decorated("-10?u")) == decoration(DecoratedInterval(Interval(-10.0, -9.5), com)) + @test @decorated("-10?12") == DecoratedInterval(Interval(-22.0, 2.0), com) + @test decoration(@decorated("-10?12")) == decoration(DecoratedInterval(Interval(-22.0, 2.0), com)) + @test @decorated("-10??u") == DecoratedInterval(Interval(-10.0, Inf), dac) + @test decoration(@decorated("-10??u")) == decoration(DecoratedInterval(Interval(-10.0, Inf), dac)) + @test @decorated("-10??") == DecoratedInterval(Interval(-Inf, Inf), dac) + @test decoration(@decorated("-10??")) == decoration(DecoratedInterval(Interval(-Inf, Inf), dac)) + @test @decorated("[nai]") == nai() + @test @decorated("3.56?1_def") == DecoratedInterval(Interval(0x3.8ccccccccccccp+0, 0x3.91eb851eb8520p+0), def) + @test decoration(@decorated("3.56?1_def")) == decoration(DecoratedInterval(Interval(0x3.8ccccccccccccp+0, 0x3.91eb851eb8520p+0), def)) +end + +# Examples from Section 12.11.3 +@testset "IEEE1788.f" begin + @test @interval("[]") == ∅ + @test @interval("[empty]") == ∅ + @test @interval("[ empty ]") == ∅ + @test @interval("[,]") == entireinterval(Float64) + @test @interval("[ entire ]") == entireinterval(Float64) +end diff --git a/test/ITF1788_tests/libieeep1788_tests_bool.jl b/test/ITF1788_tests/libieeep1788_tests_bool.jl index 128bf91..21c8c29 100644 --- a/test/ITF1788_tests/libieeep1788_tests_bool.jl +++ b/test/ITF1788_tests/libieeep1788_tests_bool.jl @@ -1,26 +1,31 @@ -# -# Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) -# Copyright 2015 Oliver Heimlich (oheim@posteo.de) -# -# Original author: Marco Nehmeier (unit tests in libieeep1788) -# Converted into portable ITL format by Oliver Heimlich with minor corrections. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# +#= + Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) + Copyright 2015 Oliver Heimlich (oheim@posteo.de) + + Original author: Marco Nehmeier (unit tests in libieeep1788) + Converted into portable ITL format by Oliver Heimlich with minor corrections. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +=# #Language imports #Test library imports -using FactCheck +if VERSION >= v"0.5.0-dev+7720" + using Base.Test +else + using BaseTestNext + const Test = BaseTestNext +end #Arithmetic library imports using ValidatedNumerics @@ -30,515 +35,461 @@ setprecision(53) setprecision(Interval, Float64) setrounding(Interval, :narrow) -facts("minimal_empty_test") do - @fact isempty(∅) --> true - @fact isempty(Interval(-Inf, Inf)) --> false - @fact isempty(Interval(1.0, 2.0)) --> false - @fact isempty(Interval(-1.0, 2.0)) --> false - @fact isempty(Interval(-3.0, -2.0)) --> false - @fact isempty(Interval(-Inf, 2.0)) --> false - @fact isempty(Interval(-Inf, 0.0)) --> false - @fact isempty(Interval(-Inf, -0.0)) --> false - @fact isempty(Interval(0.0, Inf)) --> false - @fact isempty(Interval(-0.0, Inf)) --> false - @fact isempty(Interval(-0.0, 0.0)) --> false - @fact isempty(Interval(0.0, -0.0)) --> false - @fact isempty(Interval(0.0, 0.0)) --> false - @fact isempty(Interval(-0.0, -0.0)) --> false +@testset "minimal_empty_test" begin + @test isempty(∅) + @test isempty(Interval(-Inf, Inf)) == false + @test isempty(Interval(1.0, 2.0)) == false + @test isempty(Interval(-1.0, 2.0)) == false + @test isempty(Interval(-3.0, -2.0)) == false + @test isempty(Interval(-Inf, 2.0)) == false + @test isempty(Interval(-Inf, 0.0)) == false + @test isempty(Interval(-Inf, -0.0)) == false + @test isempty(Interval(0.0, Inf)) == false + @test isempty(Interval(-0.0, Inf)) == false + @test isempty(Interval(-0.0, 0.0)) == false + @test isempty(Interval(0.0, -0.0)) == false + @test isempty(Interval(0.0, 0.0)) == false + @test isempty(Interval(-0.0, -0.0)) == false end -facts("minimal_empty_dec_test") do - @fact isempty(DecoratedInterval(∅, trv)) --> true - @fact isempty(DecoratedInterval(Interval(-Inf, Inf), def)) --> false - @fact isempty(DecoratedInterval(Interval(1.0, 2.0), com)) --> false - @fact isempty(DecoratedInterval(Interval(-1.0, 2.0), trv)) --> false - @fact isempty(DecoratedInterval(Interval(-3.0, -2.0), dac)) --> false - @fact isempty(DecoratedInterval(Interval(-Inf, 2.0), trv)) --> false - @fact isempty(DecoratedInterval(Interval(-Inf, 0.0), trv)) --> false - @fact isempty(DecoratedInterval(Interval(-Inf, -0.0), trv)) --> false - @fact isempty(DecoratedInterval(Interval(0.0, Inf), def)) --> false - @fact isempty(DecoratedInterval(Interval(-0.0, Inf), trv)) --> false - @fact isempty(DecoratedInterval(Interval(-0.0, 0.0), com)) --> false - @fact isempty(DecoratedInterval(Interval(0.0, -0.0), trv)) --> false - @fact isempty(DecoratedInterval(Interval(0.0, 0.0), trv)) --> false - @fact isempty(DecoratedInterval(Interval(-0.0, -0.0), trv)) --> false +@testset "minimal_empty_dec_test" begin + @test isempty(DecoratedInterval(∅, trv)) + @test isempty(DecoratedInterval(Interval(-Inf, Inf), def)) == false + @test isempty(DecoratedInterval(Interval(1.0, 2.0), com)) == false + @test isempty(DecoratedInterval(Interval(-1.0, 2.0), trv)) == false + @test isempty(DecoratedInterval(Interval(-3.0, -2.0), dac)) == false + @test isempty(DecoratedInterval(Interval(-Inf, 2.0), trv)) == false + @test isempty(DecoratedInterval(Interval(-Inf, 0.0), trv)) == false + @test isempty(DecoratedInterval(Interval(-Inf, -0.0), trv)) == false + @test isempty(DecoratedInterval(Interval(0.0, Inf), def)) == false + @test isempty(DecoratedInterval(Interval(-0.0, Inf), trv)) == false + @test isempty(DecoratedInterval(Interval(-0.0, 0.0), com)) == false + @test isempty(DecoratedInterval(Interval(0.0, -0.0), trv)) == false + @test isempty(DecoratedInterval(Interval(0.0, 0.0), trv)) == false + @test isempty(DecoratedInterval(Interval(-0.0, -0.0), trv)) == false end -facts("minimal_entire_test") do - @fact isentire(∅) --> false - @fact isentire(Interval(-Inf, Inf)) --> true - @fact isentire(Interval(1.0, 2.0)) --> false - @fact isentire(Interval(-1.0, 2.0)) --> false - @fact isentire(Interval(-3.0, -2.0)) --> false - @fact isentire(Interval(-Inf, 2.0)) --> false - @fact isentire(Interval(-Inf, 0.0)) --> false - @fact isentire(Interval(-Inf, -0.0)) --> false - @fact isentire(Interval(0.0, Inf)) --> false - @fact isentire(Interval(-0.0, Inf)) --> false - @fact isentire(Interval(-0.0, 0.0)) --> false - @fact isentire(Interval(0.0, -0.0)) --> false - @fact isentire(Interval(0.0, 0.0)) --> false - @fact isentire(Interval(-0.0, -0.0)) --> false +@testset "minimal_entire_test" begin + @test isentire(∅) == false + @test isentire(Interval(-Inf, Inf)) + @test isentire(Interval(1.0, 2.0)) == false + @test isentire(Interval(-1.0, 2.0)) == false + @test isentire(Interval(-3.0, -2.0)) == false + @test isentire(Interval(-Inf, 2.0)) == false + @test isentire(Interval(-Inf, 0.0)) == false + @test isentire(Interval(-Inf, -0.0)) == false + @test isentire(Interval(0.0, Inf)) == false + @test isentire(Interval(-0.0, Inf)) == false + @test isentire(Interval(-0.0, 0.0)) == false + @test isentire(Interval(0.0, -0.0)) == false + @test isentire(Interval(0.0, 0.0)) == false + @test isentire(Interval(-0.0, -0.0)) == false end -facts("minimal_entire_dec_test") do - @fact isentire(DecoratedInterval(∅, trv)) --> false - @fact isentire(DecoratedInterval(Interval(-Inf, Inf), trv)) --> true - @fact isentire(DecoratedInterval(Interval(-Inf, Inf), def)) --> true - @fact isentire(DecoratedInterval(Interval(-Inf, Inf), dac)) --> true - @fact isentire(DecoratedInterval(Interval(1.0, 2.0), com)) --> false - @fact isentire(DecoratedInterval(Interval(-1.0, 2.0), trv)) --> false - @fact isentire(DecoratedInterval(Interval(-3.0, -2.0), dac)) --> false - @fact isentire(DecoratedInterval(Interval(-Inf, 2.0), trv)) --> false - @fact isentire(DecoratedInterval(Interval(-Inf, 0.0), trv)) --> false - @fact isentire(DecoratedInterval(Interval(-Inf, -0.0), trv)) --> false - @fact isentire(DecoratedInterval(Interval(0.0, Inf), def)) --> false - @fact isentire(DecoratedInterval(Interval(-0.0, Inf), trv)) --> false - @fact isentire(DecoratedInterval(Interval(-0.0, 0.0), com)) --> false - @fact isentire(DecoratedInterval(Interval(0.0, -0.0), trv)) --> false - @fact isentire(DecoratedInterval(Interval(0.0, 0.0), trv)) --> false - @fact isentire(DecoratedInterval(Interval(-0.0, -0.0), trv)) --> false +@testset "minimal_entire_dec_test" begin + @test isentire(DecoratedInterval(∅, trv)) == false + @test isentire(DecoratedInterval(Interval(-Inf, Inf), trv)) + @test isentire(DecoratedInterval(Interval(-Inf, Inf), def)) + @test isentire(DecoratedInterval(Interval(-Inf, Inf), dac)) + @test isentire(DecoratedInterval(Interval(1.0, 2.0), com)) == false + @test isentire(DecoratedInterval(Interval(-1.0, 2.0), trv)) == false + @test isentire(DecoratedInterval(Interval(-3.0, -2.0), dac)) == false + @test isentire(DecoratedInterval(Interval(-Inf, 2.0), trv)) == false + @test isentire(DecoratedInterval(Interval(-Inf, 0.0), trv)) == false + @test isentire(DecoratedInterval(Interval(-Inf, -0.0), trv)) == false + @test isentire(DecoratedInterval(Interval(0.0, Inf), def)) == false + @test isentire(DecoratedInterval(Interval(-0.0, Inf), trv)) == false + @test isentire(DecoratedInterval(Interval(-0.0, 0.0), com)) == false + @test isentire(DecoratedInterval(Interval(0.0, -0.0), trv)) == false + @test isentire(DecoratedInterval(Interval(0.0, 0.0), trv)) == false + @test isentire(DecoratedInterval(Interval(-0.0, -0.0), trv)) == false end -facts("minimal_nai_dec_test") do - @fact isnai(DecoratedInterval(Interval(-Inf, Inf), trv)) --> false - @fact isnai(DecoratedInterval(Interval(-Inf, Inf), def)) --> false - @fact isnai(DecoratedInterval(Interval(-Inf, Inf), dac)) --> false - @fact isnai(DecoratedInterval(Interval(1.0, 2.0), com)) --> false - @fact isnai(DecoratedInterval(Interval(-1.0, 2.0), trv)) --> false - @fact isnai(DecoratedInterval(Interval(-3.0, -2.0), dac)) --> false - @fact isnai(DecoratedInterval(Interval(-Inf, 2.0), trv)) --> false - @fact isnai(DecoratedInterval(Interval(-Inf, 0.0), trv)) --> false - @fact isnai(DecoratedInterval(Interval(-Inf, -0.0), trv)) --> false - @fact isnai(DecoratedInterval(Interval(0.0, Inf), def)) --> false - @fact isnai(DecoratedInterval(Interval(-0.0, Inf), trv)) --> false - @fact isnai(DecoratedInterval(Interval(-0.0, 0.0), com)) --> false - @fact isnai(DecoratedInterval(Interval(0.0, -0.0), trv)) --> false - @fact isnai(DecoratedInterval(Interval(0.0, 0.0), trv)) --> false - @fact isnai(DecoratedInterval(Interval(-0.0, -0.0), trv)) --> false +@testset "minimal_nai_dec_test" begin + @test isnai(DecoratedInterval(Interval(-Inf, Inf), trv)) == false + @test isnai(DecoratedInterval(Interval(-Inf, Inf), def)) == false + @test isnai(DecoratedInterval(Interval(-Inf, Inf), dac)) == false + @test isnai(DecoratedInterval(Interval(1.0, 2.0), com)) == false + @test isnai(DecoratedInterval(Interval(-1.0, 2.0), trv)) == false + @test isnai(DecoratedInterval(Interval(-3.0, -2.0), dac)) == false + @test isnai(DecoratedInterval(Interval(-Inf, 2.0), trv)) == false + @test isnai(DecoratedInterval(Interval(-Inf, 0.0), trv)) == false + @test isnai(DecoratedInterval(Interval(-Inf, -0.0), trv)) == false + @test isnai(DecoratedInterval(Interval(0.0, Inf), def)) == false + @test isnai(DecoratedInterval(Interval(-0.0, Inf), trv)) == false + @test isnai(DecoratedInterval(Interval(-0.0, 0.0), com)) == false + @test isnai(DecoratedInterval(Interval(0.0, -0.0), trv)) == false + @test isnai(DecoratedInterval(Interval(0.0, 0.0), trv)) == false + @test isnai(DecoratedInterval(Interval(-0.0, -0.0), trv)) == false end -facts("minimal_equal_test") do - @fact Interval(1.0, 2.0) == Interval(1.0, 2.0) --> true - @fact Interval(1.0, 2.1) == Interval(1.0, 2.0) --> false - @fact ∅ == ∅ --> true - @fact ∅ == Interval(1.0, 2.0) --> false - @fact Interval(-Inf, Inf) == Interval(-Inf, Inf) --> true - @fact Interval(1.0, 2.4) == Interval(-Inf, Inf) --> false - @fact Interval(1.0, Inf) == Interval(1.0, Inf) --> true - @fact Interval(1.0, 2.4) == Interval(1.0, Inf) --> false - @fact Interval(-Inf, 2.0) == Interval(-Inf, 2.0) --> true - @fact Interval(-Inf, 2.4) == Interval(-Inf, 2.0) --> false - @fact Interval(-2.0, 0.0) == Interval(-2.0, 0.0) --> true - @fact Interval(-0.0, 2.0) == Interval(0.0, 2.0) --> true - @fact Interval(-0.0, -0.0) == Interval(0.0, 0.0) --> true - @fact Interval(-0.0, 0.0) == Interval(0.0, 0.0) --> true - @fact Interval(0.0, -0.0) == Interval(0.0, 0.0) --> true +@testset "minimal_equal_test" begin + @test ==(Interval(1.0, 2.0), Interval(1.0, 2.0)) + @test ==(Interval(1.0, 2.1), Interval(1.0, 2.0)) == false + @test ==(∅, ∅) + @test ==(∅, Interval(1.0, 2.0)) == false + @test ==(Interval(-Inf, Inf), Interval(-Inf, Inf)) + @test ==(Interval(1.0, 2.4), Interval(-Inf, Inf)) == false + @test ==(Interval(1.0, Inf), Interval(1.0, Inf)) + @test ==(Interval(1.0, 2.4), Interval(1.0, Inf)) == false + @test ==(Interval(-Inf, 2.0), Interval(-Inf, 2.0)) + @test ==(Interval(-Inf, 2.4), Interval(-Inf, 2.0)) == false + @test ==(Interval(-2.0, 0.0), Interval(-2.0, 0.0)) + @test ==(Interval(-0.0, 2.0), Interval(0.0, 2.0)) + @test ==(Interval(-0.0, -0.0), Interval(0.0, 0.0)) + @test ==(Interval(-0.0, 0.0), Interval(0.0, 0.0)) + @test ==(Interval(0.0, -0.0), Interval(0.0, 0.0)) end -facts("minimal_equal_dec_test") do - @fact DecoratedInterval(Interval(1.0, 2.0), def) == DecoratedInterval(Interval(1.0, 2.0), trv) --> true - @fact DecoratedInterval(Interval(1.0, 2.1), trv) == DecoratedInterval(Interval(1.0, 2.0), trv) --> false - @fact DecoratedInterval(∅, trv) == DecoratedInterval(∅, trv) --> true - @fact DecoratedInterval(∅, trv) == DecoratedInterval(Interval(1.0, 2.0), trv) --> false - @fact DecoratedInterval(∅, trv) == DecoratedInterval(Interval(1.0, 2.0), trv) --> false - @fact DecoratedInterval(Interval(-Inf, Inf), def) == DecoratedInterval(Interval(-Inf, Inf), trv) --> true - @fact DecoratedInterval(Interval(1.0, 2.4), trv) == DecoratedInterval(Interval(-Inf, Inf), trv) --> false - @fact DecoratedInterval(Interval(1.0, Inf), trv) == DecoratedInterval(Interval(1.0, Inf), trv) --> true - @fact DecoratedInterval(Interval(1.0, 2.4), def) == DecoratedInterval(Interval(1.0, Inf), trv) --> false - @fact DecoratedInterval(Interval(-Inf, 2.0), trv) == DecoratedInterval(Interval(-Inf, 2.0), trv) --> true - @fact DecoratedInterval(Interval(-Inf, 2.4), def) == DecoratedInterval(Interval(-Inf, 2.0), trv) --> false - @fact DecoratedInterval(Interval(-2.0, 0.0), trv) == DecoratedInterval(Interval(-2.0, 0.0), trv) --> true - @fact DecoratedInterval(Interval(-0.0, 2.0), def) == DecoratedInterval(Interval(0.0, 2.0), trv) --> true - @fact DecoratedInterval(Interval(-0.0, -0.0), trv) == DecoratedInterval(Interval(0.0, 0.0), trv) --> true - @fact DecoratedInterval(Interval(-0.0, 0.0), def) == DecoratedInterval(Interval(0.0, 0.0), trv) --> true - @fact DecoratedInterval(Interval(0.0, -0.0), trv) == DecoratedInterval(Interval(0.0, 0.0), trv) --> true +@testset "minimal_equal_dec_test" begin + @test ==(DecoratedInterval(Interval(1.0, 2.0), def), DecoratedInterval(Interval(1.0, 2.0), trv)) + @test ==(DecoratedInterval(Interval(1.0, 2.1), trv), DecoratedInterval(Interval(1.0, 2.0), trv)) == false + @test ==(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv)) + @test ==(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 2.0), trv)) == false + @test ==(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 2.0), trv)) == false + @test ==(DecoratedInterval(Interval(-Inf, Inf), def), DecoratedInterval(Interval(-Inf, Inf), trv)) + @test ==(DecoratedInterval(Interval(1.0, 2.4), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) == false + @test ==(DecoratedInterval(Interval(1.0, Inf), trv), DecoratedInterval(Interval(1.0, Inf), trv)) + @test ==(DecoratedInterval(Interval(1.0, 2.4), def), DecoratedInterval(Interval(1.0, Inf), trv)) == false + @test ==(DecoratedInterval(Interval(-Inf, 2.0), trv), DecoratedInterval(Interval(-Inf, 2.0), trv)) + @test ==(DecoratedInterval(Interval(-Inf, 2.4), def), DecoratedInterval(Interval(-Inf, 2.0), trv)) == false + @test ==(DecoratedInterval(Interval(-2.0, 0.0), trv), DecoratedInterval(Interval(-2.0, 0.0), trv)) + @test ==(DecoratedInterval(Interval(-0.0, 2.0), def), DecoratedInterval(Interval(0.0, 2.0), trv)) + @test ==(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(0.0, 0.0), trv)) + @test ==(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(0.0, 0.0), trv)) + @test ==(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(0.0, 0.0), trv)) end -facts("minimal_subset_test") do - @fact ∅ ⊆ ∅ --> true - @fact ∅ ⊆ Interval(0.0, 4.0) --> true - @fact ∅ ⊆ Interval(-0.0, 4.0) --> true - @fact ∅ ⊆ Interval(-0.1, 1.0) --> true - @fact ∅ ⊆ Interval(-0.1, 0.0) --> true - @fact ∅ ⊆ Interval(-0.1, -0.0) --> true - @fact ∅ ⊆ Interval(-Inf, Inf) --> true - @fact Interval(0.0, 4.0) ⊆ ∅ --> false - @fact Interval(-0.0, 4.0) ⊆ ∅ --> false - @fact Interval(-0.1, 1.0) ⊆ ∅ --> false - @fact Interval(-Inf, Inf) ⊆ ∅ --> false - @fact Interval(0.0, 4.0) ⊆ Interval(-Inf, Inf) --> true - @fact Interval(-0.0, 4.0) ⊆ Interval(-Inf, Inf) --> true - @fact Interval(-0.1, 1.0) ⊆ Interval(-Inf, Inf) --> true - @fact Interval(-Inf, Inf) ⊆ Interval(-Inf, Inf) --> true - @fact Interval(1.0, 2.0) ⊆ Interval(1.0, 2.0) --> true - @fact Interval(1.0, 2.0) ⊆ Interval(0.0, 4.0) --> true - @fact Interval(1.0, 2.0) ⊆ Interval(-0.0, 4.0) --> true - @fact Interval(0.1, 0.2) ⊆ Interval(0.0, 4.0) --> true - @fact Interval(0.1, 0.2) ⊆ Interval(-0.0, 4.0) --> true - @fact Interval(-0.1, -0.1) ⊆ Interval(-4.0, 3.4) --> true - @fact Interval(0.0, 0.0) ⊆ Interval(-0.0, -0.0) --> true - @fact Interval(-0.0, -0.0) ⊆ Interval(0.0, 0.0) --> true - @fact Interval(-0.0, 0.0) ⊆ Interval(0.0, 0.0) --> true - @fact Interval(-0.0, 0.0) ⊆ Interval(0.0, -0.0) --> true - @fact Interval(0.0, -0.0) ⊆ Interval(0.0, 0.0) --> true - @fact Interval(0.0, -0.0) ⊆ Interval(-0.0, 0.0) --> true +@testset "minimal_subset_test" begin + @test ⊆(∅, ∅) + @test ⊆(∅, Interval(0.0, 4.0)) + @test ⊆(∅, Interval(-0.0, 4.0)) + @test ⊆(∅, Interval(-0.1, 1.0)) + @test ⊆(∅, Interval(-0.1, 0.0)) + @test ⊆(∅, Interval(-0.1, -0.0)) + @test ⊆(∅, Interval(-Inf, Inf)) + @test ⊆(Interval(0.0, 4.0), ∅) == false + @test ⊆(Interval(-0.0, 4.0), ∅) == false + @test ⊆(Interval(-0.1, 1.0), ∅) == false + @test ⊆(Interval(-Inf, Inf), ∅) == false + @test ⊆(Interval(0.0, 4.0), Interval(-Inf, Inf)) + @test ⊆(Interval(-0.0, 4.0), Interval(-Inf, Inf)) + @test ⊆(Interval(-0.1, 1.0), Interval(-Inf, Inf)) + @test ⊆(Interval(-Inf, Inf), Interval(-Inf, Inf)) + @test ⊆(Interval(1.0, 2.0), Interval(1.0, 2.0)) + @test ⊆(Interval(1.0, 2.0), Interval(0.0, 4.0)) + @test ⊆(Interval(1.0, 2.0), Interval(-0.0, 4.0)) + @test ⊆(Interval(0.1, 0.2), Interval(0.0, 4.0)) + @test ⊆(Interval(0.1, 0.2), Interval(-0.0, 4.0)) + @test ⊆(Interval(-0.1, -0.1), Interval(-4.0, 3.4)) + @test ⊆(Interval(0.0, 0.0), Interval(-0.0, -0.0)) + @test ⊆(Interval(-0.0, -0.0), Interval(0.0, 0.0)) + @test ⊆(Interval(-0.0, 0.0), Interval(0.0, 0.0)) + @test ⊆(Interval(-0.0, 0.0), Interval(0.0, -0.0)) + @test ⊆(Interval(0.0, -0.0), Interval(0.0, 0.0)) + @test ⊆(Interval(0.0, -0.0), Interval(-0.0, 0.0)) end -facts("minimal_subset_dec_test") do - @fact DecoratedInterval(∅, trv) ⊆ DecoratedInterval(Interval(0.0, 4.0), trv) --> true - @fact DecoratedInterval(∅, trv) ⊆ DecoratedInterval(Interval(-0.0, 4.0), def) --> true - @fact DecoratedInterval(∅, trv) ⊆ DecoratedInterval(Interval(-0.1, 1.0), trv) --> true - @fact DecoratedInterval(∅, trv) ⊆ DecoratedInterval(Interval(-0.1, 0.0), trv) --> true - @fact DecoratedInterval(∅, trv) ⊆ DecoratedInterval(Interval(-0.1, -0.0), trv) --> true - @fact DecoratedInterval(∅, trv) ⊆ DecoratedInterval(Interval(-Inf, Inf), trv) --> true - @fact DecoratedInterval(Interval(0.0, 4.0), trv) ⊆ DecoratedInterval(∅, trv) --> false - @fact DecoratedInterval(Interval(-0.0, 4.0), def) ⊆ DecoratedInterval(∅, trv) --> false - @fact DecoratedInterval(Interval(-0.1, 1.0), trv) ⊆ DecoratedInterval(∅, trv) --> false - @fact DecoratedInterval(Interval(-Inf, Inf), trv) ⊆ DecoratedInterval(∅, trv) --> false - @fact DecoratedInterval(Interval(0.0, 4.0), trv) ⊆ DecoratedInterval(Interval(-Inf, Inf), trv) --> true - @fact DecoratedInterval(Interval(-0.0, 4.0), trv) ⊆ DecoratedInterval(Interval(-Inf, Inf), trv) --> true - @fact DecoratedInterval(Interval(-0.1, 1.0), trv) ⊆ DecoratedInterval(Interval(-Inf, Inf), trv) --> true - @fact DecoratedInterval(Interval(-Inf, Inf), trv) ⊆ DecoratedInterval(Interval(-Inf, Inf), trv) --> true - @fact DecoratedInterval(Interval(1.0, 2.0), trv) ⊆ DecoratedInterval(Interval(1.0, 2.0), trv) --> true - @fact DecoratedInterval(Interval(1.0, 2.0), trv) ⊆ DecoratedInterval(Interval(0.0, 4.0), trv) --> true - @fact DecoratedInterval(Interval(1.0, 2.0), def) ⊆ DecoratedInterval(Interval(-0.0, 4.0), def) --> true - @fact DecoratedInterval(Interval(0.1, 0.2), trv) ⊆ DecoratedInterval(Interval(0.0, 4.0), trv) --> true - @fact DecoratedInterval(Interval(0.1, 0.2), trv) ⊆ DecoratedInterval(Interval(-0.0, 4.0), def) --> true - @fact DecoratedInterval(Interval(-0.1, -0.1), trv) ⊆ DecoratedInterval(Interval(-4.0, 3.4), trv) --> true - @fact DecoratedInterval(Interval(0.0, 0.0), trv) ⊆ DecoratedInterval(Interval(-0.0, -0.0), trv) --> true - @fact DecoratedInterval(Interval(-0.0, -0.0), trv) ⊆ DecoratedInterval(Interval(0.0, 0.0), def) --> true - @fact DecoratedInterval(Interval(-0.0, 0.0), trv) ⊆ DecoratedInterval(Interval(0.0, 0.0), trv) --> true - @fact DecoratedInterval(Interval(-0.0, 0.0), trv) ⊆ DecoratedInterval(Interval(0.0, -0.0), trv) --> true - @fact DecoratedInterval(Interval(0.0, -0.0), def) ⊆ DecoratedInterval(Interval(0.0, 0.0), trv) --> true - @fact DecoratedInterval(Interval(0.0, -0.0), trv) ⊆ DecoratedInterval(Interval(-0.0, 0.0), trv) --> true +@testset "minimal_subset_dec_test" begin + @test ⊆(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 4.0), trv)) + @test ⊆(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, 4.0), def)) + @test ⊆(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.1, 1.0), trv)) + @test ⊆(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.1, 0.0), trv)) + @test ⊆(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.1, -0.0), trv)) + @test ⊆(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-Inf, Inf), trv)) + @test ⊆(DecoratedInterval(Interval(0.0, 4.0), trv), DecoratedInterval(∅, trv)) == false + @test ⊆(DecoratedInterval(Interval(-0.0, 4.0), def), DecoratedInterval(∅, trv)) == false + @test ⊆(DecoratedInterval(Interval(-0.1, 1.0), trv), DecoratedInterval(∅, trv)) == false + @test ⊆(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(∅, trv)) == false + @test ⊆(DecoratedInterval(Interval(0.0, 4.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) + @test ⊆(DecoratedInterval(Interval(-0.0, 4.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) + @test ⊆(DecoratedInterval(Interval(-0.1, 1.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) + @test ⊆(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) + @test ⊆(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(1.0, 2.0), trv)) + @test ⊆(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(0.0, 4.0), trv)) + @test ⊆(DecoratedInterval(Interval(1.0, 2.0), def), DecoratedInterval(Interval(-0.0, 4.0), def)) + @test ⊆(DecoratedInterval(Interval(0.1, 0.2), trv), DecoratedInterval(Interval(0.0, 4.0), trv)) + @test ⊆(DecoratedInterval(Interval(0.1, 0.2), trv), DecoratedInterval(Interval(-0.0, 4.0), def)) + @test ⊆(DecoratedInterval(Interval(-0.1, -0.1), trv), DecoratedInterval(Interval(-4.0, 3.4), trv)) + @test ⊆(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, -0.0), trv)) + @test ⊆(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(0.0, 0.0), def)) + @test ⊆(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(0.0, 0.0), trv)) + @test ⊆(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(0.0, -0.0), trv)) + @test ⊆(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(0.0, 0.0), trv)) + @test ⊆(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv)) end -facts("minimal_less_test") do - @fact <=(∅, ∅) --> true - @fact ∅ ≤ ∅ --> true - @fact <=(Interval(1.0, 2.0), ∅) --> false - @fact Interval(1.0, 2.0) ≤ ∅ --> false - @fact <=(∅, Interval(1.0, 2.0)) --> false - @fact ∅ ≤ Interval(1.0, 2.0) --> false - @fact <=(Interval(-Inf, Inf), Interval(-Inf, Inf)) --> true - @fact Interval(-Inf, Inf) ≤ Interval(-Inf, Inf) --> true - @fact <=(Interval(1.0, 2.0), Interval(-Inf, Inf)) --> false - @fact Interval(1.0, 2.0) ≤ Interval(-Inf, Inf) --> false - @fact <=(Interval(0.0, 2.0), Interval(-Inf, Inf)) --> false - @fact Interval(0.0, 2.0) ≤ Interval(-Inf, Inf) --> false - @fact <=(Interval(-0.0, 2.0), Interval(-Inf, Inf)) --> false - @fact Interval(-0.0, 2.0) ≤ Interval(-Inf, Inf) --> false - @fact <=(Interval(-Inf, Inf), Interval(1.0, 2.0)) --> false - @fact Interval(-Inf, Inf) ≤ Interval(1.0, 2.0) --> false - @fact <=(Interval(-Inf, Inf), Interval(0.0, 2.0)) --> false - @fact Interval(-Inf, Inf) ≤ Interval(0.0, 2.0) --> false - @fact <=(Interval(-Inf, Inf), Interval(-0.0, 2.0)) --> false - @fact Interval(-Inf, Inf) ≤ Interval(-0.0, 2.0) --> false - @fact <=(Interval(0.0, 2.0), Interval(0.0, 2.0)) --> true - @fact Interval(0.0, 2.0) ≤ Interval(0.0, 2.0) --> true - @fact <=(Interval(0.0, 2.0), Interval(-0.0, 2.0)) --> true - @fact Interval(0.0, 2.0) ≤ Interval(-0.0, 2.0) --> true - @fact <=(Interval(0.0, 2.0), Interval(1.0, 2.0)) --> true - @fact Interval(0.0, 2.0) ≤ Interval(1.0, 2.0) --> true - @fact <=(Interval(-0.0, 2.0), Interval(1.0, 2.0)) --> true - @fact Interval(-0.0, 2.0) ≤ Interval(1.0, 2.0) --> true - @fact <=(Interval(1.0, 2.0), Interval(1.0, 2.0)) --> true - @fact Interval(1.0, 2.0) ≤ Interval(1.0, 2.0) --> true - @fact <=(Interval(1.0, 2.0), Interval(3.0, 4.0)) --> true - @fact Interval(1.0, 2.0) ≤ Interval(3.0, 4.0) --> true - @fact <=(Interval(1.0, 3.5), Interval(3.0, 4.0)) --> true - @fact Interval(1.0, 3.5) ≤ Interval(3.0, 4.0) --> true - @fact <=(Interval(1.0, 4.0), Interval(3.0, 4.0)) --> true - @fact Interval(1.0, 4.0) ≤ Interval(3.0, 4.0) --> true - @fact <=(Interval(-2.0, -1.0), Interval(-2.0, -1.0)) --> true - @fact Interval(-2.0, -1.0) ≤ Interval(-2.0, -1.0) --> true - @fact <=(Interval(-3.0, -1.5), Interval(-2.0, -1.0)) --> true - @fact Interval(-3.0, -1.5) ≤ Interval(-2.0, -1.0) --> true - @fact <=(Interval(0.0, 0.0), Interval(-0.0, -0.0)) --> true - @fact Interval(0.0, 0.0) ≤ Interval(-0.0, -0.0) --> true - @fact <=(Interval(-0.0, -0.0), Interval(0.0, 0.0)) --> true - @fact Interval(-0.0, -0.0) ≤ Interval(0.0, 0.0) --> true - @fact <=(Interval(-0.0, 0.0), Interval(0.0, 0.0)) --> true - @fact Interval(-0.0, 0.0) ≤ Interval(0.0, 0.0) --> true - @fact <=(Interval(-0.0, 0.0), Interval(0.0, -0.0)) --> true - @fact Interval(-0.0, 0.0) ≤ Interval(0.0, -0.0) --> true - @fact <=(Interval(0.0, -0.0), Interval(0.0, 0.0)) --> true - @fact Interval(0.0, -0.0) ≤ Interval(0.0, 0.0) --> true - @fact <=(Interval(0.0, -0.0), Interval(-0.0, 0.0)) --> true - @fact Interval(0.0, -0.0) ≤ Interval(-0.0, 0.0) --> true +@testset "minimal_less_test" begin + @test ≤(∅, ∅) + @test ≤(Interval(1.0, 2.0), ∅) == false + @test ≤(∅, Interval(1.0, 2.0)) == false + @test ≤(Interval(-Inf, Inf), Interval(-Inf, Inf)) + @test ≤(Interval(1.0, 2.0), Interval(-Inf, Inf)) == false + @test ≤(Interval(0.0, 2.0), Interval(-Inf, Inf)) == false + @test ≤(Interval(-0.0, 2.0), Interval(-Inf, Inf)) == false + @test ≤(Interval(-Inf, Inf), Interval(1.0, 2.0)) == false + @test ≤(Interval(-Inf, Inf), Interval(0.0, 2.0)) == false + @test ≤(Interval(-Inf, Inf), Interval(-0.0, 2.0)) == false + @test ≤(Interval(0.0, 2.0), Interval(0.0, 2.0)) + @test ≤(Interval(0.0, 2.0), Interval(-0.0, 2.0)) + @test ≤(Interval(0.0, 2.0), Interval(1.0, 2.0)) + @test ≤(Interval(-0.0, 2.0), Interval(1.0, 2.0)) + @test ≤(Interval(1.0, 2.0), Interval(1.0, 2.0)) + @test ≤(Interval(1.0, 2.0), Interval(3.0, 4.0)) + @test ≤(Interval(1.0, 3.5), Interval(3.0, 4.0)) + @test ≤(Interval(1.0, 4.0), Interval(3.0, 4.0)) + @test ≤(Interval(-2.0, -1.0), Interval(-2.0, -1.0)) + @test ≤(Interval(-3.0, -1.5), Interval(-2.0, -1.0)) + @test ≤(Interval(0.0, 0.0), Interval(-0.0, -0.0)) + @test ≤(Interval(-0.0, -0.0), Interval(0.0, 0.0)) + @test ≤(Interval(-0.0, 0.0), Interval(0.0, 0.0)) + @test ≤(Interval(-0.0, 0.0), Interval(0.0, -0.0)) + @test ≤(Interval(0.0, -0.0), Interval(0.0, 0.0)) + @test ≤(Interval(0.0, -0.0), Interval(-0.0, 0.0)) end -facts("minimal_less_dec_test") do - @fact <=(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(∅, trv)) --> false - @fact DecoratedInterval(Interval(1.0, 2.0), trv) ≤ DecoratedInterval(∅, trv) --> false - @fact <=(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 2.0), def)) --> false - @fact DecoratedInterval(∅, trv) ≤ DecoratedInterval(Interval(1.0, 2.0), def) --> false - @fact <=(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(∅, trv)) --> false - @fact DecoratedInterval(Interval(1.0, 2.0), trv) ≤ DecoratedInterval(∅, trv) --> false - @fact <=(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 2.0), trv)) --> false - @fact DecoratedInterval(∅, trv) ≤ DecoratedInterval(Interval(1.0, 2.0), trv) --> false - @fact <=(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) --> true - @fact DecoratedInterval(Interval(-Inf, Inf), trv) ≤ DecoratedInterval(Interval(-Inf, Inf), trv) --> true - @fact <=(DecoratedInterval(Interval(1.0, 2.0), def), DecoratedInterval(Interval(-Inf, Inf), trv)) --> false - @fact DecoratedInterval(Interval(1.0, 2.0), def) ≤ DecoratedInterval(Interval(-Inf, Inf), trv) --> false - @fact <=(DecoratedInterval(Interval(0.0, 2.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) --> false - @fact DecoratedInterval(Interval(0.0, 2.0), trv) ≤ DecoratedInterval(Interval(-Inf, Inf), trv) --> false - @fact <=(DecoratedInterval(Interval(-0.0, 2.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) --> false - @fact DecoratedInterval(Interval(-0.0, 2.0), trv) ≤ DecoratedInterval(Interval(-Inf, Inf), trv) --> false - @fact <=(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(1.0, 2.0), trv)) --> false - @fact DecoratedInterval(Interval(-Inf, Inf), trv) ≤ DecoratedInterval(Interval(1.0, 2.0), trv) --> false - @fact <=(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(0.0, 2.0), def)) --> false - @fact DecoratedInterval(Interval(-Inf, Inf), trv) ≤ DecoratedInterval(Interval(0.0, 2.0), def) --> false - @fact <=(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-0.0, 2.0), trv)) --> false - @fact DecoratedInterval(Interval(-Inf, Inf), trv) ≤ DecoratedInterval(Interval(-0.0, 2.0), trv) --> false - @fact <=(DecoratedInterval(Interval(0.0, 2.0), trv), DecoratedInterval(Interval(0.0, 2.0), trv)) --> true - @fact DecoratedInterval(Interval(0.0, 2.0), trv) ≤ DecoratedInterval(Interval(0.0, 2.0), trv) --> true - @fact <=(DecoratedInterval(Interval(0.0, 2.0), trv), DecoratedInterval(Interval(-0.0, 2.0), trv)) --> true - @fact DecoratedInterval(Interval(0.0, 2.0), trv) ≤ DecoratedInterval(Interval(-0.0, 2.0), trv) --> true - @fact <=(DecoratedInterval(Interval(0.0, 2.0), def), DecoratedInterval(Interval(1.0, 2.0), def)) --> true - @fact DecoratedInterval(Interval(0.0, 2.0), def) ≤ DecoratedInterval(Interval(1.0, 2.0), def) --> true - @fact <=(DecoratedInterval(Interval(-0.0, 2.0), trv), DecoratedInterval(Interval(1.0, 2.0), trv)) --> true - @fact DecoratedInterval(Interval(-0.0, 2.0), trv) ≤ DecoratedInterval(Interval(1.0, 2.0), trv) --> true - @fact <=(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(1.0, 2.0), trv)) --> true - @fact DecoratedInterval(Interval(1.0, 2.0), trv) ≤ DecoratedInterval(Interval(1.0, 2.0), trv) --> true - @fact <=(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(3.0, 4.0), def)) --> true - @fact DecoratedInterval(Interval(1.0, 2.0), trv) ≤ DecoratedInterval(Interval(3.0, 4.0), def) --> true - @fact <=(DecoratedInterval(Interval(1.0, 3.5), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) --> true - @fact DecoratedInterval(Interval(1.0, 3.5), trv) ≤ DecoratedInterval(Interval(3.0, 4.0), trv) --> true - @fact <=(DecoratedInterval(Interval(1.0, 4.0), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) --> true - @fact DecoratedInterval(Interval(1.0, 4.0), trv) ≤ DecoratedInterval(Interval(3.0, 4.0), trv) --> true - @fact <=(DecoratedInterval(Interval(-2.0, -1.0), trv), DecoratedInterval(Interval(-2.0, -1.0), trv)) --> true - @fact DecoratedInterval(Interval(-2.0, -1.0), trv) ≤ DecoratedInterval(Interval(-2.0, -1.0), trv) --> true - @fact <=(DecoratedInterval(Interval(-3.0, -1.5), trv), DecoratedInterval(Interval(-2.0, -1.0), trv)) --> true - @fact DecoratedInterval(Interval(-3.0, -1.5), trv) ≤ DecoratedInterval(Interval(-2.0, -1.0), trv) --> true - @fact <=(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, -0.0), trv)) --> true - @fact DecoratedInterval(Interval(0.0, 0.0), trv) ≤ DecoratedInterval(Interval(-0.0, -0.0), trv) --> true - @fact <=(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(0.0, 0.0), def)) --> true - @fact DecoratedInterval(Interval(-0.0, -0.0), trv) ≤ DecoratedInterval(Interval(0.0, 0.0), def) --> true - @fact <=(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(0.0, 0.0), trv)) --> true - @fact DecoratedInterval(Interval(-0.0, 0.0), trv) ≤ DecoratedInterval(Interval(0.0, 0.0), trv) --> true - @fact <=(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(0.0, -0.0), trv)) --> true - @fact DecoratedInterval(Interval(-0.0, 0.0), trv) ≤ DecoratedInterval(Interval(0.0, -0.0), trv) --> true - @fact <=(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(0.0, 0.0), trv)) --> true - @fact DecoratedInterval(Interval(0.0, -0.0), def) ≤ DecoratedInterval(Interval(0.0, 0.0), trv) --> true - @fact <=(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv)) --> true - @fact DecoratedInterval(Interval(0.0, -0.0), trv) ≤ DecoratedInterval(Interval(-0.0, 0.0), trv) --> true +@testset "minimal_less_dec_test" begin + @test ≤(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(∅, trv)) == false + @test ≤(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 2.0), def)) == false + @test ≤(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(∅, trv)) == false + @test ≤(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 2.0), trv)) == false + @test ≤(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) + @test ≤(DecoratedInterval(Interval(1.0, 2.0), def), DecoratedInterval(Interval(-Inf, Inf), trv)) == false + @test ≤(DecoratedInterval(Interval(0.0, 2.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) == false + @test ≤(DecoratedInterval(Interval(-0.0, 2.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) == false + @test ≤(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(1.0, 2.0), trv)) == false + @test ≤(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(0.0, 2.0), def)) == false + @test ≤(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-0.0, 2.0), trv)) == false + @test ≤(DecoratedInterval(Interval(0.0, 2.0), trv), DecoratedInterval(Interval(0.0, 2.0), trv)) + @test ≤(DecoratedInterval(Interval(0.0, 2.0), trv), DecoratedInterval(Interval(-0.0, 2.0), trv)) + @test ≤(DecoratedInterval(Interval(0.0, 2.0), def), DecoratedInterval(Interval(1.0, 2.0), def)) + @test ≤(DecoratedInterval(Interval(-0.0, 2.0), trv), DecoratedInterval(Interval(1.0, 2.0), trv)) + @test ≤(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(1.0, 2.0), trv)) + @test ≤(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(3.0, 4.0), def)) + @test ≤(DecoratedInterval(Interval(1.0, 3.5), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) + @test ≤(DecoratedInterval(Interval(1.0, 4.0), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) + @test ≤(DecoratedInterval(Interval(-2.0, -1.0), trv), DecoratedInterval(Interval(-2.0, -1.0), trv)) + @test ≤(DecoratedInterval(Interval(-3.0, -1.5), trv), DecoratedInterval(Interval(-2.0, -1.0), trv)) + @test ≤(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, -0.0), trv)) + @test ≤(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(0.0, 0.0), def)) + @test ≤(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(0.0, 0.0), trv)) + @test ≤(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(0.0, -0.0), trv)) + @test ≤(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(0.0, 0.0), trv)) + @test ≤(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv)) end -facts("minimal_precedes_test") do - @fact precedes(∅, Interval(3.0, 4.0)) --> true - @fact precedes(Interval(3.0, 4.0), ∅) --> true - @fact precedes(∅, ∅) --> true - @fact precedes(Interval(1.0, 2.0), Interval(-Inf, Inf)) --> false - @fact precedes(Interval(0.0, 2.0), Interval(-Inf, Inf)) --> false - @fact precedes(Interval(-0.0, 2.0), Interval(-Inf, Inf)) --> false - @fact precedes(Interval(-Inf, Inf), Interval(1.0, 2.0)) --> false - @fact precedes(Interval(-Inf, Inf), Interval(-Inf, Inf)) --> false - @fact precedes(Interval(1.0, 2.0), Interval(3.0, 4.0)) --> true - @fact precedes(Interval(1.0, 3.0), Interval(3.0, 4.0)) --> true - @fact precedes(Interval(-3.0, -1.0), Interval(-1.0, 0.0)) --> true - @fact precedes(Interval(-3.0, -1.0), Interval(-1.0, -0.0)) --> true - @fact precedes(Interval(1.0, 3.5), Interval(3.0, 4.0)) --> false - @fact precedes(Interval(1.0, 4.0), Interval(3.0, 4.0)) --> false - @fact precedes(Interval(-3.0, -0.1), Interval(-1.0, 0.0)) --> false - @fact precedes(Interval(0.0, 0.0), Interval(-0.0, -0.0)) --> true - @fact precedes(Interval(-0.0, -0.0), Interval(0.0, 0.0)) --> true - @fact precedes(Interval(-0.0, 0.0), Interval(0.0, 0.0)) --> true - @fact precedes(Interval(-0.0, 0.0), Interval(0.0, -0.0)) --> true - @fact precedes(Interval(0.0, -0.0), Interval(0.0, 0.0)) --> true - @fact precedes(Interval(0.0, -0.0), Interval(-0.0, 0.0)) --> true +@testset "minimal_precedes_test" begin + @test precedes(∅, Interval(3.0, 4.0)) + @test precedes(Interval(3.0, 4.0), ∅) + @test precedes(∅, ∅) + @test precedes(Interval(1.0, 2.0), Interval(-Inf, Inf)) == false + @test precedes(Interval(0.0, 2.0), Interval(-Inf, Inf)) == false + @test precedes(Interval(-0.0, 2.0), Interval(-Inf, Inf)) == false + @test precedes(Interval(-Inf, Inf), Interval(1.0, 2.0)) == false + @test precedes(Interval(-Inf, Inf), Interval(-Inf, Inf)) == false + @test precedes(Interval(1.0, 2.0), Interval(3.0, 4.0)) + @test precedes(Interval(1.0, 3.0), Interval(3.0, 4.0)) + @test precedes(Interval(-3.0, -1.0), Interval(-1.0, 0.0)) + @test precedes(Interval(-3.0, -1.0), Interval(-1.0, -0.0)) + @test precedes(Interval(1.0, 3.5), Interval(3.0, 4.0)) == false + @test precedes(Interval(1.0, 4.0), Interval(3.0, 4.0)) == false + @test precedes(Interval(-3.0, -0.1), Interval(-1.0, 0.0)) == false + @test precedes(Interval(0.0, 0.0), Interval(-0.0, -0.0)) + @test precedes(Interval(-0.0, -0.0), Interval(0.0, 0.0)) + @test precedes(Interval(-0.0, 0.0), Interval(0.0, 0.0)) + @test precedes(Interval(-0.0, 0.0), Interval(0.0, -0.0)) + @test precedes(Interval(0.0, -0.0), Interval(0.0, 0.0)) + @test precedes(Interval(0.0, -0.0), Interval(-0.0, 0.0)) end -facts("minimal_precedes_dec_test") do - @fact precedes(DecoratedInterval(∅, trv), DecoratedInterval(Interval(3.0, 4.0), def)) --> true - @fact precedes(DecoratedInterval(Interval(3.0, 4.0), trv), DecoratedInterval(∅, trv)) --> true - @fact precedes(DecoratedInterval(∅, trv), DecoratedInterval(Interval(3.0, 4.0), trv)) --> true - @fact precedes(DecoratedInterval(Interval(3.0, 4.0), trv), DecoratedInterval(∅, trv)) --> true - @fact precedes(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) --> false - @fact precedes(DecoratedInterval(Interval(0.0, 2.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) --> false - @fact precedes(DecoratedInterval(Interval(-0.0, 2.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) --> false - @fact precedes(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(1.0, 2.0), trv)) --> false - @fact precedes(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) --> false - @fact precedes(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) --> true - @fact precedes(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(Interval(3.0, 4.0), def)) --> true - @fact precedes(DecoratedInterval(Interval(-3.0, -1.0), def), DecoratedInterval(Interval(-1.0, 0.0), trv)) --> true - @fact precedes(DecoratedInterval(Interval(-3.0, -1.0), trv), DecoratedInterval(Interval(-1.0, -0.0), trv)) --> true - @fact precedes(DecoratedInterval(Interval(1.0, 3.5), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) --> false - @fact precedes(DecoratedInterval(Interval(1.0, 4.0), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) --> false - @fact precedes(DecoratedInterval(Interval(-3.0, -0.1), trv), DecoratedInterval(Interval(-1.0, 0.0), trv)) --> false - @fact precedes(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, -0.0), trv)) --> true - @fact precedes(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(0.0, 0.0), def)) --> true - @fact precedes(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(0.0, 0.0), trv)) --> true - @fact precedes(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(0.0, -0.0), trv)) --> true - @fact precedes(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(0.0, 0.0), trv)) --> true - @fact precedes(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv)) --> true +@testset "minimal_precedes_dec_test" begin + @test precedes(DecoratedInterval(∅, trv), DecoratedInterval(Interval(3.0, 4.0), def)) + @test precedes(DecoratedInterval(Interval(3.0, 4.0), trv), DecoratedInterval(∅, trv)) + @test precedes(DecoratedInterval(∅, trv), DecoratedInterval(Interval(3.0, 4.0), trv)) + @test precedes(DecoratedInterval(Interval(3.0, 4.0), trv), DecoratedInterval(∅, trv)) + @test precedes(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) == false + @test precedes(DecoratedInterval(Interval(0.0, 2.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) == false + @test precedes(DecoratedInterval(Interval(-0.0, 2.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) == false + @test precedes(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(1.0, 2.0), trv)) == false + @test precedes(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) == false + @test precedes(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) + @test precedes(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(Interval(3.0, 4.0), def)) + @test precedes(DecoratedInterval(Interval(-3.0, -1.0), def), DecoratedInterval(Interval(-1.0, 0.0), trv)) + @test precedes(DecoratedInterval(Interval(-3.0, -1.0), trv), DecoratedInterval(Interval(-1.0, -0.0), trv)) + @test precedes(DecoratedInterval(Interval(1.0, 3.5), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) == false + @test precedes(DecoratedInterval(Interval(1.0, 4.0), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) == false + @test precedes(DecoratedInterval(Interval(-3.0, -0.1), trv), DecoratedInterval(Interval(-1.0, 0.0), trv)) == false + @test precedes(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, -0.0), trv)) + @test precedes(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(0.0, 0.0), def)) + @test precedes(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(0.0, 0.0), trv)) + @test precedes(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(0.0, -0.0), trv)) + @test precedes(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(0.0, 0.0), trv)) + @test precedes(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv)) end -facts("minimal_isinterior_test") do - @fact ∅ ⪽ ∅ --> true - @fact isinterior(∅, ∅) --> true - @fact ∅ ⪽ Interval(0.0, 4.0) --> true - @fact isinterior(∅, Interval(0.0, 4.0)) --> true - @fact Interval(0.0, 4.0) ⪽ ∅ --> false - @fact isinterior(Interval(0.0, 4.0), ∅) --> false - @fact Interval(-Inf, Inf) ⪽ Interval(-Inf, Inf) --> true - @fact isinterior(Interval(-Inf, Inf), Interval(-Inf, Inf)) --> true - @fact Interval(0.0, 4.0) ⪽ Interval(-Inf, Inf) --> true - @fact isinterior(Interval(0.0, 4.0), Interval(-Inf, Inf)) --> true - @fact ∅ ⪽ Interval(-Inf, Inf) --> true - @fact isinterior(∅, Interval(-Inf, Inf)) --> true - @fact Interval(-Inf, Inf) ⪽ Interval(0.0, 4.0) --> false - @fact isinterior(Interval(-Inf, Inf), Interval(0.0, 4.0)) --> false - @fact Interval(0.0, 4.0) ⪽ Interval(0.0, 4.0) --> false - @fact isinterior(Interval(0.0, 4.0), Interval(0.0, 4.0)) --> false - @fact Interval(1.0, 2.0) ⪽ Interval(0.0, 4.0) --> true - @fact isinterior(Interval(1.0, 2.0), Interval(0.0, 4.0)) --> true - @fact Interval(-2.0, 2.0) ⪽ Interval(-2.0, 4.0) --> false - @fact isinterior(Interval(-2.0, 2.0), Interval(-2.0, 4.0)) --> false - @fact Interval(-0.0, -0.0) ⪽ Interval(-2.0, 4.0) --> true - @fact isinterior(Interval(-0.0, -0.0), Interval(-2.0, 4.0)) --> true - @fact Interval(0.0, 0.0) ⪽ Interval(-2.0, 4.0) --> true - @fact isinterior(Interval(0.0, 0.0), Interval(-2.0, 4.0)) --> true - @fact Interval(0.0, 0.0) ⪽ Interval(-0.0, -0.0) --> false - @fact isinterior(Interval(0.0, 0.0), Interval(-0.0, -0.0)) --> false - @fact Interval(0.0, 4.4) ⪽ Interval(0.0, 4.0) --> false - @fact isinterior(Interval(0.0, 4.4), Interval(0.0, 4.0)) --> false - @fact Interval(-1.0, -1.0) ⪽ Interval(0.0, 4.0) --> false - @fact isinterior(Interval(-1.0, -1.0), Interval(0.0, 4.0)) --> false - @fact Interval(2.0, 2.0) ⪽ Interval(-2.0, -1.0) --> false - @fact isinterior(Interval(2.0, 2.0), Interval(-2.0, -1.0)) --> false +@testset "minimal_interior_test" begin + @test ⪽(∅, ∅) + @test isinterior(∅, ∅) + @test ⪽(∅, Interval(0.0, 4.0)) + @test isinterior(∅, Interval(0.0, 4.0)) + @test ⪽(Interval(0.0, 4.0), ∅) == false + @test isinterior(Interval(0.0, 4.0), ∅) == false + @test ⪽(Interval(-Inf, Inf), Interval(-Inf, Inf)) + @test isinterior(Interval(-Inf, Inf), Interval(-Inf, Inf)) + @test ⪽(Interval(0.0, 4.0), Interval(-Inf, Inf)) + @test isinterior(Interval(0.0, 4.0), Interval(-Inf, Inf)) + @test ⪽(∅, Interval(-Inf, Inf)) + @test isinterior(∅, Interval(-Inf, Inf)) + @test ⪽(Interval(-Inf, Inf), Interval(0.0, 4.0)) == false + @test isinterior(Interval(-Inf, Inf), Interval(0.0, 4.0)) == false + @test ⪽(Interval(0.0, 4.0), Interval(0.0, 4.0)) == false + @test isinterior(Interval(0.0, 4.0), Interval(0.0, 4.0)) == false + @test ⪽(Interval(1.0, 2.0), Interval(0.0, 4.0)) + @test isinterior(Interval(1.0, 2.0), Interval(0.0, 4.0)) + @test ⪽(Interval(-2.0, 2.0), Interval(-2.0, 4.0)) == false + @test isinterior(Interval(-2.0, 2.0), Interval(-2.0, 4.0)) == false + @test ⪽(Interval(-0.0, -0.0), Interval(-2.0, 4.0)) + @test isinterior(Interval(-0.0, -0.0), Interval(-2.0, 4.0)) + @test ⪽(Interval(0.0, 0.0), Interval(-2.0, 4.0)) + @test isinterior(Interval(0.0, 0.0), Interval(-2.0, 4.0)) + @test ⪽(Interval(0.0, 0.0), Interval(-0.0, -0.0)) == false + @test isinterior(Interval(0.0, 0.0), Interval(-0.0, -0.0)) == false + @test ⪽(Interval(0.0, 4.4), Interval(0.0, 4.0)) == false + @test isinterior(Interval(0.0, 4.4), Interval(0.0, 4.0)) == false + @test ⪽(Interval(-1.0, -1.0), Interval(0.0, 4.0)) == false + @test isinterior(Interval(-1.0, -1.0), Interval(0.0, 4.0)) == false + @test ⪽(Interval(2.0, 2.0), Interval(-2.0, -1.0)) == false + @test isinterior(Interval(2.0, 2.0), Interval(-2.0, -1.0)) == false end -facts("minimal_isinterior_dec_test") do - @fact DecoratedInterval(∅, trv) ⪽ DecoratedInterval(Interval(0.0, 4.0), trv) --> true - @fact isinterior(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 4.0), trv)) --> true - @fact DecoratedInterval(Interval(0.0, 4.0), def) ⪽ DecoratedInterval(∅, trv) --> false - @fact isinterior(DecoratedInterval(Interval(0.0, 4.0), def), DecoratedInterval(∅, trv)) --> false - @fact DecoratedInterval(Interval(0.0, 4.0), trv) ⪽ DecoratedInterval(∅, trv) --> false - @fact isinterior(DecoratedInterval(Interval(0.0, 4.0), trv), DecoratedInterval(∅, trv)) --> false - @fact DecoratedInterval(Interval(-Inf, Inf), trv) ⪽ DecoratedInterval(Interval(-Inf, Inf), trv) --> true - @fact isinterior(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) --> true - @fact DecoratedInterval(Interval(0.0, 4.0), trv) ⪽ DecoratedInterval(Interval(-Inf, Inf), trv) --> true - @fact isinterior(DecoratedInterval(Interval(0.0, 4.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) --> true - @fact DecoratedInterval(∅, trv) ⪽ DecoratedInterval(Interval(-Inf, Inf), trv) --> true - @fact isinterior(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-Inf, Inf), trv)) --> true - @fact DecoratedInterval(Interval(-Inf, Inf), trv) ⪽ DecoratedInterval(Interval(0.0, 4.0), trv) --> false - @fact isinterior(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(0.0, 4.0), trv)) --> false - @fact DecoratedInterval(Interval(0.0, 4.0), trv) ⪽ DecoratedInterval(Interval(0.0, 4.0), trv) --> false - @fact isinterior(DecoratedInterval(Interval(0.0, 4.0), trv), DecoratedInterval(Interval(0.0, 4.0), trv)) --> false - @fact DecoratedInterval(Interval(1.0, 2.0), def) ⪽ DecoratedInterval(Interval(0.0, 4.0), trv) --> true - @fact isinterior(DecoratedInterval(Interval(1.0, 2.0), def), DecoratedInterval(Interval(0.0, 4.0), trv)) --> true - @fact DecoratedInterval(Interval(-2.0, 2.0), trv) ⪽ DecoratedInterval(Interval(-2.0, 4.0), def) --> false - @fact isinterior(DecoratedInterval(Interval(-2.0, 2.0), trv), DecoratedInterval(Interval(-2.0, 4.0), def)) --> false - @fact DecoratedInterval(Interval(-0.0, -0.0), trv) ⪽ DecoratedInterval(Interval(-2.0, 4.0), trv) --> true - @fact isinterior(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-2.0, 4.0), trv)) --> true - @fact DecoratedInterval(Interval(0.0, 0.0), def) ⪽ DecoratedInterval(Interval(-2.0, 4.0), trv) --> true - @fact isinterior(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(-2.0, 4.0), trv)) --> true - @fact DecoratedInterval(Interval(0.0, 0.0), trv) ⪽ DecoratedInterval(Interval(-0.0, -0.0), trv) --> false - @fact isinterior(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, -0.0), trv)) --> false - @fact DecoratedInterval(Interval(0.0, 4.4), trv) ⪽ DecoratedInterval(Interval(0.0, 4.0), trv) --> false - @fact isinterior(DecoratedInterval(Interval(0.0, 4.4), trv), DecoratedInterval(Interval(0.0, 4.0), trv)) --> false - @fact DecoratedInterval(Interval(-1.0, -1.0), trv) ⪽ DecoratedInterval(Interval(0.0, 4.0), def) --> false - @fact isinterior(DecoratedInterval(Interval(-1.0, -1.0), trv), DecoratedInterval(Interval(0.0, 4.0), def)) --> false - @fact DecoratedInterval(Interval(2.0, 2.0), def) ⪽ DecoratedInterval(Interval(-2.0, -1.0), trv) --> false - @fact isinterior(DecoratedInterval(Interval(2.0, 2.0), def), DecoratedInterval(Interval(-2.0, -1.0), trv)) --> false +@testset "minimal_interior_dec_test" begin + @test ⪽(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 4.0), trv)) + @test isinterior(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 4.0), trv)) + @test ⪽(DecoratedInterval(Interval(0.0, 4.0), def), DecoratedInterval(∅, trv)) == false + @test isinterior(DecoratedInterval(Interval(0.0, 4.0), def), DecoratedInterval(∅, trv)) == false + @test ⪽(DecoratedInterval(Interval(0.0, 4.0), trv), DecoratedInterval(∅, trv)) == false + @test isinterior(DecoratedInterval(Interval(0.0, 4.0), trv), DecoratedInterval(∅, trv)) == false + @test ⪽(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) + @test isinterior(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) + @test ⪽(DecoratedInterval(Interval(0.0, 4.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) + @test isinterior(DecoratedInterval(Interval(0.0, 4.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) + @test ⪽(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-Inf, Inf), trv)) + @test isinterior(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-Inf, Inf), trv)) + @test ⪽(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(0.0, 4.0), trv)) == false + @test isinterior(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(0.0, 4.0), trv)) == false + @test ⪽(DecoratedInterval(Interval(0.0, 4.0), trv), DecoratedInterval(Interval(0.0, 4.0), trv)) == false + @test isinterior(DecoratedInterval(Interval(0.0, 4.0), trv), DecoratedInterval(Interval(0.0, 4.0), trv)) == false + @test ⪽(DecoratedInterval(Interval(1.0, 2.0), def), DecoratedInterval(Interval(0.0, 4.0), trv)) + @test isinterior(DecoratedInterval(Interval(1.0, 2.0), def), DecoratedInterval(Interval(0.0, 4.0), trv)) + @test ⪽(DecoratedInterval(Interval(-2.0, 2.0), trv), DecoratedInterval(Interval(-2.0, 4.0), def)) == false + @test isinterior(DecoratedInterval(Interval(-2.0, 2.0), trv), DecoratedInterval(Interval(-2.0, 4.0), def)) == false + @test ⪽(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-2.0, 4.0), trv)) + @test isinterior(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-2.0, 4.0), trv)) + @test ⪽(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(-2.0, 4.0), trv)) + @test isinterior(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(-2.0, 4.0), trv)) + @test ⪽(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, -0.0), trv)) == false + @test isinterior(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, -0.0), trv)) == false + @test ⪽(DecoratedInterval(Interval(0.0, 4.4), trv), DecoratedInterval(Interval(0.0, 4.0), trv)) == false + @test isinterior(DecoratedInterval(Interval(0.0, 4.4), trv), DecoratedInterval(Interval(0.0, 4.0), trv)) == false + @test ⪽(DecoratedInterval(Interval(-1.0, -1.0), trv), DecoratedInterval(Interval(0.0, 4.0), def)) == false + @test isinterior(DecoratedInterval(Interval(-1.0, -1.0), trv), DecoratedInterval(Interval(0.0, 4.0), def)) == false + @test ⪽(DecoratedInterval(Interval(2.0, 2.0), def), DecoratedInterval(Interval(-2.0, -1.0), trv)) == false + @test isinterior(DecoratedInterval(Interval(2.0, 2.0), def), DecoratedInterval(Interval(-2.0, -1.0), trv)) == false end -facts("minimal_strictLess_test") do - @fact ∅ < ∅ --> true - @fact Interval(1.0, 2.0) < ∅ --> false - @fact ∅ < Interval(1.0, 2.0) --> false - @fact Interval(-Inf, Inf) < Interval(-Inf, Inf) --> true - @fact Interval(1.0, 2.0) < Interval(-Inf, Inf) --> false - @fact Interval(-Inf, Inf) < Interval(1.0, 2.0) --> false - @fact Interval(1.0, 2.0) < Interval(1.0, 2.0) --> false - @fact Interval(1.0, 2.0) < Interval(3.0, 4.0) --> true - @fact Interval(1.0, 3.5) < Interval(3.0, 4.0) --> true - @fact Interval(1.0, 4.0) < Interval(3.0, 4.0) --> false - @fact Interval(0.0, 4.0) < Interval(0.0, 4.0) --> false - @fact Interval(-0.0, 4.0) < Interval(0.0, 4.0) --> false - @fact Interval(-2.0, -1.0) < Interval(-2.0, -1.0) --> false - @fact Interval(-3.0, -1.5) < Interval(-2.0, -1.0) --> true +@testset "minimal_strictLess_test" begin + @test <(∅, ∅) + @test <(Interval(1.0, 2.0), ∅) == false + @test <(∅, Interval(1.0, 2.0)) == false + @test <(Interval(-Inf, Inf), Interval(-Inf, Inf)) + @test <(Interval(1.0, 2.0), Interval(-Inf, Inf)) == false + @test <(Interval(-Inf, Inf), Interval(1.0, 2.0)) == false + @test <(Interval(1.0, 2.0), Interval(1.0, 2.0)) == false + @test <(Interval(1.0, 2.0), Interval(3.0, 4.0)) + @test <(Interval(1.0, 3.5), Interval(3.0, 4.0)) + @test <(Interval(1.0, 4.0), Interval(3.0, 4.0)) == false + @test <(Interval(0.0, 4.0), Interval(0.0, 4.0)) == false + @test <(Interval(-0.0, 4.0), Interval(0.0, 4.0)) == false + @test <(Interval(-2.0, -1.0), Interval(-2.0, -1.0)) == false + @test <(Interval(-3.0, -1.5), Interval(-2.0, -1.0)) end -facts("minimal_strictLess_dec_test") do - @fact DecoratedInterval(Interval(1.0, 2.0), trv) < DecoratedInterval(∅, trv) --> false - @fact DecoratedInterval(∅, trv) < DecoratedInterval(Interval(1.0, 2.0), def) --> false - @fact DecoratedInterval(Interval(1.0, 2.0), def) < DecoratedInterval(∅, trv) --> false - @fact DecoratedInterval(∅, trv) < DecoratedInterval(Interval(1.0, 2.0), def) --> false - @fact DecoratedInterval(Interval(-Inf, Inf), trv) < DecoratedInterval(Interval(-Inf, Inf), trv) --> true - @fact DecoratedInterval(Interval(1.0, 2.0), trv) < DecoratedInterval(Interval(-Inf, Inf), trv) --> false - @fact DecoratedInterval(Interval(-Inf, Inf), trv) < DecoratedInterval(Interval(1.0, 2.0), trv) --> false - @fact DecoratedInterval(Interval(1.0, 2.0), trv) < DecoratedInterval(Interval(1.0, 2.0), trv) --> false - @fact DecoratedInterval(Interval(1.0, 2.0), trv) < DecoratedInterval(Interval(3.0, 4.0), trv) --> true - @fact DecoratedInterval(Interval(1.0, 3.5), def) < DecoratedInterval(Interval(3.0, 4.0), trv) --> true - @fact DecoratedInterval(Interval(1.0, 4.0), trv) < DecoratedInterval(Interval(3.0, 4.0), def) --> false - @fact DecoratedInterval(Interval(0.0, 4.0), trv) < DecoratedInterval(Interval(0.0, 4.0), def) --> false - @fact DecoratedInterval(Interval(-0.0, 4.0), def) < DecoratedInterval(Interval(0.0, 4.0), trv) --> false - @fact DecoratedInterval(Interval(-2.0, -1.0), def) < DecoratedInterval(Interval(-2.0, -1.0), def) --> false - @fact DecoratedInterval(Interval(-3.0, -1.5), trv) < DecoratedInterval(Interval(-2.0, -1.0), trv) --> true +@testset "minimal_strictLess_dec_test" begin + @test <(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(∅, trv)) == false + @test <(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 2.0), def)) == false + @test <(DecoratedInterval(Interval(1.0, 2.0), def), DecoratedInterval(∅, trv)) == false + @test <(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 2.0), def)) == false + @test <(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) + @test <(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) == false + @test <(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(1.0, 2.0), trv)) == false + @test <(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(1.0, 2.0), trv)) == false + @test <(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) + @test <(DecoratedInterval(Interval(1.0, 3.5), def), DecoratedInterval(Interval(3.0, 4.0), trv)) + @test <(DecoratedInterval(Interval(1.0, 4.0), trv), DecoratedInterval(Interval(3.0, 4.0), def)) == false + @test <(DecoratedInterval(Interval(0.0, 4.0), trv), DecoratedInterval(Interval(0.0, 4.0), def)) == false + @test <(DecoratedInterval(Interval(-0.0, 4.0), def), DecoratedInterval(Interval(0.0, 4.0), trv)) == false + @test <(DecoratedInterval(Interval(-2.0, -1.0), def), DecoratedInterval(Interval(-2.0, -1.0), def)) == false + @test <(DecoratedInterval(Interval(-3.0, -1.5), trv), DecoratedInterval(Interval(-2.0, -1.0), trv)) end -facts("minimal_strictPrecedes_test") do - @fact strictprecedes(∅, Interval(3.0, 4.0)) --> true - @fact strictprecedes(Interval(3.0, 4.0), ∅) --> true - @fact strictprecedes(∅, ∅) --> true - @fact strictprecedes(Interval(1.0, 2.0), Interval(-Inf, Inf)) --> false - @fact strictprecedes(Interval(-Inf, Inf), Interval(1.0, 2.0)) --> false - @fact strictprecedes(Interval(-Inf, Inf), Interval(-Inf, Inf)) --> false - @fact strictprecedes(Interval(1.0, 2.0), Interval(3.0, 4.0)) --> true - @fact strictprecedes(Interval(1.0, 3.0), Interval(3.0, 4.0)) --> false - @fact strictprecedes(Interval(-3.0, -1.0), Interval(-1.0, 0.0)) --> false - @fact strictprecedes(Interval(-3.0, -0.0), Interval(0.0, 1.0)) --> false - @fact strictprecedes(Interval(-3.0, 0.0), Interval(-0.0, 1.0)) --> false - @fact strictprecedes(Interval(1.0, 3.5), Interval(3.0, 4.0)) --> false - @fact strictprecedes(Interval(1.0, 4.0), Interval(3.0, 4.0)) --> false - @fact strictprecedes(Interval(-3.0, -0.1), Interval(-1.0, 0.0)) --> false +@testset "minimal_strictPrecedes_test" begin + @test strictprecedes(∅, Interval(3.0, 4.0)) + @test strictprecedes(Interval(3.0, 4.0), ∅) + @test strictprecedes(∅, ∅) + @test strictprecedes(Interval(1.0, 2.0), Interval(-Inf, Inf)) == false + @test strictprecedes(Interval(-Inf, Inf), Interval(1.0, 2.0)) == false + @test strictprecedes(Interval(-Inf, Inf), Interval(-Inf, Inf)) == false + @test strictprecedes(Interval(1.0, 2.0), Interval(3.0, 4.0)) + @test strictprecedes(Interval(1.0, 3.0), Interval(3.0, 4.0)) == false + @test strictprecedes(Interval(-3.0, -1.0), Interval(-1.0, 0.0)) == false + @test strictprecedes(Interval(-3.0, -0.0), Interval(0.0, 1.0)) == false + @test strictprecedes(Interval(-3.0, 0.0), Interval(-0.0, 1.0)) == false + @test strictprecedes(Interval(1.0, 3.5), Interval(3.0, 4.0)) == false + @test strictprecedes(Interval(1.0, 4.0), Interval(3.0, 4.0)) == false + @test strictprecedes(Interval(-3.0, -0.1), Interval(-1.0, 0.0)) == false end -facts("minimal_strictPrecedes_dec_test") do - @fact strictprecedes(DecoratedInterval(∅, trv), DecoratedInterval(Interval(3.0, 4.0), trv)) --> true - @fact strictprecedes(DecoratedInterval(Interval(3.0, 4.0), def), DecoratedInterval(∅, trv)) --> true - @fact strictprecedes(DecoratedInterval(∅, trv), DecoratedInterval(Interval(3.0, 4.0), trv)) --> true - @fact strictprecedes(DecoratedInterval(Interval(3.0, 4.0), def), DecoratedInterval(∅, trv)) --> true - @fact strictprecedes(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) --> false - @fact strictprecedes(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(1.0, 2.0), trv)) --> false - @fact strictprecedes(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) --> false - @fact strictprecedes(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) --> true - @fact strictprecedes(DecoratedInterval(Interval(1.0, 3.0), def), DecoratedInterval(Interval(3.0, 4.0), trv)) --> false - @fact strictprecedes(DecoratedInterval(Interval(-3.0, -1.0), trv), DecoratedInterval(Interval(-1.0, 0.0), def)) --> false - @fact strictprecedes(DecoratedInterval(Interval(-3.0, -0.0), def), DecoratedInterval(Interval(0.0, 1.0), trv)) --> false - @fact strictprecedes(DecoratedInterval(Interval(-3.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 1.0), trv)) --> false - @fact strictprecedes(DecoratedInterval(Interval(1.0, 3.5), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) --> false - @fact strictprecedes(DecoratedInterval(Interval(1.0, 4.0), trv), DecoratedInterval(Interval(3.0, 4.0), def)) --> false - @fact strictprecedes(DecoratedInterval(Interval(-3.0, -0.1), trv), DecoratedInterval(Interval(-1.0, 0.0), trv)) --> false +@testset "minimal_strictPrecedes_dec_test" begin + @test strictprecedes(DecoratedInterval(∅, trv), DecoratedInterval(Interval(3.0, 4.0), trv)) + @test strictprecedes(DecoratedInterval(Interval(3.0, 4.0), def), DecoratedInterval(∅, trv)) + @test strictprecedes(DecoratedInterval(∅, trv), DecoratedInterval(Interval(3.0, 4.0), trv)) + @test strictprecedes(DecoratedInterval(Interval(3.0, 4.0), def), DecoratedInterval(∅, trv)) + @test strictprecedes(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) == false + @test strictprecedes(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(1.0, 2.0), trv)) == false + @test strictprecedes(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) == false + @test strictprecedes(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) + @test strictprecedes(DecoratedInterval(Interval(1.0, 3.0), def), DecoratedInterval(Interval(3.0, 4.0), trv)) == false + @test strictprecedes(DecoratedInterval(Interval(-3.0, -1.0), trv), DecoratedInterval(Interval(-1.0, 0.0), def)) == false + @test strictprecedes(DecoratedInterval(Interval(-3.0, -0.0), def), DecoratedInterval(Interval(0.0, 1.0), trv)) == false + @test strictprecedes(DecoratedInterval(Interval(-3.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 1.0), trv)) == false + @test strictprecedes(DecoratedInterval(Interval(1.0, 3.5), trv), DecoratedInterval(Interval(3.0, 4.0), trv)) == false + @test strictprecedes(DecoratedInterval(Interval(1.0, 4.0), trv), DecoratedInterval(Interval(3.0, 4.0), def)) == false + @test strictprecedes(DecoratedInterval(Interval(-3.0, -0.1), trv), DecoratedInterval(Interval(-1.0, 0.0), trv)) == false end -facts("minimal_disjoint_test") do - @fact isdisjoint(∅, Interval(3.0, 4.0)) --> true - @fact isdisjoint(Interval(3.0, 4.0), ∅) --> true - @fact isdisjoint(∅, ∅) --> true - @fact isdisjoint(Interval(3.0, 4.0), Interval(1.0, 2.0)) --> true - @fact isdisjoint(Interval(0.0, 0.0), Interval(-0.0, -0.0)) --> false - @fact isdisjoint(Interval(0.0, -0.0), Interval(-0.0, 0.0)) --> false - @fact isdisjoint(Interval(3.0, 4.0), Interval(1.0, 7.0)) --> false - @fact isdisjoint(Interval(3.0, 4.0), Interval(-Inf, Inf)) --> false - @fact isdisjoint(Interval(-Inf, Inf), Interval(1.0, 7.0)) --> false - @fact isdisjoint(Interval(-Inf, Inf), Interval(-Inf, Inf)) --> false +@testset "minimal_disjoint_test" begin + @test isdisjoint(∅, Interval(3.0, 4.0)) + @test isdisjoint(Interval(3.0, 4.0), ∅) + @test isdisjoint(∅, ∅) + @test isdisjoint(Interval(3.0, 4.0), Interval(1.0, 2.0)) + @test isdisjoint(Interval(0.0, 0.0), Interval(-0.0, -0.0)) == false + @test isdisjoint(Interval(0.0, -0.0), Interval(-0.0, 0.0)) == false + @test isdisjoint(Interval(3.0, 4.0), Interval(1.0, 7.0)) == false + @test isdisjoint(Interval(3.0, 4.0), Interval(-Inf, Inf)) == false + @test isdisjoint(Interval(-Inf, Inf), Interval(1.0, 7.0)) == false + @test isdisjoint(Interval(-Inf, Inf), Interval(-Inf, Inf)) == false end -facts("minimal_disjoint_dec_test") do - @fact isdisjoint(DecoratedInterval(∅, trv), DecoratedInterval(Interval(3.0, 4.0), def)) --> true - @fact isdisjoint(DecoratedInterval(Interval(3.0, 4.0), trv), DecoratedInterval(∅, trv)) --> true - @fact isdisjoint(DecoratedInterval(∅, trv), DecoratedInterval(Interval(3.0, 4.0), trv)) --> true - @fact isdisjoint(DecoratedInterval(Interval(3.0, 4.0), trv), DecoratedInterval(∅, trv)) --> true - @fact isdisjoint(DecoratedInterval(Interval(3.0, 4.0), trv), DecoratedInterval(Interval(1.0, 2.0), def)) --> true - @fact isdisjoint(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, -0.0), trv)) --> false - @fact isdisjoint(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv)) --> false - @fact isdisjoint(DecoratedInterval(Interval(3.0, 4.0), def), DecoratedInterval(Interval(1.0, 7.0), def)) --> false - @fact isdisjoint(DecoratedInterval(Interval(3.0, 4.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) --> false - @fact isdisjoint(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(1.0, 7.0), trv)) --> false - @fact isdisjoint(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) --> false +@testset "minimal_disjoint_dec_test" begin + @test isdisjoint(DecoratedInterval(∅, trv), DecoratedInterval(Interval(3.0, 4.0), def)) + @test isdisjoint(DecoratedInterval(Interval(3.0, 4.0), trv), DecoratedInterval(∅, trv)) + @test isdisjoint(DecoratedInterval(∅, trv), DecoratedInterval(Interval(3.0, 4.0), trv)) + @test isdisjoint(DecoratedInterval(Interval(3.0, 4.0), trv), DecoratedInterval(∅, trv)) + @test isdisjoint(DecoratedInterval(Interval(3.0, 4.0), trv), DecoratedInterval(Interval(1.0, 2.0), def)) + @test isdisjoint(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, -0.0), trv)) == false + @test isdisjoint(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv)) == false + @test isdisjoint(DecoratedInterval(Interval(3.0, 4.0), def), DecoratedInterval(Interval(1.0, 7.0), def)) == false + @test isdisjoint(DecoratedInterval(Interval(3.0, 4.0), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) == false + @test isdisjoint(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(1.0, 7.0), trv)) == false + @test isdisjoint(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) == false end -# FactCheck.exitstatus() diff --git a/test/ITF1788_tests/libieeep1788_tests_cancel.jl b/test/ITF1788_tests/libieeep1788_tests_cancel.jl index 272ba2c..f36cbf4 100644 --- a/test/ITF1788_tests/libieeep1788_tests_cancel.jl +++ b/test/ITF1788_tests/libieeep1788_tests_cancel.jl @@ -1,26 +1,31 @@ -# -# Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) -# Copyright 2015 Oliver Heimlich (oheim@posteo.de) -# -# Original author: Marco Nehmeier (unit tests in libieeep1788) -# Converted into portable ITL format by Oliver Heimlich with minor corrections. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# +#= + Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) + Copyright 2015 Oliver Heimlich (oheim@posteo.de) + + Original author: Marco Nehmeier (unit tests in libieeep1788) + Converted into portable ITL format by Oliver Heimlich with minor corrections. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +=# #Language imports #Test library imports -using FactCheck +if VERSION >= v"0.5.0-dev+7720" + using Base.Test +else + using BaseTestNext + const Test = BaseTestNext +end #Arithmetic library imports using ValidatedNumerics @@ -30,378 +35,377 @@ setprecision(53) setprecision(Interval, Float64) setrounding(Interval, :narrow) -facts("minimal_cancelPlus_test") do - @fact cancelplus(Interval(-Inf, -1.0), ∅) --> entireinterval(Float64) - @fact cancelplus(Interval(-1.0, Inf), ∅) --> entireinterval(Float64) - @fact cancelplus(entireinterval(Float64), ∅) --> entireinterval(Float64) - @fact cancelplus(Interval(-Inf, -1.0), Interval(-5.0, 1.0)) --> entireinterval(Float64) - @fact cancelplus(Interval(-1.0, Inf), Interval(-5.0, 1.0)) --> entireinterval(Float64) - @fact cancelplus(entireinterval(Float64), Interval(-5.0, 1.0)) --> entireinterval(Float64) - @fact cancelplus(Interval(-Inf, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact cancelplus(Interval(-1.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact cancelplus(∅, Interval(1.0, Inf)) --> entireinterval(Float64) - @fact cancelplus(∅, Interval(-Inf, 1.0)) --> entireinterval(Float64) - @fact cancelplus(∅, entireinterval(Float64)) --> entireinterval(Float64) - @fact cancelplus(Interval(-1.0, 5.0), Interval(1.0, Inf)) --> entireinterval(Float64) - @fact cancelplus(Interval(-1.0, 5.0), Interval(-Inf, 1.0)) --> entireinterval(Float64) - @fact cancelplus(Interval(-1.0, 5.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact cancelplus(entireinterval(Float64), Interval(1.0, Inf)) --> entireinterval(Float64) - @fact cancelplus(entireinterval(Float64), Interval(-Inf, 1.0)) --> entireinterval(Float64) - @fact cancelplus(entireinterval(Float64), entireinterval(Float64)) --> entireinterval(Float64) - @fact cancelplus(Interval(-5.0, -1.0), Interval(1.0, 5.1)) --> entireinterval(Float64) - @fact cancelplus(Interval(-5.0, -1.0), Interval(0.9, 5.0)) --> entireinterval(Float64) - @fact cancelplus(Interval(-5.0, -1.0), Interval(0.9, 5.1)) --> entireinterval(Float64) - @fact cancelplus(Interval(-10.0, 5.0), Interval(-5.0, 10.1)) --> entireinterval(Float64) - @fact cancelplus(Interval(-10.0, 5.0), Interval(-5.1, 10.0)) --> entireinterval(Float64) - @fact cancelplus(Interval(-10.0, 5.0), Interval(-5.1, 10.1)) --> entireinterval(Float64) - @fact cancelplus(Interval(1.0, 5.0), Interval(-5.0, -0.9)) --> entireinterval(Float64) - @fact cancelplus(Interval(1.0, 5.0), Interval(-5.1, -1.0)) --> entireinterval(Float64) - @fact cancelplus(Interval(1.0, 5.0), Interval(-5.1, -0.9)) --> entireinterval(Float64) - @fact cancelplus(Interval(-10.0, -1.0), ∅) --> entireinterval(Float64) - @fact cancelplus(Interval(-10.0, 5.0), ∅) --> entireinterval(Float64) - @fact cancelplus(Interval(1.0, 5.0), ∅) --> entireinterval(Float64) - @fact cancelplus(∅, ∅) --> ∅ - @fact cancelplus(∅, Interval(1.0, 10.0)) --> ∅ - @fact cancelplus(∅, Interval(-5.0, 10.0)) --> ∅ - @fact cancelplus(∅, Interval(-5.0, -1.0)) --> ∅ - @fact cancelplus(Interval(-5.1, -0.0), Interval(0.0, 5.0)) --> Interval(-0x1.999999999998p-4, 0.0) - @fact cancelplus(Interval(-5.1, -1.0), Interval(1.0, 5.0)) --> Interval(-0x1.999999999998p-4, 0.0) - @fact cancelplus(Interval(-5.0, -0.9), Interval(1.0, 5.0)) --> Interval(0.0, 0x1.9999999999998p-4) - @fact cancelplus(Interval(-5.1, -0.9), Interval(1.0, 5.0)) --> Interval(-0x1.999999999998p-4, 0x1.9999999999998p-4) - @fact cancelplus(Interval(-5.0, -1.0), Interval(1.0, 5.0)) --> Interval(0.0, 0.0) - @fact cancelplus(Interval(-10.1, 5.0), Interval(-5.0, 10.0)) --> Interval(-0x1.999999999998p-4, 0.0) - @fact cancelplus(Interval(-10.0, 5.1), Interval(-5.0, 10.0)) --> Interval(0.0, 0x1.999999999998p-4) - @fact cancelplus(Interval(-10.1, 5.1), Interval(-5.0, 10.0)) --> Interval(-0x1.999999999998p-4, 0x1.999999999998p-4) - @fact cancelplus(Interval(-10.0, 5.0), Interval(-5.0, 10.0)) --> Interval(0.0, 0.0) - @fact cancelplus(Interval(0.9, 5.0), Interval(-5.0, -1.0)) --> Interval(-0x1.9999999999998p-4, 0.0) - @fact cancelplus(Interval(1.0, 5.1), Interval(-5.0, -1.0)) --> Interval(0.0, 0x1.999999999998p-4) - @fact cancelplus(Interval(0.0, 5.1), Interval(-5.0, -0.0)) --> Interval(0.0, 0x1.999999999998p-4) - @fact cancelplus(Interval(0.9, 5.1), Interval(-5.0, -1.0)) --> Interval(-0x1.9999999999998p-4, 0x1.999999999998p-4) - @fact cancelplus(Interval(1.0, 5.0), Interval(-5.0, -1.0)) --> Interval(0.0, 0.0) - @fact cancelplus(Interval(0.0, 5.0), Interval(-5.0, -0.0)) --> Interval(0.0, 0.0) - @fact cancelplus(Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0), Interval(-0x1.999999999999ap-4, -0x1.999999999999ap-4)) --> Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0) - @fact cancelplus(Interval(-0x1.999999999999ap-4, 0x1.ffffffffffffp+0), Interval(-0x1.999999999999ap-4, 0.01)) --> Interval(-0x1.70a3d70a3d70bp-4, 0x1.e666666666657p+0) - @fact cancelplus(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) --> Interval(0x1.fffffffffffffp1023, Inf) - @fact cancelplus(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) --> Interval(0.0, 0.0) - @fact cancelplus(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023)) --> Interval(0.0, 0x1p+971) - @fact cancelplus(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023)) --> Interval(-0x1p+971, 0.0) - @fact cancelplus(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) --> entireinterval(Float64) - @fact cancelplus(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) --> entireinterval(Float64) - @fact cancelplus(Interval(-0x1p+0, 0x1.fffffffffffffp-53), Interval(-0x1p+0, 0x1.ffffffffffffep-53)) --> Interval(-0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1) - @fact cancelplus(Interval(-0x1p+0, 0x1.ffffffffffffep-53), Interval(-0x1p+0, 0x1.fffffffffffffp-53)) --> entireinterval(Float64) +@testset "minimal_cancelPlus_test" begin + @test cancelplus(Interval(-Inf, -1.0), ∅) == entireinterval(Float64) + @test cancelplus(Interval(-1.0, Inf), ∅) == entireinterval(Float64) + @test cancelplus(entireinterval(Float64), ∅) == entireinterval(Float64) + @test cancelplus(Interval(-Inf, -1.0), Interval(-5.0, 1.0)) == entireinterval(Float64) + @test cancelplus(Interval(-1.0, Inf), Interval(-5.0, 1.0)) == entireinterval(Float64) + @test cancelplus(entireinterval(Float64), Interval(-5.0, 1.0)) == entireinterval(Float64) + @test cancelplus(Interval(-Inf, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test cancelplus(Interval(-1.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test cancelplus(∅, Interval(1.0, Inf)) == entireinterval(Float64) + @test cancelplus(∅, Interval(-Inf, 1.0)) == entireinterval(Float64) + @test cancelplus(∅, entireinterval(Float64)) == entireinterval(Float64) + @test cancelplus(Interval(-1.0, 5.0), Interval(1.0, Inf)) == entireinterval(Float64) + @test cancelplus(Interval(-1.0, 5.0), Interval(-Inf, 1.0)) == entireinterval(Float64) + @test cancelplus(Interval(-1.0, 5.0), entireinterval(Float64)) == entireinterval(Float64) + @test cancelplus(entireinterval(Float64), Interval(1.0, Inf)) == entireinterval(Float64) + @test cancelplus(entireinterval(Float64), Interval(-Inf, 1.0)) == entireinterval(Float64) + @test cancelplus(entireinterval(Float64), entireinterval(Float64)) == entireinterval(Float64) + @test cancelplus(Interval(-5.0, -1.0), Interval(1.0, 5.1)) == entireinterval(Float64) + @test cancelplus(Interval(-5.0, -1.0), Interval(0.9, 5.0)) == entireinterval(Float64) + @test cancelplus(Interval(-5.0, -1.0), Interval(0.9, 5.1)) == entireinterval(Float64) + @test cancelplus(Interval(-10.0, 5.0), Interval(-5.0, 10.1)) == entireinterval(Float64) + @test cancelplus(Interval(-10.0, 5.0), Interval(-5.1, 10.0)) == entireinterval(Float64) + @test cancelplus(Interval(-10.0, 5.0), Interval(-5.1, 10.1)) == entireinterval(Float64) + @test cancelplus(Interval(1.0, 5.0), Interval(-5.0, -0.9)) == entireinterval(Float64) + @test cancelplus(Interval(1.0, 5.0), Interval(-5.1, -1.0)) == entireinterval(Float64) + @test cancelplus(Interval(1.0, 5.0), Interval(-5.1, -0.9)) == entireinterval(Float64) + @test cancelplus(Interval(-10.0, -1.0), ∅) == entireinterval(Float64) + @test cancelplus(Interval(-10.0, 5.0), ∅) == entireinterval(Float64) + @test cancelplus(Interval(1.0, 5.0), ∅) == entireinterval(Float64) + @test cancelplus(∅, ∅) == ∅ + @test cancelplus(∅, Interval(1.0, 10.0)) == ∅ + @test cancelplus(∅, Interval(-5.0, 10.0)) == ∅ + @test cancelplus(∅, Interval(-5.0, -1.0)) == ∅ + @test cancelplus(Interval(-5.1, -0.0), Interval(0.0, 5.0)) == Interval(-0x1.999999999998p-4, 0.0) + @test cancelplus(Interval(-5.1, -1.0), Interval(1.0, 5.0)) == Interval(-0x1.999999999998p-4, 0.0) + @test cancelplus(Interval(-5.0, -0.9), Interval(1.0, 5.0)) == Interval(0.0, 0x1.9999999999998p-4) + @test cancelplus(Interval(-5.1, -0.9), Interval(1.0, 5.0)) == Interval(-0x1.999999999998p-4, 0x1.9999999999998p-4) + @test cancelplus(Interval(-5.0, -1.0), Interval(1.0, 5.0)) == Interval(0.0, 0.0) + @test cancelplus(Interval(-10.1, 5.0), Interval(-5.0, 10.0)) == Interval(-0x1.999999999998p-4, 0.0) + @test cancelplus(Interval(-10.0, 5.1), Interval(-5.0, 10.0)) == Interval(0.0, 0x1.999999999998p-4) + @test cancelplus(Interval(-10.1, 5.1), Interval(-5.0, 10.0)) == Interval(-0x1.999999999998p-4, 0x1.999999999998p-4) + @test cancelplus(Interval(-10.0, 5.0), Interval(-5.0, 10.0)) == Interval(0.0, 0.0) + @test cancelplus(Interval(0.9, 5.0), Interval(-5.0, -1.0)) == Interval(-0x1.9999999999998p-4, 0.0) + @test cancelplus(Interval(1.0, 5.1), Interval(-5.0, -1.0)) == Interval(0.0, 0x1.999999999998p-4) + @test cancelplus(Interval(0.0, 5.1), Interval(-5.0, -0.0)) == Interval(0.0, 0x1.999999999998p-4) + @test cancelplus(Interval(0.9, 5.1), Interval(-5.0, -1.0)) == Interval(-0x1.9999999999998p-4, 0x1.999999999998p-4) + @test cancelplus(Interval(1.0, 5.0), Interval(-5.0, -1.0)) == Interval(0.0, 0.0) + @test cancelplus(Interval(0.0, 5.0), Interval(-5.0, -0.0)) == Interval(0.0, 0.0) + @test cancelplus(Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0), Interval(-0x1.999999999999ap-4, -0x1.999999999999ap-4)) == Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0) + @test cancelplus(Interval(-0x1.999999999999ap-4, 0x1.ffffffffffffp+0), Interval(-0x1.999999999999ap-4, 0.01)) == Interval(-0x1.70a3d70a3d70bp-4, 0x1.e666666666657p+0) + @test cancelplus(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) == Interval(0x1.fffffffffffffp1023, Inf) + @test cancelplus(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) == Interval(0.0, 0.0) + @test cancelplus(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023)) == Interval(0.0, 0x1p+971) + @test cancelplus(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023)) == Interval(-0x1p+971, 0.0) + @test cancelplus(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) == entireinterval(Float64) + @test cancelplus(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) == entireinterval(Float64) + @test cancelplus(Interval(-0x1p+0, 0x1.fffffffffffffp-53), Interval(-0x1p+0, 0x1.ffffffffffffep-53)) == Interval(-0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1) + @test cancelplus(Interval(-0x1p+0, 0x1.ffffffffffffep-53), Interval(-0x1p+0, 0x1.fffffffffffffp-53)) == entireinterval(Float64) end -facts("minimal_cancelPlus_dec_test") do - @fact cancelplus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(∅, trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-1.0, Inf), def), DecoratedInterval(∅, trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-1.0, Inf), def), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(Interval(-5.0, 1.0), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(Interval(-5.0, 1.0), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-1.0, Inf), trv), DecoratedInterval(Interval(-5.0, 1.0), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-1.0, Inf), trv), DecoratedInterval(Interval(-5.0, 1.0), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-5.0, 1.0), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-5.0, 1.0), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-1.0, Inf), def), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-1.0, Inf), def), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, Inf), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, Inf), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-Inf, 1.0), trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-Inf, 1.0), trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-1.0, 5.0), dac), DecoratedInterval(Interval(1.0, Inf), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-1.0, 5.0), dac), DecoratedInterval(Interval(1.0, Inf), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-1.0, 5.0), def), DecoratedInterval(Interval(-Inf, 1.0), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-1.0, 5.0), def), DecoratedInterval(Interval(-Inf, 1.0), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-1.0, 5.0), com), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-1.0, 5.0), com), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(1.0, Inf), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(1.0, Inf), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-Inf, 1.0), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-Inf, 1.0), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-5.0, -1.0), com), DecoratedInterval(Interval(1.0, 5.1), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-5.0, -1.0), com), DecoratedInterval(Interval(1.0, 5.1), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-5.0, -1.0), dac), DecoratedInterval(Interval(0.9, 5.0), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-5.0, -1.0), dac), DecoratedInterval(Interval(0.9, 5.0), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-5.0, -1.0), def), DecoratedInterval(Interval(0.9, 5.1), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-5.0, -1.0), def), DecoratedInterval(Interval(0.9, 5.1), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-10.0, 5.0), trv), DecoratedInterval(Interval(-5.0, 10.1), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-10.0, 5.0), trv), DecoratedInterval(Interval(-5.0, 10.1), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-10.0, 5.0), com), DecoratedInterval(Interval(-5.1, 10.0), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-10.0, 5.0), com), DecoratedInterval(Interval(-5.1, 10.0), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-10.0, 5.0), dac), DecoratedInterval(Interval(-5.1, 10.1), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-10.0, 5.0), dac), DecoratedInterval(Interval(-5.1, 10.1), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(1.0, 5.0), def), DecoratedInterval(Interval(-5.0, -0.9), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(1.0, 5.0), def), DecoratedInterval(Interval(-5.0, -0.9), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(1.0, 5.0), trv), DecoratedInterval(Interval(-5.1, -1.0), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(1.0, 5.0), trv), DecoratedInterval(Interval(-5.1, -1.0), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(1.0, 5.0), dac), DecoratedInterval(Interval(-5.1, -0.9), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(1.0, 5.0), dac), DecoratedInterval(Interval(-5.1, -0.9), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-10.0, -1.0), trv), DecoratedInterval(∅, trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-10.0, -1.0), trv), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-10.0, 5.0), def), DecoratedInterval(∅, trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-10.0, 5.0), def), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(1.0, 5.0), com), DecoratedInterval(∅, trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(1.0, 5.0), com), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 10.0), dac)) --> DecoratedInterval(∅, trv) - @fact decoration(cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 10.0), dac))) --> decoration(DecoratedInterval(∅, trv)) - @fact cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-5.0, 10.0), def)) --> DecoratedInterval(∅, trv) - @fact decoration(cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-5.0, 10.0), def))) --> decoration(DecoratedInterval(∅, trv)) - @fact cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-5.0, -1.0), com)) --> DecoratedInterval(∅, trv) - @fact decoration(cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-5.0, -1.0), com))) --> decoration(DecoratedInterval(∅, trv)) - @fact cancelplus(DecoratedInterval(Interval(-5.1, -0.0), com), DecoratedInterval(Interval(0.0, 5.0), com)) --> DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-5.1, -0.0), com), DecoratedInterval(Interval(0.0, 5.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv)) - @fact cancelplus(DecoratedInterval(Interval(-5.1, -1.0), com), DecoratedInterval(Interval(1.0, 5.0), dac)) --> DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-5.1, -1.0), com), DecoratedInterval(Interval(1.0, 5.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv)) - @fact cancelplus(DecoratedInterval(Interval(-5.0, -0.9), com), DecoratedInterval(Interval(1.0, 5.0), def)) --> DecoratedInterval(Interval(0.0, 0x1.9999999999998p-4), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-5.0, -0.9), com), DecoratedInterval(Interval(1.0, 5.0), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.9999999999998p-4), trv)) - @fact cancelplus(DecoratedInterval(Interval(-5.1, -0.9), dac), DecoratedInterval(Interval(1.0, 5.0), trv)) --> DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.9999999999998p-4), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-5.1, -0.9), dac), DecoratedInterval(Interval(1.0, 5.0), trv))) --> decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.9999999999998p-4), trv)) - @fact cancelplus(DecoratedInterval(Interval(-5.0, -1.0), dac), DecoratedInterval(Interval(1.0, 5.0), com)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-5.0, -1.0), dac), DecoratedInterval(Interval(1.0, 5.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact cancelplus(DecoratedInterval(Interval(-10.1, 5.0), dac), DecoratedInterval(Interval(-5.0, 10.0), dac)) --> DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-10.1, 5.0), dac), DecoratedInterval(Interval(-5.0, 10.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv)) - @fact cancelplus(DecoratedInterval(Interval(-10.0, 5.1), def), DecoratedInterval(Interval(-5.0, 10.0), def)) --> DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-10.0, 5.1), def), DecoratedInterval(Interval(-5.0, 10.0), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv)) - @fact cancelplus(DecoratedInterval(Interval(-10.1, 5.1), def), DecoratedInterval(Interval(-5.0, 10.0), trv)) --> DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.999999999998p-4), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-10.1, 5.1), def), DecoratedInterval(Interval(-5.0, 10.0), trv))) --> decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.999999999998p-4), trv)) - @fact cancelplus(DecoratedInterval(Interval(-10.0, 5.0), def), DecoratedInterval(Interval(-5.0, 10.0), com)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-10.0, 5.0), def), DecoratedInterval(Interval(-5.0, 10.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact cancelplus(DecoratedInterval(Interval(0.9, 5.0), trv), DecoratedInterval(Interval(-5.0, -1.0), dac)) --> DecoratedInterval(Interval(-0x1.9999999999998p-4, 0.0), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(0.9, 5.0), trv), DecoratedInterval(Interval(-5.0, -1.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.9999999999998p-4, 0.0), trv)) - @fact cancelplus(DecoratedInterval(Interval(1.0, 5.1), trv), DecoratedInterval(Interval(-5.0, -1.0), def)) --> DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(1.0, 5.1), trv), DecoratedInterval(Interval(-5.0, -1.0), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv)) - @fact cancelplus(DecoratedInterval(Interval(0.0, 5.1), trv), DecoratedInterval(Interval(-5.0, -0.0), trv)) --> DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(0.0, 5.1), trv), DecoratedInterval(Interval(-5.0, -0.0), trv))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv)) - @fact cancelplus(DecoratedInterval(Interval(0.9, 5.1), com), DecoratedInterval(Interval(-5.0, -1.0), com)) --> DecoratedInterval(Interval(-0x1.9999999999998p-4, 0x1.999999999998p-4), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(0.9, 5.1), com), DecoratedInterval(Interval(-5.0, -1.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.9999999999998p-4, 0x1.999999999998p-4), trv)) - @fact cancelplus(DecoratedInterval(Interval(1.0, 5.0), dac), DecoratedInterval(Interval(-5.0, -1.0), dac)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(1.0, 5.0), dac), DecoratedInterval(Interval(-5.0, -1.0), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact cancelplus(DecoratedInterval(Interval(0.0, 5.0), def), DecoratedInterval(Interval(-5.0, -0.0), trv)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(0.0, 5.0), def), DecoratedInterval(Interval(-5.0, -0.0), trv))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact cancelplus(DecoratedInterval(Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0), com), DecoratedInterval(Interval(-0x1.999999999999ap-4, -0x1.999999999999ap-4), com)) --> DecoratedInterval(Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0), com), DecoratedInterval(Interval(-0x1.999999999999ap-4, -0x1.999999999999ap-4), com))) --> decoration(DecoratedInterval(Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0), trv)) - @fact cancelplus(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0x1.ffffffffffffp+0), dac), DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.01), com)) --> DecoratedInterval(Interval(-0x1.70a3d70a3d70bp-4, 0x1.e666666666657p+0), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0x1.ffffffffffffp+0), dac), DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.01), com))) --> decoration(DecoratedInterval(Interval(-0x1.70a3d70a3d70bp-4, 0x1.e666666666657p+0), trv)) - @fact cancelplus(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) --> DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), trv)) - @fact cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac), DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com)) --> DecoratedInterval(Interval(0.0, 0x1p+971), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac), DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(Interval(0.0, 0x1p+971), trv)) - @fact cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com)) --> DecoratedInterval(Interval(-0x1p+971, 0.0), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com))) --> decoration(DecoratedInterval(Interval(-0x1p+971, 0.0), trv)) - @fact cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelplus(DecoratedInterval(Interval(-0x1p+0, 0x1.fffffffffffffp-53), dac), DecoratedInterval(Interval(-0x1p+0, 0x1.ffffffffffffep-53), com)) --> DecoratedInterval(Interval(-0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-0x1p+0, 0x1.fffffffffffffp-53), dac), DecoratedInterval(Interval(-0x1p+0, 0x1.ffffffffffffep-53), com))) --> decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1), trv)) - @fact cancelplus(DecoratedInterval(Interval(-0x1p+0, 0x1.ffffffffffffep-53), def), DecoratedInterval(Interval(-0x1p+0, 0x1.fffffffffffffp-53), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelplus(DecoratedInterval(Interval(-0x1p+0, 0x1.ffffffffffffep-53), def), DecoratedInterval(Interval(-0x1p+0, 0x1.fffffffffffffp-53), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) +@testset "minimal_cancelPlus_dec_test" begin + @test cancelplus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(∅, trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-1.0, Inf), def), DecoratedInterval(∅, trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-1.0, Inf), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(Interval(-5.0, 1.0), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(Interval(-5.0, 1.0), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-1.0, Inf), trv), DecoratedInterval(Interval(-5.0, 1.0), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-1.0, Inf), trv), DecoratedInterval(Interval(-5.0, 1.0), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-5.0, 1.0), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-5.0, 1.0), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-1.0, Inf), def), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-1.0, Inf), def), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, Inf), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, Inf), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-Inf, 1.0), trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-Inf, 1.0), trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-1.0, 5.0), dac), DecoratedInterval(Interval(1.0, Inf), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-1.0, 5.0), dac), DecoratedInterval(Interval(1.0, Inf), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-1.0, 5.0), def), DecoratedInterval(Interval(-Inf, 1.0), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-1.0, 5.0), def), DecoratedInterval(Interval(-Inf, 1.0), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-1.0, 5.0), com), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-1.0, 5.0), com), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(1.0, Inf), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(1.0, Inf), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-Inf, 1.0), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-Inf, 1.0), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-5.0, -1.0), com), DecoratedInterval(Interval(1.0, 5.1), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-5.0, -1.0), com), DecoratedInterval(Interval(1.0, 5.1), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-5.0, -1.0), dac), DecoratedInterval(Interval(0.9, 5.0), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-5.0, -1.0), dac), DecoratedInterval(Interval(0.9, 5.0), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-5.0, -1.0), def), DecoratedInterval(Interval(0.9, 5.1), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-5.0, -1.0), def), DecoratedInterval(Interval(0.9, 5.1), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-10.0, 5.0), trv), DecoratedInterval(Interval(-5.0, 10.1), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-10.0, 5.0), trv), DecoratedInterval(Interval(-5.0, 10.1), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-10.0, 5.0), com), DecoratedInterval(Interval(-5.1, 10.0), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-10.0, 5.0), com), DecoratedInterval(Interval(-5.1, 10.0), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-10.0, 5.0), dac), DecoratedInterval(Interval(-5.1, 10.1), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-10.0, 5.0), dac), DecoratedInterval(Interval(-5.1, 10.1), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(1.0, 5.0), def), DecoratedInterval(Interval(-5.0, -0.9), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(1.0, 5.0), def), DecoratedInterval(Interval(-5.0, -0.9), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(1.0, 5.0), trv), DecoratedInterval(Interval(-5.1, -1.0), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(1.0, 5.0), trv), DecoratedInterval(Interval(-5.1, -1.0), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(1.0, 5.0), dac), DecoratedInterval(Interval(-5.1, -0.9), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(1.0, 5.0), dac), DecoratedInterval(Interval(-5.1, -0.9), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-10.0, -1.0), trv), DecoratedInterval(∅, trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-10.0, -1.0), trv), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-10.0, 5.0), def), DecoratedInterval(∅, trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-10.0, 5.0), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(1.0, 5.0), com), DecoratedInterval(∅, trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(1.0, 5.0), com), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 10.0), dac)) == DecoratedInterval(∅, trv) + @test decoration(cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 10.0), dac))) == decoration(DecoratedInterval(∅, trv)) + @test cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-5.0, 10.0), def)) == DecoratedInterval(∅, trv) + @test decoration(cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-5.0, 10.0), def))) == decoration(DecoratedInterval(∅, trv)) + @test cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-5.0, -1.0), com)) == DecoratedInterval(∅, trv) + @test decoration(cancelplus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-5.0, -1.0), com))) == decoration(DecoratedInterval(∅, trv)) + @test cancelplus(DecoratedInterval(Interval(-5.1, -0.0), com), DecoratedInterval(Interval(0.0, 5.0), com)) == DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-5.1, -0.0), com), DecoratedInterval(Interval(0.0, 5.0), com))) == decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv)) + @test cancelplus(DecoratedInterval(Interval(-5.1, -1.0), com), DecoratedInterval(Interval(1.0, 5.0), dac)) == DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-5.1, -1.0), com), DecoratedInterval(Interval(1.0, 5.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv)) + @test cancelplus(DecoratedInterval(Interval(-5.0, -0.9), com), DecoratedInterval(Interval(1.0, 5.0), def)) == DecoratedInterval(Interval(0.0, 0x1.9999999999998p-4), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-5.0, -0.9), com), DecoratedInterval(Interval(1.0, 5.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.9999999999998p-4), trv)) + @test cancelplus(DecoratedInterval(Interval(-5.1, -0.9), dac), DecoratedInterval(Interval(1.0, 5.0), trv)) == DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.9999999999998p-4), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-5.1, -0.9), dac), DecoratedInterval(Interval(1.0, 5.0), trv))) == decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.9999999999998p-4), trv)) + @test cancelplus(DecoratedInterval(Interval(-5.0, -1.0), dac), DecoratedInterval(Interval(1.0, 5.0), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-5.0, -1.0), dac), DecoratedInterval(Interval(1.0, 5.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test cancelplus(DecoratedInterval(Interval(-10.1, 5.0), dac), DecoratedInterval(Interval(-5.0, 10.0), dac)) == DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-10.1, 5.0), dac), DecoratedInterval(Interval(-5.0, 10.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv)) + @test cancelplus(DecoratedInterval(Interval(-10.0, 5.1), def), DecoratedInterval(Interval(-5.0, 10.0), def)) == DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-10.0, 5.1), def), DecoratedInterval(Interval(-5.0, 10.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv)) + @test cancelplus(DecoratedInterval(Interval(-10.1, 5.1), def), DecoratedInterval(Interval(-5.0, 10.0), trv)) == DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.999999999998p-4), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-10.1, 5.1), def), DecoratedInterval(Interval(-5.0, 10.0), trv))) == decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.999999999998p-4), trv)) + @test cancelplus(DecoratedInterval(Interval(-10.0, 5.0), def), DecoratedInterval(Interval(-5.0, 10.0), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-10.0, 5.0), def), DecoratedInterval(Interval(-5.0, 10.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test cancelplus(DecoratedInterval(Interval(0.9, 5.0), trv), DecoratedInterval(Interval(-5.0, -1.0), dac)) == DecoratedInterval(Interval(-0x1.9999999999998p-4, 0.0), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(0.9, 5.0), trv), DecoratedInterval(Interval(-5.0, -1.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.9999999999998p-4, 0.0), trv)) + @test cancelplus(DecoratedInterval(Interval(1.0, 5.1), trv), DecoratedInterval(Interval(-5.0, -1.0), def)) == DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(1.0, 5.1), trv), DecoratedInterval(Interval(-5.0, -1.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv)) + @test cancelplus(DecoratedInterval(Interval(0.0, 5.1), trv), DecoratedInterval(Interval(-5.0, -0.0), trv)) == DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(0.0, 5.1), trv), DecoratedInterval(Interval(-5.0, -0.0), trv))) == decoration(DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv)) + @test cancelplus(DecoratedInterval(Interval(0.9, 5.1), com), DecoratedInterval(Interval(-5.0, -1.0), com)) == DecoratedInterval(Interval(-0x1.9999999999998p-4, 0x1.999999999998p-4), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(0.9, 5.1), com), DecoratedInterval(Interval(-5.0, -1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.9999999999998p-4, 0x1.999999999998p-4), trv)) + @test cancelplus(DecoratedInterval(Interval(1.0, 5.0), dac), DecoratedInterval(Interval(-5.0, -1.0), dac)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(1.0, 5.0), dac), DecoratedInterval(Interval(-5.0, -1.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test cancelplus(DecoratedInterval(Interval(0.0, 5.0), def), DecoratedInterval(Interval(-5.0, -0.0), trv)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(0.0, 5.0), def), DecoratedInterval(Interval(-5.0, -0.0), trv))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test cancelplus(DecoratedInterval(Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0), com), DecoratedInterval(Interval(-0x1.999999999999ap-4, -0x1.999999999999ap-4), com)) == DecoratedInterval(Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0), com), DecoratedInterval(Interval(-0x1.999999999999ap-4, -0x1.999999999999ap-4), com))) == decoration(DecoratedInterval(Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0), trv)) + @test cancelplus(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0x1.ffffffffffffp+0), dac), DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.01), com)) == DecoratedInterval(Interval(-0x1.70a3d70a3d70bp-4, 0x1.e666666666657p+0), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0x1.ffffffffffffp+0), dac), DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.01), com))) == decoration(DecoratedInterval(Interval(-0x1.70a3d70a3d70bp-4, 0x1.e666666666657p+0), trv)) + @test cancelplus(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) == DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), trv)) + @test cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac), DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com)) == DecoratedInterval(Interval(0.0, 0x1p+971), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac), DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1p+971), trv)) + @test cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com)) == DecoratedInterval(Interval(-0x1p+971, 0.0), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com))) == decoration(DecoratedInterval(Interval(-0x1p+971, 0.0), trv)) + @test cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelplus(DecoratedInterval(Interval(-0x1p+0, 0x1.fffffffffffffp-53), dac), DecoratedInterval(Interval(-0x1p+0, 0x1.ffffffffffffep-53), com)) == DecoratedInterval(Interval(-0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-0x1p+0, 0x1.fffffffffffffp-53), dac), DecoratedInterval(Interval(-0x1p+0, 0x1.ffffffffffffep-53), com))) == decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1), trv)) + @test cancelplus(DecoratedInterval(Interval(-0x1p+0, 0x1.ffffffffffffep-53), def), DecoratedInterval(Interval(-0x1p+0, 0x1.fffffffffffffp-53), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelplus(DecoratedInterval(Interval(-0x1p+0, 0x1.ffffffffffffep-53), def), DecoratedInterval(Interval(-0x1p+0, 0x1.fffffffffffffp-53), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) end -facts("minimal_cancelMinus_test") do - @fact cancelminus(Interval(-Inf, -1.0), ∅) --> entireinterval(Float64) - @fact cancelminus(Interval(-1.0, Inf), ∅) --> entireinterval(Float64) - @fact cancelminus(entireinterval(Float64), ∅) --> entireinterval(Float64) - @fact cancelminus(Interval(-Inf, -1.0), Interval(-1.0, 5.0)) --> entireinterval(Float64) - @fact cancelminus(Interval(-1.0, Inf), Interval(-1.0, 5.0)) --> entireinterval(Float64) - @fact cancelminus(entireinterval(Float64), Interval(-1.0, 5.0)) --> entireinterval(Float64) - @fact cancelminus(Interval(-Inf, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact cancelminus(Interval(-1.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact cancelminus(∅, Interval(-Inf, -1.0)) --> entireinterval(Float64) - @fact cancelminus(∅, Interval(-1.0, Inf)) --> entireinterval(Float64) - @fact cancelminus(∅, entireinterval(Float64)) --> entireinterval(Float64) - @fact cancelminus(Interval(-1.0, 5.0), Interval(-Inf, -1.0)) --> entireinterval(Float64) - @fact cancelminus(Interval(-1.0, 5.0), Interval(-1.0, Inf)) --> entireinterval(Float64) - @fact cancelminus(Interval(-1.0, 5.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact cancelminus(entireinterval(Float64), Interval(-Inf, -1.0)) --> entireinterval(Float64) - @fact cancelminus(entireinterval(Float64), Interval(-1.0, Inf)) --> entireinterval(Float64) - @fact cancelminus(entireinterval(Float64), entireinterval(Float64)) --> entireinterval(Float64) - @fact cancelminus(Interval(-5.0, -1.0), Interval(-5.1, -1.0)) --> entireinterval(Float64) - @fact cancelminus(Interval(-5.0, -1.0), Interval(-5.0, -0.9)) --> entireinterval(Float64) - @fact cancelminus(Interval(-5.0, -1.0), Interval(-5.1, -0.9)) --> entireinterval(Float64) - @fact cancelminus(Interval(-10.0, 5.0), Interval(-10.1, 5.0)) --> entireinterval(Float64) - @fact cancelminus(Interval(-10.0, 5.0), Interval(-10.0, 5.1)) --> entireinterval(Float64) - @fact cancelminus(Interval(-10.0, 5.0), Interval(-10.1, 5.1)) --> entireinterval(Float64) - @fact cancelminus(Interval(1.0, 5.0), Interval(0.9, 5.0)) --> entireinterval(Float64) - @fact cancelminus(Interval(1.0, 5.0), Interval(1.0, 5.1)) --> entireinterval(Float64) - @fact cancelminus(Interval(1.0, 5.0), Interval(0.9, 5.1)) --> entireinterval(Float64) - @fact cancelminus(Interval(-10.0, -1.0), ∅) --> entireinterval(Float64) - @fact cancelminus(Interval(-10.0, 5.0), ∅) --> entireinterval(Float64) - @fact cancelminus(Interval(1.0, 5.0), ∅) --> entireinterval(Float64) - @fact cancelminus(∅, ∅) --> ∅ - @fact cancelminus(∅, Interval(-10.0, -1.0)) --> ∅ - @fact cancelminus(∅, Interval(-10.0, 5.0)) --> ∅ - @fact cancelminus(∅, Interval(1.0, 5.0)) --> ∅ - @fact cancelminus(Interval(-5.1, -0.0), Interval(-5.0, 0.0)) --> Interval(-0x1.999999999998p-4, 0.0) - @fact cancelminus(Interval(-5.1, -1.0), Interval(-5.0, -1.0)) --> Interval(-0x1.999999999998p-4, 0.0) - @fact cancelminus(Interval(-5.0, -0.9), Interval(-5.0, -1.0)) --> Interval(0.0, 0x1.9999999999998p-4) - @fact cancelminus(Interval(-5.1, -0.9), Interval(-5.0, -1.0)) --> Interval(-0x1.999999999998p-4, 0x1.9999999999998p-4) - @fact cancelminus(Interval(-5.0, -1.0), Interval(-5.0, -1.0)) --> Interval(0.0, 0.0) - @fact cancelminus(Interval(-10.1, 5.0), Interval(-10.0, 5.0)) --> Interval(-0x1.999999999998p-4, 0.0) - @fact cancelminus(Interval(-10.0, 5.1), Interval(-10.0, 5.0)) --> Interval(0.0, 0x1.999999999998p-4) - @fact cancelminus(Interval(-10.1, 5.1), Interval(-10.0, 5.0)) --> Interval(-0x1.999999999998p-4, 0x1.999999999998p-4) - @fact cancelminus(Interval(-10.0, 5.0), Interval(-10.0, 5.0)) --> Interval(0.0, 0.0) - @fact cancelminus(Interval(0.9, 5.0), Interval(1.0, 5.0)) --> Interval(-0x1.9999999999998p-4, 0.0) - @fact cancelminus(Interval(-0.0, 5.1), Interval(0.0, 5.0)) --> Interval(0.0, 0x1.999999999998p-4) - @fact cancelminus(Interval(1.0, 5.1), Interval(1.0, 5.0)) --> Interval(0.0, 0x1.999999999998p-4) - @fact cancelminus(Interval(0.9, 5.1), Interval(1.0, 5.0)) --> Interval(-0x1.9999999999998p-4, 0x1.999999999998p-4) - @fact cancelminus(Interval(1.0, 5.0), Interval(1.0, 5.0)) --> Interval(0.0, 0.0) - @fact cancelminus(Interval(-5.0, 1.0), Interval(-1.0, 5.0)) --> Interval(-4.0, -4.0) - @fact cancelminus(Interval(-5.0, 0.0), Interval(-0.0, 5.0)) --> Interval(-5.0, -5.0) - @fact cancelminus(Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0), Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4)) --> Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0) - @fact cancelminus(Interval(-0x1.999999999999ap-4, 0x1.ffffffffffffp+0), Interval(-0.01, 0x1.999999999999ap-4)) --> Interval(-0x1.70a3d70a3d70bp-4, 0x1.e666666666657p+0) - @fact cancelminus(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023)) --> Interval(0x1.fffffffffffffp1023, Inf) - @fact cancelminus(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) --> Interval(0.0, 0.0) - @fact cancelminus(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023)) --> Interval(0.0, 0x1p+971) - @fact cancelminus(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023)) --> Interval(-0x1p+971, 0.0) - @fact cancelminus(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) --> entireinterval(Float64) - @fact cancelminus(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) --> entireinterval(Float64) - @fact cancelminus(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022)) --> Interval(0.0, 0.0) - @fact cancelminus(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), Interval(-0x0.0000000000001p-1022, -0x0.0000000000001p-1022)) --> Interval(0x0.0000000000002p-1022, 0x0.0000000000002p-1022) - @fact cancelminus(Interval(0x1p-1022, 0x1.0000000000002p-1022), Interval(0x1p-1022, 0x1.0000000000001p-1022)) --> Interval(0.0, 0x0.0000000000001p-1022) - @fact cancelminus(Interval(0x1p-1022, 0x1.0000000000001p-1022), Interval(0x1p-1022, 0x1.0000000000002p-1022)) --> entireinterval(Float64) - @fact cancelminus(Interval(-0x1p+0, 0x1.fffffffffffffp-53), Interval(-0x1.ffffffffffffep-53, 0x1p+0)) --> Interval(-0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1) - @fact cancelminus(Interval(-0x1p+0, 0x1.ffffffffffffep-53), Interval(-0x1.fffffffffffffp-53, 0x1p+0)) --> entireinterval(Float64) +@testset "minimal_cancelMinus_test" begin + @test cancelminus(Interval(-Inf, -1.0), ∅) == entireinterval(Float64) + @test cancelminus(Interval(-1.0, Inf), ∅) == entireinterval(Float64) + @test cancelminus(entireinterval(Float64), ∅) == entireinterval(Float64) + @test cancelminus(Interval(-Inf, -1.0), Interval(-1.0, 5.0)) == entireinterval(Float64) + @test cancelminus(Interval(-1.0, Inf), Interval(-1.0, 5.0)) == entireinterval(Float64) + @test cancelminus(entireinterval(Float64), Interval(-1.0, 5.0)) == entireinterval(Float64) + @test cancelminus(Interval(-Inf, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test cancelminus(Interval(-1.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test cancelminus(∅, Interval(-Inf, -1.0)) == entireinterval(Float64) + @test cancelminus(∅, Interval(-1.0, Inf)) == entireinterval(Float64) + @test cancelminus(∅, entireinterval(Float64)) == entireinterval(Float64) + @test cancelminus(Interval(-1.0, 5.0), Interval(-Inf, -1.0)) == entireinterval(Float64) + @test cancelminus(Interval(-1.0, 5.0), Interval(-1.0, Inf)) == entireinterval(Float64) + @test cancelminus(Interval(-1.0, 5.0), entireinterval(Float64)) == entireinterval(Float64) + @test cancelminus(entireinterval(Float64), Interval(-Inf, -1.0)) == entireinterval(Float64) + @test cancelminus(entireinterval(Float64), Interval(-1.0, Inf)) == entireinterval(Float64) + @test cancelminus(entireinterval(Float64), entireinterval(Float64)) == entireinterval(Float64) + @test cancelminus(Interval(-5.0, -1.0), Interval(-5.1, -1.0)) == entireinterval(Float64) + @test cancelminus(Interval(-5.0, -1.0), Interval(-5.0, -0.9)) == entireinterval(Float64) + @test cancelminus(Interval(-5.0, -1.0), Interval(-5.1, -0.9)) == entireinterval(Float64) + @test cancelminus(Interval(-10.0, 5.0), Interval(-10.1, 5.0)) == entireinterval(Float64) + @test cancelminus(Interval(-10.0, 5.0), Interval(-10.0, 5.1)) == entireinterval(Float64) + @test cancelminus(Interval(-10.0, 5.0), Interval(-10.1, 5.1)) == entireinterval(Float64) + @test cancelminus(Interval(1.0, 5.0), Interval(0.9, 5.0)) == entireinterval(Float64) + @test cancelminus(Interval(1.0, 5.0), Interval(1.0, 5.1)) == entireinterval(Float64) + @test cancelminus(Interval(1.0, 5.0), Interval(0.9, 5.1)) == entireinterval(Float64) + @test cancelminus(Interval(-10.0, -1.0), ∅) == entireinterval(Float64) + @test cancelminus(Interval(-10.0, 5.0), ∅) == entireinterval(Float64) + @test cancelminus(Interval(1.0, 5.0), ∅) == entireinterval(Float64) + @test cancelminus(∅, ∅) == ∅ + @test cancelminus(∅, Interval(-10.0, -1.0)) == ∅ + @test cancelminus(∅, Interval(-10.0, 5.0)) == ∅ + @test cancelminus(∅, Interval(1.0, 5.0)) == ∅ + @test cancelminus(Interval(-5.1, -0.0), Interval(-5.0, 0.0)) == Interval(-0x1.999999999998p-4, 0.0) + @test cancelminus(Interval(-5.1, -1.0), Interval(-5.0, -1.0)) == Interval(-0x1.999999999998p-4, 0.0) + @test cancelminus(Interval(-5.0, -0.9), Interval(-5.0, -1.0)) == Interval(0.0, 0x1.9999999999998p-4) + @test cancelminus(Interval(-5.1, -0.9), Interval(-5.0, -1.0)) == Interval(-0x1.999999999998p-4, 0x1.9999999999998p-4) + @test cancelminus(Interval(-5.0, -1.0), Interval(-5.0, -1.0)) == Interval(0.0, 0.0) + @test cancelminus(Interval(-10.1, 5.0), Interval(-10.0, 5.0)) == Interval(-0x1.999999999998p-4, 0.0) + @test cancelminus(Interval(-10.0, 5.1), Interval(-10.0, 5.0)) == Interval(0.0, 0x1.999999999998p-4) + @test cancelminus(Interval(-10.1, 5.1), Interval(-10.0, 5.0)) == Interval(-0x1.999999999998p-4, 0x1.999999999998p-4) + @test cancelminus(Interval(-10.0, 5.0), Interval(-10.0, 5.0)) == Interval(0.0, 0.0) + @test cancelminus(Interval(0.9, 5.0), Interval(1.0, 5.0)) == Interval(-0x1.9999999999998p-4, 0.0) + @test cancelminus(Interval(-0.0, 5.1), Interval(0.0, 5.0)) == Interval(0.0, 0x1.999999999998p-4) + @test cancelminus(Interval(1.0, 5.1), Interval(1.0, 5.0)) == Interval(0.0, 0x1.999999999998p-4) + @test cancelminus(Interval(0.9, 5.1), Interval(1.0, 5.0)) == Interval(-0x1.9999999999998p-4, 0x1.999999999998p-4) + @test cancelminus(Interval(1.0, 5.0), Interval(1.0, 5.0)) == Interval(0.0, 0.0) + @test cancelminus(Interval(-5.0, 1.0), Interval(-1.0, 5.0)) == Interval(-4.0, -4.0) + @test cancelminus(Interval(-5.0, 0.0), Interval(-0.0, 5.0)) == Interval(-5.0, -5.0) + @test cancelminus(Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0), Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4)) == Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0) + @test cancelminus(Interval(-0x1.999999999999ap-4, 0x1.ffffffffffffp+0), Interval(-0.01, 0x1.999999999999ap-4)) == Interval(-0x1.70a3d70a3d70bp-4, 0x1.e666666666657p+0) + @test cancelminus(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023)) == Interval(0x1.fffffffffffffp1023, Inf) + @test cancelminus(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) == Interval(0.0, 0.0) + @test cancelminus(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023)) == Interval(0.0, 0x1p+971) + @test cancelminus(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023)) == Interval(-0x1p+971, 0.0) + @test cancelminus(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) == entireinterval(Float64) + @test cancelminus(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) == entireinterval(Float64) + @test cancelminus(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022)) == Interval(0.0, 0.0) + @test cancelminus(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), Interval(-0x0.0000000000001p-1022, -0x0.0000000000001p-1022)) == Interval(0x0.0000000000002p-1022, 0x0.0000000000002p-1022) + @test cancelminus(Interval(0x1p-1022, 0x1.0000000000002p-1022), Interval(0x1p-1022, 0x1.0000000000001p-1022)) == Interval(0.0, 0x0.0000000000001p-1022) + @test cancelminus(Interval(0x1p-1022, 0x1.0000000000001p-1022), Interval(0x1p-1022, 0x1.0000000000002p-1022)) == entireinterval(Float64) + @test cancelminus(Interval(-0x1p+0, 0x1.fffffffffffffp-53), Interval(-0x1.ffffffffffffep-53, 0x1p+0)) == Interval(-0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1) + @test cancelminus(Interval(-0x1p+0, 0x1.ffffffffffffep-53), Interval(-0x1.fffffffffffffp-53, 0x1p+0)) == entireinterval(Float64) end -facts("minimal_cancelMinus_dec_test") do - @fact cancelminus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(∅, trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-1.0, Inf), def), DecoratedInterval(∅, trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-1.0, Inf), def), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-Inf, -1.0), trv), DecoratedInterval(Interval(-1.0, 5.0), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-Inf, -1.0), trv), DecoratedInterval(Interval(-1.0, 5.0), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-1.0, Inf), dac), DecoratedInterval(Interval(-1.0, 5.0), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-1.0, Inf), dac), DecoratedInterval(Interval(-1.0, 5.0), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-1.0, 5.0), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-1.0, 5.0), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-Inf, -1.0), def), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-Inf, -1.0), def), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-1.0, Inf), trv), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-1.0, Inf), trv), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-Inf, -1.0), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-Inf, -1.0), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-1.0, Inf), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-1.0, Inf), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-1.0, 5.0), dac), DecoratedInterval(Interval(-Inf, -1.0), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-1.0, 5.0), dac), DecoratedInterval(Interval(-Inf, -1.0), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-1.0, 5.0), def), DecoratedInterval(Interval(-1.0, Inf), trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-1.0, 5.0), def), DecoratedInterval(Interval(-1.0, Inf), trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-1.0, 5.0), com), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-1.0, 5.0), com), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-Inf, -1.0), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-Inf, -1.0), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-1.0, Inf), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-1.0, Inf), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-5.0, -1.0), com), DecoratedInterval(Interval(-5.1, -1.0), trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-5.0, -1.0), com), DecoratedInterval(Interval(-5.1, -1.0), trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-5.0, -1.0), dac), DecoratedInterval(Interval(-5.0, -0.9), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-5.0, -1.0), dac), DecoratedInterval(Interval(-5.0, -0.9), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-5.0, -1.0), def), DecoratedInterval(Interval(-5.1, -0.9), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-5.0, -1.0), def), DecoratedInterval(Interval(-5.1, -0.9), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-10.0, 5.0), trv), DecoratedInterval(Interval(-10.1, 5.0), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-10.0, 5.0), trv), DecoratedInterval(Interval(-10.1, 5.0), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-10.0, 5.0), com), DecoratedInterval(Interval(-10.0, 5.1), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-10.0, 5.0), com), DecoratedInterval(Interval(-10.0, 5.1), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-10.0, 5.0), dac), DecoratedInterval(Interval(-10.1, 5.1), trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-10.0, 5.0), dac), DecoratedInterval(Interval(-10.1, 5.1), trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(1.0, 5.0), def), DecoratedInterval(Interval(0.9, 5.0), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(1.0, 5.0), def), DecoratedInterval(Interval(0.9, 5.0), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(1.0, 5.0), trv), DecoratedInterval(Interval(1.0, 5.1), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(1.0, 5.0), trv), DecoratedInterval(Interval(1.0, 5.1), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(1.0, 5.0), com), DecoratedInterval(Interval(0.9, 5.1), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(1.0, 5.0), com), DecoratedInterval(Interval(0.9, 5.1), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-10.0, -1.0), com), DecoratedInterval(∅, trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-10.0, -1.0), com), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-10.0, 5.0), dac), DecoratedInterval(∅, trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-10.0, 5.0), dac), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(1.0, 5.0), def), DecoratedInterval(∅, trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(1.0, 5.0), def), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-10.0, -1.0), com)) --> DecoratedInterval(∅, trv) - @fact decoration(cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-10.0, -1.0), com))) --> decoration(DecoratedInterval(∅, trv)) - @fact cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-10.0, 5.0), dac)) --> DecoratedInterval(∅, trv) - @fact decoration(cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-10.0, 5.0), dac))) --> decoration(DecoratedInterval(∅, trv)) - @fact cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 5.0), def)) --> DecoratedInterval(∅, trv) - @fact decoration(cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 5.0), def))) --> decoration(DecoratedInterval(∅, trv)) - @fact cancelminus(DecoratedInterval(Interval(-5.1, -0.0), com), DecoratedInterval(Interval(-5.0, 0.0), com)) --> DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-5.1, -0.0), com), DecoratedInterval(Interval(-5.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv)) - @fact cancelminus(DecoratedInterval(Interval(-5.1, -1.0), dac), DecoratedInterval(Interval(-5.0, -1.0), com)) --> DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-5.1, -1.0), dac), DecoratedInterval(Interval(-5.0, -1.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv)) - @fact cancelminus(DecoratedInterval(Interval(-5.0, -0.9), def), DecoratedInterval(Interval(-5.0, -1.0), com)) --> DecoratedInterval(Interval(0.0, 0x1.9999999999998p-4), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-5.0, -0.9), def), DecoratedInterval(Interval(-5.0, -1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.9999999999998p-4), trv)) - @fact cancelminus(DecoratedInterval(Interval(-5.1, -0.9), trv), DecoratedInterval(Interval(-5.0, -1.0), com)) --> DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.9999999999998p-4), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-5.1, -0.9), trv), DecoratedInterval(Interval(-5.0, -1.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.9999999999998p-4), trv)) - @fact cancelminus(DecoratedInterval(Interval(-5.0, -1.0), com), DecoratedInterval(Interval(-5.0, -1.0), dac)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-5.0, -1.0), com), DecoratedInterval(Interval(-5.0, -1.0), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact cancelminus(DecoratedInterval(Interval(-10.1, 5.0), dac), DecoratedInterval(Interval(-10.0, 5.0), dac)) --> DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-10.1, 5.0), dac), DecoratedInterval(Interval(-10.0, 5.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv)) - @fact cancelminus(DecoratedInterval(Interval(-10.0, 5.1), def), DecoratedInterval(Interval(-10.0, 5.0), dac)) --> DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-10.0, 5.1), def), DecoratedInterval(Interval(-10.0, 5.0), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv)) - @fact cancelminus(DecoratedInterval(Interval(-10.1, 5.1), trv), DecoratedInterval(Interval(-10.0, 5.0), def)) --> DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.999999999998p-4), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-10.1, 5.1), trv), DecoratedInterval(Interval(-10.0, 5.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.999999999998p-4), trv)) - @fact cancelminus(DecoratedInterval(Interval(-10.0, 5.0), com), DecoratedInterval(Interval(-10.0, 5.0), def)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-10.0, 5.0), com), DecoratedInterval(Interval(-10.0, 5.0), def))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact cancelminus(DecoratedInterval(Interval(0.9, 5.0), dac), DecoratedInterval(Interval(1.0, 5.0), def)) --> DecoratedInterval(Interval(-0x1.9999999999998p-4, 0.0), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(0.9, 5.0), dac), DecoratedInterval(Interval(1.0, 5.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.9999999999998p-4, 0.0), trv)) - @fact cancelminus(DecoratedInterval(Interval(-0.0, 5.1), def), DecoratedInterval(Interval(0.0, 5.0), def)) --> DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-0.0, 5.1), def), DecoratedInterval(Interval(0.0, 5.0), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv)) - @fact cancelminus(DecoratedInterval(Interval(1.0, 5.1), trv), DecoratedInterval(Interval(1.0, 5.0), trv)) --> DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(1.0, 5.1), trv), DecoratedInterval(Interval(1.0, 5.0), trv))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv)) - @fact cancelminus(DecoratedInterval(Interval(0.9, 5.1), com), DecoratedInterval(Interval(1.0, 5.0), trv)) --> DecoratedInterval(Interval(-0x1.9999999999998p-4, 0x1.999999999998p-4), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(0.9, 5.1), com), DecoratedInterval(Interval(1.0, 5.0), trv))) --> decoration(DecoratedInterval(Interval(-0x1.9999999999998p-4, 0x1.999999999998p-4), trv)) - @fact cancelminus(DecoratedInterval(Interval(1.0, 5.0), dac), DecoratedInterval(Interval(1.0, 5.0), com)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(1.0, 5.0), dac), DecoratedInterval(Interval(1.0, 5.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact cancelminus(DecoratedInterval(Interval(-5.0, 1.0), def), DecoratedInterval(Interval(-1.0, 5.0), def)) --> DecoratedInterval(Interval(-4.0, -4.0), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-5.0, 1.0), def), DecoratedInterval(Interval(-1.0, 5.0), def))) --> decoration(DecoratedInterval(Interval(-4.0, -4.0), trv)) - @fact cancelminus(DecoratedInterval(Interval(-5.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 5.0), trv)) --> DecoratedInterval(Interval(-5.0, -5.0), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-5.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 5.0), trv))) --> decoration(DecoratedInterval(Interval(-5.0, -5.0), trv)) - @fact cancelminus(DecoratedInterval(Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0), com), DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com)) --> DecoratedInterval(Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0), com), DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com))) --> decoration(DecoratedInterval(Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0), trv)) - @fact cancelminus(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0x1.ffffffffffffp+0), def), DecoratedInterval(Interval(-0.01, 0x1.999999999999ap-4), dac)) --> DecoratedInterval(Interval(-0x1.70a3d70a3d70bp-4, 0x1.e666666666657p+0), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0x1.ffffffffffffp+0), def), DecoratedInterval(Interval(-0.01, 0x1.999999999999ap-4), dac))) --> decoration(DecoratedInterval(Interval(-0x1.70a3d70a3d70bp-4, 0x1.e666666666657p+0), trv)) - @fact cancelminus(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023), com)) --> DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), trv)) - @fact cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com)) --> DecoratedInterval(Interval(0.0, 0x1p+971), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com))) --> decoration(DecoratedInterval(Interval(0.0, 0x1p+971), trv)) - @fact cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com)) --> DecoratedInterval(Interval(-0x1p+971, 0.0), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(Interval(-0x1p+971, 0.0), trv)) - @fact cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), com), DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), com)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), com), DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact cancelminus(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), com), DecoratedInterval(Interval(-0x0.0000000000001p-1022, -0x0.0000000000001p-1022), dac)) --> DecoratedInterval(Interval(0x0.0000000000002p-1022, 0x0.0000000000002p-1022), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), com), DecoratedInterval(Interval(-0x0.0000000000001p-1022, -0x0.0000000000001p-1022), dac))) --> decoration(DecoratedInterval(Interval(0x0.0000000000002p-1022, 0x0.0000000000002p-1022), trv)) - @fact cancelminus(DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000002p-1022), dac), DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000001p-1022), dac)) --> DecoratedInterval(Interval(0.0, 0x0.0000000000001p-1022), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000002p-1022), dac), DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000001p-1022), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0x0.0000000000001p-1022), trv)) - @fact cancelminus(DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000001p-1022), def), DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000002p-1022), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000001p-1022), def), DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000002p-1022), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact cancelminus(DecoratedInterval(Interval(-0x1p+0, 0x1.fffffffffffffp-53), com), DecoratedInterval(Interval(-0x1.ffffffffffffep-53, 0x1p+0), dac)) --> DecoratedInterval(Interval(-0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-0x1p+0, 0x1.fffffffffffffp-53), com), DecoratedInterval(Interval(-0x1.ffffffffffffep-53, 0x1p+0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1), trv)) - @fact cancelminus(DecoratedInterval(Interval(-0x1p+0, 0x1.ffffffffffffep-53), def), DecoratedInterval(Interval(-0x1.fffffffffffffp-53, 0x1p+0), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(cancelminus(DecoratedInterval(Interval(-0x1p+0, 0x1.ffffffffffffep-53), def), DecoratedInterval(Interval(-0x1.fffffffffffffp-53, 0x1p+0), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) +@testset "minimal_cancelMinus_dec_test" begin + @test cancelminus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(∅, trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-Inf, -1.0), dac), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-1.0, Inf), def), DecoratedInterval(∅, trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-1.0, Inf), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-Inf, -1.0), trv), DecoratedInterval(Interval(-1.0, 5.0), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-Inf, -1.0), trv), DecoratedInterval(Interval(-1.0, 5.0), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-1.0, Inf), dac), DecoratedInterval(Interval(-1.0, 5.0), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-1.0, Inf), dac), DecoratedInterval(Interval(-1.0, 5.0), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-1.0, 5.0), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-1.0, 5.0), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-Inf, -1.0), def), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-Inf, -1.0), def), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-1.0, Inf), trv), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-1.0, Inf), trv), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-Inf, -1.0), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-Inf, -1.0), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-1.0, Inf), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-1.0, Inf), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-1.0, 5.0), dac), DecoratedInterval(Interval(-Inf, -1.0), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-1.0, 5.0), dac), DecoratedInterval(Interval(-Inf, -1.0), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-1.0, 5.0), def), DecoratedInterval(Interval(-1.0, Inf), trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-1.0, 5.0), def), DecoratedInterval(Interval(-1.0, Inf), trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-1.0, 5.0), com), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-1.0, 5.0), com), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-Inf, -1.0), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-Inf, -1.0), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-1.0, Inf), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-1.0, Inf), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-5.0, -1.0), com), DecoratedInterval(Interval(-5.1, -1.0), trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-5.0, -1.0), com), DecoratedInterval(Interval(-5.1, -1.0), trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-5.0, -1.0), dac), DecoratedInterval(Interval(-5.0, -0.9), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-5.0, -1.0), dac), DecoratedInterval(Interval(-5.0, -0.9), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-5.0, -1.0), def), DecoratedInterval(Interval(-5.1, -0.9), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-5.0, -1.0), def), DecoratedInterval(Interval(-5.1, -0.9), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-10.0, 5.0), trv), DecoratedInterval(Interval(-10.1, 5.0), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-10.0, 5.0), trv), DecoratedInterval(Interval(-10.1, 5.0), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-10.0, 5.0), com), DecoratedInterval(Interval(-10.0, 5.1), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-10.0, 5.0), com), DecoratedInterval(Interval(-10.0, 5.1), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-10.0, 5.0), dac), DecoratedInterval(Interval(-10.1, 5.1), trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-10.0, 5.0), dac), DecoratedInterval(Interval(-10.1, 5.1), trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(1.0, 5.0), def), DecoratedInterval(Interval(0.9, 5.0), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(1.0, 5.0), def), DecoratedInterval(Interval(0.9, 5.0), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(1.0, 5.0), trv), DecoratedInterval(Interval(1.0, 5.1), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(1.0, 5.0), trv), DecoratedInterval(Interval(1.0, 5.1), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(1.0, 5.0), com), DecoratedInterval(Interval(0.9, 5.1), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(1.0, 5.0), com), DecoratedInterval(Interval(0.9, 5.1), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-10.0, -1.0), com), DecoratedInterval(∅, trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-10.0, -1.0), com), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-10.0, 5.0), dac), DecoratedInterval(∅, trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-10.0, 5.0), dac), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(1.0, 5.0), def), DecoratedInterval(∅, trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(1.0, 5.0), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-10.0, -1.0), com)) == DecoratedInterval(∅, trv) + @test decoration(cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-10.0, -1.0), com))) == decoration(DecoratedInterval(∅, trv)) + @test cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-10.0, 5.0), dac)) == DecoratedInterval(∅, trv) + @test decoration(cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-10.0, 5.0), dac))) == decoration(DecoratedInterval(∅, trv)) + @test cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 5.0), def)) == DecoratedInterval(∅, trv) + @test decoration(cancelminus(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 5.0), def))) == decoration(DecoratedInterval(∅, trv)) + @test cancelminus(DecoratedInterval(Interval(-5.1, -0.0), com), DecoratedInterval(Interval(-5.0, 0.0), com)) == DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-5.1, -0.0), com), DecoratedInterval(Interval(-5.0, 0.0), com))) == decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv)) + @test cancelminus(DecoratedInterval(Interval(-5.1, -1.0), dac), DecoratedInterval(Interval(-5.0, -1.0), com)) == DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-5.1, -1.0), dac), DecoratedInterval(Interval(-5.0, -1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv)) + @test cancelminus(DecoratedInterval(Interval(-5.0, -0.9), def), DecoratedInterval(Interval(-5.0, -1.0), com)) == DecoratedInterval(Interval(0.0, 0x1.9999999999998p-4), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-5.0, -0.9), def), DecoratedInterval(Interval(-5.0, -1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1.9999999999998p-4), trv)) + @test cancelminus(DecoratedInterval(Interval(-5.1, -0.9), trv), DecoratedInterval(Interval(-5.0, -1.0), com)) == DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.9999999999998p-4), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-5.1, -0.9), trv), DecoratedInterval(Interval(-5.0, -1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.9999999999998p-4), trv)) + @test cancelminus(DecoratedInterval(Interval(-5.0, -1.0), com), DecoratedInterval(Interval(-5.0, -1.0), dac)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-5.0, -1.0), com), DecoratedInterval(Interval(-5.0, -1.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test cancelminus(DecoratedInterval(Interval(-10.1, 5.0), dac), DecoratedInterval(Interval(-10.0, 5.0), dac)) == DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-10.1, 5.0), dac), DecoratedInterval(Interval(-10.0, 5.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0.0), trv)) + @test cancelminus(DecoratedInterval(Interval(-10.0, 5.1), def), DecoratedInterval(Interval(-10.0, 5.0), dac)) == DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-10.0, 5.1), def), DecoratedInterval(Interval(-10.0, 5.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv)) + @test cancelminus(DecoratedInterval(Interval(-10.1, 5.1), trv), DecoratedInterval(Interval(-10.0, 5.0), def)) == DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.999999999998p-4), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-10.1, 5.1), trv), DecoratedInterval(Interval(-10.0, 5.0), def))) == decoration(DecoratedInterval(Interval(-0x1.999999999998p-4, 0x1.999999999998p-4), trv)) + @test cancelminus(DecoratedInterval(Interval(-10.0, 5.0), com), DecoratedInterval(Interval(-10.0, 5.0), def)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-10.0, 5.0), com), DecoratedInterval(Interval(-10.0, 5.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test cancelminus(DecoratedInterval(Interval(0.9, 5.0), dac), DecoratedInterval(Interval(1.0, 5.0), def)) == DecoratedInterval(Interval(-0x1.9999999999998p-4, 0.0), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(0.9, 5.0), dac), DecoratedInterval(Interval(1.0, 5.0), def))) == decoration(DecoratedInterval(Interval(-0x1.9999999999998p-4, 0.0), trv)) + @test cancelminus(DecoratedInterval(Interval(-0.0, 5.1), def), DecoratedInterval(Interval(0.0, 5.0), def)) == DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-0.0, 5.1), def), DecoratedInterval(Interval(0.0, 5.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv)) + @test cancelminus(DecoratedInterval(Interval(1.0, 5.1), trv), DecoratedInterval(Interval(1.0, 5.0), trv)) == DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(1.0, 5.1), trv), DecoratedInterval(Interval(1.0, 5.0), trv))) == decoration(DecoratedInterval(Interval(0.0, 0x1.999999999998p-4), trv)) + @test cancelminus(DecoratedInterval(Interval(0.9, 5.1), com), DecoratedInterval(Interval(1.0, 5.0), trv)) == DecoratedInterval(Interval(-0x1.9999999999998p-4, 0x1.999999999998p-4), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(0.9, 5.1), com), DecoratedInterval(Interval(1.0, 5.0), trv))) == decoration(DecoratedInterval(Interval(-0x1.9999999999998p-4, 0x1.999999999998p-4), trv)) + @test cancelminus(DecoratedInterval(Interval(1.0, 5.0), dac), DecoratedInterval(Interval(1.0, 5.0), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(1.0, 5.0), dac), DecoratedInterval(Interval(1.0, 5.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test cancelminus(DecoratedInterval(Interval(-5.0, 1.0), def), DecoratedInterval(Interval(-1.0, 5.0), def)) == DecoratedInterval(Interval(-4.0, -4.0), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-5.0, 1.0), def), DecoratedInterval(Interval(-1.0, 5.0), def))) == decoration(DecoratedInterval(Interval(-4.0, -4.0), trv)) + @test cancelminus(DecoratedInterval(Interval(-5.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 5.0), trv)) == DecoratedInterval(Interval(-5.0, -5.0), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-5.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 5.0), trv))) == decoration(DecoratedInterval(Interval(-5.0, -5.0), trv)) + @test cancelminus(DecoratedInterval(Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0), com), DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com)) == DecoratedInterval(Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0), com), DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com))) == decoration(DecoratedInterval(Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0), trv)) + @test cancelminus(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0x1.ffffffffffffp+0), def), DecoratedInterval(Interval(-0.01, 0x1.999999999999ap-4), dac)) == DecoratedInterval(Interval(-0x1.70a3d70a3d70bp-4, 0x1.e666666666657p+0), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0x1.ffffffffffffp+0), def), DecoratedInterval(Interval(-0.01, 0x1.999999999999ap-4), dac))) == decoration(DecoratedInterval(Interval(-0x1.70a3d70a3d70bp-4, 0x1.e666666666657p+0), trv)) + @test cancelminus(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023), com)) == DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), trv)) + @test cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com)) == DecoratedInterval(Interval(0.0, 0x1p+971), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1p+971), trv)) + @test cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com)) == DecoratedInterval(Interval(-0x1p+971, 0.0), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(Interval(-0x1p+971, 0.0), trv)) + @test cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.ffffffffffffep+1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), com), DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), com), DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test cancelminus(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), com), DecoratedInterval(Interval(-0x0.0000000000001p-1022, -0x0.0000000000001p-1022), dac)) == DecoratedInterval(Interval(0x0.0000000000002p-1022, 0x0.0000000000002p-1022), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x0.0000000000001p-1022), com), DecoratedInterval(Interval(-0x0.0000000000001p-1022, -0x0.0000000000001p-1022), dac))) == decoration(DecoratedInterval(Interval(0x0.0000000000002p-1022, 0x0.0000000000002p-1022), trv)) + @test cancelminus(DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000002p-1022), dac), DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000001p-1022), dac)) == DecoratedInterval(Interval(0.0, 0x0.0000000000001p-1022), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000002p-1022), dac), DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000001p-1022), dac))) == decoration(DecoratedInterval(Interval(0.0, 0x0.0000000000001p-1022), trv)) + @test cancelminus(DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000001p-1022), def), DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000002p-1022), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000001p-1022), def), DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000002p-1022), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test cancelminus(DecoratedInterval(Interval(-0x1p+0, 0x1.fffffffffffffp-53), com), DecoratedInterval(Interval(-0x1.ffffffffffffep-53, 0x1p+0), dac)) == DecoratedInterval(Interval(-0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-0x1p+0, 0x1.fffffffffffffp-53), com), DecoratedInterval(Interval(-0x1.ffffffffffffep-53, 0x1p+0), dac))) == decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1), trv)) + @test cancelminus(DecoratedInterval(Interval(-0x1p+0, 0x1.ffffffffffffep-53), def), DecoratedInterval(Interval(-0x1.fffffffffffffp-53, 0x1p+0), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(cancelminus(DecoratedInterval(Interval(-0x1p+0, 0x1.ffffffffffffep-53), def), DecoratedInterval(Interval(-0x1.fffffffffffffp-53, 0x1p+0), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) end -# FactCheck.exitstatus() diff --git a/test/ITF1788_tests/libieeep1788_tests_elem.jl b/test/ITF1788_tests/libieeep1788_tests_elem.jl index e0ddc2d..d0c0948 100644 --- a/test/ITF1788_tests/libieeep1788_tests_elem.jl +++ b/test/ITF1788_tests/libieeep1788_tests_elem.jl @@ -1,26 +1,31 @@ -# -# Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) -# Copyright 2015 Oliver Heimlich (oheim@posteo.de) -# -# Original author: Marco Nehmeier (unit tests in libieeep1788) -# Converted into portable ITL format by Oliver Heimlich with minor corrections. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# +#= + Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) + Copyright 2015 Oliver Heimlich (oheim@posteo.de) + + Original author: Marco Nehmeier (unit tests in libieeep1788) + Converted into portable ITL format by Oliver Heimlich with minor corrections. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +=# #Language imports #Test library imports -using FactCheck +if VERSION >= v"0.5.0-dev+7720" + using Base.Test +else + using BaseTestNext + const Test = BaseTestNext +end #Arithmetic library imports using ValidatedNumerics @@ -30,4990 +35,4989 @@ setprecision(53) setprecision(Interval, Float64) setrounding(Interval, :narrow) -facts("minimal_pos_test") do - @fact +Interval(1.0, 2.0) --> Interval(1.0, 2.0) - @fact +∅ --> ∅ - @fact +entireinterval(Float64) --> entireinterval(Float64) - @fact +Interval(1.0, Inf) --> Interval(1.0, Inf) - @fact +Interval(-Inf, -1.0) --> Interval(-Inf, -1.0) - @fact +Interval(0.0, 2.0) --> Interval(0.0, 2.0) - @fact +Interval(-0.0, 2.0) --> Interval(0.0, 2.0) - @fact +Interval(-2.5, -0.0) --> Interval(-2.5, 0.0) - @fact +Interval(-2.5, 0.0) --> Interval(-2.5, 0.0) - @fact +Interval(-0.0, -0.0) --> Interval(0.0, 0.0) - @fact +Interval(0.0, 0.0) --> Interval(0.0, 0.0) +@testset "minimal_pos_test" begin + @test +Interval(1.0, 2.0) == Interval(1.0, 2.0) + @test +∅ == ∅ + @test +entireinterval(Float64) == entireinterval(Float64) + @test +Interval(1.0, Inf) == Interval(1.0, Inf) + @test +Interval(-Inf, -1.0) == Interval(-Inf, -1.0) + @test +Interval(0.0, 2.0) == Interval(0.0, 2.0) + @test +Interval(-0.0, 2.0) == Interval(0.0, 2.0) + @test +Interval(-2.5, -0.0) == Interval(-2.5, 0.0) + @test +Interval(-2.5, 0.0) == Interval(-2.5, 0.0) + @test +Interval(-0.0, -0.0) == Interval(0.0, 0.0) + @test +Interval(0.0, 0.0) == Interval(0.0, 0.0) end -facts("minimal_pos_dec_test") do - @fact +DecoratedInterval(∅, trv) --> DecoratedInterval(∅, trv) - @fact decoration(+DecoratedInterval(∅, trv)) --> decoration(DecoratedInterval(∅, trv)) - @fact +DecoratedInterval(entireinterval(Float64), def) --> DecoratedInterval(entireinterval(Float64), def) - @fact decoration(+DecoratedInterval(entireinterval(Float64), def)) --> decoration(DecoratedInterval(entireinterval(Float64), def)) - @fact +DecoratedInterval(Interval(1.0, 2.0), com) --> DecoratedInterval(Interval(1.0, 2.0), com) - @fact decoration(+DecoratedInterval(Interval(1.0, 2.0), com)) --> decoration(DecoratedInterval(Interval(1.0, 2.0), com)) +@testset "minimal_pos_dec_test" begin + @test +DecoratedInterval(∅, trv) == DecoratedInterval(∅, trv) + @test decoration(+DecoratedInterval(∅, trv)) == decoration(DecoratedInterval(∅, trv)) + @test +DecoratedInterval(entireinterval(Float64), def) == DecoratedInterval(entireinterval(Float64), def) + @test decoration(+DecoratedInterval(entireinterval(Float64), def)) == decoration(DecoratedInterval(entireinterval(Float64), def)) + @test +DecoratedInterval(Interval(1.0, 2.0), com) == DecoratedInterval(Interval(1.0, 2.0), com) + @test decoration(+DecoratedInterval(Interval(1.0, 2.0), com)) == decoration(DecoratedInterval(Interval(1.0, 2.0), com)) end -facts("minimal_neg_test") do - @fact -(Interval(1.0, 2.0)) --> Interval(-2.0, -1.0) - @fact -(∅) --> ∅ - @fact -(entireinterval(Float64)) --> entireinterval(Float64) - @fact -(Interval(1.0, Inf)) --> Interval(-Inf, -1.0) - @fact -(Interval(-Inf, 1.0)) --> Interval(-1.0, Inf) - @fact -(Interval(0.0, 2.0)) --> Interval(-2.0, 0.0) - @fact -(Interval(-0.0, 2.0)) --> Interval(-2.0, 0.0) - @fact -(Interval(-2.0, 0.0)) --> Interval(0.0, 2.0) - @fact -(Interval(-2.0, -0.0)) --> Interval(0.0, 2.0) - @fact -(Interval(0.0, -0.0)) --> Interval(0.0, 0.0) - @fact -(Interval(-0.0, -0.0)) --> Interval(0.0, 0.0) +@testset "minimal_neg_test" begin + @test -(Interval(1.0, 2.0)) == Interval(-2.0, -1.0) + @test -(∅) == ∅ + @test -(entireinterval(Float64)) == entireinterval(Float64) + @test -(Interval(1.0, Inf)) == Interval(-Inf, -1.0) + @test -(Interval(-Inf, 1.0)) == Interval(-1.0, Inf) + @test -(Interval(0.0, 2.0)) == Interval(-2.0, 0.0) + @test -(Interval(-0.0, 2.0)) == Interval(-2.0, 0.0) + @test -(Interval(-2.0, 0.0)) == Interval(0.0, 2.0) + @test -(Interval(-2.0, -0.0)) == Interval(0.0, 2.0) + @test -(Interval(0.0, -0.0)) == Interval(0.0, 0.0) + @test -(Interval(-0.0, -0.0)) == Interval(0.0, 0.0) end -facts("minimal_neg_dec_test") do - @fact -(DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(-(DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact -(DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), def) - @fact decoration(-(DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), def)) - @fact -(DecoratedInterval(Interval(1.0, 2.0), com)) --> DecoratedInterval(Interval(-2.0, -1.0), com) - @fact decoration(-(DecoratedInterval(Interval(1.0, 2.0), com))) --> decoration(DecoratedInterval(Interval(-2.0, -1.0), com)) +@testset "minimal_neg_dec_test" begin + @test -(DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(-(DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test -(DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), def) + @test decoration(-(DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), def)) + @test -(DecoratedInterval(Interval(1.0, 2.0), com)) == DecoratedInterval(Interval(-2.0, -1.0), com) + @test decoration(-(DecoratedInterval(Interval(1.0, 2.0), com))) == decoration(DecoratedInterval(Interval(-2.0, -1.0), com)) end -facts("minimal_add_test") do - @fact ∅ + ∅ --> ∅ - @fact Interval(-1.0, 1.0) + ∅ --> ∅ - @fact ∅ + Interval(-1.0, 1.0) --> ∅ - @fact ∅ + entireinterval(Float64) --> ∅ - @fact entireinterval(Float64) + ∅ --> ∅ - @fact entireinterval(Float64) + Interval(-Inf, 1.0) --> entireinterval(Float64) - @fact entireinterval(Float64) + Interval(-1.0, 1.0) --> entireinterval(Float64) - @fact entireinterval(Float64) + Interval(-1.0, Inf) --> entireinterval(Float64) - @fact entireinterval(Float64) + entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-Inf, 1.0) + entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-1.0, 1.0) + entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-1.0, Inf) + entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-Inf, 2.0) + Interval(-Inf, 4.0) --> Interval(-Inf, 6.0) - @fact Interval(-Inf, 2.0) + Interval(3.0, 4.0) --> Interval(-Inf, 6.0) - @fact Interval(-Inf, 2.0) + Interval(3.0, Inf) --> entireinterval(Float64) - @fact Interval(1.0, 2.0) + Interval(-Inf, 4.0) --> Interval(-Inf, 6.0) - @fact Interval(1.0, 2.0) + Interval(3.0, 4.0) --> Interval(4.0, 6.0) - @fact Interval(1.0, 2.0) + Interval(3.0, Inf) --> Interval(4.0, Inf) - @fact Interval(1.0, Inf) + Interval(-Inf, 4.0) --> entireinterval(Float64) - @fact Interval(1.0, Inf) + Interval(3.0, 4.0) --> Interval(4.0, Inf) - @fact Interval(1.0, Inf) + Interval(3.0, Inf) --> Interval(4.0, Inf) - @fact Interval(1.0, 0x1.fffffffffffffp1023) + Interval(3.0, 4.0) --> Interval(4.0, Inf) - @fact Interval(-0x1.fffffffffffffp1023, 2.0) + Interval(-3.0, 4.0) --> Interval(-Inf, 6.0) - @fact Interval(-0x1.fffffffffffffp1023, 2.0) + Interval(-3.0, 0x1.fffffffffffffp1023) --> entireinterval(Float64) - @fact Interval(1.0, 0x1.fffffffffffffp1023) + Interval(0.0, 0.0) --> Interval(1.0, 0x1.fffffffffffffp1023) - @fact Interval(1.0, 0x1.fffffffffffffp1023) + Interval(-0.0, -0.0) --> Interval(1.0, 0x1.fffffffffffffp1023) - @fact Interval(0.0, 0.0) + Interval(-3.0, 4.0) --> Interval(-3.0, 4.0) - @fact Interval(-0.0, -0.0) + Interval(-3.0, 0x1.fffffffffffffp1023) --> Interval(-3.0, 0x1.fffffffffffffp1023) - @fact Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0) + Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4) --> Interval(0x1.0ccccccccccc4p+1, 0x1.0ccccccccccc5p+1) - @fact Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0) + Interval(-0x1.999999999999ap-4, -0x1.999999999999ap-4) --> Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0) - @fact Interval(-0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0) + Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4) --> Interval(-0x1.e666666666657p+0, 0x1.0ccccccccccc5p+1) +@testset "minimal_add_test" begin + @test ∅ + ∅ == ∅ + @test Interval(-1.0, 1.0) + ∅ == ∅ + @test ∅ + Interval(-1.0, 1.0) == ∅ + @test ∅ + entireinterval(Float64) == ∅ + @test entireinterval(Float64) + ∅ == ∅ + @test entireinterval(Float64) + Interval(-Inf, 1.0) == entireinterval(Float64) + @test entireinterval(Float64) + Interval(-1.0, 1.0) == entireinterval(Float64) + @test entireinterval(Float64) + Interval(-1.0, Inf) == entireinterval(Float64) + @test entireinterval(Float64) + entireinterval(Float64) == entireinterval(Float64) + @test Interval(-Inf, 1.0) + entireinterval(Float64) == entireinterval(Float64) + @test Interval(-1.0, 1.0) + entireinterval(Float64) == entireinterval(Float64) + @test Interval(-1.0, Inf) + entireinterval(Float64) == entireinterval(Float64) + @test Interval(-Inf, 2.0) + Interval(-Inf, 4.0) == Interval(-Inf, 6.0) + @test Interval(-Inf, 2.0) + Interval(3.0, 4.0) == Interval(-Inf, 6.0) + @test Interval(-Inf, 2.0) + Interval(3.0, Inf) == entireinterval(Float64) + @test Interval(1.0, 2.0) + Interval(-Inf, 4.0) == Interval(-Inf, 6.0) + @test Interval(1.0, 2.0) + Interval(3.0, 4.0) == Interval(4.0, 6.0) + @test Interval(1.0, 2.0) + Interval(3.0, Inf) == Interval(4.0, Inf) + @test Interval(1.0, Inf) + Interval(-Inf, 4.0) == entireinterval(Float64) + @test Interval(1.0, Inf) + Interval(3.0, 4.0) == Interval(4.0, Inf) + @test Interval(1.0, Inf) + Interval(3.0, Inf) == Interval(4.0, Inf) + @test Interval(1.0, 0x1.fffffffffffffp1023) + Interval(3.0, 4.0) == Interval(4.0, Inf) + @test Interval(-0x1.fffffffffffffp1023, 2.0) + Interval(-3.0, 4.0) == Interval(-Inf, 6.0) + @test Interval(-0x1.fffffffffffffp1023, 2.0) + Interval(-3.0, 0x1.fffffffffffffp1023) == entireinterval(Float64) + @test Interval(1.0, 0x1.fffffffffffffp1023) + Interval(0.0, 0.0) == Interval(1.0, 0x1.fffffffffffffp1023) + @test Interval(1.0, 0x1.fffffffffffffp1023) + Interval(-0.0, -0.0) == Interval(1.0, 0x1.fffffffffffffp1023) + @test Interval(0.0, 0.0) + Interval(-3.0, 4.0) == Interval(-3.0, 4.0) + @test Interval(-0.0, -0.0) + Interval(-3.0, 0x1.fffffffffffffp1023) == Interval(-3.0, 0x1.fffffffffffffp1023) + @test Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0) + Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4) == Interval(0x1.0ccccccccccc4p+1, 0x1.0ccccccccccc5p+1) + @test Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0) + Interval(-0x1.999999999999ap-4, -0x1.999999999999ap-4) == Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0) + @test Interval(-0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0) + Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4) == Interval(-0x1.e666666666657p+0, 0x1.0ccccccccccc5p+1) end -facts("minimal_add_dec_test") do - @fact DecoratedInterval(Interval(1.0, 2.0), com) + DecoratedInterval(Interval(5.0, 7.0), com) --> DecoratedInterval(Interval(6.0, 9.0), com) - @fact decoration(DecoratedInterval(Interval(1.0, 2.0), com) + DecoratedInterval(Interval(5.0, 7.0), com)) --> decoration(DecoratedInterval(Interval(6.0, 9.0), com)) - @fact DecoratedInterval(Interval(1.0, 2.0), com) + DecoratedInterval(Interval(5.0, 7.0), def) --> DecoratedInterval(Interval(6.0, 9.0), def) - @fact decoration(DecoratedInterval(Interval(1.0, 2.0), com) + DecoratedInterval(Interval(5.0, 7.0), def)) --> decoration(DecoratedInterval(Interval(6.0, 9.0), def)) - @fact DecoratedInterval(Interval(1.0, 2.0), com) + DecoratedInterval(Interval(5.0, 0x1.fffffffffffffp1023), com) --> DecoratedInterval(Interval(6.0, Inf), dac) - @fact decoration(DecoratedInterval(Interval(1.0, 2.0), com) + DecoratedInterval(Interval(5.0, 0x1.fffffffffffffp1023), com)) --> decoration(DecoratedInterval(Interval(6.0, Inf), dac)) - @fact DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) + DecoratedInterval(Interval(-0.1, 5.0), com) --> DecoratedInterval(Interval(-Inf, 7.0), dac) - @fact decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) + DecoratedInterval(Interval(-0.1, 5.0), com)) --> decoration(DecoratedInterval(Interval(-Inf, 7.0), dac)) - @fact DecoratedInterval(Interval(1.0, 2.0), trv) + DecoratedInterval(∅, trv) --> DecoratedInterval(∅, trv) - @fact decoration(DecoratedInterval(Interval(1.0, 2.0), trv) + DecoratedInterval(∅, trv)) --> decoration(DecoratedInterval(∅, trv)) +@testset "minimal_add_dec_test" begin + @test DecoratedInterval(Interval(1.0, 2.0), com) + DecoratedInterval(Interval(5.0, 7.0), com) == DecoratedInterval(Interval(6.0, 9.0), com) + @test decoration(DecoratedInterval(Interval(1.0, 2.0), com) + DecoratedInterval(Interval(5.0, 7.0), com)) == decoration(DecoratedInterval(Interval(6.0, 9.0), com)) + @test DecoratedInterval(Interval(1.0, 2.0), com) + DecoratedInterval(Interval(5.0, 7.0), def) == DecoratedInterval(Interval(6.0, 9.0), def) + @test decoration(DecoratedInterval(Interval(1.0, 2.0), com) + DecoratedInterval(Interval(5.0, 7.0), def)) == decoration(DecoratedInterval(Interval(6.0, 9.0), def)) + @test DecoratedInterval(Interval(1.0, 2.0), com) + DecoratedInterval(Interval(5.0, 0x1.fffffffffffffp1023), com) == DecoratedInterval(Interval(6.0, Inf), dac) + @test decoration(DecoratedInterval(Interval(1.0, 2.0), com) + DecoratedInterval(Interval(5.0, 0x1.fffffffffffffp1023), com)) == decoration(DecoratedInterval(Interval(6.0, Inf), dac)) + @test DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) + DecoratedInterval(Interval(-0.1, 5.0), com) == DecoratedInterval(Interval(-Inf, 7.0), dac) + @test decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) + DecoratedInterval(Interval(-0.1, 5.0), com)) == decoration(DecoratedInterval(Interval(-Inf, 7.0), dac)) + @test DecoratedInterval(Interval(1.0, 2.0), trv) + DecoratedInterval(∅, trv) == DecoratedInterval(∅, trv) + @test decoration(DecoratedInterval(Interval(1.0, 2.0), trv) + DecoratedInterval(∅, trv)) == decoration(DecoratedInterval(∅, trv)) end -facts("minimal_sub_test") do - @fact ∅ - ∅ --> ∅ - @fact Interval(-1.0, 1.0) - ∅ --> ∅ - @fact ∅ - Interval(-1.0, 1.0) --> ∅ - @fact ∅ - entireinterval(Float64) --> ∅ - @fact entireinterval(Float64) - ∅ --> ∅ - @fact entireinterval(Float64) - Interval(-Inf, 1.0) --> entireinterval(Float64) - @fact entireinterval(Float64) - Interval(-1.0, 1.0) --> entireinterval(Float64) - @fact entireinterval(Float64) - Interval(-1.0, Inf) --> entireinterval(Float64) - @fact entireinterval(Float64) - entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-Inf, 1.0) - entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-1.0, 1.0) - entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-1.0, Inf) - entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-Inf, 2.0) - Interval(-Inf, 4.0) --> entireinterval(Float64) - @fact Interval(-Inf, 2.0) - Interval(3.0, 4.0) --> Interval(-Inf, -1.0) - @fact Interval(-Inf, 2.0) - Interval(3.0, Inf) --> Interval(-Inf, -1.0) - @fact Interval(1.0, 2.0) - Interval(-Inf, 4.0) --> Interval(-3.0, Inf) - @fact Interval(1.0, 2.0) - Interval(3.0, 4.0) --> Interval(-3.0, -1.0) - @fact Interval(1.0, 2.0) - Interval(3.0, Inf) --> Interval(-Inf, -1.0) - @fact Interval(1.0, Inf) - Interval(-Inf, 4.0) --> Interval(-3.0, Inf) - @fact Interval(1.0, Inf) - Interval(3.0, 4.0) --> Interval(-3.0, Inf) - @fact Interval(1.0, Inf) - Interval(3.0, Inf) --> entireinterval(Float64) - @fact Interval(1.0, 0x1.fffffffffffffp1023) - Interval(-3.0, 4.0) --> Interval(-3.0, Inf) - @fact Interval(-0x1.fffffffffffffp1023, 2.0) - Interval(3.0, 4.0) --> Interval(-Inf, -1.0) - @fact Interval(-0x1.fffffffffffffp1023, 2.0) - Interval(-0x1.fffffffffffffp1023, 4.0) --> entireinterval(Float64) - @fact Interval(1.0, 0x1.fffffffffffffp1023) - Interval(0.0, 0.0) --> Interval(1.0, 0x1.fffffffffffffp1023) - @fact Interval(1.0, 0x1.fffffffffffffp1023) - Interval(-0.0, -0.0) --> Interval(1.0, 0x1.fffffffffffffp1023) - @fact Interval(0.0, 0.0) - Interval(-3.0, 4.0) --> Interval(-4.0, 3.0) - @fact Interval(-0.0, -0.0) - Interval(-3.0, 0x1.fffffffffffffp1023) --> Interval(-0x1.fffffffffffffp1023, 3.0) - @fact Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0) - Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4) --> Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0) - @fact Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0) - Interval(-0x1.999999999999ap-4, -0x1.999999999999ap-4) --> Interval(0x1.0ccccccccccc4p+1, 0x1.0ccccccccccc5p+1) - @fact Interval(-0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0) - Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4) --> Interval(-0x1.0ccccccccccc5p+1, 0x1.e666666666657p+0) +@testset "minimal_sub_test" begin + @test ∅ - ∅ == ∅ + @test Interval(-1.0, 1.0) - ∅ == ∅ + @test ∅ - Interval(-1.0, 1.0) == ∅ + @test ∅ - entireinterval(Float64) == ∅ + @test entireinterval(Float64) - ∅ == ∅ + @test entireinterval(Float64) - Interval(-Inf, 1.0) == entireinterval(Float64) + @test entireinterval(Float64) - Interval(-1.0, 1.0) == entireinterval(Float64) + @test entireinterval(Float64) - Interval(-1.0, Inf) == entireinterval(Float64) + @test entireinterval(Float64) - entireinterval(Float64) == entireinterval(Float64) + @test Interval(-Inf, 1.0) - entireinterval(Float64) == entireinterval(Float64) + @test Interval(-1.0, 1.0) - entireinterval(Float64) == entireinterval(Float64) + @test Interval(-1.0, Inf) - entireinterval(Float64) == entireinterval(Float64) + @test Interval(-Inf, 2.0) - Interval(-Inf, 4.0) == entireinterval(Float64) + @test Interval(-Inf, 2.0) - Interval(3.0, 4.0) == Interval(-Inf, -1.0) + @test Interval(-Inf, 2.0) - Interval(3.0, Inf) == Interval(-Inf, -1.0) + @test Interval(1.0, 2.0) - Interval(-Inf, 4.0) == Interval(-3.0, Inf) + @test Interval(1.0, 2.0) - Interval(3.0, 4.0) == Interval(-3.0, -1.0) + @test Interval(1.0, 2.0) - Interval(3.0, Inf) == Interval(-Inf, -1.0) + @test Interval(1.0, Inf) - Interval(-Inf, 4.0) == Interval(-3.0, Inf) + @test Interval(1.0, Inf) - Interval(3.0, 4.0) == Interval(-3.0, Inf) + @test Interval(1.0, Inf) - Interval(3.0, Inf) == entireinterval(Float64) + @test Interval(1.0, 0x1.fffffffffffffp1023) - Interval(-3.0, 4.0) == Interval(-3.0, Inf) + @test Interval(-0x1.fffffffffffffp1023, 2.0) - Interval(3.0, 4.0) == Interval(-Inf, -1.0) + @test Interval(-0x1.fffffffffffffp1023, 2.0) - Interval(-0x1.fffffffffffffp1023, 4.0) == entireinterval(Float64) + @test Interval(1.0, 0x1.fffffffffffffp1023) - Interval(0.0, 0.0) == Interval(1.0, 0x1.fffffffffffffp1023) + @test Interval(1.0, 0x1.fffffffffffffp1023) - Interval(-0.0, -0.0) == Interval(1.0, 0x1.fffffffffffffp1023) + @test Interval(0.0, 0.0) - Interval(-3.0, 4.0) == Interval(-4.0, 3.0) + @test Interval(-0.0, -0.0) - Interval(-3.0, 0x1.fffffffffffffp1023) == Interval(-0x1.fffffffffffffp1023, 3.0) + @test Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0) - Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4) == Interval(0x1.e666666666656p+0, 0x1.e666666666657p+0) + @test Interval(0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0) - Interval(-0x1.999999999999ap-4, -0x1.999999999999ap-4) == Interval(0x1.0ccccccccccc4p+1, 0x1.0ccccccccccc5p+1) + @test Interval(-0x1.ffffffffffffp+0, 0x1.ffffffffffffp+0) - Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4) == Interval(-0x1.0ccccccccccc5p+1, 0x1.e666666666657p+0) end -facts("minimal_sub_dec_test") do - @fact DecoratedInterval(Interval(1.0, 2.0), com) - DecoratedInterval(Interval(5.0, 7.0), com) --> DecoratedInterval(Interval(-6.0, -3.0), com) - @fact decoration(DecoratedInterval(Interval(1.0, 2.0), com) - DecoratedInterval(Interval(5.0, 7.0), com)) --> decoration(DecoratedInterval(Interval(-6.0, -3.0), com)) - @fact DecoratedInterval(Interval(1.0, 2.0), com) - DecoratedInterval(Interval(5.0, 7.0), def) --> DecoratedInterval(Interval(-6.0, -3.0), def) - @fact decoration(DecoratedInterval(Interval(1.0, 2.0), com) - DecoratedInterval(Interval(5.0, 7.0), def)) --> decoration(DecoratedInterval(Interval(-6.0, -3.0), def)) - @fact DecoratedInterval(Interval(-1.0, 2.0), com) - DecoratedInterval(Interval(5.0, 0x1.fffffffffffffp1023), com) --> DecoratedInterval(Interval(-Inf, -3.0), dac) - @fact decoration(DecoratedInterval(Interval(-1.0, 2.0), com) - DecoratedInterval(Interval(5.0, 0x1.fffffffffffffp1023), com)) --> decoration(DecoratedInterval(Interval(-Inf, -3.0), dac)) - @fact DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) - DecoratedInterval(Interval(-1.0, 5.0), com) --> DecoratedInterval(Interval(-Inf, 3.0), dac) - @fact decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) - DecoratedInterval(Interval(-1.0, 5.0), com)) --> decoration(DecoratedInterval(Interval(-Inf, 3.0), dac)) - @fact DecoratedInterval(Interval(1.0, 2.0), trv) - DecoratedInterval(∅, trv) --> DecoratedInterval(∅, trv) - @fact decoration(DecoratedInterval(Interval(1.0, 2.0), trv) - DecoratedInterval(∅, trv)) --> decoration(DecoratedInterval(∅, trv)) +@testset "minimal_sub_dec_test" begin + @test DecoratedInterval(Interval(1.0, 2.0), com) - DecoratedInterval(Interval(5.0, 7.0), com) == DecoratedInterval(Interval(-6.0, -3.0), com) + @test decoration(DecoratedInterval(Interval(1.0, 2.0), com) - DecoratedInterval(Interval(5.0, 7.0), com)) == decoration(DecoratedInterval(Interval(-6.0, -3.0), com)) + @test DecoratedInterval(Interval(1.0, 2.0), com) - DecoratedInterval(Interval(5.0, 7.0), def) == DecoratedInterval(Interval(-6.0, -3.0), def) + @test decoration(DecoratedInterval(Interval(1.0, 2.0), com) - DecoratedInterval(Interval(5.0, 7.0), def)) == decoration(DecoratedInterval(Interval(-6.0, -3.0), def)) + @test DecoratedInterval(Interval(-1.0, 2.0), com) - DecoratedInterval(Interval(5.0, 0x1.fffffffffffffp1023), com) == DecoratedInterval(Interval(-Inf, -3.0), dac) + @test decoration(DecoratedInterval(Interval(-1.0, 2.0), com) - DecoratedInterval(Interval(5.0, 0x1.fffffffffffffp1023), com)) == decoration(DecoratedInterval(Interval(-Inf, -3.0), dac)) + @test DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) - DecoratedInterval(Interval(-1.0, 5.0), com) == DecoratedInterval(Interval(-Inf, 3.0), dac) + @test decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) - DecoratedInterval(Interval(-1.0, 5.0), com)) == decoration(DecoratedInterval(Interval(-Inf, 3.0), dac)) + @test DecoratedInterval(Interval(1.0, 2.0), trv) - DecoratedInterval(∅, trv) == DecoratedInterval(∅, trv) + @test decoration(DecoratedInterval(Interval(1.0, 2.0), trv) - DecoratedInterval(∅, trv)) == decoration(DecoratedInterval(∅, trv)) end -facts("minimal_mul_test") do - @fact ∅ * ∅ --> ∅ - @fact Interval(-1.0, 1.0) * ∅ --> ∅ - @fact ∅ * Interval(-1.0, 1.0) --> ∅ - @fact ∅ * entireinterval(Float64) --> ∅ - @fact entireinterval(Float64) * ∅ --> ∅ - @fact Interval(0.0, 0.0) * ∅ --> ∅ - @fact ∅ * Interval(0.0, 0.0) --> ∅ - @fact Interval(-0.0, -0.0) * ∅ --> ∅ - @fact ∅ * Interval(-0.0, -0.0) --> ∅ - @fact entireinterval(Float64) * Interval(0.0, 0.0) --> Interval(0.0, 0.0) - @fact entireinterval(Float64) * Interval(-0.0, -0.0) --> Interval(0.0, 0.0) - @fact entireinterval(Float64) * Interval(-5.0, -1.0) --> entireinterval(Float64) - @fact entireinterval(Float64) * Interval(-5.0, 3.0) --> entireinterval(Float64) - @fact entireinterval(Float64) * Interval(1.0, 3.0) --> entireinterval(Float64) - @fact entireinterval(Float64) * Interval(-Inf, -1.0) --> entireinterval(Float64) - @fact entireinterval(Float64) * Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact entireinterval(Float64) * Interval(-5.0, Inf) --> entireinterval(Float64) - @fact entireinterval(Float64) * Interval(1.0, Inf) --> entireinterval(Float64) - @fact entireinterval(Float64) * entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(1.0, Inf) * Interval(0.0, 0.0) --> Interval(0.0, 0.0) - @fact Interval(1.0, Inf) * Interval(-0.0, -0.0) --> Interval(0.0, 0.0) - @fact Interval(1.0, Inf) * Interval(-5.0, -1.0) --> Interval(-Inf, -1.0) - @fact Interval(1.0, Inf) * Interval(-5.0, 3.0) --> entireinterval(Float64) - @fact Interval(1.0, Inf) * Interval(1.0, 3.0) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) * Interval(-Inf, -1.0) --> Interval(-Inf, -1.0) - @fact Interval(1.0, Inf) * Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(1.0, Inf) * Interval(-5.0, Inf) --> entireinterval(Float64) - @fact Interval(1.0, Inf) * Interval(1.0, Inf) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) * entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-1.0, Inf) * Interval(0.0, 0.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, Inf) * Interval(-0.0, -0.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, Inf) * Interval(-5.0, -1.0) --> Interval(-Inf, 5.0) - @fact Interval(-1.0, Inf) * Interval(-5.0, 3.0) --> entireinterval(Float64) - @fact Interval(-1.0, Inf) * Interval(1.0, 3.0) --> Interval(-3.0, Inf) - @fact Interval(-1.0, Inf) * Interval(-Inf, -1.0) --> entireinterval(Float64) - @fact Interval(-1.0, Inf) * Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-1.0, Inf) * Interval(-5.0, Inf) --> entireinterval(Float64) - @fact Interval(-1.0, Inf) * Interval(1.0, Inf) --> entireinterval(Float64) - @fact Interval(-1.0, Inf) * entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-Inf, 3.0) * Interval(0.0, 0.0) --> Interval(0.0, 0.0) - @fact Interval(-Inf, 3.0) * Interval(-0.0, -0.0) --> Interval(0.0, 0.0) - @fact Interval(-Inf, 3.0) * Interval(-5.0, -1.0) --> Interval(-15.0, Inf) - @fact Interval(-Inf, 3.0) * Interval(-5.0, 3.0) --> entireinterval(Float64) - @fact Interval(-Inf, 3.0) * Interval(1.0, 3.0) --> Interval(-Inf, 9.0) - @fact Interval(-Inf, 3.0) * Interval(-Inf, -1.0) --> entireinterval(Float64) - @fact Interval(-Inf, 3.0) * Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-Inf, 3.0) * Interval(-5.0, Inf) --> entireinterval(Float64) - @fact Interval(-Inf, 3.0) * Interval(1.0, Inf) --> entireinterval(Float64) - @fact Interval(-Inf, 3.0) * entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-Inf, -3.0) * Interval(0.0, 0.0) --> Interval(0.0, 0.0) - @fact Interval(-Inf, -3.0) * Interval(-0.0, -0.0) --> Interval(0.0, 0.0) - @fact Interval(-Inf, -3.0) * Interval(-5.0, -1.0) --> Interval(3.0, Inf) - @fact Interval(-Inf, -3.0) * Interval(-5.0, 3.0) --> entireinterval(Float64) - @fact Interval(-Inf, -3.0) * Interval(1.0, 3.0) --> Interval(-Inf, -3.0) - @fact Interval(-Inf, -3.0) * Interval(-Inf, -1.0) --> Interval(3.0, Inf) - @fact Interval(-Inf, -3.0) * Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-Inf, -3.0) * Interval(-5.0, Inf) --> entireinterval(Float64) - @fact Interval(-Inf, -3.0) * Interval(1.0, Inf) --> Interval(-Inf, -3.0) - @fact Interval(-Inf, -3.0) * entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(0.0, 0.0) * Interval(0.0, 0.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) * Interval(-0.0, -0.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) * Interval(-5.0, -1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) * Interval(-5.0, 3.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) * Interval(1.0, 3.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) * Interval(-Inf, -1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) * Interval(-Inf, 3.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) * Interval(-5.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) * Interval(1.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) * entireinterval(Float64) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) * Interval(0.0, 0.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) * Interval(-0.0, -0.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) * Interval(-5.0, -1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) * Interval(-5.0, 3.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) * Interval(1.0, 3.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) * Interval(-Inf, -1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) * Interval(-Inf, 3.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) * Interval(-5.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) * Interval(1.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) * entireinterval(Float64) --> Interval(0.0, 0.0) - @fact Interval(1.0, 5.0) * Interval(0.0, 0.0) --> Interval(0.0, 0.0) - @fact Interval(1.0, 5.0) * Interval(-0.0, -0.0) --> Interval(0.0, 0.0) - @fact Interval(1.0, 5.0) * Interval(-5.0, -1.0) --> Interval(-25.0, -1.0) - @fact Interval(1.0, 5.0) * Interval(-5.0, 3.0) --> Interval(-25.0, 15.0) - @fact Interval(1.0, 5.0) * Interval(1.0, 3.0) --> Interval(1.0, 15.0) - @fact Interval(1.0, 5.0) * Interval(-Inf, -1.0) --> Interval(-Inf, -1.0) - @fact Interval(1.0, 5.0) * Interval(-Inf, 3.0) --> Interval(-Inf, 15.0) - @fact Interval(1.0, 5.0) * Interval(-5.0, Inf) --> Interval(-25.0, Inf) - @fact Interval(1.0, 5.0) * Interval(1.0, Inf) --> Interval(1.0, Inf) - @fact Interval(1.0, 5.0) * entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-1.0, 5.0) * Interval(0.0, 0.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 5.0) * Interval(-0.0, -0.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 5.0) * Interval(-5.0, -1.0) --> Interval(-25.0, 5.0) +@testset "minimal_mul_test" begin + @test ∅ * ∅ == ∅ + @test Interval(-1.0, 1.0) * ∅ == ∅ + @test ∅ * Interval(-1.0, 1.0) == ∅ + @test ∅ * entireinterval(Float64) == ∅ + @test entireinterval(Float64) * ∅ == ∅ + @test Interval(0.0, 0.0) * ∅ == ∅ + @test ∅ * Interval(0.0, 0.0) == ∅ + @test Interval(-0.0, -0.0) * ∅ == ∅ + @test ∅ * Interval(-0.0, -0.0) == ∅ + @test entireinterval(Float64) * Interval(0.0, 0.0) == Interval(0.0, 0.0) + @test entireinterval(Float64) * Interval(-0.0, -0.0) == Interval(0.0, 0.0) + @test entireinterval(Float64) * Interval(-5.0, -1.0) == entireinterval(Float64) + @test entireinterval(Float64) * Interval(-5.0, 3.0) == entireinterval(Float64) + @test entireinterval(Float64) * Interval(1.0, 3.0) == entireinterval(Float64) + @test entireinterval(Float64) * Interval(-Inf, -1.0) == entireinterval(Float64) + @test entireinterval(Float64) * Interval(-Inf, 3.0) == entireinterval(Float64) + @test entireinterval(Float64) * Interval(-5.0, Inf) == entireinterval(Float64) + @test entireinterval(Float64) * Interval(1.0, Inf) == entireinterval(Float64) + @test entireinterval(Float64) * entireinterval(Float64) == entireinterval(Float64) + @test Interval(1.0, Inf) * Interval(0.0, 0.0) == Interval(0.0, 0.0) + @test Interval(1.0, Inf) * Interval(-0.0, -0.0) == Interval(0.0, 0.0) + @test Interval(1.0, Inf) * Interval(-5.0, -1.0) == Interval(-Inf, -1.0) + @test Interval(1.0, Inf) * Interval(-5.0, 3.0) == entireinterval(Float64) + @test Interval(1.0, Inf) * Interval(1.0, 3.0) == Interval(1.0, Inf) + @test Interval(1.0, Inf) * Interval(-Inf, -1.0) == Interval(-Inf, -1.0) + @test Interval(1.0, Inf) * Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(1.0, Inf) * Interval(-5.0, Inf) == entireinterval(Float64) + @test Interval(1.0, Inf) * Interval(1.0, Inf) == Interval(1.0, Inf) + @test Interval(1.0, Inf) * entireinterval(Float64) == entireinterval(Float64) + @test Interval(-1.0, Inf) * Interval(0.0, 0.0) == Interval(0.0, 0.0) + @test Interval(-1.0, Inf) * Interval(-0.0, -0.0) == Interval(0.0, 0.0) + @test Interval(-1.0, Inf) * Interval(-5.0, -1.0) == Interval(-Inf, 5.0) + @test Interval(-1.0, Inf) * Interval(-5.0, 3.0) == entireinterval(Float64) + @test Interval(-1.0, Inf) * Interval(1.0, 3.0) == Interval(-3.0, Inf) + @test Interval(-1.0, Inf) * Interval(-Inf, -1.0) == entireinterval(Float64) + @test Interval(-1.0, Inf) * Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-1.0, Inf) * Interval(-5.0, Inf) == entireinterval(Float64) + @test Interval(-1.0, Inf) * Interval(1.0, Inf) == entireinterval(Float64) + @test Interval(-1.0, Inf) * entireinterval(Float64) == entireinterval(Float64) + @test Interval(-Inf, 3.0) * Interval(0.0, 0.0) == Interval(0.0, 0.0) + @test Interval(-Inf, 3.0) * Interval(-0.0, -0.0) == Interval(0.0, 0.0) + @test Interval(-Inf, 3.0) * Interval(-5.0, -1.0) == Interval(-15.0, Inf) + @test Interval(-Inf, 3.0) * Interval(-5.0, 3.0) == entireinterval(Float64) + @test Interval(-Inf, 3.0) * Interval(1.0, 3.0) == Interval(-Inf, 9.0) + @test Interval(-Inf, 3.0) * Interval(-Inf, -1.0) == entireinterval(Float64) + @test Interval(-Inf, 3.0) * Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-Inf, 3.0) * Interval(-5.0, Inf) == entireinterval(Float64) + @test Interval(-Inf, 3.0) * Interval(1.0, Inf) == entireinterval(Float64) + @test Interval(-Inf, 3.0) * entireinterval(Float64) == entireinterval(Float64) + @test Interval(-Inf, -3.0) * Interval(0.0, 0.0) == Interval(0.0, 0.0) + @test Interval(-Inf, -3.0) * Interval(-0.0, -0.0) == Interval(0.0, 0.0) + @test Interval(-Inf, -3.0) * Interval(-5.0, -1.0) == Interval(3.0, Inf) + @test Interval(-Inf, -3.0) * Interval(-5.0, 3.0) == entireinterval(Float64) + @test Interval(-Inf, -3.0) * Interval(1.0, 3.0) == Interval(-Inf, -3.0) + @test Interval(-Inf, -3.0) * Interval(-Inf, -1.0) == Interval(3.0, Inf) + @test Interval(-Inf, -3.0) * Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-Inf, -3.0) * Interval(-5.0, Inf) == entireinterval(Float64) + @test Interval(-Inf, -3.0) * Interval(1.0, Inf) == Interval(-Inf, -3.0) + @test Interval(-Inf, -3.0) * entireinterval(Float64) == entireinterval(Float64) + @test Interval(0.0, 0.0) * Interval(0.0, 0.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) * Interval(-0.0, -0.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) * Interval(-5.0, -1.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) * Interval(-5.0, 3.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) * Interval(1.0, 3.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) * Interval(-Inf, -1.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) * Interval(-Inf, 3.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) * Interval(-5.0, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) * Interval(1.0, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) * entireinterval(Float64) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) * Interval(0.0, 0.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) * Interval(-0.0, -0.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) * Interval(-5.0, -1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) * Interval(-5.0, 3.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) * Interval(1.0, 3.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) * Interval(-Inf, -1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) * Interval(-Inf, 3.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) * Interval(-5.0, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) * Interval(1.0, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) * entireinterval(Float64) == Interval(0.0, 0.0) + @test Interval(1.0, 5.0) * Interval(0.0, 0.0) == Interval(0.0, 0.0) + @test Interval(1.0, 5.0) * Interval(-0.0, -0.0) == Interval(0.0, 0.0) + @test Interval(1.0, 5.0) * Interval(-5.0, -1.0) == Interval(-25.0, -1.0) + @test Interval(1.0, 5.0) * Interval(-5.0, 3.0) == Interval(-25.0, 15.0) + @test Interval(1.0, 5.0) * Interval(1.0, 3.0) == Interval(1.0, 15.0) + @test Interval(1.0, 5.0) * Interval(-Inf, -1.0) == Interval(-Inf, -1.0) + @test Interval(1.0, 5.0) * Interval(-Inf, 3.0) == Interval(-Inf, 15.0) + @test Interval(1.0, 5.0) * Interval(-5.0, Inf) == Interval(-25.0, Inf) + @test Interval(1.0, 5.0) * Interval(1.0, Inf) == Interval(1.0, Inf) + @test Interval(1.0, 5.0) * entireinterval(Float64) == entireinterval(Float64) + @test Interval(-1.0, 5.0) * Interval(0.0, 0.0) == Interval(0.0, 0.0) + @test Interval(-1.0, 5.0) * Interval(-0.0, -0.0) == Interval(0.0, 0.0) + @test Interval(-1.0, 5.0) * Interval(-5.0, -1.0) == Interval(-25.0, 5.0) #min max - @fact Interval(-1.0, 5.0) * Interval(-5.0, 3.0) --> Interval(-25.0, 15.0) - @fact Interval(-10.0, 2.0) * Interval(-5.0, 3.0) --> Interval(-30.0, 50.0) - @fact Interval(-1.0, 5.0) * Interval(-1.0, 10.0) --> Interval(-10.0, 50.0) - @fact Interval(-2.0, 2.0) * Interval(-5.0, 3.0) --> Interval(-10.0, 10.0) + @test Interval(-1.0, 5.0) * Interval(-5.0, 3.0) == Interval(-25.0, 15.0) + @test Interval(-10.0, 2.0) * Interval(-5.0, 3.0) == Interval(-30.0, 50.0) + @test Interval(-1.0, 5.0) * Interval(-1.0, 10.0) == Interval(-10.0, 50.0) + @test Interval(-2.0, 2.0) * Interval(-5.0, 3.0) == Interval(-10.0, 10.0) #end min max - @fact Interval(-1.0, 5.0) * Interval(1.0, 3.0) --> Interval(-3.0, 15.0) - @fact Interval(-1.0, 5.0) * Interval(-Inf, -1.0) --> entireinterval(Float64) - @fact Interval(-1.0, 5.0) * Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-1.0, 5.0) * Interval(-5.0, Inf) --> entireinterval(Float64) - @fact Interval(-1.0, 5.0) * Interval(1.0, Inf) --> entireinterval(Float64) - @fact Interval(-1.0, 5.0) * entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-10.0, -5.0) * Interval(0.0, 0.0) --> Interval(0.0, 0.0) - @fact Interval(-10.0, -5.0) * Interval(-0.0, -0.0) --> Interval(0.0, 0.0) - @fact Interval(-10.0, -5.0) * Interval(-5.0, -1.0) --> Interval(5.0, 50.0) - @fact Interval(-10.0, -5.0) * Interval(-5.0, 3.0) --> Interval(-30.0, 50.0) - @fact Interval(-10.0, -5.0) * Interval(1.0, 3.0) --> Interval(-30.0, -5.0) - @fact Interval(-10.0, -5.0) * Interval(-Inf, -1.0) --> Interval(5.0, Inf) - @fact Interval(-10.0, -5.0) * Interval(-Inf, 3.0) --> Interval(-30.0, Inf) - @fact Interval(-10.0, -5.0) * Interval(-5.0, Inf) --> Interval(-Inf, 50.0) - @fact Interval(-10.0, -5.0) * Interval(1.0, Inf) --> Interval(-Inf, -5.0) - @fact Interval(-10.0, -5.0) * entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(0x1.999999999999ap-4, 0x1.ffffffffffffp+0) * Interval(-0x1.ffffffffffffp+0, Inf) --> Interval(-0x1.fffffffffffe1p+1, Inf) - @fact Interval(-0x1.999999999999ap-4, 0x1.ffffffffffffp+0) * Interval(-0x1.ffffffffffffp+0, -0x1.999999999999ap-4) --> Interval(-0x1.fffffffffffe1p+1, 0x1.999999999998ep-3) - @fact Interval(-0x1.999999999999ap-4, 0x1.999999999999ap-4) * Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4) --> Interval(-0x1.999999999998ep-3, 0x1.999999999998ep-3) - @fact Interval(-0x1.ffffffffffffp+0, -0x1.999999999999ap-4) * Interval(0x1.999999999999ap-4, 0x1.ffffffffffffp+0) --> Interval(-0x1.fffffffffffe1p+1, -0x1.47ae147ae147bp-7) + @test Interval(-1.0, 5.0) * Interval(1.0, 3.0) == Interval(-3.0, 15.0) + @test Interval(-1.0, 5.0) * Interval(-Inf, -1.0) == entireinterval(Float64) + @test Interval(-1.0, 5.0) * Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-1.0, 5.0) * Interval(-5.0, Inf) == entireinterval(Float64) + @test Interval(-1.0, 5.0) * Interval(1.0, Inf) == entireinterval(Float64) + @test Interval(-1.0, 5.0) * entireinterval(Float64) == entireinterval(Float64) + @test Interval(-10.0, -5.0) * Interval(0.0, 0.0) == Interval(0.0, 0.0) + @test Interval(-10.0, -5.0) * Interval(-0.0, -0.0) == Interval(0.0, 0.0) + @test Interval(-10.0, -5.0) * Interval(-5.0, -1.0) == Interval(5.0, 50.0) + @test Interval(-10.0, -5.0) * Interval(-5.0, 3.0) == Interval(-30.0, 50.0) + @test Interval(-10.0, -5.0) * Interval(1.0, 3.0) == Interval(-30.0, -5.0) + @test Interval(-10.0, -5.0) * Interval(-Inf, -1.0) == Interval(5.0, Inf) + @test Interval(-10.0, -5.0) * Interval(-Inf, 3.0) == Interval(-30.0, Inf) + @test Interval(-10.0, -5.0) * Interval(-5.0, Inf) == Interval(-Inf, 50.0) + @test Interval(-10.0, -5.0) * Interval(1.0, Inf) == Interval(-Inf, -5.0) + @test Interval(-10.0, -5.0) * entireinterval(Float64) == entireinterval(Float64) + @test Interval(0x1.999999999999ap-4, 0x1.ffffffffffffp+0) * Interval(-0x1.ffffffffffffp+0, Inf) == Interval(-0x1.fffffffffffe1p+1, Inf) + @test Interval(-0x1.999999999999ap-4, 0x1.ffffffffffffp+0) * Interval(-0x1.ffffffffffffp+0, -0x1.999999999999ap-4) == Interval(-0x1.fffffffffffe1p+1, 0x1.999999999998ep-3) + @test Interval(-0x1.999999999999ap-4, 0x1.999999999999ap-4) * Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4) == Interval(-0x1.999999999998ep-3, 0x1.999999999998ep-3) + @test Interval(-0x1.ffffffffffffp+0, -0x1.999999999999ap-4) * Interval(0x1.999999999999ap-4, 0x1.ffffffffffffp+0) == Interval(-0x1.fffffffffffe1p+1, -0x1.47ae147ae147bp-7) end -facts("minimal_mul_dec_test") do - @fact DecoratedInterval(Interval(1.0, 2.0), com) * DecoratedInterval(Interval(5.0, 7.0), com) --> DecoratedInterval(Interval(5.0, 14.0), com) - @fact decoration(DecoratedInterval(Interval(1.0, 2.0), com) * DecoratedInterval(Interval(5.0, 7.0), com)) --> decoration(DecoratedInterval(Interval(5.0, 14.0), com)) - @fact DecoratedInterval(Interval(1.0, 2.0), com) * DecoratedInterval(Interval(5.0, 7.0), def) --> DecoratedInterval(Interval(5.0, 14.0), def) - @fact decoration(DecoratedInterval(Interval(1.0, 2.0), com) * DecoratedInterval(Interval(5.0, 7.0), def)) --> decoration(DecoratedInterval(Interval(5.0, 14.0), def)) - @fact DecoratedInterval(Interval(1.0, 2.0), com) * DecoratedInterval(Interval(5.0, 0x1.fffffffffffffp1023), com) --> DecoratedInterval(Interval(5.0, Inf), dac) - @fact decoration(DecoratedInterval(Interval(1.0, 2.0), com) * DecoratedInterval(Interval(5.0, 0x1.fffffffffffffp1023), com)) --> decoration(DecoratedInterval(Interval(5.0, Inf), dac)) - @fact DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) * DecoratedInterval(Interval(-1.0, 5.0), com) --> DecoratedInterval(Interval(-Inf, 0x1.fffffffffffffp1023), dac) - @fact decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) * DecoratedInterval(Interval(-1.0, 5.0), com)) --> decoration(DecoratedInterval(Interval(-Inf, 0x1.fffffffffffffp1023), dac)) - @fact DecoratedInterval(Interval(1.0, 2.0), trv) * DecoratedInterval(∅, trv) --> DecoratedInterval(∅, trv) - @fact decoration(DecoratedInterval(Interval(1.0, 2.0), trv) * DecoratedInterval(∅, trv)) --> decoration(DecoratedInterval(∅, trv)) +@testset "minimal_mul_dec_test" begin + @test DecoratedInterval(Interval(1.0, 2.0), com) * DecoratedInterval(Interval(5.0, 7.0), com) == DecoratedInterval(Interval(5.0, 14.0), com) + @test decoration(DecoratedInterval(Interval(1.0, 2.0), com) * DecoratedInterval(Interval(5.0, 7.0), com)) == decoration(DecoratedInterval(Interval(5.0, 14.0), com)) + @test DecoratedInterval(Interval(1.0, 2.0), com) * DecoratedInterval(Interval(5.0, 7.0), def) == DecoratedInterval(Interval(5.0, 14.0), def) + @test decoration(DecoratedInterval(Interval(1.0, 2.0), com) * DecoratedInterval(Interval(5.0, 7.0), def)) == decoration(DecoratedInterval(Interval(5.0, 14.0), def)) + @test DecoratedInterval(Interval(1.0, 2.0), com) * DecoratedInterval(Interval(5.0, 0x1.fffffffffffffp1023), com) == DecoratedInterval(Interval(5.0, Inf), dac) + @test decoration(DecoratedInterval(Interval(1.0, 2.0), com) * DecoratedInterval(Interval(5.0, 0x1.fffffffffffffp1023), com)) == decoration(DecoratedInterval(Interval(5.0, Inf), dac)) + @test DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) * DecoratedInterval(Interval(-1.0, 5.0), com) == DecoratedInterval(Interval(-Inf, 0x1.fffffffffffffp1023), dac) + @test decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) * DecoratedInterval(Interval(-1.0, 5.0), com)) == decoration(DecoratedInterval(Interval(-Inf, 0x1.fffffffffffffp1023), dac)) + @test DecoratedInterval(Interval(1.0, 2.0), trv) * DecoratedInterval(∅, trv) == DecoratedInterval(∅, trv) + @test decoration(DecoratedInterval(Interval(1.0, 2.0), trv) * DecoratedInterval(∅, trv)) == decoration(DecoratedInterval(∅, trv)) end -facts("minimal_div_test") do - @fact ∅ / ∅ --> ∅ - @fact Interval(-1.0, 1.0) / ∅ --> ∅ - @fact ∅ / Interval(-1.0, 1.0) --> ∅ - @fact ∅ / Interval(0.1, 1.0) --> ∅ - @fact ∅ / Interval(-1.0, -0.1) --> ∅ - @fact ∅ / entireinterval(Float64) --> ∅ - @fact entireinterval(Float64) / ∅ --> ∅ - @fact Interval(0.0, 0.0) / ∅ --> ∅ - @fact ∅ / Interval(0.0, 0.0) --> ∅ - @fact Interval(-0.0, -0.0) / ∅ --> ∅ - @fact ∅ / Interval(-0.0, -0.0) --> ∅ - @fact entireinterval(Float64) / Interval(-5.0, -3.0) --> entireinterval(Float64) - @fact entireinterval(Float64) / Interval(3.0, 5.0) --> entireinterval(Float64) - @fact entireinterval(Float64) / Interval(-Inf, -3.0) --> entireinterval(Float64) - @fact entireinterval(Float64) / Interval(3.0, Inf) --> entireinterval(Float64) - @fact entireinterval(Float64) / Interval(0.0, 0.0) --> ∅ - @fact entireinterval(Float64) / Interval(-0.0, -0.0) --> ∅ - @fact entireinterval(Float64) / Interval(-3.0, 0.0) --> entireinterval(Float64) - @fact entireinterval(Float64) / Interval(-3.0, -0.0) --> entireinterval(Float64) - @fact entireinterval(Float64) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact entireinterval(Float64) / Interval(0.0, 3.0) --> entireinterval(Float64) - @fact entireinterval(Float64) / Interval(-Inf, 0.0) --> entireinterval(Float64) - @fact entireinterval(Float64) / Interval(-0.0, 3.0) --> entireinterval(Float64) - @fact entireinterval(Float64) / Interval(-Inf, -0.0) --> entireinterval(Float64) - @fact entireinterval(Float64) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact entireinterval(Float64) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact entireinterval(Float64) / Interval(0.0, Inf) --> entireinterval(Float64) - @fact entireinterval(Float64) / Interval(-0.0, Inf) --> entireinterval(Float64) - @fact entireinterval(Float64) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-30.0, -15.0) / Interval(-5.0, -3.0) --> Interval(3.0, 10.0) - @fact Interval(-30.0, -15.0) / Interval(3.0, 5.0) --> Interval(-10.0, -3.0) - @fact Interval(-30.0, -15.0) / Interval(-Inf, -3.0) --> Interval(0.0, 10.0) - @fact Interval(-30.0, -15.0) / Interval(3.0, Inf) --> Interval(-10.0, 0.0) - @fact Interval(-30.0, -15.0) / Interval(0.0, 0.0) --> ∅ - @fact Interval(-30.0, -15.0) / Interval(-3.0, 0.0) --> Interval(5.0, Inf) - @fact Interval(-30.0, -15.0) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(-30.0, -15.0) / Interval(-3.0, -0.0) --> Interval(5.0, Inf) - @fact Interval(-30.0, -15.0) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(-30.0, -15.0) / Interval(0.0, 3.0) --> Interval(-Inf, -5.0) - @fact Interval(-30.0, -15.0) / Interval(-Inf, 0.0) --> Interval(0.0, Inf) - @fact Interval(-30.0, -15.0) / Interval(-0.0, 3.0) --> Interval(-Inf, -5.0) - @fact Interval(-30.0, -15.0) / Interval(-Inf, -0.0) --> Interval(0.0, Inf) - @fact Interval(-30.0, -15.0) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-30.0, -15.0) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(-30.0, -15.0) / Interval(0.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-30.0, -15.0) / Interval(-0.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-30.0, -15.0) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-30.0, 15.0) / Interval(-5.0, -3.0) --> Interval(-5.0, 10.0) - @fact Interval(-30.0, 15.0) / Interval(3.0, 5.0) --> Interval(-10.0, 5.0) - @fact Interval(-30.0, 15.0) / Interval(-Inf, -3.0) --> Interval(-5.0, 10.0) - @fact Interval(-30.0, 15.0) / Interval(3.0, Inf) --> Interval(-10.0, 5.0) - @fact Interval(-30.0, 15.0) / Interval(0.0, 0.0) --> ∅ - @fact Interval(-30.0, 15.0) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(-30.0, 15.0) / Interval(-3.0, 0.0) --> entireinterval(Float64) - @fact Interval(-30.0, 15.0) / Interval(-3.0, -0.0) --> entireinterval(Float64) - @fact Interval(-30.0, 15.0) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(-30.0, 15.0) / Interval(0.0, 3.0) --> entireinterval(Float64) - @fact Interval(-30.0, 15.0) / Interval(-Inf, 0.0) --> entireinterval(Float64) - @fact Interval(-30.0, 15.0) / Interval(-0.0, 3.0) --> entireinterval(Float64) - @fact Interval(-30.0, 15.0) / Interval(-Inf, -0.0) --> entireinterval(Float64) - @fact Interval(-30.0, 15.0) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-30.0, 15.0) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(-30.0, 15.0) / Interval(0.0, Inf) --> entireinterval(Float64) - @fact Interval(-30.0, 15.0) / Interval(-0.0, Inf) --> entireinterval(Float64) - @fact Interval(-30.0, 15.0) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(15.0, 30.0) / Interval(-5.0, -3.0) --> Interval(-10.0, -3.0) - @fact Interval(15.0, 30.0) / Interval(3.0, 5.0) --> Interval(3.0, 10.0) - @fact Interval(15.0, 30.0) / Interval(-Inf, -3.0) --> Interval(-10.0, 0.0) - @fact Interval(15.0, 30.0) / Interval(3.0, Inf) --> Interval(0.0, 10.0) - @fact Interval(15.0, 30.0) / Interval(0.0, 0.0) --> ∅ - @fact Interval(15.0, 30.0) / Interval(-3.0, 0.0) --> Interval(-Inf, -5.0) - @fact Interval(15.0, 30.0) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(15.0, 30.0) / Interval(-3.0, -0.0) --> Interval(-Inf, -5.0) - @fact Interval(15.0, 30.0) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(15.0, 30.0) / Interval(0.0, 3.0) --> Interval(5.0, Inf) - @fact Interval(15.0, 30.0) / Interval(-Inf, 0.0) --> Interval(-Inf, 0.0) - @fact Interval(15.0, 30.0) / Interval(-0.0, 3.0) --> Interval(5.0, Inf) - @fact Interval(15.0, 30.0) / Interval(-Inf, -0.0) --> Interval(-Inf, 0.0) - @fact Interval(15.0, 30.0) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(15.0, 30.0) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(15.0, 30.0) / Interval(0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(15.0, 30.0) / Interval(-0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(15.0, 30.0) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(0.0, 0.0) / Interval(-5.0, -3.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / Interval(3.0, 5.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / Interval(-Inf, -3.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / Interval(3.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / Interval(0.0, 0.0) --> ∅ - @fact Interval(0.0, 0.0) / Interval(-3.0, 0.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(0.0, 0.0) / Interval(-3.0, -0.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / Interval(-3.0, 3.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / Interval(0.0, 3.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / Interval(-Inf, 0.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / Interval(-0.0, 3.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / Interval(-Inf, -0.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / Interval(-Inf, 3.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / Interval(-3.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / Interval(0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / Interval(-0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) / entireinterval(Float64) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(-5.0, -3.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(3.0, 5.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(-Inf, -3.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(3.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(0.0, 0.0) --> ∅ - @fact Interval(-0.0, -0.0) / Interval(-3.0, 0.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(-0.0, -0.0) / Interval(-3.0, -0.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(-3.0, 3.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(0.0, 3.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(-Inf, 0.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(-0.0, 3.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(-Inf, -0.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(-Inf, 3.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(-3.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / Interval(-0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) / entireinterval(Float64) --> Interval(0.0, 0.0) - @fact Interval(-Inf, -15.0) / Interval(-5.0, -3.0) --> Interval(3.0, Inf) - @fact Interval(-Inf, -15.0) / Interval(3.0, 5.0) --> Interval(-Inf, -3.0) - @fact Interval(-Inf, -15.0) / Interval(-Inf, -3.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, -15.0) / Interval(3.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -15.0) / Interval(0.0, 0.0) --> ∅ - @fact Interval(-Inf, -15.0) / Interval(-3.0, 0.0) --> Interval(5.0, Inf) - @fact Interval(-Inf, -15.0) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(-Inf, -15.0) / Interval(-3.0, -0.0) --> Interval(5.0, Inf) - @fact Interval(-Inf, -15.0) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(-Inf, -15.0) / Interval(0.0, 3.0) --> Interval(-Inf, -5.0) - @fact Interval(-Inf, -15.0) / Interval(-Inf, 0.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, -15.0) / Interval(-0.0, 3.0) --> Interval(-Inf, -5.0) - @fact Interval(-Inf, -15.0) / Interval(-Inf, -0.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, -15.0) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-Inf, -15.0) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(-Inf, -15.0) / Interval(0.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -15.0) / Interval(-0.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -15.0) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-Inf, 15.0) / Interval(-5.0, -3.0) --> Interval(-5.0, Inf) - @fact Interval(-Inf, 15.0) / Interval(3.0, 5.0) --> Interval(-Inf, 5.0) - @fact Interval(-Inf, 15.0) / Interval(-Inf, -3.0) --> Interval(-5.0, Inf) - @fact Interval(-Inf, 15.0) / Interval(3.0, Inf) --> Interval(-Inf, 5.0) - @fact Interval(-Inf, 15.0) / Interval(0.0, 0.0) --> ∅ - @fact Interval(-Inf, 15.0) / Interval(-3.0, 0.0) --> entireinterval(Float64) - @fact Interval(-Inf, 15.0) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(-Inf, 15.0) / Interval(-3.0, -0.0) --> entireinterval(Float64) - @fact Interval(-Inf, 15.0) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(-Inf, 15.0) / Interval(0.0, 3.0) --> entireinterval(Float64) - @fact Interval(-Inf, 15.0) / Interval(-Inf, 0.0) --> entireinterval(Float64) - @fact Interval(-Inf, 15.0) / Interval(-0.0, 3.0) --> entireinterval(Float64) - @fact Interval(-Inf, 15.0) / Interval(-Inf, -0.0) --> entireinterval(Float64) - @fact Interval(-Inf, 15.0) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-Inf, 15.0) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(-Inf, 15.0) / Interval(0.0, Inf) --> entireinterval(Float64) - @fact Interval(-Inf, 15.0) / Interval(-0.0, Inf) --> entireinterval(Float64) - @fact Interval(-Inf, 15.0) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-15.0, Inf) / Interval(-5.0, -3.0) --> Interval(-Inf, 5.0) - @fact Interval(-15.0, Inf) / Interval(3.0, 5.0) --> Interval(-5.0, Inf) - @fact Interval(-15.0, Inf) / Interval(-Inf, -3.0) --> Interval(-Inf, 5.0) - @fact Interval(-15.0, Inf) / Interval(3.0, Inf) --> Interval(-5.0, Inf) - @fact Interval(-15.0, Inf) / Interval(0.0, 0.0) --> ∅ - @fact Interval(-15.0, Inf) / Interval(-3.0, 0.0) --> entireinterval(Float64) - @fact Interval(-15.0, Inf) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(-15.0, Inf) / Interval(-3.0, -0.0) --> entireinterval(Float64) - @fact Interval(-15.0, Inf) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(-15.0, Inf) / Interval(0.0, 3.0) --> entireinterval(Float64) - @fact Interval(-15.0, Inf) / Interval(-Inf, 0.0) --> entireinterval(Float64) - @fact Interval(-15.0, Inf) / Interval(-0.0, 3.0) --> entireinterval(Float64) - @fact Interval(-15.0, Inf) / Interval(-Inf, -0.0) --> entireinterval(Float64) - @fact Interval(-15.0, Inf) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-15.0, Inf) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(-15.0, Inf) / Interval(0.0, Inf) --> entireinterval(Float64) - @fact Interval(-15.0, Inf) / Interval(-0.0, Inf) --> entireinterval(Float64) - @fact Interval(-15.0, Inf) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(15.0, Inf) / Interval(-5.0, -3.0) --> Interval(-Inf, -3.0) - @fact Interval(15.0, Inf) / Interval(3.0, 5.0) --> Interval(3.0, Inf) - @fact Interval(15.0, Inf) / Interval(-Inf, -3.0) --> Interval(-Inf, 0.0) - @fact Interval(15.0, Inf) / Interval(3.0, Inf) --> Interval(0.0, Inf) - @fact Interval(15.0, Inf) / Interval(0.0, 0.0) --> ∅ - @fact Interval(15.0, Inf) / Interval(-3.0, 0.0) --> Interval(-Inf, -5.0) - @fact Interval(15.0, Inf) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(15.0, Inf) / Interval(-3.0, -0.0) --> Interval(-Inf, -5.0) - @fact Interval(15.0, Inf) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(15.0, Inf) / Interval(0.0, 3.0) --> Interval(5.0, Inf) - @fact Interval(15.0, Inf) / Interval(-Inf, 0.0) --> Interval(-Inf, 0.0) - @fact Interval(15.0, Inf) / Interval(-0.0, 3.0) --> Interval(5.0, Inf) - @fact Interval(15.0, Inf) / Interval(-Inf, -0.0) --> Interval(-Inf, 0.0) - @fact Interval(15.0, Inf) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(15.0, Inf) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(15.0, Inf) / Interval(0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(15.0, Inf) / Interval(-0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(15.0, Inf) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-30.0, 0.0) / Interval(-5.0, -3.0) --> Interval(0.0, 10.0) - @fact Interval(-30.0, 0.0) / Interval(3.0, 5.0) --> Interval(-10.0, 0.0) - @fact Interval(-30.0, 0.0) / Interval(-Inf, -3.0) --> Interval(0.0, 10.0) - @fact Interval(-30.0, 0.0) / Interval(3.0, Inf) --> Interval(-10.0, 0.0) - @fact Interval(-30.0, 0.0) / Interval(0.0, 0.0) --> ∅ - @fact Interval(-30.0, 0.0) / Interval(-3.0, 0.0) --> Interval(0.0, Inf) - @fact Interval(-30.0, 0.0) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(-30.0, 0.0) / Interval(-3.0, -0.0) --> Interval(0.0, Inf) - @fact Interval(-30.0, 0.0) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(-30.0, 0.0) / Interval(0.0, 3.0) --> Interval(-Inf, 0.0) - @fact Interval(-30.0, 0.0) / Interval(-Inf, 0.0) --> Interval(0.0, Inf) - @fact Interval(-30.0, 0.0) / Interval(-0.0, 3.0) --> Interval(-Inf, 0.0) - @fact Interval(-30.0, 0.0) / Interval(-Inf, -0.0) --> Interval(0.0, Inf) - @fact Interval(-30.0, 0.0) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-30.0, 0.0) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(-30.0, 0.0) / Interval(0.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-30.0, 0.0) / Interval(-0.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-30.0, 0.0) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-30.0, -0.0) / Interval(-5.0, -3.0) --> Interval(0.0, 10.0) - @fact Interval(-30.0, -0.0) / Interval(3.0, 5.0) --> Interval(-10.0, 0.0) - @fact Interval(-30.0, -0.0) / Interval(-Inf, -3.0) --> Interval(0.0, 10.0) - @fact Interval(-30.0, -0.0) / Interval(3.0, Inf) --> Interval(-10.0, 0.0) - @fact Interval(-30.0, -0.0) / Interval(0.0, 0.0) --> ∅ - @fact Interval(-30.0, -0.0) / Interval(-3.0, 0.0) --> Interval(0.0, Inf) - @fact Interval(-30.0, -0.0) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(-30.0, -0.0) / Interval(-3.0, -0.0) --> Interval(0.0, Inf) - @fact Interval(-30.0, -0.0) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(-30.0, -0.0) / Interval(0.0, 3.0) --> Interval(-Inf, 0.0) - @fact Interval(-30.0, -0.0) / Interval(-Inf, 0.0) --> Interval(0.0, Inf) - @fact Interval(-30.0, -0.0) / Interval(-0.0, 3.0) --> Interval(-Inf, 0.0) - @fact Interval(-30.0, -0.0) / Interval(-Inf, -0.0) --> Interval(0.0, Inf) - @fact Interval(-30.0, -0.0) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-30.0, -0.0) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(-30.0, -0.0) / Interval(0.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-30.0, -0.0) / Interval(-0.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-30.0, -0.0) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(0.0, 30.0) / Interval(-5.0, -3.0) --> Interval(-10.0, 0.0) - @fact Interval(0.0, 30.0) / Interval(3.0, 5.0) --> Interval(0.0, 10.0) - @fact Interval(0.0, 30.0) / Interval(-Inf, -3.0) --> Interval(-10.0, 0.0) - @fact Interval(0.0, 30.0) / Interval(3.0, Inf) --> Interval(0.0, 10.0) - @fact Interval(0.0, 30.0) / Interval(0.0, 0.0) --> ∅ - @fact Interval(0.0, 30.0) / Interval(-3.0, 0.0) --> Interval(-Inf, 0.0) - @fact Interval(0.0, 30.0) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(0.0, 30.0) / Interval(-3.0, -0.0) --> Interval(-Inf, 0.0) - @fact Interval(0.0, 30.0) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(0.0, 30.0) / Interval(0.0, 3.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 30.0) / Interval(-Inf, 0.0) --> Interval(-Inf, 0.0) - @fact Interval(0.0, 30.0) / Interval(-0.0, 3.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 30.0) / Interval(-Inf, -0.0) --> Interval(-Inf, 0.0) - @fact Interval(0.0, 30.0) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(0.0, 30.0) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(0.0, 30.0) / Interval(0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 30.0) / Interval(-0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 30.0) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-0.0, 30.0) / Interval(-5.0, -3.0) --> Interval(-10.0, 0.0) - @fact Interval(-0.0, 30.0) / Interval(3.0, 5.0) --> Interval(0.0, 10.0) - @fact Interval(-0.0, 30.0) / Interval(-Inf, -3.0) --> Interval(-10.0, 0.0) - @fact Interval(-0.0, 30.0) / Interval(3.0, Inf) --> Interval(0.0, 10.0) - @fact Interval(-0.0, 30.0) / Interval(0.0, 0.0) --> ∅ - @fact Interval(-0.0, 30.0) / Interval(-3.0, 0.0) --> Interval(-Inf, 0.0) - @fact Interval(-0.0, 30.0) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(-0.0, 30.0) / Interval(-3.0, -0.0) --> Interval(-Inf, 0.0) - @fact Interval(-0.0, 30.0) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(-0.0, 30.0) / Interval(0.0, 3.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 30.0) / Interval(-Inf, 0.0) --> Interval(-Inf, 0.0) - @fact Interval(-0.0, 30.0) / Interval(-0.0, 3.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 30.0) / Interval(-Inf, -0.0) --> Interval(-Inf, 0.0) - @fact Interval(-0.0, 30.0) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-0.0, 30.0) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(-0.0, 30.0) / Interval(0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 30.0) / Interval(-0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 30.0) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-Inf, 0.0) / Interval(-5.0, -3.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) / Interval(3.0, 5.0) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, 0.0) / Interval(-Inf, -3.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) / Interval(3.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, 0.0) / Interval(0.0, 0.0) --> ∅ - @fact Interval(-Inf, 0.0) / Interval(-3.0, 0.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(-Inf, 0.0) / Interval(-3.0, -0.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(-Inf, 0.0) / Interval(0.0, 3.0) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, 0.0) / Interval(-Inf, 0.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) / Interval(-0.0, 3.0) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, 0.0) / Interval(-Inf, -0.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-Inf, 0.0) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(-Inf, 0.0) / Interval(0.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, 0.0) / Interval(-0.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, 0.0) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-Inf, -0.0) / Interval(-5.0, -3.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, -0.0) / Interval(3.0, 5.0) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -0.0) / Interval(-Inf, -3.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, -0.0) / Interval(3.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -0.0) / Interval(0.0, 0.0) --> ∅ - @fact Interval(-Inf, -0.0) / Interval(-3.0, 0.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, -0.0) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(-Inf, -0.0) / Interval(-3.0, -0.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, -0.0) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(-Inf, -0.0) / Interval(0.0, 3.0) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -0.0) / Interval(-Inf, 0.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, -0.0) / Interval(-0.0, 3.0) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -0.0) / Interval(-Inf, -0.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, -0.0) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-Inf, -0.0) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(-Inf, -0.0) / Interval(0.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -0.0) / Interval(-0.0, Inf) --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -0.0) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(0.0, Inf) / Interval(-5.0, -3.0) --> Interval(-Inf, 0.0) - @fact Interval(0.0, Inf) / Interval(3.0, 5.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) / Interval(-Inf, -3.0) --> Interval(-Inf, 0.0) - @fact Interval(0.0, Inf) / Interval(3.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) / Interval(0.0, 0.0) --> ∅ - @fact Interval(0.0, Inf) / Interval(-3.0, 0.0) --> Interval(-Inf, 0.0) - @fact Interval(0.0, Inf) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(0.0, Inf) / Interval(-3.0, -0.0) --> Interval(-Inf, 0.0) - @fact Interval(0.0, Inf) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(0.0, Inf) / Interval(0.0, 3.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) / Interval(-Inf, 0.0) --> Interval(-Inf, 0.0) - @fact Interval(0.0, Inf) / Interval(-0.0, 3.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) / Interval(-Inf, -0.0) --> Interval(-Inf, 0.0) - @fact Interval(0.0, Inf) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(0.0, Inf) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(0.0, Inf) / Interval(0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) / Interval(-0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-0.0, Inf) / Interval(-5.0, -3.0) --> Interval(-Inf, 0.0) - @fact Interval(-0.0, Inf) / Interval(3.0, 5.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) / Interval(-Inf, -3.0) --> Interval(-Inf, 0.0) - @fact Interval(-0.0, Inf) / Interval(3.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) / Interval(0.0, 0.0) --> ∅ - @fact Interval(-0.0, Inf) / Interval(-3.0, 0.0) --> Interval(-Inf, 0.0) - @fact Interval(-0.0, Inf) / Interval(-0.0, -0.0) --> ∅ - @fact Interval(-0.0, Inf) / Interval(-3.0, -0.0) --> Interval(-Inf, 0.0) - @fact Interval(-0.0, Inf) / Interval(-3.0, 3.0) --> entireinterval(Float64) - @fact Interval(-0.0, Inf) / Interval(0.0, 3.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) / Interval(-Inf, 0.0) --> Interval(-Inf, 0.0) - @fact Interval(-0.0, Inf) / Interval(-0.0, 3.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) / Interval(-Inf, -0.0) --> Interval(-Inf, 0.0) - @fact Interval(-0.0, Inf) / Interval(-Inf, 3.0) --> entireinterval(Float64) - @fact Interval(-0.0, Inf) / Interval(-3.0, Inf) --> entireinterval(Float64) - @fact Interval(-0.0, Inf) / Interval(0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) / Interval(-0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) / entireinterval(Float64) --> entireinterval(Float64) - @fact Interval(-2.0, -1.0) / Interval(-10.0, -3.0) --> Interval(0x1.9999999999999p-4, 0x1.5555555555556p-1) - @fact Interval(-2.0, -1.0) / Interval(0.0, 10.0) --> Interval(-Inf, -0x1.9999999999999p-4) - @fact Interval(-2.0, -1.0) / Interval(-0.0, 10.0) --> Interval(-Inf, -0x1.9999999999999p-4) - @fact Interval(-1.0, 2.0) / Interval(10.0, Inf) --> Interval(-0x1.999999999999ap-4, 0x1.999999999999ap-3) - @fact Interval(1.0, 3.0) / Interval(-Inf, -10.0) --> Interval(-0x1.3333333333334p-2, 0.0) - @fact Interval(-Inf, -1.0) / Interval(1.0, 3.0) --> Interval(-Inf, -0x1.5555555555555p-2) +@testset "minimal_div_test" begin + @test ∅ / ∅ == ∅ + @test Interval(-1.0, 1.0) / ∅ == ∅ + @test ∅ / Interval(-1.0, 1.0) == ∅ + @test ∅ / Interval(0.1, 1.0) == ∅ + @test ∅ / Interval(-1.0, -0.1) == ∅ + @test ∅ / entireinterval(Float64) == ∅ + @test entireinterval(Float64) / ∅ == ∅ + @test Interval(0.0, 0.0) / ∅ == ∅ + @test ∅ / Interval(0.0, 0.0) == ∅ + @test Interval(-0.0, -0.0) / ∅ == ∅ + @test ∅ / Interval(-0.0, -0.0) == ∅ + @test entireinterval(Float64) / Interval(-5.0, -3.0) == entireinterval(Float64) + @test entireinterval(Float64) / Interval(3.0, 5.0) == entireinterval(Float64) + @test entireinterval(Float64) / Interval(-Inf, -3.0) == entireinterval(Float64) + @test entireinterval(Float64) / Interval(3.0, Inf) == entireinterval(Float64) + @test entireinterval(Float64) / Interval(0.0, 0.0) == ∅ + @test entireinterval(Float64) / Interval(-0.0, -0.0) == ∅ + @test entireinterval(Float64) / Interval(-3.0, 0.0) == entireinterval(Float64) + @test entireinterval(Float64) / Interval(-3.0, -0.0) == entireinterval(Float64) + @test entireinterval(Float64) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test entireinterval(Float64) / Interval(0.0, 3.0) == entireinterval(Float64) + @test entireinterval(Float64) / Interval(-Inf, 0.0) == entireinterval(Float64) + @test entireinterval(Float64) / Interval(-0.0, 3.0) == entireinterval(Float64) + @test entireinterval(Float64) / Interval(-Inf, -0.0) == entireinterval(Float64) + @test entireinterval(Float64) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test entireinterval(Float64) / Interval(-3.0, Inf) == entireinterval(Float64) + @test entireinterval(Float64) / Interval(0.0, Inf) == entireinterval(Float64) + @test entireinterval(Float64) / Interval(-0.0, Inf) == entireinterval(Float64) + @test entireinterval(Float64) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(-30.0, -15.0) / Interval(-5.0, -3.0) == Interval(3.0, 10.0) + @test Interval(-30.0, -15.0) / Interval(3.0, 5.0) == Interval(-10.0, -3.0) + @test Interval(-30.0, -15.0) / Interval(-Inf, -3.0) == Interval(0.0, 10.0) + @test Interval(-30.0, -15.0) / Interval(3.0, Inf) == Interval(-10.0, 0.0) + @test Interval(-30.0, -15.0) / Interval(0.0, 0.0) == ∅ + @test Interval(-30.0, -15.0) / Interval(-3.0, 0.0) == Interval(5.0, Inf) + @test Interval(-30.0, -15.0) / Interval(-0.0, -0.0) == ∅ + @test Interval(-30.0, -15.0) / Interval(-3.0, -0.0) == Interval(5.0, Inf) + @test Interval(-30.0, -15.0) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(-30.0, -15.0) / Interval(0.0, 3.0) == Interval(-Inf, -5.0) + @test Interval(-30.0, -15.0) / Interval(-Inf, 0.0) == Interval(0.0, Inf) + @test Interval(-30.0, -15.0) / Interval(-0.0, 3.0) == Interval(-Inf, -5.0) + @test Interval(-30.0, -15.0) / Interval(-Inf, -0.0) == Interval(0.0, Inf) + @test Interval(-30.0, -15.0) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-30.0, -15.0) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(-30.0, -15.0) / Interval(0.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-30.0, -15.0) / Interval(-0.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-30.0, -15.0) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(-30.0, 15.0) / Interval(-5.0, -3.0) == Interval(-5.0, 10.0) + @test Interval(-30.0, 15.0) / Interval(3.0, 5.0) == Interval(-10.0, 5.0) + @test Interval(-30.0, 15.0) / Interval(-Inf, -3.0) == Interval(-5.0, 10.0) + @test Interval(-30.0, 15.0) / Interval(3.0, Inf) == Interval(-10.0, 5.0) + @test Interval(-30.0, 15.0) / Interval(0.0, 0.0) == ∅ + @test Interval(-30.0, 15.0) / Interval(-0.0, -0.0) == ∅ + @test Interval(-30.0, 15.0) / Interval(-3.0, 0.0) == entireinterval(Float64) + @test Interval(-30.0, 15.0) / Interval(-3.0, -0.0) == entireinterval(Float64) + @test Interval(-30.0, 15.0) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(-30.0, 15.0) / Interval(0.0, 3.0) == entireinterval(Float64) + @test Interval(-30.0, 15.0) / Interval(-Inf, 0.0) == entireinterval(Float64) + @test Interval(-30.0, 15.0) / Interval(-0.0, 3.0) == entireinterval(Float64) + @test Interval(-30.0, 15.0) / Interval(-Inf, -0.0) == entireinterval(Float64) + @test Interval(-30.0, 15.0) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-30.0, 15.0) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(-30.0, 15.0) / Interval(0.0, Inf) == entireinterval(Float64) + @test Interval(-30.0, 15.0) / Interval(-0.0, Inf) == entireinterval(Float64) + @test Interval(-30.0, 15.0) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(15.0, 30.0) / Interval(-5.0, -3.0) == Interval(-10.0, -3.0) + @test Interval(15.0, 30.0) / Interval(3.0, 5.0) == Interval(3.0, 10.0) + @test Interval(15.0, 30.0) / Interval(-Inf, -3.0) == Interval(-10.0, 0.0) + @test Interval(15.0, 30.0) / Interval(3.0, Inf) == Interval(0.0, 10.0) + @test Interval(15.0, 30.0) / Interval(0.0, 0.0) == ∅ + @test Interval(15.0, 30.0) / Interval(-3.0, 0.0) == Interval(-Inf, -5.0) + @test Interval(15.0, 30.0) / Interval(-0.0, -0.0) == ∅ + @test Interval(15.0, 30.0) / Interval(-3.0, -0.0) == Interval(-Inf, -5.0) + @test Interval(15.0, 30.0) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(15.0, 30.0) / Interval(0.0, 3.0) == Interval(5.0, Inf) + @test Interval(15.0, 30.0) / Interval(-Inf, 0.0) == Interval(-Inf, 0.0) + @test Interval(15.0, 30.0) / Interval(-0.0, 3.0) == Interval(5.0, Inf) + @test Interval(15.0, 30.0) / Interval(-Inf, -0.0) == Interval(-Inf, 0.0) + @test Interval(15.0, 30.0) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(15.0, 30.0) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(15.0, 30.0) / Interval(0.0, Inf) == Interval(0.0, Inf) + @test Interval(15.0, 30.0) / Interval(-0.0, Inf) == Interval(0.0, Inf) + @test Interval(15.0, 30.0) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(0.0, 0.0) / Interval(-5.0, -3.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / Interval(3.0, 5.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / Interval(-Inf, -3.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / Interval(3.0, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / Interval(0.0, 0.0) == ∅ + @test Interval(0.0, 0.0) / Interval(-3.0, 0.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / Interval(-0.0, -0.0) == ∅ + @test Interval(0.0, 0.0) / Interval(-3.0, -0.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / Interval(-3.0, 3.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / Interval(0.0, 3.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / Interval(-Inf, 0.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / Interval(-0.0, 3.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / Interval(-Inf, -0.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / Interval(-Inf, 3.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / Interval(-3.0, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / Interval(0.0, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / Interval(-0.0, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) / entireinterval(Float64) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(-5.0, -3.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(3.0, 5.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(-Inf, -3.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(3.0, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(0.0, 0.0) == ∅ + @test Interval(-0.0, -0.0) / Interval(-3.0, 0.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(-0.0, -0.0) == ∅ + @test Interval(-0.0, -0.0) / Interval(-3.0, -0.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(-3.0, 3.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(0.0, 3.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(-Inf, 0.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(-0.0, 3.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(-Inf, -0.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(-Inf, 3.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(-3.0, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(0.0, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / Interval(-0.0, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) / entireinterval(Float64) == Interval(0.0, 0.0) + @test Interval(-Inf, -15.0) / Interval(-5.0, -3.0) == Interval(3.0, Inf) + @test Interval(-Inf, -15.0) / Interval(3.0, 5.0) == Interval(-Inf, -3.0) + @test Interval(-Inf, -15.0) / Interval(-Inf, -3.0) == Interval(0.0, Inf) + @test Interval(-Inf, -15.0) / Interval(3.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-Inf, -15.0) / Interval(0.0, 0.0) == ∅ + @test Interval(-Inf, -15.0) / Interval(-3.0, 0.0) == Interval(5.0, Inf) + @test Interval(-Inf, -15.0) / Interval(-0.0, -0.0) == ∅ + @test Interval(-Inf, -15.0) / Interval(-3.0, -0.0) == Interval(5.0, Inf) + @test Interval(-Inf, -15.0) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(-Inf, -15.0) / Interval(0.0, 3.0) == Interval(-Inf, -5.0) + @test Interval(-Inf, -15.0) / Interval(-Inf, 0.0) == Interval(0.0, Inf) + @test Interval(-Inf, -15.0) / Interval(-0.0, 3.0) == Interval(-Inf, -5.0) + @test Interval(-Inf, -15.0) / Interval(-Inf, -0.0) == Interval(0.0, Inf) + @test Interval(-Inf, -15.0) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-Inf, -15.0) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(-Inf, -15.0) / Interval(0.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-Inf, -15.0) / Interval(-0.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-Inf, -15.0) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(-Inf, 15.0) / Interval(-5.0, -3.0) == Interval(-5.0, Inf) + @test Interval(-Inf, 15.0) / Interval(3.0, 5.0) == Interval(-Inf, 5.0) + @test Interval(-Inf, 15.0) / Interval(-Inf, -3.0) == Interval(-5.0, Inf) + @test Interval(-Inf, 15.0) / Interval(3.0, Inf) == Interval(-Inf, 5.0) + @test Interval(-Inf, 15.0) / Interval(0.0, 0.0) == ∅ + @test Interval(-Inf, 15.0) / Interval(-3.0, 0.0) == entireinterval(Float64) + @test Interval(-Inf, 15.0) / Interval(-0.0, -0.0) == ∅ + @test Interval(-Inf, 15.0) / Interval(-3.0, -0.0) == entireinterval(Float64) + @test Interval(-Inf, 15.0) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(-Inf, 15.0) / Interval(0.0, 3.0) == entireinterval(Float64) + @test Interval(-Inf, 15.0) / Interval(-Inf, 0.0) == entireinterval(Float64) + @test Interval(-Inf, 15.0) / Interval(-0.0, 3.0) == entireinterval(Float64) + @test Interval(-Inf, 15.0) / Interval(-Inf, -0.0) == entireinterval(Float64) + @test Interval(-Inf, 15.0) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-Inf, 15.0) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(-Inf, 15.0) / Interval(0.0, Inf) == entireinterval(Float64) + @test Interval(-Inf, 15.0) / Interval(-0.0, Inf) == entireinterval(Float64) + @test Interval(-Inf, 15.0) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(-15.0, Inf) / Interval(-5.0, -3.0) == Interval(-Inf, 5.0) + @test Interval(-15.0, Inf) / Interval(3.0, 5.0) == Interval(-5.0, Inf) + @test Interval(-15.0, Inf) / Interval(-Inf, -3.0) == Interval(-Inf, 5.0) + @test Interval(-15.0, Inf) / Interval(3.0, Inf) == Interval(-5.0, Inf) + @test Interval(-15.0, Inf) / Interval(0.0, 0.0) == ∅ + @test Interval(-15.0, Inf) / Interval(-3.0, 0.0) == entireinterval(Float64) + @test Interval(-15.0, Inf) / Interval(-0.0, -0.0) == ∅ + @test Interval(-15.0, Inf) / Interval(-3.0, -0.0) == entireinterval(Float64) + @test Interval(-15.0, Inf) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(-15.0, Inf) / Interval(0.0, 3.0) == entireinterval(Float64) + @test Interval(-15.0, Inf) / Interval(-Inf, 0.0) == entireinterval(Float64) + @test Interval(-15.0, Inf) / Interval(-0.0, 3.0) == entireinterval(Float64) + @test Interval(-15.0, Inf) / Interval(-Inf, -0.0) == entireinterval(Float64) + @test Interval(-15.0, Inf) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-15.0, Inf) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(-15.0, Inf) / Interval(0.0, Inf) == entireinterval(Float64) + @test Interval(-15.0, Inf) / Interval(-0.0, Inf) == entireinterval(Float64) + @test Interval(-15.0, Inf) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(15.0, Inf) / Interval(-5.0, -3.0) == Interval(-Inf, -3.0) + @test Interval(15.0, Inf) / Interval(3.0, 5.0) == Interval(3.0, Inf) + @test Interval(15.0, Inf) / Interval(-Inf, -3.0) == Interval(-Inf, 0.0) + @test Interval(15.0, Inf) / Interval(3.0, Inf) == Interval(0.0, Inf) + @test Interval(15.0, Inf) / Interval(0.0, 0.0) == ∅ + @test Interval(15.0, Inf) / Interval(-3.0, 0.0) == Interval(-Inf, -5.0) + @test Interval(15.0, Inf) / Interval(-0.0, -0.0) == ∅ + @test Interval(15.0, Inf) / Interval(-3.0, -0.0) == Interval(-Inf, -5.0) + @test Interval(15.0, Inf) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(15.0, Inf) / Interval(0.0, 3.0) == Interval(5.0, Inf) + @test Interval(15.0, Inf) / Interval(-Inf, 0.0) == Interval(-Inf, 0.0) + @test Interval(15.0, Inf) / Interval(-0.0, 3.0) == Interval(5.0, Inf) + @test Interval(15.0, Inf) / Interval(-Inf, -0.0) == Interval(-Inf, 0.0) + @test Interval(15.0, Inf) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(15.0, Inf) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(15.0, Inf) / Interval(0.0, Inf) == Interval(0.0, Inf) + @test Interval(15.0, Inf) / Interval(-0.0, Inf) == Interval(0.0, Inf) + @test Interval(15.0, Inf) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(-30.0, 0.0) / Interval(-5.0, -3.0) == Interval(0.0, 10.0) + @test Interval(-30.0, 0.0) / Interval(3.0, 5.0) == Interval(-10.0, 0.0) + @test Interval(-30.0, 0.0) / Interval(-Inf, -3.0) == Interval(0.0, 10.0) + @test Interval(-30.0, 0.0) / Interval(3.0, Inf) == Interval(-10.0, 0.0) + @test Interval(-30.0, 0.0) / Interval(0.0, 0.0) == ∅ + @test Interval(-30.0, 0.0) / Interval(-3.0, 0.0) == Interval(0.0, Inf) + @test Interval(-30.0, 0.0) / Interval(-0.0, -0.0) == ∅ + @test Interval(-30.0, 0.0) / Interval(-3.0, -0.0) == Interval(0.0, Inf) + @test Interval(-30.0, 0.0) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(-30.0, 0.0) / Interval(0.0, 3.0) == Interval(-Inf, 0.0) + @test Interval(-30.0, 0.0) / Interval(-Inf, 0.0) == Interval(0.0, Inf) + @test Interval(-30.0, 0.0) / Interval(-0.0, 3.0) == Interval(-Inf, 0.0) + @test Interval(-30.0, 0.0) / Interval(-Inf, -0.0) == Interval(0.0, Inf) + @test Interval(-30.0, 0.0) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-30.0, 0.0) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(-30.0, 0.0) / Interval(0.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-30.0, 0.0) / Interval(-0.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-30.0, 0.0) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(-30.0, -0.0) / Interval(-5.0, -3.0) == Interval(0.0, 10.0) + @test Interval(-30.0, -0.0) / Interval(3.0, 5.0) == Interval(-10.0, 0.0) + @test Interval(-30.0, -0.0) / Interval(-Inf, -3.0) == Interval(0.0, 10.0) + @test Interval(-30.0, -0.0) / Interval(3.0, Inf) == Interval(-10.0, 0.0) + @test Interval(-30.0, -0.0) / Interval(0.0, 0.0) == ∅ + @test Interval(-30.0, -0.0) / Interval(-3.0, 0.0) == Interval(0.0, Inf) + @test Interval(-30.0, -0.0) / Interval(-0.0, -0.0) == ∅ + @test Interval(-30.0, -0.0) / Interval(-3.0, -0.0) == Interval(0.0, Inf) + @test Interval(-30.0, -0.0) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(-30.0, -0.0) / Interval(0.0, 3.0) == Interval(-Inf, 0.0) + @test Interval(-30.0, -0.0) / Interval(-Inf, 0.0) == Interval(0.0, Inf) + @test Interval(-30.0, -0.0) / Interval(-0.0, 3.0) == Interval(-Inf, 0.0) + @test Interval(-30.0, -0.0) / Interval(-Inf, -0.0) == Interval(0.0, Inf) + @test Interval(-30.0, -0.0) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-30.0, -0.0) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(-30.0, -0.0) / Interval(0.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-30.0, -0.0) / Interval(-0.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-30.0, -0.0) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(0.0, 30.0) / Interval(-5.0, -3.0) == Interval(-10.0, 0.0) + @test Interval(0.0, 30.0) / Interval(3.0, 5.0) == Interval(0.0, 10.0) + @test Interval(0.0, 30.0) / Interval(-Inf, -3.0) == Interval(-10.0, 0.0) + @test Interval(0.0, 30.0) / Interval(3.0, Inf) == Interval(0.0, 10.0) + @test Interval(0.0, 30.0) / Interval(0.0, 0.0) == ∅ + @test Interval(0.0, 30.0) / Interval(-3.0, 0.0) == Interval(-Inf, 0.0) + @test Interval(0.0, 30.0) / Interval(-0.0, -0.0) == ∅ + @test Interval(0.0, 30.0) / Interval(-3.0, -0.0) == Interval(-Inf, 0.0) + @test Interval(0.0, 30.0) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(0.0, 30.0) / Interval(0.0, 3.0) == Interval(0.0, Inf) + @test Interval(0.0, 30.0) / Interval(-Inf, 0.0) == Interval(-Inf, 0.0) + @test Interval(0.0, 30.0) / Interval(-0.0, 3.0) == Interval(0.0, Inf) + @test Interval(0.0, 30.0) / Interval(-Inf, -0.0) == Interval(-Inf, 0.0) + @test Interval(0.0, 30.0) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(0.0, 30.0) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(0.0, 30.0) / Interval(0.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 30.0) / Interval(-0.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 30.0) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(-0.0, 30.0) / Interval(-5.0, -3.0) == Interval(-10.0, 0.0) + @test Interval(-0.0, 30.0) / Interval(3.0, 5.0) == Interval(0.0, 10.0) + @test Interval(-0.0, 30.0) / Interval(-Inf, -3.0) == Interval(-10.0, 0.0) + @test Interval(-0.0, 30.0) / Interval(3.0, Inf) == Interval(0.0, 10.0) + @test Interval(-0.0, 30.0) / Interval(0.0, 0.0) == ∅ + @test Interval(-0.0, 30.0) / Interval(-3.0, 0.0) == Interval(-Inf, 0.0) + @test Interval(-0.0, 30.0) / Interval(-0.0, -0.0) == ∅ + @test Interval(-0.0, 30.0) / Interval(-3.0, -0.0) == Interval(-Inf, 0.0) + @test Interval(-0.0, 30.0) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(-0.0, 30.0) / Interval(0.0, 3.0) == Interval(0.0, Inf) + @test Interval(-0.0, 30.0) / Interval(-Inf, 0.0) == Interval(-Inf, 0.0) + @test Interval(-0.0, 30.0) / Interval(-0.0, 3.0) == Interval(0.0, Inf) + @test Interval(-0.0, 30.0) / Interval(-Inf, -0.0) == Interval(-Inf, 0.0) + @test Interval(-0.0, 30.0) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-0.0, 30.0) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(-0.0, 30.0) / Interval(0.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 30.0) / Interval(-0.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 30.0) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(-Inf, 0.0) / Interval(-5.0, -3.0) == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) / Interval(3.0, 5.0) == Interval(-Inf, 0.0) + @test Interval(-Inf, 0.0) / Interval(-Inf, -3.0) == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) / Interval(3.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-Inf, 0.0) / Interval(0.0, 0.0) == ∅ + @test Interval(-Inf, 0.0) / Interval(-3.0, 0.0) == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) / Interval(-0.0, -0.0) == ∅ + @test Interval(-Inf, 0.0) / Interval(-3.0, -0.0) == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(-Inf, 0.0) / Interval(0.0, 3.0) == Interval(-Inf, 0.0) + @test Interval(-Inf, 0.0) / Interval(-Inf, 0.0) == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) / Interval(-0.0, 3.0) == Interval(-Inf, 0.0) + @test Interval(-Inf, 0.0) / Interval(-Inf, -0.0) == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-Inf, 0.0) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(-Inf, 0.0) / Interval(0.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-Inf, 0.0) / Interval(-0.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-Inf, 0.0) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(-Inf, -0.0) / Interval(-5.0, -3.0) == Interval(0.0, Inf) + @test Interval(-Inf, -0.0) / Interval(3.0, 5.0) == Interval(-Inf, 0.0) + @test Interval(-Inf, -0.0) / Interval(-Inf, -3.0) == Interval(0.0, Inf) + @test Interval(-Inf, -0.0) / Interval(3.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-Inf, -0.0) / Interval(0.0, 0.0) == ∅ + @test Interval(-Inf, -0.0) / Interval(-3.0, 0.0) == Interval(0.0, Inf) + @test Interval(-Inf, -0.0) / Interval(-0.0, -0.0) == ∅ + @test Interval(-Inf, -0.0) / Interval(-3.0, -0.0) == Interval(0.0, Inf) + @test Interval(-Inf, -0.0) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(-Inf, -0.0) / Interval(0.0, 3.0) == Interval(-Inf, 0.0) + @test Interval(-Inf, -0.0) / Interval(-Inf, 0.0) == Interval(0.0, Inf) + @test Interval(-Inf, -0.0) / Interval(-0.0, 3.0) == Interval(-Inf, 0.0) + @test Interval(-Inf, -0.0) / Interval(-Inf, -0.0) == Interval(0.0, Inf) + @test Interval(-Inf, -0.0) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-Inf, -0.0) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(-Inf, -0.0) / Interval(0.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-Inf, -0.0) / Interval(-0.0, Inf) == Interval(-Inf, 0.0) + @test Interval(-Inf, -0.0) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(0.0, Inf) / Interval(-5.0, -3.0) == Interval(-Inf, 0.0) + @test Interval(0.0, Inf) / Interval(3.0, 5.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) / Interval(-Inf, -3.0) == Interval(-Inf, 0.0) + @test Interval(0.0, Inf) / Interval(3.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, Inf) / Interval(0.0, 0.0) == ∅ + @test Interval(0.0, Inf) / Interval(-3.0, 0.0) == Interval(-Inf, 0.0) + @test Interval(0.0, Inf) / Interval(-0.0, -0.0) == ∅ + @test Interval(0.0, Inf) / Interval(-3.0, -0.0) == Interval(-Inf, 0.0) + @test Interval(0.0, Inf) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(0.0, Inf) / Interval(0.0, 3.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) / Interval(-Inf, 0.0) == Interval(-Inf, 0.0) + @test Interval(0.0, Inf) / Interval(-0.0, 3.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) / Interval(-Inf, -0.0) == Interval(-Inf, 0.0) + @test Interval(0.0, Inf) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(0.0, Inf) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(0.0, Inf) / Interval(0.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, Inf) / Interval(-0.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, Inf) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(-0.0, Inf) / Interval(-5.0, -3.0) == Interval(-Inf, 0.0) + @test Interval(-0.0, Inf) / Interval(3.0, 5.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) / Interval(-Inf, -3.0) == Interval(-Inf, 0.0) + @test Interval(-0.0, Inf) / Interval(3.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) / Interval(0.0, 0.0) == ∅ + @test Interval(-0.0, Inf) / Interval(-3.0, 0.0) == Interval(-Inf, 0.0) + @test Interval(-0.0, Inf) / Interval(-0.0, -0.0) == ∅ + @test Interval(-0.0, Inf) / Interval(-3.0, -0.0) == Interval(-Inf, 0.0) + @test Interval(-0.0, Inf) / Interval(-3.0, 3.0) == entireinterval(Float64) + @test Interval(-0.0, Inf) / Interval(0.0, 3.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) / Interval(-Inf, 0.0) == Interval(-Inf, 0.0) + @test Interval(-0.0, Inf) / Interval(-0.0, 3.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) / Interval(-Inf, -0.0) == Interval(-Inf, 0.0) + @test Interval(-0.0, Inf) / Interval(-Inf, 3.0) == entireinterval(Float64) + @test Interval(-0.0, Inf) / Interval(-3.0, Inf) == entireinterval(Float64) + @test Interval(-0.0, Inf) / Interval(0.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) / Interval(-0.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) / entireinterval(Float64) == entireinterval(Float64) + @test Interval(-2.0, -1.0) / Interval(-10.0, -3.0) == Interval(0x1.9999999999999p-4, 0x1.5555555555556p-1) + @test Interval(-2.0, -1.0) / Interval(0.0, 10.0) == Interval(-Inf, -0x1.9999999999999p-4) + @test Interval(-2.0, -1.0) / Interval(-0.0, 10.0) == Interval(-Inf, -0x1.9999999999999p-4) + @test Interval(-1.0, 2.0) / Interval(10.0, Inf) == Interval(-0x1.999999999999ap-4, 0x1.999999999999ap-3) + @test Interval(1.0, 3.0) / Interval(-Inf, -10.0) == Interval(-0x1.3333333333334p-2, 0.0) + @test Interval(-Inf, -1.0) / Interval(1.0, 3.0) == Interval(-Inf, -0x1.5555555555555p-2) end -facts("minimal_div_dec_test") do - @fact DecoratedInterval(Interval(-2.0, -1.0), com) / DecoratedInterval(Interval(-10.0, -3.0), com) --> DecoratedInterval(Interval(0x1.9999999999999p-4, 0x1.5555555555556p-1), com) - @fact decoration(DecoratedInterval(Interval(-2.0, -1.0), com) / DecoratedInterval(Interval(-10.0, -3.0), com)) --> decoration(DecoratedInterval(Interval(0x1.9999999999999p-4, 0x1.5555555555556p-1), com)) - @fact DecoratedInterval(Interval(-200.0, -1.0), com) / DecoratedInterval(Interval(0x0.0000000000001p-1022, 10.0), com) --> DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), dac) - @fact decoration(DecoratedInterval(Interval(-200.0, -1.0), com) / DecoratedInterval(Interval(0x0.0000000000001p-1022, 10.0), com)) --> decoration(DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), dac)) - @fact DecoratedInterval(Interval(-2.0, -1.0), com) / DecoratedInterval(Interval(0.0, 10.0), com) --> DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv) - @fact decoration(DecoratedInterval(Interval(-2.0, -1.0), com) / DecoratedInterval(Interval(0.0, 10.0), com)) --> decoration(DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv)) - @fact DecoratedInterval(Interval(1.0, 3.0), def) / DecoratedInterval(Interval(-Inf, -10.0), dac) --> DecoratedInterval(Interval(-0x1.3333333333334p-2, 0.0), def) - @fact decoration(DecoratedInterval(Interval(1.0, 3.0), def) / DecoratedInterval(Interval(-Inf, -10.0), dac)) --> decoration(DecoratedInterval(Interval(-0x1.3333333333334p-2, 0.0), def)) - @fact DecoratedInterval(Interval(1.0, 2.0), trv) / DecoratedInterval(∅, trv) --> DecoratedInterval(∅, trv) - @fact decoration(DecoratedInterval(Interval(1.0, 2.0), trv) / DecoratedInterval(∅, trv)) --> decoration(DecoratedInterval(∅, trv)) +@testset "minimal_div_dec_test" begin + @test DecoratedInterval(Interval(-2.0, -1.0), com) / DecoratedInterval(Interval(-10.0, -3.0), com) == DecoratedInterval(Interval(0x1.9999999999999p-4, 0x1.5555555555556p-1), com) + @test decoration(DecoratedInterval(Interval(-2.0, -1.0), com) / DecoratedInterval(Interval(-10.0, -3.0), com)) == decoration(DecoratedInterval(Interval(0x1.9999999999999p-4, 0x1.5555555555556p-1), com)) + @test DecoratedInterval(Interval(-200.0, -1.0), com) / DecoratedInterval(Interval(0x0.0000000000001p-1022, 10.0), com) == DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), dac) + @test decoration(DecoratedInterval(Interval(-200.0, -1.0), com) / DecoratedInterval(Interval(0x0.0000000000001p-1022, 10.0), com)) == decoration(DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), dac)) + @test DecoratedInterval(Interval(-2.0, -1.0), com) / DecoratedInterval(Interval(0.0, 10.0), com) == DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv) + @test decoration(DecoratedInterval(Interval(-2.0, -1.0), com) / DecoratedInterval(Interval(0.0, 10.0), com)) == decoration(DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv)) + @test DecoratedInterval(Interval(1.0, 3.0), def) / DecoratedInterval(Interval(-Inf, -10.0), dac) == DecoratedInterval(Interval(-0x1.3333333333334p-2, 0.0), def) + @test decoration(DecoratedInterval(Interval(1.0, 3.0), def) / DecoratedInterval(Interval(-Inf, -10.0), dac)) == decoration(DecoratedInterval(Interval(-0x1.3333333333334p-2, 0.0), def)) + @test DecoratedInterval(Interval(1.0, 2.0), trv) / DecoratedInterval(∅, trv) == DecoratedInterval(∅, trv) + @test decoration(DecoratedInterval(Interval(1.0, 2.0), trv) / DecoratedInterval(∅, trv)) == decoration(DecoratedInterval(∅, trv)) end -facts("minimal_recip_test") do - @fact inv(Interval(-50.0, -10.0)) --> Interval(-0x1.999999999999ap-4, -0x1.47ae147ae147ap-6) - @fact (Interval(-50.0, -10.0))^(-1) --> Interval(-0x1.999999999999ap-4, -0x1.47ae147ae147ap-6) - @fact (Interval(-50.0, -10.0))^(-1//1) --> Interval(-0x1.999999999999ap-4, -0x1.47ae147ae147ap-6) - @fact (Interval(-50.0, -10.0))^(-1.0) --> Interval(-0x1.999999999999ap-4, -0x1.47ae147ae147ap-6) - @fact 1 /(Interval(-50.0, -10.0)) --> Interval(-0x1.999999999999ap-4, -0x1.47ae147ae147ap-6) - @fact inv(Interval(10.0, 50.0)) --> Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4) - @fact (Interval(10.0, 50.0))^(-1) --> Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4) - @fact (Interval(10.0, 50.0))^(-1//1) --> Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4) - @fact (Interval(10.0, 50.0))^(-1.0) --> Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4) - @fact 1 /(Interval(10.0, 50.0)) --> Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4) - @fact inv(Interval(-Inf, -10.0)) --> Interval(-0x1.999999999999ap-4, 0.0) - @fact (Interval(-Inf, -10.0))^(-1) --> Interval(-0x1.999999999999ap-4, 0.0) - @fact (Interval(-Inf, -10.0))^(-1//1) --> Interval(-0x1.999999999999ap-4, 0.0) - @fact (Interval(-Inf, -10.0))^(-1.0) --> Interval(-0x1.999999999999ap-4, 0.0) - @fact 1 /(Interval(-Inf, -10.0)) --> Interval(-0x1.999999999999ap-4, 0.0) - @fact inv(Interval(10.0, Inf)) --> Interval(0.0, 0x1.999999999999ap-4) - @fact (Interval(10.0, Inf))^(-1) --> Interval(0.0, 0x1.999999999999ap-4) - @fact (Interval(10.0, Inf))^(-1//1) --> Interval(0.0, 0x1.999999999999ap-4) - @fact (Interval(10.0, Inf))^(-1.0) --> Interval(0.0, 0x1.999999999999ap-4) - @fact 1 /(Interval(10.0, Inf)) --> Interval(0.0, 0x1.999999999999ap-4) - @fact inv(Interval(0.0, 0.0)) --> ∅ - @fact (Interval(0.0, 0.0))^(-1) --> ∅ - @fact (Interval(0.0, 0.0))^(-1//1) --> ∅ - @fact (Interval(0.0, 0.0))^(-1.0) --> ∅ - @fact 1 /(Interval(0.0, 0.0)) --> ∅ - @fact inv(Interval(-0.0, -0.0)) --> ∅ - @fact (Interval(-0.0, -0.0))^(-1) --> ∅ - @fact (Interval(-0.0, -0.0))^(-1//1) --> ∅ - @fact (Interval(-0.0, -0.0))^(-1.0) --> ∅ - @fact 1 /(Interval(-0.0, -0.0)) --> ∅ - @fact inv(Interval(-10.0, 0.0)) --> Interval(-Inf, -0x1.9999999999999p-4) - @fact (Interval(-10.0, 0.0))^(-1) --> Interval(-Inf, -0x1.9999999999999p-4) - @fact (Interval(-10.0, 0.0))^(-1//1) --> Interval(-Inf, -0x1.9999999999999p-4) - @fact (Interval(-10.0, 0.0))^(-1.0) --> Interval(-Inf, -0x1.9999999999999p-4) - @fact 1 /(Interval(-10.0, 0.0)) --> Interval(-Inf, -0x1.9999999999999p-4) - @fact inv(Interval(-10.0, -0.0)) --> Interval(-Inf, -0x1.9999999999999p-4) - @fact (Interval(-10.0, -0.0))^(-1) --> Interval(-Inf, -0x1.9999999999999p-4) - @fact (Interval(-10.0, -0.0))^(-1//1) --> Interval(-Inf, -0x1.9999999999999p-4) - @fact (Interval(-10.0, -0.0))^(-1.0) --> Interval(-Inf, -0x1.9999999999999p-4) - @fact 1 /(Interval(-10.0, -0.0)) --> Interval(-Inf, -0x1.9999999999999p-4) - @fact inv(Interval(-10.0, 10.0)) --> entireinterval(Float64) - @fact (Interval(-10.0, 10.0))^(-1) --> entireinterval(Float64) - @fact (Interval(-10.0, 10.0))^(-1//1) --> entireinterval(Float64) - @fact (Interval(-10.0, 10.0))^(-1.0) --> entireinterval(Float64) - @fact 1 /(Interval(-10.0, 10.0)) --> entireinterval(Float64) - @fact inv(Interval(0.0, 10.0)) --> Interval(0x1.9999999999999p-4, Inf) - @fact (Interval(0.0, 10.0))^(-1) --> Interval(0x1.9999999999999p-4, Inf) - @fact (Interval(0.0, 10.0))^(-1//1) --> Interval(0x1.9999999999999p-4, Inf) - @fact (Interval(0.0, 10.0))^(-1.0) --> Interval(0x1.9999999999999p-4, Inf) - @fact 1 /(Interval(0.0, 10.0)) --> Interval(0x1.9999999999999p-4, Inf) - @fact inv(Interval(-0.0, 10.0)) --> Interval(0x1.9999999999999p-4, Inf) - @fact (Interval(-0.0, 10.0))^(-1) --> Interval(0x1.9999999999999p-4, Inf) - @fact (Interval(-0.0, 10.0))^(-1//1) --> Interval(0x1.9999999999999p-4, Inf) - @fact (Interval(-0.0, 10.0))^(-1.0) --> Interval(0x1.9999999999999p-4, Inf) - @fact 1 /(Interval(-0.0, 10.0)) --> Interval(0x1.9999999999999p-4, Inf) - @fact inv(Interval(-Inf, 0.0)) --> Interval(-Inf, 0.0) - @fact (Interval(-Inf, 0.0))^(-1) --> Interval(-Inf, 0.0) - @fact (Interval(-Inf, 0.0))^(-1//1) --> Interval(-Inf, 0.0) - @fact (Interval(-Inf, 0.0))^(-1.0) --> Interval(-Inf, 0.0) - @fact 1 /(Interval(-Inf, 0.0)) --> Interval(-Inf, 0.0) - @fact inv(Interval(-Inf, -0.0)) --> Interval(-Inf, 0.0) - @fact (Interval(-Inf, -0.0))^(-1) --> Interval(-Inf, 0.0) - @fact (Interval(-Inf, -0.0))^(-1//1) --> Interval(-Inf, 0.0) - @fact (Interval(-Inf, -0.0))^(-1.0) --> Interval(-Inf, 0.0) - @fact 1 /(Interval(-Inf, -0.0)) --> Interval(-Inf, 0.0) - @fact inv(Interval(-Inf, 10.0)) --> entireinterval(Float64) - @fact (Interval(-Inf, 10.0))^(-1) --> entireinterval(Float64) - @fact (Interval(-Inf, 10.0))^(-1//1) --> entireinterval(Float64) - @fact (Interval(-Inf, 10.0))^(-1.0) --> entireinterval(Float64) - @fact 1 /(Interval(-Inf, 10.0)) --> entireinterval(Float64) - @fact inv(Interval(-10.0, Inf)) --> entireinterval(Float64) - @fact (Interval(-10.0, Inf))^(-1) --> entireinterval(Float64) - @fact (Interval(-10.0, Inf))^(-1//1) --> entireinterval(Float64) - @fact (Interval(-10.0, Inf))^(-1.0) --> entireinterval(Float64) - @fact 1 /(Interval(-10.0, Inf)) --> entireinterval(Float64) - @fact inv(Interval(0.0, Inf)) --> Interval(0.0, Inf) - @fact (Interval(0.0, Inf))^(-1) --> Interval(0.0, Inf) - @fact (Interval(0.0, Inf))^(-1//1) --> Interval(0.0, Inf) - @fact (Interval(0.0, Inf))^(-1.0) --> Interval(0.0, Inf) - @fact 1 /(Interval(0.0, Inf)) --> Interval(0.0, Inf) - @fact inv(Interval(-0.0, Inf)) --> Interval(0.0, Inf) - @fact (Interval(-0.0, Inf))^(-1) --> Interval(0.0, Inf) - @fact (Interval(-0.0, Inf))^(-1//1) --> Interval(0.0, Inf) - @fact (Interval(-0.0, Inf))^(-1.0) --> Interval(0.0, Inf) - @fact 1 /(Interval(-0.0, Inf)) --> Interval(0.0, Inf) - @fact inv(entireinterval(Float64)) --> entireinterval(Float64) - @fact (entireinterval(Float64))^(-1) --> entireinterval(Float64) - @fact (entireinterval(Float64))^(-1//1) --> entireinterval(Float64) - @fact (entireinterval(Float64))^(-1.0) --> entireinterval(Float64) - @fact 1 /(entireinterval(Float64)) --> entireinterval(Float64) +@testset "minimal_recip_test" begin + @test inv(Interval(-50.0, -10.0)) == Interval(-0x1.999999999999ap-4, -0x1.47ae147ae147ap-6) + @test (Interval(-50.0, -10.0))^(-1) == Interval(-0x1.999999999999ap-4, -0x1.47ae147ae147ap-6) + @test (Interval(-50.0, -10.0))^(-1//1) == Interval(-0x1.999999999999ap-4, -0x1.47ae147ae147ap-6) + @test (Interval(-50.0, -10.0))^(-1.0) == Interval(-0x1.999999999999ap-4, -0x1.47ae147ae147ap-6) + @test 1 /(Interval(-50.0, -10.0)) == Interval(-0x1.999999999999ap-4, -0x1.47ae147ae147ap-6) + @test inv(Interval(10.0, 50.0)) == Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4) + @test (Interval(10.0, 50.0))^(-1) == Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4) + @test (Interval(10.0, 50.0))^(-1//1) == Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4) + @test (Interval(10.0, 50.0))^(-1.0) == Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4) + @test 1 /(Interval(10.0, 50.0)) == Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4) + @test inv(Interval(-Inf, -10.0)) == Interval(-0x1.999999999999ap-4, 0.0) + @test (Interval(-Inf, -10.0))^(-1) == Interval(-0x1.999999999999ap-4, 0.0) + @test (Interval(-Inf, -10.0))^(-1//1) == Interval(-0x1.999999999999ap-4, 0.0) + @test (Interval(-Inf, -10.0))^(-1.0) == Interval(-0x1.999999999999ap-4, 0.0) + @test 1 /(Interval(-Inf, -10.0)) == Interval(-0x1.999999999999ap-4, 0.0) + @test inv(Interval(10.0, Inf)) == Interval(0.0, 0x1.999999999999ap-4) + @test (Interval(10.0, Inf))^(-1) == Interval(0.0, 0x1.999999999999ap-4) + @test (Interval(10.0, Inf))^(-1//1) == Interval(0.0, 0x1.999999999999ap-4) + @test (Interval(10.0, Inf))^(-1.0) == Interval(0.0, 0x1.999999999999ap-4) + @test 1 /(Interval(10.0, Inf)) == Interval(0.0, 0x1.999999999999ap-4) + @test inv(Interval(0.0, 0.0)) == ∅ + @test (Interval(0.0, 0.0))^(-1) == ∅ + @test (Interval(0.0, 0.0))^(-1//1) == ∅ + @test (Interval(0.0, 0.0))^(-1.0) == ∅ + @test 1 /(Interval(0.0, 0.0)) == ∅ + @test inv(Interval(-0.0, -0.0)) == ∅ + @test (Interval(-0.0, -0.0))^(-1) == ∅ + @test (Interval(-0.0, -0.0))^(-1//1) == ∅ + @test (Interval(-0.0, -0.0))^(-1.0) == ∅ + @test 1 /(Interval(-0.0, -0.0)) == ∅ + @test inv(Interval(-10.0, 0.0)) == Interval(-Inf, -0x1.9999999999999p-4) + @test (Interval(-10.0, 0.0))^(-1) == Interval(-Inf, -0x1.9999999999999p-4) + @test (Interval(-10.0, 0.0))^(-1//1) == Interval(-Inf, -0x1.9999999999999p-4) + @test (Interval(-10.0, 0.0))^(-1.0) == Interval(-Inf, -0x1.9999999999999p-4) + @test 1 /(Interval(-10.0, 0.0)) == Interval(-Inf, -0x1.9999999999999p-4) + @test inv(Interval(-10.0, -0.0)) == Interval(-Inf, -0x1.9999999999999p-4) + @test (Interval(-10.0, -0.0))^(-1) == Interval(-Inf, -0x1.9999999999999p-4) + @test (Interval(-10.0, -0.0))^(-1//1) == Interval(-Inf, -0x1.9999999999999p-4) + @test (Interval(-10.0, -0.0))^(-1.0) == Interval(-Inf, -0x1.9999999999999p-4) + @test 1 /(Interval(-10.0, -0.0)) == Interval(-Inf, -0x1.9999999999999p-4) + @test inv(Interval(-10.0, 10.0)) == entireinterval(Float64) + @test (Interval(-10.0, 10.0))^(-1) == entireinterval(Float64) + @test (Interval(-10.0, 10.0))^(-1//1) == entireinterval(Float64) + @test (Interval(-10.0, 10.0))^(-1.0) == entireinterval(Float64) + @test 1 /(Interval(-10.0, 10.0)) == entireinterval(Float64) + @test inv(Interval(0.0, 10.0)) == Interval(0x1.9999999999999p-4, Inf) + @test (Interval(0.0, 10.0))^(-1) == Interval(0x1.9999999999999p-4, Inf) + @test (Interval(0.0, 10.0))^(-1//1) == Interval(0x1.9999999999999p-4, Inf) + @test (Interval(0.0, 10.0))^(-1.0) == Interval(0x1.9999999999999p-4, Inf) + @test 1 /(Interval(0.0, 10.0)) == Interval(0x1.9999999999999p-4, Inf) + @test inv(Interval(-0.0, 10.0)) == Interval(0x1.9999999999999p-4, Inf) + @test (Interval(-0.0, 10.0))^(-1) == Interval(0x1.9999999999999p-4, Inf) + @test (Interval(-0.0, 10.0))^(-1//1) == Interval(0x1.9999999999999p-4, Inf) + @test (Interval(-0.0, 10.0))^(-1.0) == Interval(0x1.9999999999999p-4, Inf) + @test 1 /(Interval(-0.0, 10.0)) == Interval(0x1.9999999999999p-4, Inf) + @test inv(Interval(-Inf, 0.0)) == Interval(-Inf, 0.0) + @test (Interval(-Inf, 0.0))^(-1) == Interval(-Inf, 0.0) + @test (Interval(-Inf, 0.0))^(-1//1) == Interval(-Inf, 0.0) + @test (Interval(-Inf, 0.0))^(-1.0) == Interval(-Inf, 0.0) + @test 1 /(Interval(-Inf, 0.0)) == Interval(-Inf, 0.0) + @test inv(Interval(-Inf, -0.0)) == Interval(-Inf, 0.0) + @test (Interval(-Inf, -0.0))^(-1) == Interval(-Inf, 0.0) + @test (Interval(-Inf, -0.0))^(-1//1) == Interval(-Inf, 0.0) + @test (Interval(-Inf, -0.0))^(-1.0) == Interval(-Inf, 0.0) + @test 1 /(Interval(-Inf, -0.0)) == Interval(-Inf, 0.0) + @test inv(Interval(-Inf, 10.0)) == entireinterval(Float64) + @test (Interval(-Inf, 10.0))^(-1) == entireinterval(Float64) + @test (Interval(-Inf, 10.0))^(-1//1) == entireinterval(Float64) + @test (Interval(-Inf, 10.0))^(-1.0) == entireinterval(Float64) + @test 1 /(Interval(-Inf, 10.0)) == entireinterval(Float64) + @test inv(Interval(-10.0, Inf)) == entireinterval(Float64) + @test (Interval(-10.0, Inf))^(-1) == entireinterval(Float64) + @test (Interval(-10.0, Inf))^(-1//1) == entireinterval(Float64) + @test (Interval(-10.0, Inf))^(-1.0) == entireinterval(Float64) + @test 1 /(Interval(-10.0, Inf)) == entireinterval(Float64) + @test inv(Interval(0.0, Inf)) == Interval(0.0, Inf) + @test (Interval(0.0, Inf))^(-1) == Interval(0.0, Inf) + @test (Interval(0.0, Inf))^(-1//1) == Interval(0.0, Inf) + @test (Interval(0.0, Inf))^(-1.0) == Interval(0.0, Inf) + @test 1 /(Interval(0.0, Inf)) == Interval(0.0, Inf) + @test inv(Interval(-0.0, Inf)) == Interval(0.0, Inf) + @test (Interval(-0.0, Inf))^(-1) == Interval(0.0, Inf) + @test (Interval(-0.0, Inf))^(-1//1) == Interval(0.0, Inf) + @test (Interval(-0.0, Inf))^(-1.0) == Interval(0.0, Inf) + @test 1 /(Interval(-0.0, Inf)) == Interval(0.0, Inf) + @test inv(entireinterval(Float64)) == entireinterval(Float64) + @test (entireinterval(Float64))^(-1) == entireinterval(Float64) + @test (entireinterval(Float64))^(-1//1) == entireinterval(Float64) + @test (entireinterval(Float64))^(-1.0) == entireinterval(Float64) + @test 1 /(entireinterval(Float64)) == entireinterval(Float64) end -facts("minimal_recip_dec_test") do - @fact inv(DecoratedInterval(Interval(10.0, 50.0), com)) --> DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com) - @fact decoration(inv(DecoratedInterval(Interval(10.0, 50.0), com))) --> decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com)) - @fact (DecoratedInterval(Interval(10.0, 50.0), com))^(-1) --> DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com) - @fact decoration((DecoratedInterval(Interval(10.0, 50.0), com))^(-1)) --> decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com)) - @fact (DecoratedInterval(Interval(10.0, 50.0), com))^(-1//1) --> DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com) - @fact decoration((DecoratedInterval(Interval(10.0, 50.0), com))^(-1//1)) --> decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com)) - @fact (DecoratedInterval(Interval(10.0, 50.0), com))^(-1.0) --> DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com) - @fact decoration((DecoratedInterval(Interval(10.0, 50.0), com))^(-1.0)) --> decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com)) - @fact 1 /(DecoratedInterval(Interval(10.0, 50.0), com)) --> DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com) - @fact decoration(1 /(DecoratedInterval(Interval(10.0, 50.0), com))) --> decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com)) - @fact inv(DecoratedInterval(Interval(-Inf, -10.0), dac)) --> DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac) - @fact decoration(inv(DecoratedInterval(Interval(-Inf, -10.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac)) - @fact (DecoratedInterval(Interval(-Inf, -10.0), dac))^(-1) --> DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac) - @fact decoration((DecoratedInterval(Interval(-Inf, -10.0), dac))^(-1)) --> decoration(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac)) - @fact (DecoratedInterval(Interval(-Inf, -10.0), dac))^(-1//1) --> DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac) - @fact decoration((DecoratedInterval(Interval(-Inf, -10.0), dac))^(-1//1)) --> decoration(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac)) - @fact (DecoratedInterval(Interval(-Inf, -10.0), dac))^(-1.0) --> DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac) - @fact decoration((DecoratedInterval(Interval(-Inf, -10.0), dac))^(-1.0)) --> decoration(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac)) - @fact 1 /(DecoratedInterval(Interval(-Inf, -10.0), dac)) --> DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac) - @fact decoration(1 /(DecoratedInterval(Interval(-Inf, -10.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac)) - @fact inv(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def)) --> DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def) - @fact decoration(inv(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))) --> decoration(DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def)) - @fact (DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))^(-1) --> DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def) - @fact decoration((DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))^(-1)) --> decoration(DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def)) - @fact (DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))^(-1//1) --> DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def) - @fact decoration((DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))^(-1//1)) --> decoration(DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def)) - @fact (DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))^(-1.0) --> DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def) - @fact decoration((DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))^(-1.0)) --> decoration(DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def)) - @fact 1 /(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def)) --> DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def) - @fact decoration(1 /(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))) --> decoration(DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def)) - @fact inv(DecoratedInterval(Interval(0.0, 0.0), com)) --> DecoratedInterval(∅, trv) - @fact decoration(inv(DecoratedInterval(Interval(0.0, 0.0), com))) --> decoration(DecoratedInterval(∅, trv)) - @fact (DecoratedInterval(Interval(0.0, 0.0), com))^(-1) --> DecoratedInterval(∅, trv) - @fact decoration((DecoratedInterval(Interval(0.0, 0.0), com))^(-1)) --> decoration(DecoratedInterval(∅, trv)) - @fact (DecoratedInterval(Interval(0.0, 0.0), com))^(-1//1) --> DecoratedInterval(∅, trv) - @fact decoration((DecoratedInterval(Interval(0.0, 0.0), com))^(-1//1)) --> decoration(DecoratedInterval(∅, trv)) - @fact (DecoratedInterval(Interval(0.0, 0.0), com))^(-1.0) --> DecoratedInterval(∅, trv) - @fact decoration((DecoratedInterval(Interval(0.0, 0.0), com))^(-1.0)) --> decoration(DecoratedInterval(∅, trv)) - @fact 1 /(DecoratedInterval(Interval(0.0, 0.0), com)) --> DecoratedInterval(∅, trv) - @fact decoration(1 /(DecoratedInterval(Interval(0.0, 0.0), com))) --> decoration(DecoratedInterval(∅, trv)) - @fact inv(DecoratedInterval(Interval(-10.0, 0.0), com)) --> DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv) - @fact decoration(inv(DecoratedInterval(Interval(-10.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv)) - @fact (DecoratedInterval(Interval(-10.0, 0.0), com))^(-1) --> DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv) - @fact decoration((DecoratedInterval(Interval(-10.0, 0.0), com))^(-1)) --> decoration(DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv)) - @fact (DecoratedInterval(Interval(-10.0, 0.0), com))^(-1//1) --> DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv) - @fact decoration((DecoratedInterval(Interval(-10.0, 0.0), com))^(-1//1)) --> decoration(DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv)) - @fact (DecoratedInterval(Interval(-10.0, 0.0), com))^(-1.0) --> DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv) - @fact decoration((DecoratedInterval(Interval(-10.0, 0.0), com))^(-1.0)) --> decoration(DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv)) - @fact 1 /(DecoratedInterval(Interval(-10.0, 0.0), com)) --> DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv) - @fact decoration(1 /(DecoratedInterval(Interval(-10.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv)) - @fact inv(DecoratedInterval(Interval(-10.0, Inf), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(inv(DecoratedInterval(Interval(-10.0, Inf), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact (DecoratedInterval(Interval(-10.0, Inf), dac))^(-1) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration((DecoratedInterval(Interval(-10.0, Inf), dac))^(-1)) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact (DecoratedInterval(Interval(-10.0, Inf), dac))^(-1//1) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration((DecoratedInterval(Interval(-10.0, Inf), dac))^(-1//1)) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact (DecoratedInterval(Interval(-10.0, Inf), dac))^(-1.0) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration((DecoratedInterval(Interval(-10.0, Inf), dac))^(-1.0)) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact 1 /(DecoratedInterval(Interval(-10.0, Inf), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(1 /(DecoratedInterval(Interval(-10.0, Inf), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact inv(DecoratedInterval(Interval(-0.0, Inf), dac)) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(inv(DecoratedInterval(Interval(-0.0, Inf), dac))) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact (DecoratedInterval(Interval(-0.0, Inf), dac))^(-1) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration((DecoratedInterval(Interval(-0.0, Inf), dac))^(-1)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact (DecoratedInterval(Interval(-0.0, Inf), dac))^(-1//1) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration((DecoratedInterval(Interval(-0.0, Inf), dac))^(-1//1)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact (DecoratedInterval(Interval(-0.0, Inf), dac))^(-1.0) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration((DecoratedInterval(Interval(-0.0, Inf), dac))^(-1.0)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact 1 /(DecoratedInterval(Interval(-0.0, Inf), dac)) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(1 /(DecoratedInterval(Interval(-0.0, Inf), dac))) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact inv(DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(inv(DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact (DecoratedInterval(entireinterval(Float64), def))^(-1) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration((DecoratedInterval(entireinterval(Float64), def))^(-1)) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact (DecoratedInterval(entireinterval(Float64), def))^(-1//1) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration((DecoratedInterval(entireinterval(Float64), def))^(-1//1)) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact (DecoratedInterval(entireinterval(Float64), def))^(-1.0) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration((DecoratedInterval(entireinterval(Float64), def))^(-1.0)) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact 1 /(DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(1 /(DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) +@testset "minimal_recip_dec_test" begin + @test inv(DecoratedInterval(Interval(10.0, 50.0), com)) == DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com) + @test decoration(inv(DecoratedInterval(Interval(10.0, 50.0), com))) == decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com)) + @test (DecoratedInterval(Interval(10.0, 50.0), com))^(-1) == DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com) + @test decoration((DecoratedInterval(Interval(10.0, 50.0), com))^(-1)) == decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com)) + @test (DecoratedInterval(Interval(10.0, 50.0), com))^(-1//1) == DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com) + @test decoration((DecoratedInterval(Interval(10.0, 50.0), com))^(-1//1)) == decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com)) + @test (DecoratedInterval(Interval(10.0, 50.0), com))^(-1.0) == DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com) + @test decoration((DecoratedInterval(Interval(10.0, 50.0), com))^(-1.0)) == decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com)) + @test 1 /(DecoratedInterval(Interval(10.0, 50.0), com)) == DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com) + @test decoration(1 /(DecoratedInterval(Interval(10.0, 50.0), com))) == decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-6, 0x1.999999999999ap-4), com)) + @test inv(DecoratedInterval(Interval(-Inf, -10.0), dac)) == DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac) + @test decoration(inv(DecoratedInterval(Interval(-Inf, -10.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac)) + @test (DecoratedInterval(Interval(-Inf, -10.0), dac))^(-1) == DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac) + @test decoration((DecoratedInterval(Interval(-Inf, -10.0), dac))^(-1)) == decoration(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac)) + @test (DecoratedInterval(Interval(-Inf, -10.0), dac))^(-1//1) == DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac) + @test decoration((DecoratedInterval(Interval(-Inf, -10.0), dac))^(-1//1)) == decoration(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac)) + @test (DecoratedInterval(Interval(-Inf, -10.0), dac))^(-1.0) == DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac) + @test decoration((DecoratedInterval(Interval(-Inf, -10.0), dac))^(-1.0)) == decoration(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac)) + @test 1 /(DecoratedInterval(Interval(-Inf, -10.0), dac)) == DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac) + @test decoration(1 /(DecoratedInterval(Interval(-Inf, -10.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.999999999999ap-4, 0.0), dac)) + @test inv(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def)) == DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def) + @test decoration(inv(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))) == decoration(DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def)) + @test (DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))^(-1) == DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def) + @test decoration((DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))^(-1)) == decoration(DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def)) + @test (DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))^(-1//1) == DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def) + @test decoration((DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))^(-1//1)) == decoration(DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def)) + @test (DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))^(-1.0) == DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def) + @test decoration((DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))^(-1.0)) == decoration(DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def)) + @test 1 /(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def)) == DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def) + @test decoration(1 /(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), def))) == decoration(DecoratedInterval(Interval(-Inf, -0x0.4p-1022), def)) + @test inv(DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(∅, trv) + @test decoration(inv(DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(∅, trv)) + @test (DecoratedInterval(Interval(0.0, 0.0), com))^(-1) == DecoratedInterval(∅, trv) + @test decoration((DecoratedInterval(Interval(0.0, 0.0), com))^(-1)) == decoration(DecoratedInterval(∅, trv)) + @test (DecoratedInterval(Interval(0.0, 0.0), com))^(-1//1) == DecoratedInterval(∅, trv) + @test decoration((DecoratedInterval(Interval(0.0, 0.0), com))^(-1//1)) == decoration(DecoratedInterval(∅, trv)) + @test (DecoratedInterval(Interval(0.0, 0.0), com))^(-1.0) == DecoratedInterval(∅, trv) + @test decoration((DecoratedInterval(Interval(0.0, 0.0), com))^(-1.0)) == decoration(DecoratedInterval(∅, trv)) + @test 1 /(DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(∅, trv) + @test decoration(1 /(DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(∅, trv)) + @test inv(DecoratedInterval(Interval(-10.0, 0.0), com)) == DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv) + @test decoration(inv(DecoratedInterval(Interval(-10.0, 0.0), com))) == decoration(DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv)) + @test (DecoratedInterval(Interval(-10.0, 0.0), com))^(-1) == DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv) + @test decoration((DecoratedInterval(Interval(-10.0, 0.0), com))^(-1)) == decoration(DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv)) + @test (DecoratedInterval(Interval(-10.0, 0.0), com))^(-1//1) == DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv) + @test decoration((DecoratedInterval(Interval(-10.0, 0.0), com))^(-1//1)) == decoration(DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv)) + @test (DecoratedInterval(Interval(-10.0, 0.0), com))^(-1.0) == DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv) + @test decoration((DecoratedInterval(Interval(-10.0, 0.0), com))^(-1.0)) == decoration(DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv)) + @test 1 /(DecoratedInterval(Interval(-10.0, 0.0), com)) == DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv) + @test decoration(1 /(DecoratedInterval(Interval(-10.0, 0.0), com))) == decoration(DecoratedInterval(Interval(-Inf, -0x1.9999999999999p-4), trv)) + @test inv(DecoratedInterval(Interval(-10.0, Inf), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(inv(DecoratedInterval(Interval(-10.0, Inf), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test (DecoratedInterval(Interval(-10.0, Inf), dac))^(-1) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration((DecoratedInterval(Interval(-10.0, Inf), dac))^(-1)) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test (DecoratedInterval(Interval(-10.0, Inf), dac))^(-1//1) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration((DecoratedInterval(Interval(-10.0, Inf), dac))^(-1//1)) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test (DecoratedInterval(Interval(-10.0, Inf), dac))^(-1.0) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration((DecoratedInterval(Interval(-10.0, Inf), dac))^(-1.0)) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test 1 /(DecoratedInterval(Interval(-10.0, Inf), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(1 /(DecoratedInterval(Interval(-10.0, Inf), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test inv(DecoratedInterval(Interval(-0.0, Inf), dac)) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(inv(DecoratedInterval(Interval(-0.0, Inf), dac))) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test (DecoratedInterval(Interval(-0.0, Inf), dac))^(-1) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration((DecoratedInterval(Interval(-0.0, Inf), dac))^(-1)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test (DecoratedInterval(Interval(-0.0, Inf), dac))^(-1//1) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration((DecoratedInterval(Interval(-0.0, Inf), dac))^(-1//1)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test (DecoratedInterval(Interval(-0.0, Inf), dac))^(-1.0) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration((DecoratedInterval(Interval(-0.0, Inf), dac))^(-1.0)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test 1 /(DecoratedInterval(Interval(-0.0, Inf), dac)) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(1 /(DecoratedInterval(Interval(-0.0, Inf), dac))) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test inv(DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(inv(DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test (DecoratedInterval(entireinterval(Float64), def))^(-1) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration((DecoratedInterval(entireinterval(Float64), def))^(-1)) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test (DecoratedInterval(entireinterval(Float64), def))^(-1//1) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration((DecoratedInterval(entireinterval(Float64), def))^(-1//1)) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test (DecoratedInterval(entireinterval(Float64), def))^(-1.0) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration((DecoratedInterval(entireinterval(Float64), def))^(-1.0)) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test 1 /(DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(1 /(DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) end -facts("minimal_sqr_test") do - @fact ∅ ^2 --> ∅ - @fact ∅ ^(2//1) --> ∅ - @fact ∅ ^(2.0) --> ∅ - @fact entireinterval(Float64) ^2 --> Interval(0.0, Inf) - @fact entireinterval(Float64) ^(2//1) --> Interval(0.0, Inf) - @fact entireinterval(Float64) ^(2.0) --> Interval(0.0, Inf) - @fact Interval(-Inf, -0x0.0000000000001p-1022) ^2 --> Interval(0.0, Inf) - @fact Interval(-Inf, -0x0.0000000000001p-1022) ^(2//1) --> Interval(0.0, Inf) - @fact Interval(-Inf, -0x0.0000000000001p-1022) ^(2.0) --> Interval(0.0, Inf) - @fact Interval(-1.0, 1.0) ^2 --> Interval(0.0, 1.0) - @fact Interval(-1.0, 1.0) ^(2//1) --> Interval(0.0, 1.0) - @fact Interval(-1.0, 1.0) ^(2.0) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^2 --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^(2//1) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^(2.0) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^2 --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^(2//1) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^(2.0) --> Interval(0.0, 1.0) - @fact Interval(-5.0, 3.0) ^2 --> Interval(0.0, 25.0) - @fact Interval(-5.0, 3.0) ^(2//1) --> Interval(0.0, 25.0) - @fact Interval(-5.0, 3.0) ^(2.0) --> Interval(0.0, 25.0) - @fact Interval(-5.0, 0.0) ^2 --> Interval(0.0, 25.0) - @fact Interval(-5.0, 0.0) ^(2//1) --> Interval(0.0, 25.0) - @fact Interval(-5.0, 0.0) ^(2.0) --> Interval(0.0, 25.0) - @fact Interval(-5.0, -0.0) ^2 --> Interval(0.0, 25.0) - @fact Interval(-5.0, -0.0) ^(2//1) --> Interval(0.0, 25.0) - @fact Interval(-5.0, -0.0) ^(2.0) --> Interval(0.0, 25.0) - @fact Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4) ^2 --> Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7) - @fact Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4) ^(2//1) --> Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7) - @fact Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4) ^(2.0) --> Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7) - @fact Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4) ^2 --> Interval(0.0, 0x1.fffffffffffe1p+1) - @fact Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4) ^(2//1) --> Interval(0.0, 0x1.fffffffffffe1p+1) - @fact Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4) ^(2.0) --> Interval(0.0, 0x1.fffffffffffe1p+1) - @fact Interval(-0x1.ffffffffffffp+0, -0x1.ffffffffffffp+0) ^2 --> Interval(0x1.fffffffffffep+1, 0x1.fffffffffffe1p+1) - @fact Interval(-0x1.ffffffffffffp+0, -0x1.ffffffffffffp+0) ^(2//1) --> Interval(0x1.fffffffffffep+1, 0x1.fffffffffffe1p+1) - @fact Interval(-0x1.ffffffffffffp+0, -0x1.ffffffffffffp+0) ^(2.0) --> Interval(0x1.fffffffffffep+1, 0x1.fffffffffffe1p+1) +@testset "minimal_sqr_test" begin + @test ∅ ^2 == ∅ + @test ∅ ^(2//1) == ∅ + @test ∅ ^(2.0) == ∅ + @test entireinterval(Float64) ^2 == Interval(0.0, Inf) + @test entireinterval(Float64) ^(2//1) == Interval(0.0, Inf) + @test entireinterval(Float64) ^(2.0) == Interval(0.0, Inf) + @test Interval(-Inf, -0x0.0000000000001p-1022) ^2 == Interval(0.0, Inf) + @test Interval(-Inf, -0x0.0000000000001p-1022) ^(2//1) == Interval(0.0, Inf) + @test Interval(-Inf, -0x0.0000000000001p-1022) ^(2.0) == Interval(0.0, Inf) + @test Interval(-1.0, 1.0) ^2 == Interval(0.0, 1.0) + @test Interval(-1.0, 1.0) ^(2//1) == Interval(0.0, 1.0) + @test Interval(-1.0, 1.0) ^(2.0) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^2 == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^(2//1) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^(2.0) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^2 == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^(2//1) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^(2.0) == Interval(0.0, 1.0) + @test Interval(-5.0, 3.0) ^2 == Interval(0.0, 25.0) + @test Interval(-5.0, 3.0) ^(2//1) == Interval(0.0, 25.0) + @test Interval(-5.0, 3.0) ^(2.0) == Interval(0.0, 25.0) + @test Interval(-5.0, 0.0) ^2 == Interval(0.0, 25.0) + @test Interval(-5.0, 0.0) ^(2//1) == Interval(0.0, 25.0) + @test Interval(-5.0, 0.0) ^(2.0) == Interval(0.0, 25.0) + @test Interval(-5.0, -0.0) ^2 == Interval(0.0, 25.0) + @test Interval(-5.0, -0.0) ^(2//1) == Interval(0.0, 25.0) + @test Interval(-5.0, -0.0) ^(2.0) == Interval(0.0, 25.0) + @test Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4) ^2 == Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7) + @test Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4) ^(2//1) == Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7) + @test Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4) ^(2.0) == Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7) + @test Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4) ^2 == Interval(0.0, 0x1.fffffffffffe1p+1) + @test Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4) ^(2//1) == Interval(0.0, 0x1.fffffffffffe1p+1) + @test Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4) ^(2.0) == Interval(0.0, 0x1.fffffffffffe1p+1) + @test Interval(-0x1.ffffffffffffp+0, -0x1.ffffffffffffp+0) ^2 == Interval(0x1.fffffffffffep+1, 0x1.fffffffffffe1p+1) + @test Interval(-0x1.ffffffffffffp+0, -0x1.ffffffffffffp+0) ^(2//1) == Interval(0x1.fffffffffffep+1, 0x1.fffffffffffe1p+1) + @test Interval(-0x1.ffffffffffffp+0, -0x1.ffffffffffffp+0) ^(2.0) == Interval(0x1.fffffffffffep+1, 0x1.fffffffffffe1p+1) end -facts("minimal_sqr_dec_test") do - @fact DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), com) ^2 --> DecoratedInterval(Interval(0.0, Inf), dac) - @fact decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), com) ^2) --> decoration(DecoratedInterval(Interval(0.0, Inf), dac)) - @fact DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), com) ^(2//1) --> DecoratedInterval(Interval(0.0, Inf), dac) - @fact decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), com) ^(2//1)) --> decoration(DecoratedInterval(Interval(0.0, Inf), dac)) - @fact DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), com) ^(2.0) --> DecoratedInterval(Interval(0.0, Inf), dac) - @fact decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), com) ^(2.0)) --> decoration(DecoratedInterval(Interval(0.0, Inf), dac)) - @fact DecoratedInterval(Interval(-1.0, 1.0), def) ^2 --> DecoratedInterval(Interval(0.0, 1.0), def) - @fact decoration(DecoratedInterval(Interval(-1.0, 1.0), def) ^2) --> decoration(DecoratedInterval(Interval(0.0, 1.0), def)) - @fact DecoratedInterval(Interval(-1.0, 1.0), def) ^(2//1) --> DecoratedInterval(Interval(0.0, 1.0), def) - @fact decoration(DecoratedInterval(Interval(-1.0, 1.0), def) ^(2//1)) --> decoration(DecoratedInterval(Interval(0.0, 1.0), def)) - @fact DecoratedInterval(Interval(-1.0, 1.0), def) ^(2.0) --> DecoratedInterval(Interval(0.0, 1.0), def) - @fact decoration(DecoratedInterval(Interval(-1.0, 1.0), def) ^(2.0)) --> decoration(DecoratedInterval(Interval(0.0, 1.0), def)) - @fact DecoratedInterval(Interval(-5.0, 3.0), com) ^2 --> DecoratedInterval(Interval(0.0, 25.0), com) - @fact decoration(DecoratedInterval(Interval(-5.0, 3.0), com) ^2) --> decoration(DecoratedInterval(Interval(0.0, 25.0), com)) - @fact DecoratedInterval(Interval(-5.0, 3.0), com) ^(2//1) --> DecoratedInterval(Interval(0.0, 25.0), com) - @fact decoration(DecoratedInterval(Interval(-5.0, 3.0), com) ^(2//1)) --> decoration(DecoratedInterval(Interval(0.0, 25.0), com)) - @fact DecoratedInterval(Interval(-5.0, 3.0), com) ^(2.0) --> DecoratedInterval(Interval(0.0, 25.0), com) - @fact decoration(DecoratedInterval(Interval(-5.0, 3.0), com) ^(2.0)) --> decoration(DecoratedInterval(Interval(0.0, 25.0), com)) - @fact DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com) ^2 --> DecoratedInterval(Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7), com) - @fact decoration(DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com) ^2) --> decoration(DecoratedInterval(Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7), com)) - @fact DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com) ^(2//1) --> DecoratedInterval(Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7), com) - @fact decoration(DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com) ^(2//1)) --> decoration(DecoratedInterval(Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7), com)) - @fact DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com) ^(2.0) --> DecoratedInterval(Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7), com) - @fact decoration(DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com) ^(2.0)) --> decoration(DecoratedInterval(Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7), com)) +@testset "minimal_sqr_dec_test" begin + @test DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), com) ^2 == DecoratedInterval(Interval(0.0, Inf), dac) + @test decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), com) ^2) == decoration(DecoratedInterval(Interval(0.0, Inf), dac)) + @test DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), com) ^(2//1) == DecoratedInterval(Interval(0.0, Inf), dac) + @test decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), com) ^(2//1)) == decoration(DecoratedInterval(Interval(0.0, Inf), dac)) + @test DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), com) ^(2.0) == DecoratedInterval(Interval(0.0, Inf), dac) + @test decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, -0x0.0000000000001p-1022), com) ^(2.0)) == decoration(DecoratedInterval(Interval(0.0, Inf), dac)) + @test DecoratedInterval(Interval(-1.0, 1.0), def) ^2 == DecoratedInterval(Interval(0.0, 1.0), def) + @test decoration(DecoratedInterval(Interval(-1.0, 1.0), def) ^2) == decoration(DecoratedInterval(Interval(0.0, 1.0), def)) + @test DecoratedInterval(Interval(-1.0, 1.0), def) ^(2//1) == DecoratedInterval(Interval(0.0, 1.0), def) + @test decoration(DecoratedInterval(Interval(-1.0, 1.0), def) ^(2//1)) == decoration(DecoratedInterval(Interval(0.0, 1.0), def)) + @test DecoratedInterval(Interval(-1.0, 1.0), def) ^(2.0) == DecoratedInterval(Interval(0.0, 1.0), def) + @test decoration(DecoratedInterval(Interval(-1.0, 1.0), def) ^(2.0)) == decoration(DecoratedInterval(Interval(0.0, 1.0), def)) + @test DecoratedInterval(Interval(-5.0, 3.0), com) ^2 == DecoratedInterval(Interval(0.0, 25.0), com) + @test decoration(DecoratedInterval(Interval(-5.0, 3.0), com) ^2) == decoration(DecoratedInterval(Interval(0.0, 25.0), com)) + @test DecoratedInterval(Interval(-5.0, 3.0), com) ^(2//1) == DecoratedInterval(Interval(0.0, 25.0), com) + @test decoration(DecoratedInterval(Interval(-5.0, 3.0), com) ^(2//1)) == decoration(DecoratedInterval(Interval(0.0, 25.0), com)) + @test DecoratedInterval(Interval(-5.0, 3.0), com) ^(2.0) == DecoratedInterval(Interval(0.0, 25.0), com) + @test decoration(DecoratedInterval(Interval(-5.0, 3.0), com) ^(2.0)) == decoration(DecoratedInterval(Interval(0.0, 25.0), com)) + @test DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com) ^2 == DecoratedInterval(Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7), com) + @test decoration(DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com) ^2) == decoration(DecoratedInterval(Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7), com)) + @test DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com) ^(2//1) == DecoratedInterval(Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7), com) + @test decoration(DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com) ^(2//1)) == decoration(DecoratedInterval(Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7), com)) + @test DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com) ^(2.0) == DecoratedInterval(Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7), com) + @test decoration(DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4), com) ^(2.0)) == decoration(DecoratedInterval(Interval(0x1.47ae147ae147bp-7, 0x1.47ae147ae147cp-7), com)) end -facts("minimal_sqrt_test") do - @fact sqrt(∅) --> ∅ - @fact (∅)^(1/2) --> ∅ - @fact (∅)^(0.5) --> ∅ - @fact (∅)^(1//2) --> ∅ - @fact sqrt(entireinterval(Float64)) --> Interval(0.0, Inf) - @fact (entireinterval(Float64))^(1/2) --> Interval(0.0, Inf) - @fact (entireinterval(Float64))^(0.5) --> Interval(0.0, Inf) - @fact (entireinterval(Float64))^(1//2) --> Interval(0.0, Inf) - @fact sqrt(Interval(-Inf, -0x0.0000000000001p-1022)) --> ∅ - @fact (Interval(-Inf, -0x0.0000000000001p-1022))^(1/2) --> ∅ - @fact (Interval(-Inf, -0x0.0000000000001p-1022))^(0.5) --> ∅ - @fact (Interval(-Inf, -0x0.0000000000001p-1022))^(1//2) --> ∅ - @fact sqrt(Interval(-1.0, 1.0)) --> Interval(0.0, 1.0) - @fact (Interval(-1.0, 1.0))^(1/2) --> Interval(0.0, 1.0) - @fact (Interval(-1.0, 1.0))^(0.5) --> Interval(0.0, 1.0) - @fact (Interval(-1.0, 1.0))^(1//2) --> Interval(0.0, 1.0) - @fact sqrt(Interval(0.0, 1.0)) --> Interval(0.0, 1.0) - @fact (Interval(0.0, 1.0))^(1/2) --> Interval(0.0, 1.0) - @fact (Interval(0.0, 1.0))^(0.5) --> Interval(0.0, 1.0) - @fact (Interval(0.0, 1.0))^(1//2) --> Interval(0.0, 1.0) - @fact sqrt(Interval(-0.0, 1.0)) --> Interval(0.0, 1.0) - @fact (Interval(-0.0, 1.0))^(1/2) --> Interval(0.0, 1.0) - @fact (Interval(-0.0, 1.0))^(0.5) --> Interval(0.0, 1.0) - @fact (Interval(-0.0, 1.0))^(1//2) --> Interval(0.0, 1.0) - @fact sqrt(Interval(-5.0, 25.0)) --> Interval(0.0, 5.0) - @fact (Interval(-5.0, 25.0))^(1/2) --> Interval(0.0, 5.0) - @fact (Interval(-5.0, 25.0))^(0.5) --> Interval(0.0, 5.0) - @fact (Interval(-5.0, 25.0))^(1//2) --> Interval(0.0, 5.0) - @fact sqrt(Interval(0.0, 25.0)) --> Interval(0.0, 5.0) - @fact (Interval(0.0, 25.0))^(1/2) --> Interval(0.0, 5.0) - @fact (Interval(0.0, 25.0))^(0.5) --> Interval(0.0, 5.0) - @fact (Interval(0.0, 25.0))^(1//2) --> Interval(0.0, 5.0) - @fact sqrt(Interval(-0.0, 25.0)) --> Interval(0.0, 5.0) - @fact (Interval(-0.0, 25.0))^(1/2) --> Interval(0.0, 5.0) - @fact (Interval(-0.0, 25.0))^(0.5) --> Interval(0.0, 5.0) - @fact (Interval(-0.0, 25.0))^(1//2) --> Interval(0.0, 5.0) - @fact sqrt(Interval(-5.0, Inf)) --> Interval(0.0, Inf) - @fact (Interval(-5.0, Inf))^(1/2) --> Interval(0.0, Inf) - @fact (Interval(-5.0, Inf))^(0.5) --> Interval(0.0, Inf) - @fact (Interval(-5.0, Inf))^(1//2) --> Interval(0.0, Inf) - @fact sqrt(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4)) --> Interval(0x1.43d136248490fp-2, 0x1.43d136248491p-2) - @fact (Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4))^(1/2) --> Interval(0x1.43d136248490fp-2, 0x1.43d136248491p-2) - @fact (Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4))^(0.5) --> Interval(0x1.43d136248490fp-2, 0x1.43d136248491p-2) - @fact (Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4))^(1//2) --> Interval(0x1.43d136248490fp-2, 0x1.43d136248491p-2) - @fact sqrt(Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4)) --> Interval(0.0, 0x1.43d136248491p-2) - @fact (Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4))^(1/2) --> Interval(0.0, 0x1.43d136248491p-2) - @fact (Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4))^(0.5) --> Interval(0.0, 0x1.43d136248491p-2) - @fact (Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4))^(1//2) --> Interval(0.0, 0x1.43d136248491p-2) - @fact sqrt(Interval(0x1.999999999999ap-4, 0x1.ffffffffffffp+0)) --> Interval(0x1.43d136248490fp-2, 0x1.6a09e667f3bc7p+0) - @fact (Interval(0x1.999999999999ap-4, 0x1.ffffffffffffp+0))^(1/2) --> Interval(0x1.43d136248490fp-2, 0x1.6a09e667f3bc7p+0) - @fact (Interval(0x1.999999999999ap-4, 0x1.ffffffffffffp+0))^(0.5) --> Interval(0x1.43d136248490fp-2, 0x1.6a09e667f3bc7p+0) - @fact (Interval(0x1.999999999999ap-4, 0x1.ffffffffffffp+0))^(1//2) --> Interval(0x1.43d136248490fp-2, 0x1.6a09e667f3bc7p+0) +@testset "minimal_sqrt_test" begin + @test sqrt(∅) == ∅ + @test (∅)^(1/2) == ∅ + @test (∅)^(0.5) == ∅ + @test (∅)^(1//2) == ∅ + @test sqrt(entireinterval(Float64)) == Interval(0.0, Inf) + @test (entireinterval(Float64))^(1/2) == Interval(0.0, Inf) + @test (entireinterval(Float64))^(0.5) == Interval(0.0, Inf) + @test (entireinterval(Float64))^(1//2) == Interval(0.0, Inf) + @test sqrt(Interval(-Inf, -0x0.0000000000001p-1022)) == ∅ + @test (Interval(-Inf, -0x0.0000000000001p-1022))^(1/2) == ∅ + @test (Interval(-Inf, -0x0.0000000000001p-1022))^(0.5) == ∅ + @test (Interval(-Inf, -0x0.0000000000001p-1022))^(1//2) == ∅ + @test sqrt(Interval(-1.0, 1.0)) == Interval(0.0, 1.0) + @test (Interval(-1.0, 1.0))^(1/2) == Interval(0.0, 1.0) + @test (Interval(-1.0, 1.0))^(0.5) == Interval(0.0, 1.0) + @test (Interval(-1.0, 1.0))^(1//2) == Interval(0.0, 1.0) + @test sqrt(Interval(0.0, 1.0)) == Interval(0.0, 1.0) + @test (Interval(0.0, 1.0))^(1/2) == Interval(0.0, 1.0) + @test (Interval(0.0, 1.0))^(0.5) == Interval(0.0, 1.0) + @test (Interval(0.0, 1.0))^(1//2) == Interval(0.0, 1.0) + @test sqrt(Interval(-0.0, 1.0)) == Interval(0.0, 1.0) + @test (Interval(-0.0, 1.0))^(1/2) == Interval(0.0, 1.0) + @test (Interval(-0.0, 1.0))^(0.5) == Interval(0.0, 1.0) + @test (Interval(-0.0, 1.0))^(1//2) == Interval(0.0, 1.0) + @test sqrt(Interval(-5.0, 25.0)) == Interval(0.0, 5.0) + @test (Interval(-5.0, 25.0))^(1/2) == Interval(0.0, 5.0) + @test (Interval(-5.0, 25.0))^(0.5) == Interval(0.0, 5.0) + @test (Interval(-5.0, 25.0))^(1//2) == Interval(0.0, 5.0) + @test sqrt(Interval(0.0, 25.0)) == Interval(0.0, 5.0) + @test (Interval(0.0, 25.0))^(1/2) == Interval(0.0, 5.0) + @test (Interval(0.0, 25.0))^(0.5) == Interval(0.0, 5.0) + @test (Interval(0.0, 25.0))^(1//2) == Interval(0.0, 5.0) + @test sqrt(Interval(-0.0, 25.0)) == Interval(0.0, 5.0) + @test (Interval(-0.0, 25.0))^(1/2) == Interval(0.0, 5.0) + @test (Interval(-0.0, 25.0))^(0.5) == Interval(0.0, 5.0) + @test (Interval(-0.0, 25.0))^(1//2) == Interval(0.0, 5.0) + @test sqrt(Interval(-5.0, Inf)) == Interval(0.0, Inf) + @test (Interval(-5.0, Inf))^(1/2) == Interval(0.0, Inf) + @test (Interval(-5.0, Inf))^(0.5) == Interval(0.0, Inf) + @test (Interval(-5.0, Inf))^(1//2) == Interval(0.0, Inf) + @test sqrt(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4)) == Interval(0x1.43d136248490fp-2, 0x1.43d136248491p-2) + @test (Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4))^(1/2) == Interval(0x1.43d136248490fp-2, 0x1.43d136248491p-2) + @test (Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4))^(0.5) == Interval(0x1.43d136248490fp-2, 0x1.43d136248491p-2) + @test (Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4))^(1//2) == Interval(0x1.43d136248490fp-2, 0x1.43d136248491p-2) + @test sqrt(Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4)) == Interval(0.0, 0x1.43d136248491p-2) + @test (Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4))^(1/2) == Interval(0.0, 0x1.43d136248491p-2) + @test (Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4))^(0.5) == Interval(0.0, 0x1.43d136248491p-2) + @test (Interval(-0x1.ffffffffffffp+0, 0x1.999999999999ap-4))^(1//2) == Interval(0.0, 0x1.43d136248491p-2) + @test sqrt(Interval(0x1.999999999999ap-4, 0x1.ffffffffffffp+0)) == Interval(0x1.43d136248490fp-2, 0x1.6a09e667f3bc7p+0) + @test (Interval(0x1.999999999999ap-4, 0x1.ffffffffffffp+0))^(1/2) == Interval(0x1.43d136248490fp-2, 0x1.6a09e667f3bc7p+0) + @test (Interval(0x1.999999999999ap-4, 0x1.ffffffffffffp+0))^(0.5) == Interval(0x1.43d136248490fp-2, 0x1.6a09e667f3bc7p+0) + @test (Interval(0x1.999999999999ap-4, 0x1.ffffffffffffp+0))^(1//2) == Interval(0x1.43d136248490fp-2, 0x1.6a09e667f3bc7p+0) end -facts("minimal_sqrt_dec_test") do - @fact sqrt(DecoratedInterval(Interval(1.0, 4.0), com)) --> DecoratedInterval(Interval(1.0, 2.0), com) - @fact decoration(sqrt(DecoratedInterval(Interval(1.0, 4.0), com))) --> decoration(DecoratedInterval(Interval(1.0, 2.0), com)) - @fact (DecoratedInterval(Interval(1.0, 4.0), com))^(1/2) --> DecoratedInterval(Interval(1.0, 2.0), com) - @fact decoration((DecoratedInterval(Interval(1.0, 4.0), com))^(1/2)) --> decoration(DecoratedInterval(Interval(1.0, 2.0), com)) - @fact (DecoratedInterval(Interval(1.0, 4.0), com))^(0.5) --> DecoratedInterval(Interval(1.0, 2.0), com) - @fact decoration((DecoratedInterval(Interval(1.0, 4.0), com))^(0.5)) --> decoration(DecoratedInterval(Interval(1.0, 2.0), com)) - @fact (DecoratedInterval(Interval(1.0, 4.0), com))^(1//2) --> DecoratedInterval(Interval(1.0, 2.0), com) - @fact decoration((DecoratedInterval(Interval(1.0, 4.0), com))^(1//2)) --> decoration(DecoratedInterval(Interval(1.0, 2.0), com)) - @fact sqrt(DecoratedInterval(Interval(-5.0, 25.0), com)) --> DecoratedInterval(Interval(0.0, 5.0), trv) - @fact decoration(sqrt(DecoratedInterval(Interval(-5.0, 25.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 5.0), trv)) - @fact (DecoratedInterval(Interval(-5.0, 25.0), com))^(1/2) --> DecoratedInterval(Interval(0.0, 5.0), trv) - @fact decoration((DecoratedInterval(Interval(-5.0, 25.0), com))^(1/2)) --> decoration(DecoratedInterval(Interval(0.0, 5.0), trv)) - @fact (DecoratedInterval(Interval(-5.0, 25.0), com))^(0.5) --> DecoratedInterval(Interval(0.0, 5.0), trv) - @fact decoration((DecoratedInterval(Interval(-5.0, 25.0), com))^(0.5)) --> decoration(DecoratedInterval(Interval(0.0, 5.0), trv)) - @fact (DecoratedInterval(Interval(-5.0, 25.0), com))^(1//2) --> DecoratedInterval(Interval(0.0, 5.0), trv) - @fact decoration((DecoratedInterval(Interval(-5.0, 25.0), com))^(1//2)) --> decoration(DecoratedInterval(Interval(0.0, 5.0), trv)) - @fact sqrt(DecoratedInterval(Interval(0.0, 25.0), def)) --> DecoratedInterval(Interval(0.0, 5.0), def) - @fact decoration(sqrt(DecoratedInterval(Interval(0.0, 25.0), def))) --> decoration(DecoratedInterval(Interval(0.0, 5.0), def)) - @fact (DecoratedInterval(Interval(0.0, 25.0), def))^(1/2) --> DecoratedInterval(Interval(0.0, 5.0), def) - @fact decoration((DecoratedInterval(Interval(0.0, 25.0), def))^(1/2)) --> decoration(DecoratedInterval(Interval(0.0, 5.0), def)) - @fact (DecoratedInterval(Interval(0.0, 25.0), def))^(0.5) --> DecoratedInterval(Interval(0.0, 5.0), def) - @fact decoration((DecoratedInterval(Interval(0.0, 25.0), def))^(0.5)) --> decoration(DecoratedInterval(Interval(0.0, 5.0), def)) - @fact (DecoratedInterval(Interval(0.0, 25.0), def))^(1//2) --> DecoratedInterval(Interval(0.0, 5.0), def) - @fact decoration((DecoratedInterval(Interval(0.0, 25.0), def))^(1//2)) --> decoration(DecoratedInterval(Interval(0.0, 5.0), def)) - @fact sqrt(DecoratedInterval(Interval(-5.0, Inf), dac)) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(sqrt(DecoratedInterval(Interval(-5.0, Inf), dac))) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact (DecoratedInterval(Interval(-5.0, Inf), dac))^(1/2) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration((DecoratedInterval(Interval(-5.0, Inf), dac))^(1/2)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact (DecoratedInterval(Interval(-5.0, Inf), dac))^(0.5) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration((DecoratedInterval(Interval(-5.0, Inf), dac))^(0.5)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact (DecoratedInterval(Interval(-5.0, Inf), dac))^(1//2) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration((DecoratedInterval(Interval(-5.0, Inf), dac))^(1//2)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) +@testset "minimal_sqrt_dec_test" begin + @test sqrt(DecoratedInterval(Interval(1.0, 4.0), com)) == DecoratedInterval(Interval(1.0, 2.0), com) + @test decoration(sqrt(DecoratedInterval(Interval(1.0, 4.0), com))) == decoration(DecoratedInterval(Interval(1.0, 2.0), com)) + @test (DecoratedInterval(Interval(1.0, 4.0), com))^(1/2) == DecoratedInterval(Interval(1.0, 2.0), com) + @test decoration((DecoratedInterval(Interval(1.0, 4.0), com))^(1/2)) == decoration(DecoratedInterval(Interval(1.0, 2.0), com)) + @test (DecoratedInterval(Interval(1.0, 4.0), com))^(0.5) == DecoratedInterval(Interval(1.0, 2.0), com) + @test decoration((DecoratedInterval(Interval(1.0, 4.0), com))^(0.5)) == decoration(DecoratedInterval(Interval(1.0, 2.0), com)) + @test (DecoratedInterval(Interval(1.0, 4.0), com))^(1//2) == DecoratedInterval(Interval(1.0, 2.0), com) + @test decoration((DecoratedInterval(Interval(1.0, 4.0), com))^(1//2)) == decoration(DecoratedInterval(Interval(1.0, 2.0), com)) + @test sqrt(DecoratedInterval(Interval(-5.0, 25.0), com)) == DecoratedInterval(Interval(0.0, 5.0), trv) + @test decoration(sqrt(DecoratedInterval(Interval(-5.0, 25.0), com))) == decoration(DecoratedInterval(Interval(0.0, 5.0), trv)) + @test (DecoratedInterval(Interval(-5.0, 25.0), com))^(1/2) == DecoratedInterval(Interval(0.0, 5.0), trv) + @test decoration((DecoratedInterval(Interval(-5.0, 25.0), com))^(1/2)) == decoration(DecoratedInterval(Interval(0.0, 5.0), trv)) + @test (DecoratedInterval(Interval(-5.0, 25.0), com))^(0.5) == DecoratedInterval(Interval(0.0, 5.0), trv) + @test decoration((DecoratedInterval(Interval(-5.0, 25.0), com))^(0.5)) == decoration(DecoratedInterval(Interval(0.0, 5.0), trv)) + @test (DecoratedInterval(Interval(-5.0, 25.0), com))^(1//2) == DecoratedInterval(Interval(0.0, 5.0), trv) + @test decoration((DecoratedInterval(Interval(-5.0, 25.0), com))^(1//2)) == decoration(DecoratedInterval(Interval(0.0, 5.0), trv)) + @test sqrt(DecoratedInterval(Interval(0.0, 25.0), def)) == DecoratedInterval(Interval(0.0, 5.0), def) + @test decoration(sqrt(DecoratedInterval(Interval(0.0, 25.0), def))) == decoration(DecoratedInterval(Interval(0.0, 5.0), def)) + @test (DecoratedInterval(Interval(0.0, 25.0), def))^(1/2) == DecoratedInterval(Interval(0.0, 5.0), def) + @test decoration((DecoratedInterval(Interval(0.0, 25.0), def))^(1/2)) == decoration(DecoratedInterval(Interval(0.0, 5.0), def)) + @test (DecoratedInterval(Interval(0.0, 25.0), def))^(0.5) == DecoratedInterval(Interval(0.0, 5.0), def) + @test decoration((DecoratedInterval(Interval(0.0, 25.0), def))^(0.5)) == decoration(DecoratedInterval(Interval(0.0, 5.0), def)) + @test (DecoratedInterval(Interval(0.0, 25.0), def))^(1//2) == DecoratedInterval(Interval(0.0, 5.0), def) + @test decoration((DecoratedInterval(Interval(0.0, 25.0), def))^(1//2)) == decoration(DecoratedInterval(Interval(0.0, 5.0), def)) + @test sqrt(DecoratedInterval(Interval(-5.0, Inf), dac)) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(sqrt(DecoratedInterval(Interval(-5.0, Inf), dac))) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test (DecoratedInterval(Interval(-5.0, Inf), dac))^(1/2) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration((DecoratedInterval(Interval(-5.0, Inf), dac))^(1/2)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test (DecoratedInterval(Interval(-5.0, Inf), dac))^(0.5) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration((DecoratedInterval(Interval(-5.0, Inf), dac))^(0.5)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test (DecoratedInterval(Interval(-5.0, Inf), dac))^(1//2) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration((DecoratedInterval(Interval(-5.0, Inf), dac))^(1//2)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) end -facts("minimal_fma_test") do - @fact fma(∅, ∅, ∅) --> ∅ - @fact fma(Interval(-1.0, 1.0), ∅, ∅) --> ∅ - @fact fma(∅, Interval(-1.0, 1.0), ∅) --> ∅ - @fact fma(∅, entireinterval(Float64), ∅) --> ∅ - @fact fma(entireinterval(Float64), ∅, ∅) --> ∅ - @fact fma(Interval(0.0, 0.0), ∅, ∅) --> ∅ - @fact fma(Interval(-0.0, -0.0), ∅, ∅) --> ∅ - @fact fma(∅, Interval(0.0, 0.0), ∅) --> ∅ - @fact fma(∅, Interval(-0.0, -0.0), ∅) --> ∅ - @fact fma(entireinterval(Float64), Interval(0.0, 0.0), ∅) --> ∅ - @fact fma(entireinterval(Float64), Interval(-0.0, -0.0), ∅) --> ∅ - @fact fma(entireinterval(Float64), Interval(-5.0, -1.0), ∅) --> ∅ - @fact fma(entireinterval(Float64), Interval(-5.0, 3.0), ∅) --> ∅ - @fact fma(entireinterval(Float64), Interval(1.0, 3.0), ∅) --> ∅ - @fact fma(entireinterval(Float64), Interval(-Inf, -1.0), ∅) --> ∅ - @fact fma(entireinterval(Float64), Interval(-Inf, 3.0), ∅) --> ∅ - @fact fma(entireinterval(Float64), Interval(-5.0, Inf), ∅) --> ∅ - @fact fma(entireinterval(Float64), Interval(1.0, Inf), ∅) --> ∅ - @fact fma(entireinterval(Float64), entireinterval(Float64), ∅) --> ∅ - @fact fma(Interval(1.0, Inf), Interval(0.0, 0.0), ∅) --> ∅ - @fact fma(Interval(1.0, Inf), Interval(-0.0, -0.0), ∅) --> ∅ - @fact fma(Interval(1.0, Inf), Interval(-5.0, -1.0), ∅) --> ∅ - @fact fma(Interval(1.0, Inf), Interval(-5.0, 3.0), ∅) --> ∅ - @fact fma(Interval(1.0, Inf), Interval(1.0, 3.0), ∅) --> ∅ - @fact fma(Interval(1.0, Inf), Interval(-Inf, -1.0), ∅) --> ∅ - @fact fma(Interval(1.0, Inf), Interval(-Inf, 3.0), ∅) --> ∅ - @fact fma(Interval(1.0, Inf), Interval(-5.0, Inf), ∅) --> ∅ - @fact fma(Interval(1.0, Inf), Interval(1.0, Inf), ∅) --> ∅ - @fact fma(Interval(1.0, Inf), entireinterval(Float64), ∅) --> ∅ - @fact fma(Interval(-1.0, Inf), Interval(0.0, 0.0), ∅) --> ∅ - @fact fma(Interval(-1.0, Inf), Interval(-0.0, -0.0), ∅) --> ∅ - @fact fma(Interval(-1.0, Inf), Interval(-5.0, -1.0), ∅) --> ∅ - @fact fma(Interval(-1.0, Inf), Interval(-5.0, 3.0), ∅) --> ∅ - @fact fma(Interval(-1.0, Inf), Interval(1.0, 3.0), ∅) --> ∅ - @fact fma(Interval(-1.0, Inf), Interval(-Inf, -1.0), ∅) --> ∅ - @fact fma(Interval(-1.0, Inf), Interval(-Inf, 3.0), ∅) --> ∅ - @fact fma(Interval(-1.0, Inf), Interval(-5.0, Inf), ∅) --> ∅ - @fact fma(Interval(-1.0, Inf), Interval(1.0, Inf), ∅) --> ∅ - @fact fma(Interval(-1.0, Inf), entireinterval(Float64), ∅) --> ∅ - @fact fma(Interval(-Inf, 3.0), Interval(0.0, 0.0), ∅) --> ∅ - @fact fma(Interval(-Inf, 3.0), Interval(-0.0, -0.0), ∅) --> ∅ - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, -1.0), ∅) --> ∅ - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, 3.0), ∅) --> ∅ - @fact fma(Interval(-Inf, 3.0), Interval(1.0, 3.0), ∅) --> ∅ - @fact fma(Interval(-Inf, 3.0), Interval(-Inf, -1.0), ∅) --> ∅ - @fact fma(Interval(-Inf, 3.0), Interval(-Inf, 3.0), ∅) --> ∅ - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, Inf), ∅) --> ∅ - @fact fma(Interval(-Inf, 3.0), Interval(1.0, Inf), ∅) --> ∅ - @fact fma(Interval(-Inf, 3.0), entireinterval(Float64), ∅) --> ∅ - @fact fma(Interval(-Inf, -3.0), Interval(0.0, 0.0), ∅) --> ∅ - @fact fma(Interval(-Inf, -3.0), Interval(-0.0, -0.0), ∅) --> ∅ - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, -1.0), ∅) --> ∅ - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, 3.0), ∅) --> ∅ - @fact fma(Interval(-Inf, -3.0), Interval(1.0, 3.0), ∅) --> ∅ - @fact fma(Interval(-Inf, -3.0), Interval(-Inf, -1.0), ∅) --> ∅ - @fact fma(Interval(-Inf, -3.0), Interval(-Inf, 3.0), ∅) --> ∅ - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, Inf), ∅) --> ∅ - @fact fma(Interval(-Inf, -3.0), Interval(1.0, Inf), ∅) --> ∅ - @fact fma(Interval(-Inf, -3.0), entireinterval(Float64), ∅) --> ∅ - @fact fma(Interval(0.0, 0.0), Interval(0.0, 0.0), ∅) --> ∅ - @fact fma(Interval(0.0, 0.0), Interval(-0.0, -0.0), ∅) --> ∅ - @fact fma(Interval(0.0, 0.0), Interval(-5.0, -1.0), ∅) --> ∅ - @fact fma(Interval(0.0, 0.0), Interval(-5.0, 3.0), ∅) --> ∅ - @fact fma(Interval(0.0, 0.0), Interval(1.0, 3.0), ∅) --> ∅ - @fact fma(Interval(0.0, 0.0), Interval(-Inf, -1.0), ∅) --> ∅ - @fact fma(Interval(0.0, 0.0), Interval(-Inf, 3.0), ∅) --> ∅ - @fact fma(Interval(0.0, 0.0), Interval(-5.0, Inf), ∅) --> ∅ - @fact fma(Interval(0.0, 0.0), Interval(1.0, Inf), ∅) --> ∅ - @fact fma(Interval(0.0, 0.0), entireinterval(Float64), ∅) --> ∅ - @fact fma(Interval(-0.0, -0.0), Interval(0.0, 0.0), ∅) --> ∅ - @fact fma(Interval(-0.0, -0.0), Interval(-0.0, -0.0), ∅) --> ∅ - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, -1.0), ∅) --> ∅ - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, 3.0), ∅) --> ∅ - @fact fma(Interval(-0.0, -0.0), Interval(1.0, 3.0), ∅) --> ∅ - @fact fma(Interval(-0.0, -0.0), Interval(-Inf, -1.0), ∅) --> ∅ - @fact fma(Interval(-0.0, -0.0), Interval(-Inf, 3.0), ∅) --> ∅ - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, Inf), ∅) --> ∅ - @fact fma(Interval(-0.0, -0.0), Interval(1.0, Inf), ∅) --> ∅ - @fact fma(Interval(-0.0, -0.0), entireinterval(Float64), ∅) --> ∅ - @fact fma(Interval(1.0, 5.0), Interval(0.0, 0.0), ∅) --> ∅ - @fact fma(Interval(1.0, 5.0), Interval(-0.0, -0.0), ∅) --> ∅ - @fact fma(Interval(1.0, 5.0), Interval(-5.0, -1.0), ∅) --> ∅ - @fact fma(Interval(1.0, 5.0), Interval(-5.0, 3.0), ∅) --> ∅ - @fact fma(Interval(1.0, 5.0), Interval(1.0, 3.0), ∅) --> ∅ - @fact fma(Interval(1.0, 5.0), Interval(-Inf, -1.0), ∅) --> ∅ - @fact fma(Interval(1.0, 5.0), Interval(-Inf, 3.0), ∅) --> ∅ - @fact fma(Interval(1.0, 5.0), Interval(-5.0, Inf), ∅) --> ∅ - @fact fma(Interval(1.0, 5.0), Interval(1.0, Inf), ∅) --> ∅ - @fact fma(Interval(1.0, 5.0), entireinterval(Float64), ∅) --> ∅ - @fact fma(Interval(-1.0, 5.0), Interval(0.0, 0.0), ∅) --> ∅ - @fact fma(Interval(-1.0, 5.0), Interval(-0.0, -0.0), ∅) --> ∅ - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, -1.0), ∅) --> ∅ +@testset "minimal_fma_test" begin + @test fma(∅, ∅, ∅) == ∅ + @test fma(Interval(-1.0, 1.0), ∅, ∅) == ∅ + @test fma(∅, Interval(-1.0, 1.0), ∅) == ∅ + @test fma(∅, entireinterval(Float64), ∅) == ∅ + @test fma(entireinterval(Float64), ∅, ∅) == ∅ + @test fma(Interval(0.0, 0.0), ∅, ∅) == ∅ + @test fma(Interval(-0.0, -0.0), ∅, ∅) == ∅ + @test fma(∅, Interval(0.0, 0.0), ∅) == ∅ + @test fma(∅, Interval(-0.0, -0.0), ∅) == ∅ + @test fma(entireinterval(Float64), Interval(0.0, 0.0), ∅) == ∅ + @test fma(entireinterval(Float64), Interval(-0.0, -0.0), ∅) == ∅ + @test fma(entireinterval(Float64), Interval(-5.0, -1.0), ∅) == ∅ + @test fma(entireinterval(Float64), Interval(-5.0, 3.0), ∅) == ∅ + @test fma(entireinterval(Float64), Interval(1.0, 3.0), ∅) == ∅ + @test fma(entireinterval(Float64), Interval(-Inf, -1.0), ∅) == ∅ + @test fma(entireinterval(Float64), Interval(-Inf, 3.0), ∅) == ∅ + @test fma(entireinterval(Float64), Interval(-5.0, Inf), ∅) == ∅ + @test fma(entireinterval(Float64), Interval(1.0, Inf), ∅) == ∅ + @test fma(entireinterval(Float64), entireinterval(Float64), ∅) == ∅ + @test fma(Interval(1.0, Inf), Interval(0.0, 0.0), ∅) == ∅ + @test fma(Interval(1.0, Inf), Interval(-0.0, -0.0), ∅) == ∅ + @test fma(Interval(1.0, Inf), Interval(-5.0, -1.0), ∅) == ∅ + @test fma(Interval(1.0, Inf), Interval(-5.0, 3.0), ∅) == ∅ + @test fma(Interval(1.0, Inf), Interval(1.0, 3.0), ∅) == ∅ + @test fma(Interval(1.0, Inf), Interval(-Inf, -1.0), ∅) == ∅ + @test fma(Interval(1.0, Inf), Interval(-Inf, 3.0), ∅) == ∅ + @test fma(Interval(1.0, Inf), Interval(-5.0, Inf), ∅) == ∅ + @test fma(Interval(1.0, Inf), Interval(1.0, Inf), ∅) == ∅ + @test fma(Interval(1.0, Inf), entireinterval(Float64), ∅) == ∅ + @test fma(Interval(-1.0, Inf), Interval(0.0, 0.0), ∅) == ∅ + @test fma(Interval(-1.0, Inf), Interval(-0.0, -0.0), ∅) == ∅ + @test fma(Interval(-1.0, Inf), Interval(-5.0, -1.0), ∅) == ∅ + @test fma(Interval(-1.0, Inf), Interval(-5.0, 3.0), ∅) == ∅ + @test fma(Interval(-1.0, Inf), Interval(1.0, 3.0), ∅) == ∅ + @test fma(Interval(-1.0, Inf), Interval(-Inf, -1.0), ∅) == ∅ + @test fma(Interval(-1.0, Inf), Interval(-Inf, 3.0), ∅) == ∅ + @test fma(Interval(-1.0, Inf), Interval(-5.0, Inf), ∅) == ∅ + @test fma(Interval(-1.0, Inf), Interval(1.0, Inf), ∅) == ∅ + @test fma(Interval(-1.0, Inf), entireinterval(Float64), ∅) == ∅ + @test fma(Interval(-Inf, 3.0), Interval(0.0, 0.0), ∅) == ∅ + @test fma(Interval(-Inf, 3.0), Interval(-0.0, -0.0), ∅) == ∅ + @test fma(Interval(-Inf, 3.0), Interval(-5.0, -1.0), ∅) == ∅ + @test fma(Interval(-Inf, 3.0), Interval(-5.0, 3.0), ∅) == ∅ + @test fma(Interval(-Inf, 3.0), Interval(1.0, 3.0), ∅) == ∅ + @test fma(Interval(-Inf, 3.0), Interval(-Inf, -1.0), ∅) == ∅ + @test fma(Interval(-Inf, 3.0), Interval(-Inf, 3.0), ∅) == ∅ + @test fma(Interval(-Inf, 3.0), Interval(-5.0, Inf), ∅) == ∅ + @test fma(Interval(-Inf, 3.0), Interval(1.0, Inf), ∅) == ∅ + @test fma(Interval(-Inf, 3.0), entireinterval(Float64), ∅) == ∅ + @test fma(Interval(-Inf, -3.0), Interval(0.0, 0.0), ∅) == ∅ + @test fma(Interval(-Inf, -3.0), Interval(-0.0, -0.0), ∅) == ∅ + @test fma(Interval(-Inf, -3.0), Interval(-5.0, -1.0), ∅) == ∅ + @test fma(Interval(-Inf, -3.0), Interval(-5.0, 3.0), ∅) == ∅ + @test fma(Interval(-Inf, -3.0), Interval(1.0, 3.0), ∅) == ∅ + @test fma(Interval(-Inf, -3.0), Interval(-Inf, -1.0), ∅) == ∅ + @test fma(Interval(-Inf, -3.0), Interval(-Inf, 3.0), ∅) == ∅ + @test fma(Interval(-Inf, -3.0), Interval(-5.0, Inf), ∅) == ∅ + @test fma(Interval(-Inf, -3.0), Interval(1.0, Inf), ∅) == ∅ + @test fma(Interval(-Inf, -3.0), entireinterval(Float64), ∅) == ∅ + @test fma(Interval(0.0, 0.0), Interval(0.0, 0.0), ∅) == ∅ + @test fma(Interval(0.0, 0.0), Interval(-0.0, -0.0), ∅) == ∅ + @test fma(Interval(0.0, 0.0), Interval(-5.0, -1.0), ∅) == ∅ + @test fma(Interval(0.0, 0.0), Interval(-5.0, 3.0), ∅) == ∅ + @test fma(Interval(0.0, 0.0), Interval(1.0, 3.0), ∅) == ∅ + @test fma(Interval(0.0, 0.0), Interval(-Inf, -1.0), ∅) == ∅ + @test fma(Interval(0.0, 0.0), Interval(-Inf, 3.0), ∅) == ∅ + @test fma(Interval(0.0, 0.0), Interval(-5.0, Inf), ∅) == ∅ + @test fma(Interval(0.0, 0.0), Interval(1.0, Inf), ∅) == ∅ + @test fma(Interval(0.0, 0.0), entireinterval(Float64), ∅) == ∅ + @test fma(Interval(-0.0, -0.0), Interval(0.0, 0.0), ∅) == ∅ + @test fma(Interval(-0.0, -0.0), Interval(-0.0, -0.0), ∅) == ∅ + @test fma(Interval(-0.0, -0.0), Interval(-5.0, -1.0), ∅) == ∅ + @test fma(Interval(-0.0, -0.0), Interval(-5.0, 3.0), ∅) == ∅ + @test fma(Interval(-0.0, -0.0), Interval(1.0, 3.0), ∅) == ∅ + @test fma(Interval(-0.0, -0.0), Interval(-Inf, -1.0), ∅) == ∅ + @test fma(Interval(-0.0, -0.0), Interval(-Inf, 3.0), ∅) == ∅ + @test fma(Interval(-0.0, -0.0), Interval(-5.0, Inf), ∅) == ∅ + @test fma(Interval(-0.0, -0.0), Interval(1.0, Inf), ∅) == ∅ + @test fma(Interval(-0.0, -0.0), entireinterval(Float64), ∅) == ∅ + @test fma(Interval(1.0, 5.0), Interval(0.0, 0.0), ∅) == ∅ + @test fma(Interval(1.0, 5.0), Interval(-0.0, -0.0), ∅) == ∅ + @test fma(Interval(1.0, 5.0), Interval(-5.0, -1.0), ∅) == ∅ + @test fma(Interval(1.0, 5.0), Interval(-5.0, 3.0), ∅) == ∅ + @test fma(Interval(1.0, 5.0), Interval(1.0, 3.0), ∅) == ∅ + @test fma(Interval(1.0, 5.0), Interval(-Inf, -1.0), ∅) == ∅ + @test fma(Interval(1.0, 5.0), Interval(-Inf, 3.0), ∅) == ∅ + @test fma(Interval(1.0, 5.0), Interval(-5.0, Inf), ∅) == ∅ + @test fma(Interval(1.0, 5.0), Interval(1.0, Inf), ∅) == ∅ + @test fma(Interval(1.0, 5.0), entireinterval(Float64), ∅) == ∅ + @test fma(Interval(-1.0, 5.0), Interval(0.0, 0.0), ∅) == ∅ + @test fma(Interval(-1.0, 5.0), Interval(-0.0, -0.0), ∅) == ∅ + @test fma(Interval(-1.0, 5.0), Interval(-5.0, -1.0), ∅) == ∅ #min max - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, 3.0), ∅) --> ∅ - @fact fma(Interval(-10.0, 2.0), Interval(-5.0, 3.0), ∅) --> ∅ - @fact fma(Interval(-1.0, 5.0), Interval(-1.0, 10.0), ∅) --> ∅ - @fact fma(Interval(-2.0, 2.0), Interval(-5.0, 3.0), ∅) --> ∅ + @test fma(Interval(-1.0, 5.0), Interval(-5.0, 3.0), ∅) == ∅ + @test fma(Interval(-10.0, 2.0), Interval(-5.0, 3.0), ∅) == ∅ + @test fma(Interval(-1.0, 5.0), Interval(-1.0, 10.0), ∅) == ∅ + @test fma(Interval(-2.0, 2.0), Interval(-5.0, 3.0), ∅) == ∅ #end min max - @fact fma(Interval(-1.0, 5.0), Interval(1.0, 3.0), ∅) --> ∅ - @fact fma(Interval(-1.0, 5.0), Interval(-Inf, -1.0), ∅) --> ∅ - @fact fma(Interval(-1.0, 5.0), Interval(-Inf, 3.0), ∅) --> ∅ - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, Inf), ∅) --> ∅ - @fact fma(Interval(-1.0, 5.0), Interval(1.0, Inf), ∅) --> ∅ - @fact fma(Interval(-1.0, 5.0), entireinterval(Float64), ∅) --> ∅ - @fact fma(Interval(-10.0, -5.0), Interval(0.0, 0.0), ∅) --> ∅ - @fact fma(Interval(-10.0, -5.0), Interval(-0.0, -0.0), ∅) --> ∅ - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, -1.0), ∅) --> ∅ - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, 3.0), ∅) --> ∅ - @fact fma(Interval(-10.0, -5.0), Interval(1.0, 3.0), ∅) --> ∅ - @fact fma(Interval(-10.0, -5.0), Interval(-Inf, -1.0), ∅) --> ∅ - @fact fma(Interval(-10.0, -5.0), Interval(-Inf, 3.0), ∅) --> ∅ - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, Inf), ∅) --> ∅ - @fact fma(Interval(-10.0, -5.0), Interval(1.0, Inf), ∅) --> ∅ - @fact fma(Interval(-10.0, -5.0), entireinterval(Float64), ∅) --> ∅ - @fact fma(∅, ∅, Interval(-Inf, 2.0)) --> ∅ - @fact fma(Interval(-1.0, 1.0), ∅, Interval(-Inf, 2.0)) --> ∅ - @fact fma(∅, Interval(-1.0, 1.0), Interval(-Inf, 2.0)) --> ∅ - @fact fma(∅, entireinterval(Float64), Interval(-Inf, 2.0)) --> ∅ - @fact fma(entireinterval(Float64), ∅, Interval(-Inf, 2.0)) --> ∅ - @fact fma(Interval(0.0, 0.0), ∅, Interval(-Inf, 2.0)) --> ∅ - @fact fma(Interval(-0.0, -0.0), ∅, Interval(-Inf, 2.0)) --> ∅ - @fact fma(∅, Interval(0.0, 0.0), Interval(-Inf, 2.0)) --> ∅ - @fact fma(∅, Interval(-0.0, -0.0), Interval(-Inf, 2.0)) --> ∅ - @fact fma(entireinterval(Float64), Interval(0.0, 0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(entireinterval(Float64), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(entireinterval(Float64), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(1.0, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-5.0, Inf), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(1.0, Inf), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), entireinterval(Float64), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(0.0, 0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(1.0, Inf), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(1.0, Inf), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 1.0) - @fact fma(Interval(1.0, Inf), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(1.0, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 1.0) - @fact fma(Interval(1.0, Inf), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(-5.0, Inf), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(1.0, Inf), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), entireinterval(Float64), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(0.0, 0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-1.0, Inf), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-1.0, Inf), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 7.0) - @fact fma(Interval(-1.0, Inf), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(1.0, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(-5.0, Inf), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(1.0, Inf), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), entireinterval(Float64), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(0.0, 0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-Inf, 3.0), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(1.0, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 11.0) - @fact fma(Interval(-Inf, 3.0), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, Inf), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(1.0, Inf), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), entireinterval(Float64), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(0.0, 0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-Inf, -3.0), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(1.0, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, -1.0) - @fact fma(Interval(-Inf, -3.0), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, Inf), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(1.0, Inf), Interval(-Inf, 2.0)) --> Interval(-Inf, -1.0) - @fact fma(Interval(-Inf, -3.0), entireinterval(Float64), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(0.0, 0.0), Interval(0.0, 0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(1.0, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(-5.0, Inf), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(1.0, Inf), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(0.0, 0.0), entireinterval(Float64), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(0.0, 0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(1.0, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, Inf), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(1.0, Inf), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-0.0, -0.0), entireinterval(Float64), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(1.0, 5.0), Interval(0.0, 0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(1.0, 5.0), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(1.0, 5.0), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 1.0) - @fact fma(Interval(1.0, 5.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 17.0) - @fact fma(Interval(1.0, 5.0), Interval(1.0, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 17.0) - @fact fma(Interval(1.0, 5.0), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 1.0) - @fact fma(Interval(1.0, 5.0), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 17.0) - @fact fma(Interval(1.0, 5.0), Interval(-5.0, Inf), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(1.0, 5.0), Interval(1.0, Inf), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(1.0, 5.0), entireinterval(Float64), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(0.0, 0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-1.0, 5.0), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 7.0) + @test fma(Interval(-1.0, 5.0), Interval(1.0, 3.0), ∅) == ∅ + @test fma(Interval(-1.0, 5.0), Interval(-Inf, -1.0), ∅) == ∅ + @test fma(Interval(-1.0, 5.0), Interval(-Inf, 3.0), ∅) == ∅ + @test fma(Interval(-1.0, 5.0), Interval(-5.0, Inf), ∅) == ∅ + @test fma(Interval(-1.0, 5.0), Interval(1.0, Inf), ∅) == ∅ + @test fma(Interval(-1.0, 5.0), entireinterval(Float64), ∅) == ∅ + @test fma(Interval(-10.0, -5.0), Interval(0.0, 0.0), ∅) == ∅ + @test fma(Interval(-10.0, -5.0), Interval(-0.0, -0.0), ∅) == ∅ + @test fma(Interval(-10.0, -5.0), Interval(-5.0, -1.0), ∅) == ∅ + @test fma(Interval(-10.0, -5.0), Interval(-5.0, 3.0), ∅) == ∅ + @test fma(Interval(-10.0, -5.0), Interval(1.0, 3.0), ∅) == ∅ + @test fma(Interval(-10.0, -5.0), Interval(-Inf, -1.0), ∅) == ∅ + @test fma(Interval(-10.0, -5.0), Interval(-Inf, 3.0), ∅) == ∅ + @test fma(Interval(-10.0, -5.0), Interval(-5.0, Inf), ∅) == ∅ + @test fma(Interval(-10.0, -5.0), Interval(1.0, Inf), ∅) == ∅ + @test fma(Interval(-10.0, -5.0), entireinterval(Float64), ∅) == ∅ + @test fma(∅, ∅, Interval(-Inf, 2.0)) == ∅ + @test fma(Interval(-1.0, 1.0), ∅, Interval(-Inf, 2.0)) == ∅ + @test fma(∅, Interval(-1.0, 1.0), Interval(-Inf, 2.0)) == ∅ + @test fma(∅, entireinterval(Float64), Interval(-Inf, 2.0)) == ∅ + @test fma(entireinterval(Float64), ∅, Interval(-Inf, 2.0)) == ∅ + @test fma(Interval(0.0, 0.0), ∅, Interval(-Inf, 2.0)) == ∅ + @test fma(Interval(-0.0, -0.0), ∅, Interval(-Inf, 2.0)) == ∅ + @test fma(∅, Interval(0.0, 0.0), Interval(-Inf, 2.0)) == ∅ + @test fma(∅, Interval(-0.0, -0.0), Interval(-Inf, 2.0)) == ∅ + @test fma(entireinterval(Float64), Interval(0.0, 0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(entireinterval(Float64), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(entireinterval(Float64), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(1.0, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-5.0, Inf), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(1.0, Inf), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(entireinterval(Float64), entireinterval(Float64), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(0.0, 0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(1.0, Inf), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(1.0, Inf), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) == Interval(-Inf, 1.0) + @test fma(Interval(1.0, Inf), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(1.0, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) == Interval(-Inf, 1.0) + @test fma(Interval(1.0, Inf), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(-5.0, Inf), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(1.0, Inf), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), entireinterval(Float64), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(0.0, 0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-1.0, Inf), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-1.0, Inf), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) == Interval(-Inf, 7.0) + @test fma(Interval(-1.0, Inf), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(1.0, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(-5.0, Inf), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(1.0, Inf), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), entireinterval(Float64), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(0.0, 0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-Inf, 3.0), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-Inf, 3.0), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(1.0, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 11.0) + @test fma(Interval(-Inf, 3.0), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(-5.0, Inf), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(1.0, Inf), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), entireinterval(Float64), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(0.0, 0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-Inf, -3.0), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-Inf, -3.0), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(1.0, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, -1.0) + @test fma(Interval(-Inf, -3.0), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(-5.0, Inf), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(1.0, Inf), Interval(-Inf, 2.0)) == Interval(-Inf, -1.0) + @test fma(Interval(-Inf, -3.0), entireinterval(Float64), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(0.0, 0.0), Interval(0.0, 0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(0.0, 0.0), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(0.0, 0.0), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(0.0, 0.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(0.0, 0.0), Interval(1.0, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(0.0, 0.0), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(0.0, 0.0), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(0.0, 0.0), Interval(-5.0, Inf), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(0.0, 0.0), Interval(1.0, Inf), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(0.0, 0.0), entireinterval(Float64), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(0.0, 0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(1.0, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(-5.0, Inf), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(1.0, Inf), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-0.0, -0.0), entireinterval(Float64), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(1.0, 5.0), Interval(0.0, 0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(1.0, 5.0), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(1.0, 5.0), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) == Interval(-Inf, 1.0) + @test fma(Interval(1.0, 5.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 17.0) + @test fma(Interval(1.0, 5.0), Interval(1.0, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 17.0) + @test fma(Interval(1.0, 5.0), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) == Interval(-Inf, 1.0) + @test fma(Interval(1.0, 5.0), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 17.0) + @test fma(Interval(1.0, 5.0), Interval(-5.0, Inf), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(1.0, 5.0), Interval(1.0, Inf), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(1.0, 5.0), entireinterval(Float64), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(0.0, 0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-1.0, 5.0), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-1.0, 5.0), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) == Interval(-Inf, 7.0) #min max - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 17.0) - @fact fma(Interval(-10.0, 2.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 52.0) - @fact fma(Interval(-1.0, 5.0), Interval(-1.0, 10.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 52.0) - @fact fma(Interval(-2.0, 2.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 12.0) + @test fma(Interval(-1.0, 5.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 17.0) + @test fma(Interval(-10.0, 2.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 52.0) + @test fma(Interval(-1.0, 5.0), Interval(-1.0, 10.0), Interval(-Inf, 2.0)) == Interval(-Inf, 52.0) + @test fma(Interval(-2.0, 2.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 12.0) #end min max - @fact fma(Interval(-1.0, 5.0), Interval(1.0, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 17.0) - @fact fma(Interval(-1.0, 5.0), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, Inf), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(1.0, Inf), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), entireinterval(Float64), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(0.0, 0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-10.0, -5.0), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 2.0) - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 52.0) - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, 52.0) - @fact fma(Interval(-10.0, -5.0), Interval(1.0, 3.0), Interval(-Inf, 2.0)) --> Interval(-Inf, -3.0) - @fact fma(Interval(-10.0, -5.0), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, Inf), Interval(-Inf, 2.0)) --> Interval(-Inf, 52.0) - @fact fma(Interval(-10.0, -5.0), Interval(1.0, Inf), Interval(-Inf, 2.0)) --> Interval(-Inf, -3.0) - @fact fma(Interval(-10.0, -5.0), entireinterval(Float64), Interval(-Inf, 2.0)) --> entireinterval(Float64) - @fact fma(∅, ∅, Interval(-2.0, 2.0)) --> ∅ - @fact fma(Interval(-1.0, 1.0), ∅, Interval(-2.0, 2.0)) --> ∅ - @fact fma(∅, Interval(-1.0, 1.0), Interval(-2.0, 2.0)) --> ∅ - @fact fma(∅, entireinterval(Float64), Interval(-2.0, 2.0)) --> ∅ - @fact fma(entireinterval(Float64), ∅, Interval(-2.0, 2.0)) --> ∅ - @fact fma(Interval(0.0, 0.0), ∅, Interval(-2.0, 2.0)) --> ∅ - @fact fma(Interval(-0.0, -0.0), ∅, Interval(-2.0, 2.0)) --> ∅ - @fact fma(∅, Interval(0.0, 0.0), Interval(-2.0, 2.0)) --> ∅ - @fact fma(∅, Interval(-0.0, -0.0), Interval(-2.0, 2.0)) --> ∅ - @fact fma(entireinterval(Float64), Interval(0.0, 0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(entireinterval(Float64), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(entireinterval(Float64), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(1.0, 3.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-5.0, Inf), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(1.0, Inf), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), entireinterval(Float64), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(0.0, 0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(1.0, Inf), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(1.0, Inf), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) --> Interval(-Inf, 1.0) - @fact fma(Interval(1.0, Inf), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(1.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-1.0, Inf) - @fact fma(Interval(1.0, Inf), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) --> Interval(-Inf, 1.0) - @fact fma(Interval(1.0, Inf), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(-5.0, Inf), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(1.0, Inf), Interval(-2.0, 2.0)) --> Interval(-1.0, Inf) - @fact fma(Interval(1.0, Inf), entireinterval(Float64), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(0.0, 0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-1.0, Inf), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-1.0, Inf), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) --> Interval(-Inf, 7.0) - @fact fma(Interval(-1.0, Inf), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(1.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-5.0, Inf) - @fact fma(Interval(-1.0, Inf), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(-5.0, Inf), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(1.0, Inf), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), entireinterval(Float64), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(0.0, 0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-Inf, 3.0), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) --> Interval(-17.0, Inf) - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(1.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-Inf, 11.0) - @fact fma(Interval(-Inf, 3.0), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, Inf), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(1.0, Inf), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), entireinterval(Float64), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(0.0, 0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-Inf, -3.0), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) --> Interval(1.0, Inf) - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(1.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-Inf, -1.0) - @fact fma(Interval(-Inf, -3.0), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) --> Interval(1.0, Inf) - @fact fma(Interval(-Inf, -3.0), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, Inf), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(1.0, Inf), Interval(-2.0, 2.0)) --> Interval(-Inf, -1.0) - @fact fma(Interval(-Inf, -3.0), entireinterval(Float64), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(0.0, 0.0), Interval(0.0, 0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(1.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(-5.0, Inf), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(0.0, 0.0), Interval(1.0, Inf), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(0.0, 0.0), entireinterval(Float64), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(0.0, 0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(1.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, Inf), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-0.0, -0.0), Interval(1.0, Inf), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-0.0, -0.0), entireinterval(Float64), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(1.0, 5.0), Interval(0.0, 0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(1.0, 5.0), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(1.0, 5.0), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) --> Interval(-27.0, 1.0) - @fact fma(Interval(1.0, 5.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-27.0, 17.0) - @fact fma(Interval(1.0, 5.0), Interval(1.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-1.0, 17.0) - @fact fma(Interval(1.0, 5.0), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) --> Interval(-Inf, 1.0) - @fact fma(Interval(1.0, 5.0), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) --> Interval(-Inf, 17.0) - @fact fma(Interval(1.0, 5.0), Interval(-5.0, Inf), Interval(-2.0, 2.0)) --> Interval(-27.0, Inf) - @fact fma(Interval(1.0, 5.0), Interval(1.0, Inf), Interval(-2.0, 2.0)) --> Interval(-1.0, Inf) - @fact fma(Interval(1.0, 5.0), entireinterval(Float64), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(0.0, 0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-1.0, 5.0), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) --> Interval(-27.0, 7.0) + @test fma(Interval(-1.0, 5.0), Interval(1.0, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 17.0) + @test fma(Interval(-1.0, 5.0), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(-5.0, Inf), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(1.0, Inf), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), entireinterval(Float64), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(0.0, 0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-10.0, -5.0), Interval(-0.0, -0.0), Interval(-Inf, 2.0)) == Interval(-Inf, 2.0) + @test fma(Interval(-10.0, -5.0), Interval(-5.0, -1.0), Interval(-Inf, 2.0)) == Interval(-Inf, 52.0) + @test fma(Interval(-10.0, -5.0), Interval(-5.0, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, 52.0) + @test fma(Interval(-10.0, -5.0), Interval(1.0, 3.0), Interval(-Inf, 2.0)) == Interval(-Inf, -3.0) + @test fma(Interval(-10.0, -5.0), Interval(-Inf, -1.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(-Inf, 3.0), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(-5.0, Inf), Interval(-Inf, 2.0)) == Interval(-Inf, 52.0) + @test fma(Interval(-10.0, -5.0), Interval(1.0, Inf), Interval(-Inf, 2.0)) == Interval(-Inf, -3.0) + @test fma(Interval(-10.0, -5.0), entireinterval(Float64), Interval(-Inf, 2.0)) == entireinterval(Float64) + @test fma(∅, ∅, Interval(-2.0, 2.0)) == ∅ + @test fma(Interval(-1.0, 1.0), ∅, Interval(-2.0, 2.0)) == ∅ + @test fma(∅, Interval(-1.0, 1.0), Interval(-2.0, 2.0)) == ∅ + @test fma(∅, entireinterval(Float64), Interval(-2.0, 2.0)) == ∅ + @test fma(entireinterval(Float64), ∅, Interval(-2.0, 2.0)) == ∅ + @test fma(Interval(0.0, 0.0), ∅, Interval(-2.0, 2.0)) == ∅ + @test fma(Interval(-0.0, -0.0), ∅, Interval(-2.0, 2.0)) == ∅ + @test fma(∅, Interval(0.0, 0.0), Interval(-2.0, 2.0)) == ∅ + @test fma(∅, Interval(-0.0, -0.0), Interval(-2.0, 2.0)) == ∅ + @test fma(entireinterval(Float64), Interval(0.0, 0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(entireinterval(Float64), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(entireinterval(Float64), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(1.0, 3.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-5.0, Inf), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(1.0, Inf), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(entireinterval(Float64), entireinterval(Float64), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(0.0, 0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(1.0, Inf), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(1.0, Inf), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) == Interval(-Inf, 1.0) + @test fma(Interval(1.0, Inf), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(1.0, 3.0), Interval(-2.0, 2.0)) == Interval(-1.0, Inf) + @test fma(Interval(1.0, Inf), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) == Interval(-Inf, 1.0) + @test fma(Interval(1.0, Inf), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(-5.0, Inf), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(1.0, Inf), Interval(-2.0, 2.0)) == Interval(-1.0, Inf) + @test fma(Interval(1.0, Inf), entireinterval(Float64), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(0.0, 0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-1.0, Inf), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-1.0, Inf), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) == Interval(-Inf, 7.0) + @test fma(Interval(-1.0, Inf), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(1.0, 3.0), Interval(-2.0, 2.0)) == Interval(-5.0, Inf) + @test fma(Interval(-1.0, Inf), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(-5.0, Inf), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(1.0, Inf), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), entireinterval(Float64), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(0.0, 0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-Inf, 3.0), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-Inf, 3.0), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) == Interval(-17.0, Inf) + @test fma(Interval(-Inf, 3.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(1.0, 3.0), Interval(-2.0, 2.0)) == Interval(-Inf, 11.0) + @test fma(Interval(-Inf, 3.0), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(-5.0, Inf), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(1.0, Inf), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), entireinterval(Float64), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(0.0, 0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-Inf, -3.0), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-Inf, -3.0), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) == Interval(1.0, Inf) + @test fma(Interval(-Inf, -3.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(1.0, 3.0), Interval(-2.0, 2.0)) == Interval(-Inf, -1.0) + @test fma(Interval(-Inf, -3.0), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) == Interval(1.0, Inf) + @test fma(Interval(-Inf, -3.0), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(-5.0, Inf), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(1.0, Inf), Interval(-2.0, 2.0)) == Interval(-Inf, -1.0) + @test fma(Interval(-Inf, -3.0), entireinterval(Float64), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(0.0, 0.0), Interval(0.0, 0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(0.0, 0.0), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(0.0, 0.0), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(0.0, 0.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(0.0, 0.0), Interval(1.0, 3.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(0.0, 0.0), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(0.0, 0.0), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(0.0, 0.0), Interval(-5.0, Inf), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(0.0, 0.0), Interval(1.0, Inf), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(0.0, 0.0), entireinterval(Float64), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(0.0, 0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(1.0, 3.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(-5.0, Inf), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-0.0, -0.0), Interval(1.0, Inf), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-0.0, -0.0), entireinterval(Float64), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(1.0, 5.0), Interval(0.0, 0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(1.0, 5.0), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(1.0, 5.0), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) == Interval(-27.0, 1.0) + @test fma(Interval(1.0, 5.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) == Interval(-27.0, 17.0) + @test fma(Interval(1.0, 5.0), Interval(1.0, 3.0), Interval(-2.0, 2.0)) == Interval(-1.0, 17.0) + @test fma(Interval(1.0, 5.0), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) == Interval(-Inf, 1.0) + @test fma(Interval(1.0, 5.0), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) == Interval(-Inf, 17.0) + @test fma(Interval(1.0, 5.0), Interval(-5.0, Inf), Interval(-2.0, 2.0)) == Interval(-27.0, Inf) + @test fma(Interval(1.0, 5.0), Interval(1.0, Inf), Interval(-2.0, 2.0)) == Interval(-1.0, Inf) + @test fma(Interval(1.0, 5.0), entireinterval(Float64), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(0.0, 0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-1.0, 5.0), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-1.0, 5.0), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) == Interval(-27.0, 7.0) #min max - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-27.0, 17.0) - @fact fma(Interval(-10.0, 2.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-32.0, 52.0) - @fact fma(Interval(-1.0, 5.0), Interval(-1.0, 10.0), Interval(-2.0, 2.0)) --> Interval(-12.0, 52.0) - @fact fma(Interval(-2.0, 2.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-12.0, 12.0) + @test fma(Interval(-1.0, 5.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) == Interval(-27.0, 17.0) + @test fma(Interval(-10.0, 2.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) == Interval(-32.0, 52.0) + @test fma(Interval(-1.0, 5.0), Interval(-1.0, 10.0), Interval(-2.0, 2.0)) == Interval(-12.0, 52.0) + @test fma(Interval(-2.0, 2.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) == Interval(-12.0, 12.0) #end min max - @fact fma(Interval(-1.0, 5.0), Interval(1.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-5.0, 17.0) - @fact fma(Interval(-1.0, 5.0), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, Inf), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(1.0, Inf), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), entireinterval(Float64), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(0.0, 0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-10.0, -5.0), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) --> Interval(-2.0, 2.0) - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) --> Interval(3.0, 52.0) - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-32.0, 52.0) - @fact fma(Interval(-10.0, -5.0), Interval(1.0, 3.0), Interval(-2.0, 2.0)) --> Interval(-32.0, -3.0) - @fact fma(Interval(-10.0, -5.0), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) --> Interval(3.0, Inf) - @fact fma(Interval(-10.0, -5.0), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) --> Interval(-32.0, Inf) - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, Inf), Interval(-2.0, 2.0)) --> Interval(-Inf, 52.0) - @fact fma(Interval(-10.0, -5.0), Interval(1.0, Inf), Interval(-2.0, 2.0)) --> Interval(-Inf, -3.0) - @fact fma(Interval(-10.0, -5.0), entireinterval(Float64), Interval(-2.0, 2.0)) --> entireinterval(Float64) - @fact fma(∅, ∅, Interval(-2.0, Inf)) --> ∅ - @fact fma(Interval(-1.0, 1.0), ∅, Interval(-2.0, Inf)) --> ∅ - @fact fma(∅, Interval(-1.0, 1.0), Interval(-2.0, Inf)) --> ∅ - @fact fma(∅, entireinterval(Float64), Interval(-2.0, Inf)) --> ∅ - @fact fma(entireinterval(Float64), ∅, Interval(-2.0, Inf)) --> ∅ - @fact fma(Interval(0.0, 0.0), ∅, Interval(-2.0, Inf)) --> ∅ - @fact fma(Interval(-0.0, -0.0), ∅, Interval(-2.0, Inf)) --> ∅ - @fact fma(∅, Interval(0.0, 0.0), Interval(-2.0, Inf)) --> ∅ - @fact fma(∅, Interval(-0.0, -0.0), Interval(-2.0, Inf)) --> ∅ - @fact fma(entireinterval(Float64), Interval(0.0, 0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(entireinterval(Float64), Interval(-0.0, -0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(entireinterval(Float64), Interval(-5.0, -1.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-5.0, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(1.0, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-Inf, -1.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-Inf, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-5.0, Inf), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(1.0, Inf), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), entireinterval(Float64), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(0.0, 0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(1.0, Inf), Interval(-0.0, -0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(1.0, Inf), Interval(-5.0, -1.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(-5.0, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(1.0, 3.0), Interval(-2.0, Inf)) --> Interval(-1.0, Inf) - @fact fma(Interval(1.0, Inf), Interval(-Inf, -1.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(-Inf, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(-5.0, Inf), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(1.0, Inf), Interval(-2.0, Inf)) --> Interval(-1.0, Inf) - @fact fma(Interval(1.0, Inf), entireinterval(Float64), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(0.0, 0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-1.0, Inf), Interval(-0.0, -0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-1.0, Inf), Interval(-5.0, -1.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(-5.0, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(1.0, 3.0), Interval(-2.0, Inf)) --> Interval(-5.0, Inf) - @fact fma(Interval(-1.0, Inf), Interval(-Inf, -1.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(-Inf, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(-5.0, Inf), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(1.0, Inf), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), entireinterval(Float64), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(0.0, 0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-Inf, 3.0), Interval(-0.0, -0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, -1.0), Interval(-2.0, Inf)) --> Interval(-17.0, Inf) - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(1.0, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(-Inf, -1.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(-Inf, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, Inf), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(1.0, Inf), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), entireinterval(Float64), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(0.0, 0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-Inf, -3.0), Interval(-0.0, -0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, -1.0), Interval(-2.0, Inf)) --> Interval(1.0, Inf) - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(1.0, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(-Inf, -1.0), Interval(-2.0, Inf)) --> Interval(1.0, Inf) - @fact fma(Interval(-Inf, -3.0), Interval(-Inf, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, Inf), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(1.0, Inf), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), entireinterval(Float64), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(0.0, 0.0), Interval(0.0, 0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(0.0, 0.0), Interval(-0.0, -0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(0.0, 0.0), Interval(-5.0, -1.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(0.0, 0.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(0.0, 0.0), Interval(1.0, 3.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(0.0, 0.0), Interval(-Inf, -1.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(0.0, 0.0), Interval(-Inf, 3.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(0.0, 0.0), Interval(-5.0, Inf), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(0.0, 0.0), Interval(1.0, Inf), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(0.0, 0.0), entireinterval(Float64), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-0.0, -0.0), Interval(0.0, 0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-0.0, -0.0), Interval(-0.0, -0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, -1.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-0.0, -0.0), Interval(1.0, 3.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-0.0, -0.0), Interval(-Inf, -1.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-0.0, -0.0), Interval(-Inf, 3.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, Inf), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-0.0, -0.0), Interval(1.0, Inf), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-0.0, -0.0), entireinterval(Float64), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(1.0, 5.0), Interval(0.0, 0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(1.0, 5.0), Interval(-0.0, -0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(1.0, 5.0), Interval(-5.0, -1.0), Interval(-2.0, Inf)) --> Interval(-27.0, Inf) - @fact fma(Interval(1.0, 5.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) --> Interval(-27.0, Inf) - @fact fma(Interval(1.0, 5.0), Interval(1.0, 3.0), Interval(-2.0, Inf)) --> Interval(-1.0, Inf) - @fact fma(Interval(1.0, 5.0), Interval(-Inf, -1.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(1.0, 5.0), Interval(-Inf, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(1.0, 5.0), Interval(-5.0, Inf), Interval(-2.0, Inf)) --> Interval(-27.0, Inf) - @fact fma(Interval(1.0, 5.0), Interval(1.0, Inf), Interval(-2.0, Inf)) --> Interval(-1.0, Inf) - @fact fma(Interval(1.0, 5.0), entireinterval(Float64), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(-0.0, -0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-1.0, 5.0), Interval(0.0, 0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, -1.0), Interval(-2.0, Inf)) --> Interval(-27.0, Inf) + @test fma(Interval(-1.0, 5.0), Interval(1.0, 3.0), Interval(-2.0, 2.0)) == Interval(-5.0, 17.0) + @test fma(Interval(-1.0, 5.0), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(-5.0, Inf), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(1.0, Inf), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), entireinterval(Float64), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(0.0, 0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-10.0, -5.0), Interval(-0.0, -0.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) + @test fma(Interval(-10.0, -5.0), Interval(-5.0, -1.0), Interval(-2.0, 2.0)) == Interval(3.0, 52.0) + @test fma(Interval(-10.0, -5.0), Interval(-5.0, 3.0), Interval(-2.0, 2.0)) == Interval(-32.0, 52.0) + @test fma(Interval(-10.0, -5.0), Interval(1.0, 3.0), Interval(-2.0, 2.0)) == Interval(-32.0, -3.0) + @test fma(Interval(-10.0, -5.0), Interval(-Inf, -1.0), Interval(-2.0, 2.0)) == Interval(3.0, Inf) + @test fma(Interval(-10.0, -5.0), Interval(-Inf, 3.0), Interval(-2.0, 2.0)) == Interval(-32.0, Inf) + @test fma(Interval(-10.0, -5.0), Interval(-5.0, Inf), Interval(-2.0, 2.0)) == Interval(-Inf, 52.0) + @test fma(Interval(-10.0, -5.0), Interval(1.0, Inf), Interval(-2.0, 2.0)) == Interval(-Inf, -3.0) + @test fma(Interval(-10.0, -5.0), entireinterval(Float64), Interval(-2.0, 2.0)) == entireinterval(Float64) + @test fma(∅, ∅, Interval(-2.0, Inf)) == ∅ + @test fma(Interval(-1.0, 1.0), ∅, Interval(-2.0, Inf)) == ∅ + @test fma(∅, Interval(-1.0, 1.0), Interval(-2.0, Inf)) == ∅ + @test fma(∅, entireinterval(Float64), Interval(-2.0, Inf)) == ∅ + @test fma(entireinterval(Float64), ∅, Interval(-2.0, Inf)) == ∅ + @test fma(Interval(0.0, 0.0), ∅, Interval(-2.0, Inf)) == ∅ + @test fma(Interval(-0.0, -0.0), ∅, Interval(-2.0, Inf)) == ∅ + @test fma(∅, Interval(0.0, 0.0), Interval(-2.0, Inf)) == ∅ + @test fma(∅, Interval(-0.0, -0.0), Interval(-2.0, Inf)) == ∅ + @test fma(entireinterval(Float64), Interval(0.0, 0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(entireinterval(Float64), Interval(-0.0, -0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(entireinterval(Float64), Interval(-5.0, -1.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-5.0, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(1.0, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-Inf, -1.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-Inf, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-5.0, Inf), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(1.0, Inf), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(entireinterval(Float64), entireinterval(Float64), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(0.0, 0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(1.0, Inf), Interval(-0.0, -0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(1.0, Inf), Interval(-5.0, -1.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(-5.0, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(1.0, 3.0), Interval(-2.0, Inf)) == Interval(-1.0, Inf) + @test fma(Interval(1.0, Inf), Interval(-Inf, -1.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(-Inf, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(-5.0, Inf), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(1.0, Inf), Interval(-2.0, Inf)) == Interval(-1.0, Inf) + @test fma(Interval(1.0, Inf), entireinterval(Float64), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(0.0, 0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-1.0, Inf), Interval(-0.0, -0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-1.0, Inf), Interval(-5.0, -1.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(-5.0, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(1.0, 3.0), Interval(-2.0, Inf)) == Interval(-5.0, Inf) + @test fma(Interval(-1.0, Inf), Interval(-Inf, -1.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(-Inf, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(-5.0, Inf), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(1.0, Inf), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), entireinterval(Float64), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(0.0, 0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-Inf, 3.0), Interval(-0.0, -0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-Inf, 3.0), Interval(-5.0, -1.0), Interval(-2.0, Inf)) == Interval(-17.0, Inf) + @test fma(Interval(-Inf, 3.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(1.0, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(-Inf, -1.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(-Inf, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(-5.0, Inf), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(1.0, Inf), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), entireinterval(Float64), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(0.0, 0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-Inf, -3.0), Interval(-0.0, -0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-Inf, -3.0), Interval(-5.0, -1.0), Interval(-2.0, Inf)) == Interval(1.0, Inf) + @test fma(Interval(-Inf, -3.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(1.0, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(-Inf, -1.0), Interval(-2.0, Inf)) == Interval(1.0, Inf) + @test fma(Interval(-Inf, -3.0), Interval(-Inf, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(-5.0, Inf), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(1.0, Inf), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), entireinterval(Float64), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(0.0, 0.0), Interval(0.0, 0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(0.0, 0.0), Interval(-0.0, -0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(0.0, 0.0), Interval(-5.0, -1.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(0.0, 0.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(0.0, 0.0), Interval(1.0, 3.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(0.0, 0.0), Interval(-Inf, -1.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(0.0, 0.0), Interval(-Inf, 3.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(0.0, 0.0), Interval(-5.0, Inf), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(0.0, 0.0), Interval(1.0, Inf), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(0.0, 0.0), entireinterval(Float64), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-0.0, -0.0), Interval(0.0, 0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-0.0, -0.0), Interval(-0.0, -0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-0.0, -0.0), Interval(-5.0, -1.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-0.0, -0.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-0.0, -0.0), Interval(1.0, 3.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-0.0, -0.0), Interval(-Inf, -1.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-0.0, -0.0), Interval(-Inf, 3.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-0.0, -0.0), Interval(-5.0, Inf), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-0.0, -0.0), Interval(1.0, Inf), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-0.0, -0.0), entireinterval(Float64), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(1.0, 5.0), Interval(0.0, 0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(1.0, 5.0), Interval(-0.0, -0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(1.0, 5.0), Interval(-5.0, -1.0), Interval(-2.0, Inf)) == Interval(-27.0, Inf) + @test fma(Interval(1.0, 5.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) == Interval(-27.0, Inf) + @test fma(Interval(1.0, 5.0), Interval(1.0, 3.0), Interval(-2.0, Inf)) == Interval(-1.0, Inf) + @test fma(Interval(1.0, 5.0), Interval(-Inf, -1.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(1.0, 5.0), Interval(-Inf, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(1.0, 5.0), Interval(-5.0, Inf), Interval(-2.0, Inf)) == Interval(-27.0, Inf) + @test fma(Interval(1.0, 5.0), Interval(1.0, Inf), Interval(-2.0, Inf)) == Interval(-1.0, Inf) + @test fma(Interval(1.0, 5.0), entireinterval(Float64), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(-0.0, -0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-1.0, 5.0), Interval(0.0, 0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-1.0, 5.0), Interval(-5.0, -1.0), Interval(-2.0, Inf)) == Interval(-27.0, Inf) #min max - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) --> Interval(-27.0, Inf) - @fact fma(Interval(-10.0, 2.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) --> Interval(-32.0, Inf) - @fact fma(Interval(-1.0, 5.0), Interval(-1.0, 10.0), Interval(-2.0, Inf)) --> Interval(-12.0, Inf) - @fact fma(Interval(-2.0, 2.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) --> Interval(-12.0, Inf) + @test fma(Interval(-1.0, 5.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) == Interval(-27.0, Inf) + @test fma(Interval(-10.0, 2.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) == Interval(-32.0, Inf) + @test fma(Interval(-1.0, 5.0), Interval(-1.0, 10.0), Interval(-2.0, Inf)) == Interval(-12.0, Inf) + @test fma(Interval(-2.0, 2.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) == Interval(-12.0, Inf) #end min max - @fact fma(Interval(-1.0, 5.0), Interval(1.0, 3.0), Interval(-2.0, Inf)) --> Interval(-5.0, Inf) - @fact fma(Interval(-1.0, 5.0), Interval(-Inf, -1.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(-Inf, 3.0), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, Inf), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(1.0, Inf), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), entireinterval(Float64), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(0.0, 0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-10.0, -5.0), Interval(-0.0, -0.0), Interval(-2.0, Inf)) --> Interval(-2.0, Inf) - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, -1.0), Interval(-2.0, Inf)) --> Interval(3.0, Inf) - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) --> Interval(-32.0, Inf) - @fact fma(Interval(-10.0, -5.0), Interval(1.0, 3.0), Interval(-2.0, Inf)) --> Interval(-32.0, Inf) - @fact fma(Interval(-10.0, -5.0), Interval(-Inf, -1.0), Interval(-2.0, Inf)) --> Interval(3.0, Inf) - @fact fma(Interval(-10.0, -5.0), Interval(-Inf, 3.0), Interval(-2.0, Inf)) --> Interval(-32.0, Inf) - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, Inf), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(1.0, Inf), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), entireinterval(Float64), Interval(-2.0, Inf)) --> entireinterval(Float64) - @fact fma(∅, ∅, entireinterval(Float64)) --> ∅ - @fact fma(Interval(-1.0, 1.0), ∅, entireinterval(Float64)) --> ∅ - @fact fma(∅, Interval(-1.0, 1.0), entireinterval(Float64)) --> ∅ - @fact fma(∅, entireinterval(Float64), entireinterval(Float64)) --> ∅ - @fact fma(entireinterval(Float64), ∅, entireinterval(Float64)) --> ∅ - @fact fma(Interval(0.0, 0.0), ∅, entireinterval(Float64)) --> ∅ - @fact fma(Interval(-0.0, -0.0), ∅, entireinterval(Float64)) --> ∅ - @fact fma(∅, Interval(0.0, 0.0), entireinterval(Float64)) --> ∅ - @fact fma(∅, Interval(-0.0, -0.0), entireinterval(Float64)) --> ∅ - @fact fma(entireinterval(Float64), Interval(0.0, 0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-0.0, -0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-5.0, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-5.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(1.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-Inf, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-Inf, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(-5.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), Interval(1.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(entireinterval(Float64), entireinterval(Float64), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(0.0, 0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(-0.0, -0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(-5.0, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(-5.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(1.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(-Inf, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(-Inf, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(-5.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), Interval(1.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, Inf), entireinterval(Float64), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(0.0, 0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(-0.0, -0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(-5.0, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(-5.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(1.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(-Inf, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(-Inf, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(-5.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), Interval(1.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, Inf), entireinterval(Float64), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(0.0, 0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(-0.0, -0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(1.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(-Inf, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(-Inf, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(-5.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), Interval(1.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, 3.0), entireinterval(Float64), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(0.0, 0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(-0.0, -0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(1.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(-Inf, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(-Inf, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(-5.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), Interval(1.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-Inf, -3.0), entireinterval(Float64), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(0.0, 0.0), Interval(0.0, 0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(0.0, 0.0), Interval(-0.0, -0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(0.0, 0.0), Interval(-5.0, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(0.0, 0.0), Interval(-5.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(0.0, 0.0), Interval(1.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(0.0, 0.0), Interval(-Inf, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(0.0, 0.0), Interval(-Inf, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(0.0, 0.0), Interval(-5.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(0.0, 0.0), Interval(1.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(0.0, 0.0), entireinterval(Float64), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-0.0, -0.0), Interval(0.0, 0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-0.0, -0.0), Interval(-0.0, -0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-0.0, -0.0), Interval(1.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-0.0, -0.0), Interval(-Inf, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-0.0, -0.0), Interval(-Inf, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-0.0, -0.0), Interval(-5.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-0.0, -0.0), Interval(1.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-0.0, -0.0), entireinterval(Float64), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, 5.0), Interval(0.0, 0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, 5.0), Interval(-0.0, -0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, 5.0), Interval(-5.0, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, 5.0), Interval(-5.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, 5.0), Interval(1.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, 5.0), Interval(-Inf, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, 5.0), Interval(-Inf, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, 5.0), Interval(-5.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, 5.0), Interval(1.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(1.0, 5.0), entireinterval(Float64), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(0.0, 0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(-0.0, -0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, -1.0), entireinterval(Float64)) --> entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(1.0, 3.0), Interval(-2.0, Inf)) == Interval(-5.0, Inf) + @test fma(Interval(-1.0, 5.0), Interval(-Inf, -1.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(-Inf, 3.0), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(-5.0, Inf), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(1.0, Inf), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), entireinterval(Float64), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(0.0, 0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-10.0, -5.0), Interval(-0.0, -0.0), Interval(-2.0, Inf)) == Interval(-2.0, Inf) + @test fma(Interval(-10.0, -5.0), Interval(-5.0, -1.0), Interval(-2.0, Inf)) == Interval(3.0, Inf) + @test fma(Interval(-10.0, -5.0), Interval(-5.0, 3.0), Interval(-2.0, Inf)) == Interval(-32.0, Inf) + @test fma(Interval(-10.0, -5.0), Interval(1.0, 3.0), Interval(-2.0, Inf)) == Interval(-32.0, Inf) + @test fma(Interval(-10.0, -5.0), Interval(-Inf, -1.0), Interval(-2.0, Inf)) == Interval(3.0, Inf) + @test fma(Interval(-10.0, -5.0), Interval(-Inf, 3.0), Interval(-2.0, Inf)) == Interval(-32.0, Inf) + @test fma(Interval(-10.0, -5.0), Interval(-5.0, Inf), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(1.0, Inf), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), entireinterval(Float64), Interval(-2.0, Inf)) == entireinterval(Float64) + @test fma(∅, ∅, entireinterval(Float64)) == ∅ + @test fma(Interval(-1.0, 1.0), ∅, entireinterval(Float64)) == ∅ + @test fma(∅, Interval(-1.0, 1.0), entireinterval(Float64)) == ∅ + @test fma(∅, entireinterval(Float64), entireinterval(Float64)) == ∅ + @test fma(entireinterval(Float64), ∅, entireinterval(Float64)) == ∅ + @test fma(Interval(0.0, 0.0), ∅, entireinterval(Float64)) == ∅ + @test fma(Interval(-0.0, -0.0), ∅, entireinterval(Float64)) == ∅ + @test fma(∅, Interval(0.0, 0.0), entireinterval(Float64)) == ∅ + @test fma(∅, Interval(-0.0, -0.0), entireinterval(Float64)) == ∅ + @test fma(entireinterval(Float64), Interval(0.0, 0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-0.0, -0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-5.0, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-5.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(1.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-Inf, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-Inf, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(-5.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(entireinterval(Float64), Interval(1.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(entireinterval(Float64), entireinterval(Float64), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(0.0, 0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(-0.0, -0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(-5.0, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(-5.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(1.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(-Inf, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(-Inf, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(-5.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), Interval(1.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, Inf), entireinterval(Float64), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(0.0, 0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(-0.0, -0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(-5.0, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(-5.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(1.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(-Inf, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(-Inf, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(-5.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), Interval(1.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, Inf), entireinterval(Float64), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(0.0, 0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(-0.0, -0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(-5.0, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(-5.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(1.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(-Inf, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(-Inf, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(-5.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), Interval(1.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, 3.0), entireinterval(Float64), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(0.0, 0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(-0.0, -0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(-5.0, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(-5.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(1.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(-Inf, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(-Inf, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(-5.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), Interval(1.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-Inf, -3.0), entireinterval(Float64), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(0.0, 0.0), Interval(0.0, 0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(0.0, 0.0), Interval(-0.0, -0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(0.0, 0.0), Interval(-5.0, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(0.0, 0.0), Interval(-5.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(0.0, 0.0), Interval(1.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(0.0, 0.0), Interval(-Inf, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(0.0, 0.0), Interval(-Inf, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(0.0, 0.0), Interval(-5.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(0.0, 0.0), Interval(1.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(0.0, 0.0), entireinterval(Float64), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-0.0, -0.0), Interval(0.0, 0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-0.0, -0.0), Interval(-0.0, -0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-0.0, -0.0), Interval(-5.0, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-0.0, -0.0), Interval(-5.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-0.0, -0.0), Interval(1.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-0.0, -0.0), Interval(-Inf, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-0.0, -0.0), Interval(-Inf, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-0.0, -0.0), Interval(-5.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-0.0, -0.0), Interval(1.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-0.0, -0.0), entireinterval(Float64), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, 5.0), Interval(0.0, 0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, 5.0), Interval(-0.0, -0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, 5.0), Interval(-5.0, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, 5.0), Interval(-5.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, 5.0), Interval(1.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, 5.0), Interval(-Inf, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, 5.0), Interval(-Inf, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, 5.0), Interval(-5.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, 5.0), Interval(1.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(1.0, 5.0), entireinterval(Float64), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(0.0, 0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(-0.0, -0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(-5.0, -1.0), entireinterval(Float64)) == entireinterval(Float64) #min max - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, 2.0), Interval(-5.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(-1.0, 10.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-2.0, 2.0), Interval(-5.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(-5.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-10.0, 2.0), Interval(-5.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(-1.0, 10.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-2.0, 2.0), Interval(-5.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) #end min max - @fact fma(Interval(-1.0, 5.0), Interval(1.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(-Inf, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(-Inf, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(-5.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), Interval(1.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-1.0, 5.0), entireinterval(Float64), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(0.0, 0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(-0.0, -0.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(1.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(-Inf, -1.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(-Inf, 3.0), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(-5.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), Interval(1.0, Inf), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(-10.0, -5.0), entireinterval(Float64), entireinterval(Float64)) --> entireinterval(Float64) - @fact fma(Interval(0.1, 0.5), Interval(-5.0, 3.0), Interval(-0.1, 0.1)) --> Interval(-0x1.4cccccccccccdp+1, 0x1.999999999999ap+0) - @fact fma(Interval(-0.5, 0.2), Interval(-5.0, 3.0), Interval(-0.1, 0.1)) --> Interval(-0x1.999999999999ap+0, 0x1.4cccccccccccdp+1) - @fact fma(Interval(-0.5, -0.1), Interval(2.0, 3.0), Interval(-0.1, 0.1)) --> Interval(-0x1.999999999999ap+0, -0x1.999999999999ap-4) - @fact fma(Interval(-0.5, -0.1), Interval(-Inf, 3.0), Interval(-0.1, 0.1)) --> Interval(-0x1.999999999999ap+0, Inf) + @test fma(Interval(-1.0, 5.0), Interval(1.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(-Inf, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(-Inf, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(-5.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), Interval(1.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-1.0, 5.0), entireinterval(Float64), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(0.0, 0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(-0.0, -0.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(-5.0, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(-5.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(1.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(-Inf, -1.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(-Inf, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(-5.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), Interval(1.0, Inf), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(-10.0, -5.0), entireinterval(Float64), entireinterval(Float64)) == entireinterval(Float64) + @test fma(Interval(0.1, 0.5), Interval(-5.0, 3.0), Interval(-0.1, 0.1)) == Interval(-0x1.4cccccccccccdp+1, 0x1.999999999999ap+0) + @test fma(Interval(-0.5, 0.2), Interval(-5.0, 3.0), Interval(-0.1, 0.1)) == Interval(-0x1.999999999999ap+0, 0x1.4cccccccccccdp+1) + @test fma(Interval(-0.5, -0.1), Interval(2.0, 3.0), Interval(-0.1, 0.1)) == Interval(-0x1.999999999999ap+0, -0x1.999999999999ap-4) + @test fma(Interval(-0.5, -0.1), Interval(-Inf, 3.0), Interval(-0.1, 0.1)) == Interval(-0x1.999999999999ap+0, Inf) end -facts("minimal_fma_dec_test") do - @fact fma(DecoratedInterval(Interval(-0.5, -0.1), com), DecoratedInterval(Interval(-Inf, 3.0), dac), DecoratedInterval(Interval(-0.1, 0.1), com)) --> DecoratedInterval(Interval(-0x1.999999999999ap+0, Inf), dac) - @fact decoration(fma(DecoratedInterval(Interval(-0.5, -0.1), com), DecoratedInterval(Interval(-Inf, 3.0), dac), DecoratedInterval(Interval(-0.1, 0.1), com))) --> decoration(DecoratedInterval(Interval(-0x1.999999999999ap+0, Inf), dac)) - @fact fma(DecoratedInterval(Interval(1.0, 2.0), com), DecoratedInterval(Interval(1.0, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(0.0, 1.0), com)) --> DecoratedInterval(Interval(1.0, Inf), dac) - @fact decoration(fma(DecoratedInterval(Interval(1.0, 2.0), com), DecoratedInterval(Interval(1.0, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(0.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(1.0, Inf), dac)) - @fact fma(DecoratedInterval(Interval(1.0, 2.0), com), DecoratedInterval(Interval(1.0, 2.0), com), DecoratedInterval(Interval(2.0, 5.0), com)) --> DecoratedInterval(Interval(3.0, 9.0), com) - @fact decoration(fma(DecoratedInterval(Interval(1.0, 2.0), com), DecoratedInterval(Interval(1.0, 2.0), com), DecoratedInterval(Interval(2.0, 5.0), com))) --> decoration(DecoratedInterval(Interval(3.0, 9.0), com)) +@testset "minimal_fma_dec_test" begin + @test fma(DecoratedInterval(Interval(-0.5, -0.1), com), DecoratedInterval(Interval(-Inf, 3.0), dac), DecoratedInterval(Interval(-0.1, 0.1), com)) == DecoratedInterval(Interval(-0x1.999999999999ap+0, Inf), dac) + @test decoration(fma(DecoratedInterval(Interval(-0.5, -0.1), com), DecoratedInterval(Interval(-Inf, 3.0), dac), DecoratedInterval(Interval(-0.1, 0.1), com))) == decoration(DecoratedInterval(Interval(-0x1.999999999999ap+0, Inf), dac)) + @test fma(DecoratedInterval(Interval(1.0, 2.0), com), DecoratedInterval(Interval(1.0, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(0.0, 1.0), com)) == DecoratedInterval(Interval(1.0, Inf), dac) + @test decoration(fma(DecoratedInterval(Interval(1.0, 2.0), com), DecoratedInterval(Interval(1.0, 0x1.fffffffffffffp1023), com), DecoratedInterval(Interval(0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(1.0, Inf), dac)) + @test fma(DecoratedInterval(Interval(1.0, 2.0), com), DecoratedInterval(Interval(1.0, 2.0), com), DecoratedInterval(Interval(2.0, 5.0), com)) == DecoratedInterval(Interval(3.0, 9.0), com) + @test decoration(fma(DecoratedInterval(Interval(1.0, 2.0), com), DecoratedInterval(Interval(1.0, 2.0), com), DecoratedInterval(Interval(2.0, 5.0), com))) == decoration(DecoratedInterval(Interval(3.0, 9.0), com)) end -facts("minimal_pown_test") do - @fact ∅ ^ 0 --> ∅ - @fact entireinterval(Float64) ^ 0 --> Interval(1.0, 1.0) - @fact Interval(0.0, 0.0) ^ 0 --> Interval(1.0, 1.0) - @fact Interval(-0.0, -0.0) ^ 0 --> Interval(1.0, 1.0) - @fact Interval(13.1, 13.1) ^ 0 --> Interval(1.0, 1.0) - @fact Interval(-7451.145, -7451.145) ^ 0 --> Interval(1.0, 1.0) - @fact Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ 0 --> Interval(1.0, 1.0) - @fact Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ 0 --> Interval(1.0, 1.0) - @fact Interval(0.0, Inf) ^ 0 --> Interval(1.0, 1.0) - @fact Interval(-0.0, Inf) ^ 0 --> Interval(1.0, 1.0) - @fact Interval(-Inf, 0.0) ^ 0 --> Interval(1.0, 1.0) - @fact Interval(-Inf, -0.0) ^ 0 --> Interval(1.0, 1.0) - @fact Interval(-324.3, 2.5) ^ 0 --> Interval(1.0, 1.0) - @fact ∅ ^ 2 --> ∅ - @fact entireinterval(Float64) ^ 2 --> Interval(0.0, Inf) - @fact Interval(0.0, 0.0) ^ 2 --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ 2 --> Interval(0.0, 0.0) - @fact Interval(13.1, 13.1) ^ 2 --> Interval(0x1.573851eb851ebp+7, 0x1.573851eb851ecp+7) - @fact Interval(-7451.145, -7451.145) ^ 2 --> Interval(0x1.a794a4e7cfaadp+25, 0x1.a794a4e7cfaaep+25) - @fact Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ 2 --> Interval(0x1.fffffffffffffp1023, Inf) - @fact Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ 2 --> Interval(0x1.fffffffffffffp1023, Inf) - @fact Interval(0.0, Inf) ^ 2 --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ 2 --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) ^ 2 --> Interval(0.0, Inf) - @fact Interval(-Inf, -0.0) ^ 2 --> Interval(0.0, Inf) - @fact Interval(-324.3, 2.5) ^ 2 --> Interval(0.0, 0x1.9ad27d70a3d72p+16) - @fact Interval(0.01, 2.33) ^ 2 --> Interval(0x1.a36e2eb1c432cp-14, 0x1.5b7318fc50482p+2) - @fact Interval(-1.9, -0.33) ^ 2 --> Interval(0x1.be0ded288ce7p-4, 0x1.ce147ae147ae1p+1) - @fact ∅ ^ 8 --> ∅ - @fact entireinterval(Float64) ^ 8 --> Interval(0.0, Inf) - @fact Interval(0.0, 0.0) ^ 8 --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ 8 --> Interval(0.0, 0.0) - @fact Interval(13.1, 13.1) ^ 8 --> Interval(0x1.9d8fd495853f5p+29, 0x1.9d8fd495853f6p+29) - @fact Interval(-7451.145, -7451.145) ^ 8 --> Interval(0x1.dfb1bb622e70dp+102, 0x1.dfb1bb622e70ep+102) - @fact Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ 8 --> Interval(0x1.fffffffffffffp1023, Inf) - @fact Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ 8 --> Interval(0x1.fffffffffffffp1023, Inf) - @fact Interval(0.0, Inf) ^ 8 --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ 8 --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) ^ 8 --> Interval(0.0, Inf) - @fact Interval(-Inf, -0.0) ^ 8 --> Interval(0.0, Inf) - @fact Interval(-324.3, 2.5) ^ 8 --> Interval(0.0, 0x1.a87587109655p+66) - @fact Interval(0.01, 2.33) ^ 8 --> Interval(0x1.cd2b297d889bdp-54, 0x1.b253d9f33ce4dp+9) - @fact Interval(-1.9, -0.33) ^ 8 --> Interval(0x1.26f1fcdd502a3p-13, 0x1.53abd7bfc4fc6p+7) - @fact ∅ ^ 1 --> ∅ - @fact entireinterval(Float64) ^ 1 --> entireinterval(Float64) - @fact Interval(0.0, 0.0) ^ 1 --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ 1 --> Interval(0.0, 0.0) - @fact Interval(13.1, 13.1) ^ 1 --> Interval(13.1, 13.1) - @fact Interval(-7451.145, -7451.145) ^ 1 --> Interval(-7451.145, -7451.145) - @fact Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ 1 --> Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) - @fact Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ 1 --> Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) - @fact Interval(0.0, Inf) ^ 1 --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ 1 --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) ^ 1 --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -0.0) ^ 1 --> Interval(-Inf, 0.0) - @fact Interval(-324.3, 2.5) ^ 1 --> Interval(-324.3, 2.5) - @fact Interval(0.01, 2.33) ^ 1 --> Interval(0.01, 2.33) - @fact Interval(-1.9, -0.33) ^ 1 --> Interval(-1.9, -0.33) - @fact ∅ ^ 3 --> ∅ - @fact entireinterval(Float64) ^ 3 --> entireinterval(Float64) - @fact Interval(0.0, 0.0) ^ 3 --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ 3 --> Interval(0.0, 0.0) - @fact Interval(13.1, 13.1) ^ 3 --> Interval(0x1.1902e978d4fdep+11, 0x1.1902e978d4fdfp+11) - @fact Interval(-7451.145, -7451.145) ^ 3 --> Interval(-0x1.81460637b9a3dp+38, -0x1.81460637b9a3cp+38) - @fact Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ 3 --> Interval(0x1.fffffffffffffp1023, Inf) - @fact Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ 3 --> Interval(-Inf, -0x1.fffffffffffffp1023) - @fact Interval(0.0, Inf) ^ 3 --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ 3 --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) ^ 3 --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -0.0) ^ 3 --> Interval(-Inf, 0.0) - @fact Interval(-324.3, 2.5) ^ 3 --> Interval(-0x1.0436d2f418938p+25, 0x1.f4p+3) - @fact Interval(0.01, 2.33) ^ 3 --> Interval(0x1.0c6f7a0b5ed8dp-20, 0x1.94c75e6362a6p+3) - @fact Interval(-1.9, -0.33) ^ 3 --> Interval(-0x1.b6f9db22d0e55p+2, -0x1.266559f6ec5b1p-5) - @fact ∅ ^ 7 --> ∅ - @fact entireinterval(Float64) ^ 7 --> entireinterval(Float64) - @fact Interval(0.0, 0.0) ^ 7 --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ 7 --> Interval(0.0, 0.0) - @fact Interval(13.1, 13.1) ^ 7 --> Interval(0x1.f91d1b185493bp+25, 0x1.f91d1b185493cp+25) - @fact Interval(-7451.145, -7451.145) ^ 7 --> Interval(-0x1.07b1da32f9b59p+90, -0x1.07b1da32f9b58p+90) - @fact Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ 7 --> Interval(0x1.fffffffffffffp1023, Inf) - @fact Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ 7 --> Interval(-Inf, -0x1.fffffffffffffp1023) - @fact Interval(0.0, Inf) ^ 7 --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ 7 --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) ^ 7 --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -0.0) ^ 7 --> Interval(-Inf, 0.0) - @fact Interval(-324.3, 2.5) ^ 7 --> Interval(-0x1.4f109959e6d7fp+58, 0x1.312dp+9) - @fact Interval(0.01, 2.33) ^ 7 --> Interval(0x1.6849b86a12b9bp-47, 0x1.74d0373c76313p+8) - @fact Interval(-1.9, -0.33) ^ 7 --> Interval(-0x1.658c775099757p+6, -0x1.bee30301bf47ap-12) - @fact ∅ ^ -2 --> ∅ - @fact entireinterval(Float64) ^ -2 --> Interval(0.0, Inf) - @fact Interval(0.0, 0.0) ^ -2 --> ∅ - @fact Interval(-0.0, -0.0) ^ -2 --> ∅ - @fact Interval(13.1, 13.1) ^ -2 --> Interval(0x1.7de3a077d1568p-8, 0x1.7de3a077d1569p-8) - @fact Interval(-7451.145, -7451.145) ^ -2 --> Interval(0x1.3570290cd6e14p-26, 0x1.3570290cd6e15p-26) - @fact Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ -2 --> Interval(0x0p+0, 0x0.0000000000001p-1022) - @fact Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ -2 --> Interval(0x0p+0, 0x0.0000000000001p-1022) - @fact Interval(0.0, Inf) ^ -2 --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ -2 --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) ^ -2 --> Interval(0.0, Inf) - @fact Interval(-Inf, -0.0) ^ -2 --> Interval(0.0, Inf) - @fact Interval(-324.3, 2.5) ^ -2 --> Interval(0x1.3f0c482c977c9p-17, Inf) - @fact Interval(0.01, 2.33) ^ -2 --> Interval(0x1.793d85ef38e47p-3, 0x1.388p+13) - @fact Interval(-1.9, -0.33) ^ -2 --> Interval(0x1.1ba81104f6c8p-2, 0x1.25d8fa1f801e1p+3) - @fact ∅ ^ -8 --> ∅ - @fact entireinterval(Float64) ^ -8 --> Interval(0.0, Inf) - @fact Interval(0.0, 0.0) ^ -8 --> ∅ - @fact Interval(-0.0, -0.0) ^ -8 --> ∅ - @fact Interval(13.1, 13.1) ^ -8 --> Interval(0x1.3cef39247ca6dp-30, 0x1.3cef39247ca6ep-30) - @fact Interval(-7451.145, -7451.145) ^ -8 --> Interval(0x1.113d9ef0a99acp-103, 0x1.113d9ef0a99adp-103) - @fact Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ -8 --> Interval(0x0p+0, 0x0.0000000000001p-1022) - @fact Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ -8 --> Interval(0x0p+0, 0x0.0000000000001p-1022) - @fact Interval(0.0, Inf) ^ -8 --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ -8 --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) ^ -8 --> Interval(0.0, Inf) - @fact Interval(-Inf, -0.0) ^ -8 --> Interval(0.0, Inf) - @fact Interval(-324.3, 2.5) ^ -8 --> Interval(0x1.34cc3764d1e0cp-67, Inf) - @fact Interval(0.01, 2.33) ^ -8 --> Interval(0x1.2dc80db11ab7cp-10, 0x1.1c37937e08p+53) - @fact Interval(-1.9, -0.33) ^ -8 --> Interval(0x1.81e104e61630dp-8, 0x1.bc64f21560e34p+12) - @fact ∅ ^ -1 --> ∅ - @fact entireinterval(Float64) ^ -1 --> entireinterval(Float64) - @fact Interval(0.0, 0.0) ^ -1 --> ∅ - @fact Interval(-0.0, -0.0) ^ -1 --> ∅ - @fact Interval(13.1, 13.1) ^ -1 --> Interval(0x1.38abf82ee6986p-4, 0x1.38abf82ee6987p-4) - @fact Interval(-7451.145, -7451.145) ^ -1 --> Interval(-0x1.197422c9048bfp-13, -0x1.197422c9048bep-13) - @fact Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ -1 --> Interval(0x0.4p-1022, 0x0.4000000000001p-1022) - @fact Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ -1 --> Interval(-0x0.4000000000001p-1022, -0x0.4p-1022) - @fact Interval(0.0, Inf) ^ -1 --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ -1 --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) ^ -1 --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -0.0) ^ -1 --> Interval(-Inf, 0.0) - @fact Interval(-324.3, 2.5) ^ -1 --> entireinterval(Float64) - @fact Interval(0.01, 2.33) ^ -1 --> Interval(0x1.b77c278dbbe13p-2, 0x1.9p+6) - @fact Interval(-1.9, -0.33) ^ -1 --> Interval(-0x1.83e0f83e0f83ep+1, -0x1.0d79435e50d79p-1) - @fact ∅ ^ -3 --> ∅ - @fact entireinterval(Float64) ^ -3 --> entireinterval(Float64) - @fact Interval(0.0, 0.0) ^ -3 --> ∅ - @fact Interval(-0.0, -0.0) ^ -3 --> ∅ - @fact Interval(13.1, 13.1) ^ -3 --> Interval(0x1.d26df4d8b1831p-12, 0x1.d26df4d8b1832p-12) - @fact Interval(-7451.145, -7451.145) ^ -3 --> Interval(-0x1.54347ded91b19p-39, -0x1.54347ded91b18p-39) - @fact Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ -3 --> Interval(0x0p+0, 0x0.0000000000001p-1022) - @fact Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ -3 --> Interval(-0x0.0000000000001p-1022, -0x0p+0) - @fact Interval(0.0, Inf) ^ -3 --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ -3 --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) ^ -3 --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -0.0) ^ -3 --> Interval(-Inf, 0.0) - @fact Interval(-324.3, 2.5) ^ -3 --> entireinterval(Float64) - @fact Interval(0.01, 2.33) ^ -3 --> Interval(0x1.43cfba61aacabp-4, 0x1.e848p+19) - @fact Interval(-1.9, -0.33) ^ -3 --> Interval(-0x1.bd393ce9e8e7cp+4, -0x1.2a95f6f7c066cp-3) - @fact ∅ ^ -7 --> ∅ - @fact entireinterval(Float64) ^ -7 --> entireinterval(Float64) - @fact Interval(0.0, 0.0) ^ -7 --> ∅ - @fact Interval(-0.0, -0.0) ^ -7 --> ∅ - @fact Interval(13.1, 13.1) ^ -7 --> Interval(0x1.037d76c912dbcp-26, 0x1.037d76c912dbdp-26) - @fact Interval(-7451.145, -7451.145) ^ -7 --> Interval(-0x1.f10f41fb8858fp-91, -0x1.f10f41fb8858ep-91) - @fact Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ -7 --> Interval(0x0p+0, 0x0.0000000000001p-1022) - @fact Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ -7 --> Interval(-0x0.0000000000001p-1022, -0x0p+0) - @fact Interval(0.0, Inf) ^ -7 --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ -7 --> Interval(0.0, Inf) - @fact Interval(-Inf, 0.0) ^ -7 --> Interval(-Inf, 0.0) - @fact Interval(-Inf, -0.0) ^ -7 --> Interval(-Inf, 0.0) - @fact Interval(-324.3, 2.5) ^ -7 --> entireinterval(Float64) - @fact Interval(0.01, 2.33) ^ -7 --> Interval(0x1.5f934d64162a9p-9, 0x1.6bcc41e9p+46) - @fact Interval(-1.9, -0.33) ^ -7 --> Interval(-0x1.254cdd3711ddbp+11, -0x1.6e95c4a761e19p-7) +@testset "minimal_pown_test" begin + @test ∅ ^ 0 == ∅ + @test entireinterval(Float64) ^ 0 == Interval(1.0, 1.0) + @test Interval(0.0, 0.0) ^ 0 == Interval(1.0, 1.0) + @test Interval(-0.0, -0.0) ^ 0 == Interval(1.0, 1.0) + @test Interval(13.1, 13.1) ^ 0 == Interval(1.0, 1.0) + @test Interval(-7451.145, -7451.145) ^ 0 == Interval(1.0, 1.0) + @test Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ 0 == Interval(1.0, 1.0) + @test Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ 0 == Interval(1.0, 1.0) + @test Interval(0.0, Inf) ^ 0 == Interval(1.0, 1.0) + @test Interval(-0.0, Inf) ^ 0 == Interval(1.0, 1.0) + @test Interval(-Inf, 0.0) ^ 0 == Interval(1.0, 1.0) + @test Interval(-Inf, -0.0) ^ 0 == Interval(1.0, 1.0) + @test Interval(-324.3, 2.5) ^ 0 == Interval(1.0, 1.0) + @test ∅ ^ 2 == ∅ + @test entireinterval(Float64) ^ 2 == Interval(0.0, Inf) + @test Interval(0.0, 0.0) ^ 2 == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ 2 == Interval(0.0, 0.0) + @test Interval(13.1, 13.1) ^ 2 == Interval(0x1.573851eb851ebp+7, 0x1.573851eb851ecp+7) + @test Interval(-7451.145, -7451.145) ^ 2 == Interval(0x1.a794a4e7cfaadp+25, 0x1.a794a4e7cfaaep+25) + @test Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ 2 == Interval(0x1.fffffffffffffp1023, Inf) + @test Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ 2 == Interval(0x1.fffffffffffffp1023, Inf) + @test Interval(0.0, Inf) ^ 2 == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ 2 == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) ^ 2 == Interval(0.0, Inf) + @test Interval(-Inf, -0.0) ^ 2 == Interval(0.0, Inf) + @test Interval(-324.3, 2.5) ^ 2 == Interval(0.0, 0x1.9ad27d70a3d72p+16) + @test Interval(0.01, 2.33) ^ 2 == Interval(0x1.a36e2eb1c432cp-14, 0x1.5b7318fc50482p+2) + @test Interval(-1.9, -0.33) ^ 2 == Interval(0x1.be0ded288ce7p-4, 0x1.ce147ae147ae1p+1) + @test ∅ ^ 8 == ∅ + @test entireinterval(Float64) ^ 8 == Interval(0.0, Inf) + @test Interval(0.0, 0.0) ^ 8 == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ 8 == Interval(0.0, 0.0) + @test Interval(13.1, 13.1) ^ 8 == Interval(0x1.9d8fd495853f5p+29, 0x1.9d8fd495853f6p+29) + @test Interval(-7451.145, -7451.145) ^ 8 == Interval(0x1.dfb1bb622e70dp+102, 0x1.dfb1bb622e70ep+102) + @test Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ 8 == Interval(0x1.fffffffffffffp1023, Inf) + @test Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ 8 == Interval(0x1.fffffffffffffp1023, Inf) + @test Interval(0.0, Inf) ^ 8 == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ 8 == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) ^ 8 == Interval(0.0, Inf) + @test Interval(-Inf, -0.0) ^ 8 == Interval(0.0, Inf) + @test Interval(-324.3, 2.5) ^ 8 == Interval(0.0, 0x1.a87587109655p+66) + @test Interval(0.01, 2.33) ^ 8 == Interval(0x1.cd2b297d889bdp-54, 0x1.b253d9f33ce4dp+9) + @test Interval(-1.9, -0.33) ^ 8 == Interval(0x1.26f1fcdd502a3p-13, 0x1.53abd7bfc4fc6p+7) + @test ∅ ^ 1 == ∅ + @test entireinterval(Float64) ^ 1 == entireinterval(Float64) + @test Interval(0.0, 0.0) ^ 1 == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ 1 == Interval(0.0, 0.0) + @test Interval(13.1, 13.1) ^ 1 == Interval(13.1, 13.1) + @test Interval(-7451.145, -7451.145) ^ 1 == Interval(-7451.145, -7451.145) + @test Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ 1 == Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) + @test Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ 1 == Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) + @test Interval(0.0, Inf) ^ 1 == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ 1 == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) ^ 1 == Interval(-Inf, 0.0) + @test Interval(-Inf, -0.0) ^ 1 == Interval(-Inf, 0.0) + @test Interval(-324.3, 2.5) ^ 1 == Interval(-324.3, 2.5) + @test Interval(0.01, 2.33) ^ 1 == Interval(0.01, 2.33) + @test Interval(-1.9, -0.33) ^ 1 == Interval(-1.9, -0.33) + @test ∅ ^ 3 == ∅ + @test entireinterval(Float64) ^ 3 == entireinterval(Float64) + @test Interval(0.0, 0.0) ^ 3 == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ 3 == Interval(0.0, 0.0) + @test Interval(13.1, 13.1) ^ 3 == Interval(0x1.1902e978d4fdep+11, 0x1.1902e978d4fdfp+11) + @test Interval(-7451.145, -7451.145) ^ 3 == Interval(-0x1.81460637b9a3dp+38, -0x1.81460637b9a3cp+38) + @test Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ 3 == Interval(0x1.fffffffffffffp1023, Inf) + @test Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ 3 == Interval(-Inf, -0x1.fffffffffffffp1023) + @test Interval(0.0, Inf) ^ 3 == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ 3 == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) ^ 3 == Interval(-Inf, 0.0) + @test Interval(-Inf, -0.0) ^ 3 == Interval(-Inf, 0.0) + @test Interval(-324.3, 2.5) ^ 3 == Interval(-0x1.0436d2f418938p+25, 0x1.f4p+3) + @test Interval(0.01, 2.33) ^ 3 == Interval(0x1.0c6f7a0b5ed8dp-20, 0x1.94c75e6362a6p+3) + @test Interval(-1.9, -0.33) ^ 3 == Interval(-0x1.b6f9db22d0e55p+2, -0x1.266559f6ec5b1p-5) + @test ∅ ^ 7 == ∅ + @test entireinterval(Float64) ^ 7 == entireinterval(Float64) + @test Interval(0.0, 0.0) ^ 7 == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ 7 == Interval(0.0, 0.0) + @test Interval(13.1, 13.1) ^ 7 == Interval(0x1.f91d1b185493bp+25, 0x1.f91d1b185493cp+25) + @test Interval(-7451.145, -7451.145) ^ 7 == Interval(-0x1.07b1da32f9b59p+90, -0x1.07b1da32f9b58p+90) + @test Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ 7 == Interval(0x1.fffffffffffffp1023, Inf) + @test Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ 7 == Interval(-Inf, -0x1.fffffffffffffp1023) + @test Interval(0.0, Inf) ^ 7 == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ 7 == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) ^ 7 == Interval(-Inf, 0.0) + @test Interval(-Inf, -0.0) ^ 7 == Interval(-Inf, 0.0) + @test Interval(-324.3, 2.5) ^ 7 == Interval(-0x1.4f109959e6d7fp+58, 0x1.312dp+9) + @test Interval(0.01, 2.33) ^ 7 == Interval(0x1.6849b86a12b9bp-47, 0x1.74d0373c76313p+8) + @test Interval(-1.9, -0.33) ^ 7 == Interval(-0x1.658c775099757p+6, -0x1.bee30301bf47ap-12) + @test ∅ ^ -2 == ∅ + @test entireinterval(Float64) ^ -2 == Interval(0.0, Inf) + @test Interval(0.0, 0.0) ^ -2 == ∅ + @test Interval(-0.0, -0.0) ^ -2 == ∅ + @test Interval(13.1, 13.1) ^ -2 == Interval(0x1.7de3a077d1568p-8, 0x1.7de3a077d1569p-8) + @test Interval(-7451.145, -7451.145) ^ -2 == Interval(0x1.3570290cd6e14p-26, 0x1.3570290cd6e15p-26) + @test Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ -2 == Interval(0x0p+0, 0x0.0000000000001p-1022) + @test Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ -2 == Interval(0x0p+0, 0x0.0000000000001p-1022) + @test Interval(0.0, Inf) ^ -2 == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ -2 == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) ^ -2 == Interval(0.0, Inf) + @test Interval(-Inf, -0.0) ^ -2 == Interval(0.0, Inf) + @test Interval(-324.3, 2.5) ^ -2 == Interval(0x1.3f0c482c977c9p-17, Inf) + @test Interval(0.01, 2.33) ^ -2 == Interval(0x1.793d85ef38e47p-3, 0x1.388p+13) + @test Interval(-1.9, -0.33) ^ -2 == Interval(0x1.1ba81104f6c8p-2, 0x1.25d8fa1f801e1p+3) + @test ∅ ^ -8 == ∅ + @test entireinterval(Float64) ^ -8 == Interval(0.0, Inf) + @test Interval(0.0, 0.0) ^ -8 == ∅ + @test Interval(-0.0, -0.0) ^ -8 == ∅ + @test Interval(13.1, 13.1) ^ -8 == Interval(0x1.3cef39247ca6dp-30, 0x1.3cef39247ca6ep-30) + @test Interval(-7451.145, -7451.145) ^ -8 == Interval(0x1.113d9ef0a99acp-103, 0x1.113d9ef0a99adp-103) + @test Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ -8 == Interval(0x0p+0, 0x0.0000000000001p-1022) + @test Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ -8 == Interval(0x0p+0, 0x0.0000000000001p-1022) + @test Interval(0.0, Inf) ^ -8 == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ -8 == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) ^ -8 == Interval(0.0, Inf) + @test Interval(-Inf, -0.0) ^ -8 == Interval(0.0, Inf) + @test Interval(-324.3, 2.5) ^ -8 == Interval(0x1.34cc3764d1e0cp-67, Inf) + @test Interval(0.01, 2.33) ^ -8 == Interval(0x1.2dc80db11ab7cp-10, 0x1.1c37937e08p+53) + @test Interval(-1.9, -0.33) ^ -8 == Interval(0x1.81e104e61630dp-8, 0x1.bc64f21560e34p+12) + @test ∅ ^ -1 == ∅ + @test entireinterval(Float64) ^ -1 == entireinterval(Float64) + @test Interval(0.0, 0.0) ^ -1 == ∅ + @test Interval(-0.0, -0.0) ^ -1 == ∅ + @test Interval(13.1, 13.1) ^ -1 == Interval(0x1.38abf82ee6986p-4, 0x1.38abf82ee6987p-4) + @test Interval(-7451.145, -7451.145) ^ -1 == Interval(-0x1.197422c9048bfp-13, -0x1.197422c9048bep-13) + @test Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ -1 == Interval(0x0.4p-1022, 0x0.4000000000001p-1022) + @test Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ -1 == Interval(-0x0.4000000000001p-1022, -0x0.4p-1022) + @test Interval(0.0, Inf) ^ -1 == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ -1 == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) ^ -1 == Interval(-Inf, 0.0) + @test Interval(-Inf, -0.0) ^ -1 == Interval(-Inf, 0.0) + @test Interval(-324.3, 2.5) ^ -1 == entireinterval(Float64) + @test Interval(0.01, 2.33) ^ -1 == Interval(0x1.b77c278dbbe13p-2, 0x1.9p+6) + @test Interval(-1.9, -0.33) ^ -1 == Interval(-0x1.83e0f83e0f83ep+1, -0x1.0d79435e50d79p-1) + @test ∅ ^ -3 == ∅ + @test entireinterval(Float64) ^ -3 == entireinterval(Float64) + @test Interval(0.0, 0.0) ^ -3 == ∅ + @test Interval(-0.0, -0.0) ^ -3 == ∅ + @test Interval(13.1, 13.1) ^ -3 == Interval(0x1.d26df4d8b1831p-12, 0x1.d26df4d8b1832p-12) + @test Interval(-7451.145, -7451.145) ^ -3 == Interval(-0x1.54347ded91b19p-39, -0x1.54347ded91b18p-39) + @test Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ -3 == Interval(0x0p+0, 0x0.0000000000001p-1022) + @test Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ -3 == Interval(-0x0.0000000000001p-1022, -0x0p+0) + @test Interval(0.0, Inf) ^ -3 == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ -3 == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) ^ -3 == Interval(-Inf, 0.0) + @test Interval(-Inf, -0.0) ^ -3 == Interval(-Inf, 0.0) + @test Interval(-324.3, 2.5) ^ -3 == entireinterval(Float64) + @test Interval(0.01, 2.33) ^ -3 == Interval(0x1.43cfba61aacabp-4, 0x1.e848p+19) + @test Interval(-1.9, -0.33) ^ -3 == Interval(-0x1.bd393ce9e8e7cp+4, -0x1.2a95f6f7c066cp-3) + @test ∅ ^ -7 == ∅ + @test entireinterval(Float64) ^ -7 == entireinterval(Float64) + @test Interval(0.0, 0.0) ^ -7 == ∅ + @test Interval(-0.0, -0.0) ^ -7 == ∅ + @test Interval(13.1, 13.1) ^ -7 == Interval(0x1.037d76c912dbcp-26, 0x1.037d76c912dbdp-26) + @test Interval(-7451.145, -7451.145) ^ -7 == Interval(-0x1.f10f41fb8858fp-91, -0x1.f10f41fb8858ep-91) + @test Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) ^ -7 == Interval(0x0p+0, 0x0.0000000000001p-1022) + @test Interval(-0x1.fffffffffffffp1023, -0x1.fffffffffffffp1023) ^ -7 == Interval(-0x0.0000000000001p-1022, -0x0p+0) + @test Interval(0.0, Inf) ^ -7 == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ -7 == Interval(0.0, Inf) + @test Interval(-Inf, 0.0) ^ -7 == Interval(-Inf, 0.0) + @test Interval(-Inf, -0.0) ^ -7 == Interval(-Inf, 0.0) + @test Interval(-324.3, 2.5) ^ -7 == entireinterval(Float64) + @test Interval(0.01, 2.33) ^ -7 == Interval(0x1.5f934d64162a9p-9, 0x1.6bcc41e9p+46) + @test Interval(-1.9, -0.33) ^ -7 == Interval(-0x1.254cdd3711ddbp+11, -0x1.6e95c4a761e19p-7) end -facts("minimal_pown_dec_test") do - @fact DecoratedInterval(Interval(-5.0, 10.0), com) ^ 0 --> DecoratedInterval(Interval(1.0, 1.0), com) - @fact decoration(DecoratedInterval(Interval(-5.0, 10.0), com) ^ 0) --> decoration(DecoratedInterval(Interval(1.0, 1.0), com)) - @fact DecoratedInterval(Interval(-Inf, 15.0), dac) ^ 0 --> DecoratedInterval(Interval(1.0, 1.0), dac) - @fact decoration(DecoratedInterval(Interval(-Inf, 15.0), dac) ^ 0) --> decoration(DecoratedInterval(Interval(1.0, 1.0), dac)) - @fact DecoratedInterval(Interval(-3.0, 5.0), def) ^ 2 --> DecoratedInterval(Interval(0.0, 25.0), def) - @fact decoration(DecoratedInterval(Interval(-3.0, 5.0), def) ^ 2) --> decoration(DecoratedInterval(Interval(0.0, 25.0), def)) - @fact DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) ^ 2 --> DecoratedInterval(Interval(0.0, Inf), dac) - @fact decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) ^ 2) --> decoration(DecoratedInterval(Interval(0.0, Inf), dac)) - @fact DecoratedInterval(Interval(-3.0, 5.0), dac) ^ 3 --> DecoratedInterval(Interval(-27.0, 125.0), dac) - @fact decoration(DecoratedInterval(Interval(-3.0, 5.0), dac) ^ 3) --> decoration(DecoratedInterval(Interval(-27.0, 125.0), dac)) - @fact DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) ^ 3 --> DecoratedInterval(Interval(-Inf, 8.0), dac) - @fact decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) ^ 3) --> decoration(DecoratedInterval(Interval(-Inf, 8.0), dac)) - @fact DecoratedInterval(Interval(3.0, 5.0), com) ^ -2 --> DecoratedInterval(Interval(0x1.47ae147ae147ap-5, 0x1.c71c71c71c71dp-4), com) - @fact decoration(DecoratedInterval(Interval(3.0, 5.0), com) ^ -2) --> decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-5, 0x1.c71c71c71c71dp-4), com)) - @fact DecoratedInterval(Interval(-5.0, -3.0), def) ^ -2 --> DecoratedInterval(Interval(0x1.47ae147ae147ap-5, 0x1.c71c71c71c71dp-4), def) - @fact decoration(DecoratedInterval(Interval(-5.0, -3.0), def) ^ -2) --> decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-5, 0x1.c71c71c71c71dp-4), def)) - @fact DecoratedInterval(Interval(-5.0, 3.0), com) ^ -2 --> DecoratedInterval(Interval(0x1.47ae147ae147ap-5, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-5.0, 3.0), com) ^ -2) --> decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-5, Inf), trv)) - @fact DecoratedInterval(Interval(3.0, 5.0), dac) ^ -3 --> DecoratedInterval(Interval(0x1.0624dd2f1a9fbp-7, 0x1.2f684bda12f69p-5), dac) - @fact decoration(DecoratedInterval(Interval(3.0, 5.0), dac) ^ -3) --> decoration(DecoratedInterval(Interval(0x1.0624dd2f1a9fbp-7, 0x1.2f684bda12f69p-5), dac)) - @fact DecoratedInterval(Interval(-3.0, 5.0), com) ^ -3 --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(DecoratedInterval(Interval(-3.0, 5.0), com) ^ -3) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) +@testset "minimal_pown_dec_test" begin + @test DecoratedInterval(Interval(-5.0, 10.0), com) ^ 0 == DecoratedInterval(Interval(1.0, 1.0), com) + @test decoration(DecoratedInterval(Interval(-5.0, 10.0), com) ^ 0) == decoration(DecoratedInterval(Interval(1.0, 1.0), com)) + @test DecoratedInterval(Interval(-Inf, 15.0), dac) ^ 0 == DecoratedInterval(Interval(1.0, 1.0), dac) + @test decoration(DecoratedInterval(Interval(-Inf, 15.0), dac) ^ 0) == decoration(DecoratedInterval(Interval(1.0, 1.0), dac)) + @test DecoratedInterval(Interval(-3.0, 5.0), def) ^ 2 == DecoratedInterval(Interval(0.0, 25.0), def) + @test decoration(DecoratedInterval(Interval(-3.0, 5.0), def) ^ 2) == decoration(DecoratedInterval(Interval(0.0, 25.0), def)) + @test DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) ^ 2 == DecoratedInterval(Interval(0.0, Inf), dac) + @test decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) ^ 2) == decoration(DecoratedInterval(Interval(0.0, Inf), dac)) + @test DecoratedInterval(Interval(-3.0, 5.0), dac) ^ 3 == DecoratedInterval(Interval(-27.0, 125.0), dac) + @test decoration(DecoratedInterval(Interval(-3.0, 5.0), dac) ^ 3) == decoration(DecoratedInterval(Interval(-27.0, 125.0), dac)) + @test DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) ^ 3 == DecoratedInterval(Interval(-Inf, 8.0), dac) + @test decoration(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 2.0), com) ^ 3) == decoration(DecoratedInterval(Interval(-Inf, 8.0), dac)) + @test DecoratedInterval(Interval(3.0, 5.0), com) ^ -2 == DecoratedInterval(Interval(0x1.47ae147ae147ap-5, 0x1.c71c71c71c71dp-4), com) + @test decoration(DecoratedInterval(Interval(3.0, 5.0), com) ^ -2) == decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-5, 0x1.c71c71c71c71dp-4), com)) + @test DecoratedInterval(Interval(-5.0, -3.0), def) ^ -2 == DecoratedInterval(Interval(0x1.47ae147ae147ap-5, 0x1.c71c71c71c71dp-4), def) + @test decoration(DecoratedInterval(Interval(-5.0, -3.0), def) ^ -2) == decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-5, 0x1.c71c71c71c71dp-4), def)) + @test DecoratedInterval(Interval(-5.0, 3.0), com) ^ -2 == DecoratedInterval(Interval(0x1.47ae147ae147ap-5, Inf), trv) + @test decoration(DecoratedInterval(Interval(-5.0, 3.0), com) ^ -2) == decoration(DecoratedInterval(Interval(0x1.47ae147ae147ap-5, Inf), trv)) + @test DecoratedInterval(Interval(3.0, 5.0), dac) ^ -3 == DecoratedInterval(Interval(0x1.0624dd2f1a9fbp-7, 0x1.2f684bda12f69p-5), dac) + @test decoration(DecoratedInterval(Interval(3.0, 5.0), dac) ^ -3) == decoration(DecoratedInterval(Interval(0x1.0624dd2f1a9fbp-7, 0x1.2f684bda12f69p-5), dac)) + @test DecoratedInterval(Interval(-3.0, 5.0), com) ^ -3 == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(DecoratedInterval(Interval(-3.0, 5.0), com) ^ -3) == decoration(DecoratedInterval(entireinterval(Float64), trv)) end -facts("minimal_pow_test") do - @fact ∅ ^ ∅ --> ∅ - @fact ∅ ^ entireinterval(Float64) --> ∅ - @fact ∅ ^ Interval(-Inf, -1.0) --> ∅ - @fact ∅ ^ Interval(-Inf, 0.0) --> ∅ - @fact ∅ ^ Interval(-Inf, -0.0) --> ∅ - @fact ∅ ^ Interval(0.0, Inf) --> ∅ - @fact ∅ ^ Interval(-0.0, Inf) --> ∅ - @fact ∅ ^ Interval(1.0, Inf) --> ∅ - @fact ∅ ^ Interval(-3.0, 5.0) --> ∅ - @fact ∅ ^ Interval(0.0, 0.0) --> ∅ - @fact ∅ ^ Interval(-0.0, -0.0) --> ∅ - @fact ∅ ^ Interval(-5.0, -5.0) --> ∅ - @fact ∅ ^ Interval(5.0, 5.0) --> ∅ - @fact Interval(0.1, 0.5) ^ ∅ --> ∅ - @fact Interval(0.1, 0.5) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(0.1, 0.5) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(0.1, 0.5) ^ Interval(0.0, 1.0) --> Interval(0x1.999999999999ap-4, 1.0) - @fact Interval(0.1, 0.5) ^ Interval(-0.0, 1.0) --> Interval(0x1.999999999999ap-4, 1.0) - @fact Interval(0.1, 0.5) ^ Interval(0.0, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 1.0) - @fact Interval(0.1, 0.5) ^ Interval(-0.0, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 1.0) - @fact Interval(0.1, 0.5) ^ Interval(0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(0.1, 0.5) ^ Interval(-0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(0.1, 0.5) ^ Interval(0.1, 0.1) --> Interval(0x1.96b230bcdc434p-1, 0x1.ddb680117ab13p-1) - @fact Interval(0.1, 0.5) ^ Interval(0.1, 1.0) --> Interval(0x1.999999999999ap-4, 0x1.ddb680117ab13p-1) - @fact Interval(0.1, 0.5) ^ Interval(0.1, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 0x1.ddb680117ab13p-1) - @fact Interval(0.1, 0.5) ^ Interval(0.1, Inf) --> Interval(0.0, 0x1.ddb680117ab13p-1) - @fact Interval(0.1, 0.5) ^ Interval(1.0, 1.0) --> Interval(0x1.999999999999ap-4, 0x1p-1) - @fact Interval(0.1, 0.5) ^ Interval(1.0, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 0x1p-1) - @fact Interval(0.1, 0.5) ^ Interval(1.0, Inf) --> Interval(0.0, 0x1p-1) - @fact Interval(0.1, 0.5) ^ Interval(2.5, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 0x1.6a09e667f3bcdp-3) - @fact Interval(0.1, 0.5) ^ Interval(2.5, Inf) --> Interval(0.0, 0x1.6a09e667f3bcdp-3) - @fact Interval(0.1, 0.5) ^ Interval(-0.1, 0.1) --> Interval(0x1.96b230bcdc434p-1, 0x1.4248ef8fc2604p+0) - @fact Interval(0.1, 0.5) ^ Interval(-0.1, 1.0) --> Interval(0x1.999999999999ap-4, 0x1.4248ef8fc2604p+0) - @fact Interval(0.1, 0.5) ^ Interval(-0.1, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 0x1.4248ef8fc2604p+0) - @fact Interval(0.1, 0.5) ^ Interval(-0.1, Inf) --> Interval(0.0, 0x1.4248ef8fc2604p+0) - @fact Interval(0.1, 0.5) ^ Interval(-1.0, 0.1) --> Interval(0x1.96b230bcdc434p-1, 0x1.4p+3) - @fact Interval(0.1, 0.5) ^ Interval(-1.0, 1.0) --> Interval(0x1.999999999999ap-4, 0x1.4p+3) - @fact Interval(0.1, 0.5) ^ Interval(-1.0, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 0x1.4p+3) - @fact Interval(0.1, 0.5) ^ Interval(-1.0, Inf) --> Interval(0.0, 0x1.4p+3) - @fact Interval(0.1, 0.5) ^ Interval(-2.5, 0.1) --> Interval(0x1.96b230bcdc434p-1, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 0.5) ^ Interval(-2.5, 1.0) --> Interval(0x1.999999999999ap-4, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 0.5) ^ Interval(-2.5, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 0.5) ^ Interval(-2.5, Inf) --> Interval(0.0, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 0.5) ^ Interval(-Inf, 0.1) --> Interval(0x1.96b230bcdc434p-1, Inf) - @fact Interval(0.1, 0.5) ^ Interval(-Inf, 1.0) --> Interval(0x1.999999999999ap-4, Inf) - @fact Interval(0.1, 0.5) ^ Interval(-Inf, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, Inf) - @fact Interval(0.1, 0.5) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(0.1, 0.5) ^ Interval(-1.0, 0.0) --> Interval(1.0, 0x1.4p+3) - @fact Interval(0.1, 0.5) ^ Interval(-1.0, -0.0) --> Interval(1.0, 0x1.4p+3) - @fact Interval(0.1, 0.5) ^ Interval(-2.5, 0.0) --> Interval(1.0, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 0.5) ^ Interval(-2.5, -0.0) --> Interval(1.0, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 0.5) ^ Interval(-Inf, 0.0) --> Interval(1.0, Inf) - @fact Interval(0.1, 0.5) ^ Interval(-Inf, -0.0) --> Interval(1.0, Inf) - @fact Interval(0.1, 0.5) ^ Interval(-0.1, -0.1) --> Interval(0x1.125fbee250664p+0, 0x1.4248ef8fc2604p+0) - @fact Interval(0.1, 0.5) ^ Interval(-1.0, -0.1) --> Interval(0x1.125fbee250664p+0, 0x1.4p+3) - @fact Interval(0.1, 0.5) ^ Interval(-2.5, -0.1) --> Interval(0x1.125fbee250664p+0, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 0.5) ^ Interval(-Inf, -0.1) --> Interval(0x1.125fbee250664p+0, Inf) - @fact Interval(0.1, 0.5) ^ Interval(-1.0, -1.0) --> Interval(0x1p+1, 0x1.4p+3) - @fact Interval(0.1, 0.5) ^ Interval(-2.5, -1.0) --> Interval(0x1p+1, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 0.5) ^ Interval(-Inf, -1.0) --> Interval(0x1p+1, Inf) - @fact Interval(0.1, 0.5) ^ Interval(-2.5, -2.5) --> Interval(0x1.6a09e667f3bccp+2, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 0.5) ^ Interval(-Inf, -2.5) --> Interval(0x1.6a09e667f3bccp+2, Inf) - @fact Interval(0.1, 1.0) ^ ∅ --> ∅ - @fact Interval(0.1, 1.0) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(0.0, 1.0) --> Interval(0x1.999999999999ap-4, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(-0.0, 1.0) --> Interval(0x1.999999999999ap-4, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(0.0, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(-0.0, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(-0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(0.1, 0.1) --> Interval(0x1.96b230bcdc434p-1, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(0.1, 1.0) --> Interval(0x1.999999999999ap-4, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(0.1, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(0.1, Inf) --> Interval(0.0, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(1.0, 1.0) --> Interval(0x1.999999999999ap-4, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(1.0, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(1.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(2.5, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(2.5, Inf) --> Interval(0.0, 1.0) - @fact Interval(0.1, 1.0) ^ Interval(-0.1, 0.1) --> Interval(0x1.96b230bcdc434p-1, 0x1.4248ef8fc2604p+0) - @fact Interval(0.1, 1.0) ^ Interval(-0.1, 1.0) --> Interval(0x1.999999999999ap-4, 0x1.4248ef8fc2604p+0) - @fact Interval(0.1, 1.0) ^ Interval(-0.1, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 0x1.4248ef8fc2604p+0) - @fact Interval(0.1, 1.0) ^ Interval(-0.1, Inf) --> Interval(0.0, 0x1.4248ef8fc2604p+0) - @fact Interval(0.1, 1.0) ^ Interval(-1.0, 0.1) --> Interval(0x1.96b230bcdc434p-1, 0x1.4p+3) - @fact Interval(0.1, 1.0) ^ Interval(-1.0, 1.0) --> Interval(0x1.999999999999ap-4, 0x1.4p+3) - @fact Interval(0.1, 1.0) ^ Interval(-1.0, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 0x1.4p+3) - @fact Interval(0.1, 1.0) ^ Interval(-1.0, Inf) --> Interval(0.0, 0x1.4p+3) - @fact Interval(0.1, 1.0) ^ Interval(-2.5, 0.1) --> Interval(0x1.96b230bcdc434p-1, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 1.0) ^ Interval(-2.5, 1.0) --> Interval(0x1.999999999999ap-4, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 1.0) ^ Interval(-2.5, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 1.0) ^ Interval(-2.5, Inf) --> Interval(0.0, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 1.0) ^ Interval(-Inf, 0.1) --> Interval(0x1.96b230bcdc434p-1, Inf) - @fact Interval(0.1, 1.0) ^ Interval(-Inf, 1.0) --> Interval(0x1.999999999999ap-4, Inf) - @fact Interval(0.1, 1.0) ^ Interval(-Inf, 2.5) --> Interval(0x1.9e7c6e43390b7p-9, Inf) - @fact Interval(0.1, 1.0) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(0.1, 1.0) ^ Interval(-0.1, 0.0) --> Interval(1.0, 0x1.4248ef8fc2604p+0) - @fact Interval(0.1, 1.0) ^ Interval(-0.1, -0.0) --> Interval(1.0, 0x1.4248ef8fc2604p+0) - @fact Interval(0.1, 1.0) ^ Interval(-1.0, 0.0) --> Interval(1.0, 0x1.4p+3) - @fact Interval(0.1, 1.0) ^ Interval(-1.0, -0.0) --> Interval(1.0, 0x1.4p+3) - @fact Interval(0.1, 1.0) ^ Interval(-2.5, 0.0) --> Interval(1.0, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 1.0) ^ Interval(-2.5, -0.0) --> Interval(1.0, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 1.0) ^ Interval(-Inf, 0.0) --> Interval(1.0, Inf) - @fact Interval(0.1, 1.0) ^ Interval(-Inf, -0.0) --> Interval(1.0, Inf) - @fact Interval(0.1, 1.0) ^ Interval(-0.1, -0.1) --> Interval(1.0, 0x1.4248ef8fc2604p+0) - @fact Interval(0.1, 1.0) ^ Interval(-1.0, -0.1) --> Interval(1.0, 0x1.4p+3) - @fact Interval(0.1, 1.0) ^ Interval(-2.5, -0.1) --> Interval(1.0, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 1.0) ^ Interval(-Inf, -0.1) --> Interval(1.0, Inf) - @fact Interval(0.1, 1.0) ^ Interval(-1.0, -1.0) --> Interval(1.0, 0x1.4p+3) - @fact Interval(0.1, 1.0) ^ Interval(-2.5, -1.0) --> Interval(1.0, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 1.0) ^ Interval(-Inf, -1.0) --> Interval(1.0, Inf) - @fact Interval(0.1, 1.0) ^ Interval(-2.5, -2.5) --> Interval(1.0, 0x1.3c3a4edfa9758p+8) - @fact Interval(0.1, 1.0) ^ Interval(-Inf, -2.5) --> Interval(1.0, Inf) - @fact Interval(0.5, 1.5) ^ ∅ --> ∅ - @fact Interval(0.5, 1.5) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(0.5, 1.5) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(0.5, 1.5) ^ Interval(0.0, 1.0) --> Interval(0.5, 1.5) - @fact Interval(0.5, 1.5) ^ Interval(-0.0, 1.0) --> Interval(0.5, 1.5) - @fact Interval(0.5, 1.5) ^ Interval(0.0, 2.5) --> Interval(0x1.6a09e667f3bccp-3, 0x1.60b9fd68a4555p+1) - @fact Interval(0.5, 1.5) ^ Interval(-0.0, 2.5) --> Interval(0x1.6a09e667f3bccp-3, 0x1.60b9fd68a4555p+1) - @fact Interval(0.5, 1.5) ^ Interval(0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(-0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(0.1, 0.1) --> Interval(0x1.ddb680117ab12p-1, 0x1.0a97dce72a0cbp+0) - @fact Interval(0.5, 1.5) ^ Interval(0.1, 1.0) --> Interval(0.5, 1.5) - @fact Interval(0.5, 1.5) ^ Interval(0.1, 2.5) --> Interval(0x1.6a09e667f3bccp-3, 0x1.60b9fd68a4555p+1) - @fact Interval(0.5, 1.5) ^ Interval(0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(1.0, 1.0) --> Interval(0.5, 1.5) - @fact Interval(0.5, 1.5) ^ Interval(1.0, 2.5) --> Interval(0x1.6a09e667f3bccp-3, 0x1.60b9fd68a4555p+1) - @fact Interval(0.5, 1.5) ^ Interval(1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(2.5, 2.5) --> Interval(0x1.6a09e667f3bccp-3, 0x1.60b9fd68a4555p+1) - @fact Interval(0.5, 1.5) ^ Interval(2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(-0.1, 0.1) --> Interval(0x1.ddb680117ab12p-1, 0x1.125fbee250665p+0) - @fact Interval(0.5, 1.5) ^ Interval(-0.1, 1.0) --> Interval(0x1p-1, 0x1.8p+0) - @fact Interval(0.5, 1.5) ^ Interval(-0.1, 2.5) --> Interval(0x1.6a09e667f3bccp-3, 0x1.60b9fd68a4555p+1) - @fact Interval(0.5, 1.5) ^ Interval(-0.1, Inf) --> Interval(0x0p+0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(-1.0, 0.1) --> Interval(0x1.5555555555555p-1, 0x1p+1) - @fact Interval(0.5, 1.5) ^ Interval(-1.0, 1.0) --> Interval(0x1p-1, 0x1p+1) - @fact Interval(0.5, 1.5) ^ Interval(-1.0, 2.5) --> Interval(0x1.6a09e667f3bccp-3, 0x1.60b9fd68a4555p+1) - @fact Interval(0.5, 1.5) ^ Interval(-1.0, Inf) --> Interval(0x0p+0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(-2.5, 0.1) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2) - @fact Interval(0.5, 1.5) ^ Interval(-2.5, 1.0) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2) - @fact Interval(0.5, 1.5) ^ Interval(-2.5, 2.5) --> Interval(0x1.6a09e667f3bccp-3, 0x1.6a09e667f3bcdp+2) - @fact Interval(0.5, 1.5) ^ Interval(-2.5, Inf) --> Interval(0x0p+0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(-Inf, 0.1) --> Interval(0x0p+0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(-Inf, 1.0) --> Interval(0x0p+0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(-Inf, 2.5) --> Interval(0x0p+0, Inf) - @fact Interval(0.5, 1.5) ^ entireinterval(Float64) --> Interval(0x0p+0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(-1.0, 0.0) --> Interval(0x1.5555555555555p-1, 0x1p+1) - @fact Interval(0.5, 1.5) ^ Interval(-1.0, -0.0) --> Interval(0x1.5555555555555p-1, 0x1p+1) - @fact Interval(0.5, 1.5) ^ Interval(-2.5, 0.0) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2) - @fact Interval(0.5, 1.5) ^ Interval(-2.5, -0.0) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2) - @fact Interval(0.5, 1.5) ^ Interval(-Inf, 0.0) --> Interval(0x0p+0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(-Inf, -0.0) --> Interval(0x0p+0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(-0.1, -0.1) --> Interval(0x1.eba7c9e4d31e9p-1, 0x1.125fbee250665p+0) - @fact Interval(0.5, 1.5) ^ Interval(-1.0, -0.1) --> Interval(0x1.5555555555555p-1, 0x1p+1) - @fact Interval(0.5, 1.5) ^ Interval(-2.5, -0.1) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2) - @fact Interval(0.5, 1.5) ^ Interval(-Inf, -0.1) --> Interval(0x0p+0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(-1.0, -1.0) --> Interval(0x1.5555555555555p-1, 0x1p+1) - @fact Interval(0.5, 1.5) ^ Interval(-2.5, -1.0) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2) - @fact Interval(0.5, 1.5) ^ Interval(-Inf, -1.0) --> Interval(0x0p+0, Inf) - @fact Interval(0.5, 1.5) ^ Interval(-2.5, -2.5) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2) - @fact Interval(0.5, 1.5) ^ Interval(-Inf, -2.5) --> Interval(0x0p+0, Inf) - @fact Interval(0.5, Inf) ^ ∅ --> ∅ - @fact Interval(0.5, Inf) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(0.5, Inf) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(0.5, Inf) ^ Interval(0.0, 1.0) --> Interval(0.5, Inf) - @fact Interval(0.5, Inf) ^ Interval(-0.0, 1.0) --> Interval(0.5, Inf) - @fact Interval(0.5, Inf) ^ Interval(0.0, 2.5) --> Interval(0x1.6a09e667f3bccp-3, Inf) - @fact Interval(0.5, Inf) ^ Interval(-0.0, 2.5) --> Interval(0x1.6a09e667f3bccp-3, Inf) - @fact Interval(0.5, Inf) ^ Interval(0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(0.1, 0.1) --> Interval(0x1.ddb680117ab12p-1, Inf) - @fact Interval(0.5, Inf) ^ Interval(0.1, 1.0) --> Interval(0.5, Inf) - @fact Interval(0.5, Inf) ^ Interval(0.1, 2.5) --> Interval(0x1.6a09e667f3bccp-3, Inf) - @fact Interval(0.5, Inf) ^ Interval(0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(1.0, 1.0) --> Interval(0.5, Inf) - @fact Interval(0.5, Inf) ^ Interval(1.0, 2.5) --> Interval(0x1.6a09e667f3bccp-3, Inf) - @fact Interval(0.5, Inf) ^ Interval(1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(2.5, 2.5) --> Interval(0x1.6a09e667f3bccp-3, Inf) - @fact Interval(0.5, Inf) ^ Interval(2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-1.0, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-2.5, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-2.5, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-Inf, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-Inf, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-Inf, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-1.0, 0.0) --> Interval(0.0, 0x1p+1) - @fact Interval(0.5, Inf) ^ Interval(-1.0, -0.0) --> Interval(0.0, 0x1p+1) - @fact Interval(0.5, Inf) ^ Interval(-2.5, 0.0) --> Interval(0.0, 0x1.6a09e667f3bcdp+2) - @fact Interval(0.5, Inf) ^ Interval(-2.5, -0.0) --> Interval(0.0, 0x1.6a09e667f3bcdp+2) - @fact Interval(0.5, Inf) ^ Interval(-Inf, 0.0) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-Inf, -0.0) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-0.1, -0.1) --> Interval(0.0, 0x1.125fbee250665p+0) - @fact Interval(0.5, Inf) ^ Interval(-1.0, -0.1) --> Interval(0.0, 0x1p+1) - @fact Interval(0.5, Inf) ^ Interval(-2.5, -0.1) --> Interval(0.0, 0x1.6a09e667f3bcdp+2) - @fact Interval(0.5, Inf) ^ Interval(-Inf, -0.1) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-1.0, -1.0) --> Interval(0.0, 0x1p+1) - @fact Interval(0.5, Inf) ^ Interval(-2.5, -1.0) --> Interval(0.0, 0x1.6a09e667f3bcdp+2) - @fact Interval(0.5, Inf) ^ Interval(-Inf, -1.0) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-Inf, -2.5) --> Interval(0.0, Inf) - @fact Interval(0.5, Inf) ^ Interval(-2.5, -2.5) --> Interval(0.0, 0x1.6a09e667f3bcdp+2) - @fact Interval(1.0, 1.5) ^ ∅ --> ∅ - @fact Interval(1.0, 1.5) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(0.0, 1.0) --> Interval(1.0, 0x1.8p+0) - @fact Interval(1.0, 1.5) ^ Interval(-0.0, 1.0) --> Interval(1.0, 0x1.8p+0) - @fact Interval(1.0, 1.5) ^ Interval(0.0, 2.5) --> Interval(1.0, 0x1.60b9fd68a4555p+1) - @fact Interval(1.0, 1.5) ^ Interval(-0.0, 2.5) --> Interval(1.0, 0x1.60b9fd68a4555p+1) - @fact Interval(1.0, 1.5) ^ Interval(0.0, Inf) --> Interval(1.0, Inf) - @fact Interval(1.0, 1.5) ^ Interval(-0.0, Inf) --> Interval(1.0, Inf) - @fact Interval(1.0, 1.5) ^ Interval(0.1, 0.1) --> Interval(1.0, 0x1.0a97dce72a0cbp+0) - @fact Interval(1.0, 1.5) ^ Interval(0.1, 1.0) --> Interval(1.0, 0x1.8p+0) - @fact Interval(1.0, 1.5) ^ Interval(0.1, 2.5) --> Interval(1.0, 0x1.60b9fd68a4555p+1) - @fact Interval(1.0, 1.5) ^ Interval(0.1, Inf) --> Interval(1.0, Inf) - @fact Interval(1.0, 1.5) ^ Interval(1.0, 1.0) --> Interval(1.0, 0x1.8p+0) - @fact Interval(1.0, 1.5) ^ Interval(1.0, 2.5) --> Interval(1.0, 0x1.60b9fd68a4555p+1) - @fact Interval(1.0, 1.5) ^ Interval(1.0, Inf) --> Interval(1.0, Inf) - @fact Interval(1.0, 1.5) ^ Interval(2.5, 2.5) --> Interval(1.0, 0x1.60b9fd68a4555p+1) - @fact Interval(1.0, 1.5) ^ Interval(2.5, Inf) --> Interval(1.0, Inf) - @fact Interval(1.0, 1.5) ^ Interval(-0.1, 0.1) --> Interval(0x1.eba7c9e4d31e9p-1, 0x1.0a97dce72a0cbp+0) - @fact Interval(1.0, 1.5) ^ Interval(-0.1, 1.0) --> Interval(0x1.eba7c9e4d31e9p-1, 0x1.8p+0) - @fact Interval(1.0, 1.5) ^ Interval(-0.1, 2.5) --> Interval(0x1.eba7c9e4d31e9p-1, 0x1.60b9fd68a4555p+1) - @fact Interval(1.0, 1.5) ^ Interval(-0.1, Inf) --> Interval(0x1.eba7c9e4d31e9p-1, Inf) - @fact Interval(1.0, 1.5) ^ Interval(-1.0, 0.1) --> Interval(0x1.5555555555555p-1, 0x1.0a97dce72a0cbp+0) - @fact Interval(1.0, 1.5) ^ Interval(-1.0, 1.0) --> Interval(0x1.5555555555555p-1, 0x1.8p+0) - @fact Interval(1.0, 1.5) ^ Interval(-1.0, 2.5) --> Interval(0x1.5555555555555p-1, 0x1.60b9fd68a4555p+1) - @fact Interval(1.0, 1.5) ^ Interval(-1.0, Inf) --> Interval(0x1.5555555555555p-1, Inf) - @fact Interval(1.0, 1.5) ^ Interval(-2.5, 0.1) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.0a97dce72a0cbp+0) - @fact Interval(1.0, 1.5) ^ Interval(-2.5, 1.0) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.8p+0) - @fact Interval(1.0, 1.5) ^ Interval(-2.5, 2.5) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.60b9fd68a4555p+1) - @fact Interval(1.0, 1.5) ^ Interval(-2.5, Inf) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(1.0, 1.5) ^ Interval(-Inf, 0.1) --> Interval(0x0p+0, 0x1.0a97dce72a0cbp+0) - @fact Interval(1.0, 1.5) ^ Interval(-Inf, 1.0) --> Interval(0x0p+0, 0x1.8p+0) - @fact Interval(1.0, 1.5) ^ Interval(-Inf, 2.5) --> Interval(0x0p+0, 0x1.60b9fd68a4555p+1) - @fact Interval(1.0, 1.5) ^ entireinterval(Float64) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, 1.5) ^ Interval(-1.0, 0.0) --> Interval(0x1.5555555555555p-1, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-1.0, -0.0) --> Interval(0x1.5555555555555p-1, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-2.5, 0.0) --> Interval(0x1.7398bf1d1ee6fp-2, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-2.5, -0.0) --> Interval(0x1.7398bf1d1ee6fp-2, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-Inf, 0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-Inf, -0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-0.1, -0.1) --> Interval(0x1.eba7c9e4d31e9p-1, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-1.0, -0.1) --> Interval(0x1.5555555555555p-1, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-2.5, -0.1) --> Interval(0x1.7398bf1d1ee6fp-2, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-Inf, -0.1) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-1.0, -1.0) --> Interval(0x1.5555555555555p-1, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-2.5, -1.0) --> Interval(0x1.7398bf1d1ee6fp-2, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-Inf, -1.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-2.5, -2.5) --> Interval(0x1.7398bf1d1ee6fp-2, 1.0) - @fact Interval(1.0, 1.5) ^ Interval(-Inf, -2.5) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ ∅ --> ∅ - @fact Interval(1.0, Inf) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(0.0, 1.0) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-0.0, 1.0) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(0.0, 2.5) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-0.0, 2.5) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(0.0, Inf) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-0.0, Inf) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(0.1, 0.1) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(0.1, 1.0) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(0.1, 2.5) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(0.1, Inf) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(1.0, 1.0) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(1.0, 2.5) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(1.0, Inf) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(2.5, 2.5) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(2.5, Inf) --> Interval(1.0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-0.1, 0.1) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-0.1, 1.0) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-0.1, 2.5) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-0.1, Inf) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-1.0, 0.1) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-1.0, 1.0) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-1.0, 2.5) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-1.0, Inf) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-2.5, 0.1) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-2.5, 1.0) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-2.5, 2.5) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-2.5, Inf) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-Inf, 0.1) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-Inf, 1.0) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-Inf, 2.5) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ entireinterval(Float64) --> Interval(0x0p+0, Inf) - @fact Interval(1.0, Inf) ^ Interval(-1.0, 0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-1.0, -0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-2.5, 0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-2.5, -0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-Inf, 0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-Inf, -0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-0.1, -0.1) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-1.0, -0.1) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-2.5, -0.1) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-Inf, -0.1) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-1.0, -1.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-2.5, -1.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-Inf, -1.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-2.5, -2.5) --> Interval(0x0p+0, 1.0) - @fact Interval(1.0, Inf) ^ Interval(-Inf, -2.5) --> Interval(0x0p+0, 1.0) - @fact Interval(1.1, 1.5) ^ ∅ --> ∅ - @fact Interval(1.1, 1.5) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(1.1, 1.5) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(1.1, 1.5) ^ Interval(0.0, 1.0) --> Interval(1.0, 0x1.8p+0) - @fact Interval(1.1, 1.5) ^ Interval(-0.0, 1.0) --> Interval(1.0, 0x1.8p+0) - @fact Interval(1.1, 1.5) ^ Interval(0.0, 2.5) --> Interval(1.0, 0x1.60b9fd68a4555p+1) - @fact Interval(1.1, 1.5) ^ Interval(-0.0, 2.5) --> Interval(1.0, 0x1.60b9fd68a4555p+1) - @fact Interval(1.1, 1.5) ^ Interval(0.0, Inf) --> Interval(1.0, Inf) - @fact Interval(1.1, 1.5) ^ Interval(-0.0, Inf) --> Interval(1.0, Inf) - @fact Interval(1.1, 1.5) ^ Interval(0.1, 0.1) --> Interval(0x1.02739c65d58bfp+0, 0x1.0a97dce72a0cbp+0) - @fact Interval(1.1, 1.5) ^ Interval(0.1, 1.0) --> Interval(0x1.02739c65d58bfp+0, 0x1.8p+0) - @fact Interval(1.1, 1.5) ^ Interval(0.1, 2.5) --> Interval(0x1.02739c65d58bfp+0, 0x1.60b9fd68a4555p+1) - @fact Interval(1.1, 1.5) ^ Interval(0.1, Inf) --> Interval(0x1.02739c65d58bfp+0, Inf) - @fact Interval(1.1, 1.5) ^ Interval(1.0, 1.0) --> Interval(0x1.199999999999ap+0, 0x1.8p+0) - @fact Interval(1.1, 1.5) ^ Interval(1.0, 2.5) --> Interval(0x1.199999999999ap+0, 0x1.60b9fd68a4555p+1) - @fact Interval(1.1, 1.5) ^ Interval(1.0, Inf) --> Interval(0x1.199999999999ap+0, Inf) - @fact Interval(1.1, 1.5) ^ Interval(2.5, 2.5) --> Interval(0x1.44e1080833b25p+0, 0x1.60b9fd68a4555p+1) - @fact Interval(1.1, 1.5) ^ Interval(2.5, Inf) --> Interval(0x1.44e1080833b25p+0, Inf) - @fact Interval(1.1, 1.5) ^ Interval(-0.1, 0.1) --> Interval(0x1.eba7c9e4d31e9p-1, 0x1.0a97dce72a0cbp+0) - @fact Interval(1.1, 1.5) ^ Interval(-0.1, 1.0) --> Interval(0x1.eba7c9e4d31e9p-1, 0x1.8p+0) - @fact Interval(1.1, 1.5) ^ Interval(-0.1, 2.5) --> Interval(0x1.eba7c9e4d31e9p-1, 0x1.60b9fd68a4555p+1) - @fact Interval(1.1, 1.5) ^ Interval(-0.1, Inf) --> Interval(0x1.eba7c9e4d31e9p-1, Inf) - @fact Interval(1.1, 1.5) ^ Interval(-1.0, 0.1) --> Interval(0x1.5555555555555p-1, 0x1.0a97dce72a0cbp+0) - @fact Interval(1.1, 1.5) ^ Interval(-1.0, 1.0) --> Interval(0x1.5555555555555p-1, 0x1.8p+0) - @fact Interval(1.1, 1.5) ^ Interval(-1.0, 2.5) --> Interval(0x1.5555555555555p-1, 0x1.60b9fd68a4555p+1) - @fact Interval(1.1, 1.5) ^ Interval(-1.0, Inf) --> Interval(0x1.5555555555555p-1, Inf) - @fact Interval(1.1, 1.5) ^ Interval(-2.5, 0.1) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.0a97dce72a0cbp+0) - @fact Interval(1.1, 1.5) ^ Interval(-2.5, 1.0) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.8p+0) - @fact Interval(1.1, 1.5) ^ Interval(-2.5, 2.5) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.60b9fd68a4555p+1) - @fact Interval(1.1, 1.5) ^ Interval(-2.5, Inf) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(1.1, 1.5) ^ Interval(-Inf, 0.1) --> Interval(0x0p+0, 0x1.0a97dce72a0cbp+0) - @fact Interval(1.1, 1.5) ^ Interval(-Inf, 1.0) --> Interval(0x0p+0, 0x1.8p+0) - @fact Interval(1.1, 1.5) ^ Interval(-Inf, 2.5) --> Interval(0x0p+0, 0x1.60b9fd68a4555p+1) - @fact Interval(1.1, 1.5) ^ entireinterval(Float64) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, 1.5) ^ Interval(-1.0, 0.0) --> Interval(0x1.5555555555555p-1, 1.0) - @fact Interval(1.1, 1.5) ^ Interval(-1.0, -0.0) --> Interval(0x1.5555555555555p-1, 1.0) - @fact Interval(1.1, 1.5) ^ Interval(-2.5, 0.0) --> Interval(0x1.7398bf1d1ee6fp-2, 1.0) - @fact Interval(1.1, 1.5) ^ Interval(-2.5, -0.0) --> Interval(0x1.7398bf1d1ee6fp-2, 1.0) - @fact Interval(1.1, 1.5) ^ Interval(-Inf, 0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.1, 1.5) ^ Interval(-Inf, -0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.1, 1.5) ^ Interval(-0.1, -0.1) --> Interval(0x1.eba7c9e4d31e9p-1, 0x1.fb24af5281928p-1) - @fact Interval(1.1, 1.5) ^ Interval(-1.0, -0.1) --> Interval(0x1.5555555555555p-1, 0x1.fb24af5281928p-1) - @fact Interval(1.1, 1.5) ^ Interval(-2.5, -0.1) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.fb24af5281928p-1) - @fact Interval(1.1, 1.5) ^ Interval(-Inf, -0.1) --> Interval(0x0p+0, 0x1.fb24af5281928p-1) - @fact Interval(1.1, 1.5) ^ Interval(-1.0, -1.0) --> Interval(0x1.5555555555555p-1, 0x1.d1745d1745d17p-1) - @fact Interval(1.1, 1.5) ^ Interval(-2.5, -1.0) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.d1745d1745d17p-1) - @fact Interval(1.1, 1.5) ^ Interval(-Inf, -1.0) --> Interval(0x0p+0, 0x1.d1745d1745d17p-1) - @fact Interval(1.1, 1.5) ^ Interval(-2.5, -2.5) --> Interval(0x1.7398bf1d1ee6fp-2, 0x1.9372d999784c8p-1) - @fact Interval(1.1, 1.5) ^ Interval(-Inf, -2.5) --> Interval(0x0p+0, 0x1.9372d999784c8p-1) - @fact Interval(1.1, Inf) ^ ∅ --> ∅ - @fact Interval(1.1, Inf) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(1.1, Inf) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(1.1, Inf) ^ Interval(0.0, 1.0) --> Interval(1.0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-0.0, 1.0) --> Interval(1.0, Inf) - @fact Interval(1.1, Inf) ^ Interval(0.0, 2.5) --> Interval(1.0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-0.0, 2.5) --> Interval(1.0, Inf) - @fact Interval(1.1, Inf) ^ Interval(0.0, Inf) --> Interval(1.0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-0.0, Inf) --> Interval(1.0, Inf) - @fact Interval(1.1, Inf) ^ Interval(0.1, 0.1) --> Interval(0x1.02739c65d58bfp+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(0.1, 1.0) --> Interval(0x1.02739c65d58bfp+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(0.1, 2.5) --> Interval(0x1.02739c65d58bfp+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(0.1, Inf) --> Interval(0x1.02739c65d58bfp+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(1.0, 1.0) --> Interval(0x1.199999999999ap+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(1.0, 2.5) --> Interval(0x1.199999999999ap+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(1.0, Inf) --> Interval(0x1.199999999999ap+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(2.5, 2.5) --> Interval(0x1.44e1080833b25p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(2.5, Inf) --> Interval(0x1.44e1080833b25p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-0.1, 0.1) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-0.1, 1.0) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-0.1, 2.5) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-0.1, Inf) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-1.0, 0.1) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-1.0, 1.0) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-1.0, 2.5) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-1.0, Inf) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-2.5, 0.1) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-2.5, 1.0) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-2.5, 2.5) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-2.5, Inf) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-Inf, 0.1) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-Inf, 1.0) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-Inf, 2.5) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ entireinterval(Float64) --> Interval(0x0p+0, Inf) - @fact Interval(1.1, Inf) ^ Interval(-1.0, 0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.1, Inf) ^ Interval(-1.0, -0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.1, Inf) ^ Interval(-2.5, 0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.1, Inf) ^ Interval(-2.5, -0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.1, Inf) ^ Interval(-Inf, 0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.1, Inf) ^ Interval(-Inf, -0.0) --> Interval(0x0p+0, 1.0) - @fact Interval(1.1, Inf) ^ Interval(-0.1, -0.1) --> Interval(0x0p+0, 0x1.fb24af5281928p-1) - @fact Interval(1.1, Inf) ^ Interval(-1.0, -0.1) --> Interval(0x0p+0, 0x1.fb24af5281928p-1) - @fact Interval(1.1, Inf) ^ Interval(-2.5, -0.1) --> Interval(0x0p+0, 0x1.fb24af5281928p-1) - @fact Interval(1.1, Inf) ^ Interval(-Inf, -0.1) --> Interval(0x0p+0, 0x1.fb24af5281928p-1) - @fact Interval(1.1, Inf) ^ Interval(-1.0, -1.0) --> Interval(0x0p+0, 0x1.d1745d1745d17p-1) - @fact Interval(1.1, Inf) ^ Interval(-2.5, -1.0) --> Interval(0x0p+0, 0x1.d1745d1745d17p-1) - @fact Interval(1.1, Inf) ^ Interval(-Inf, -1.0) --> Interval(0x0p+0, 0x1.d1745d1745d17p-1) - @fact Interval(1.1, Inf) ^ Interval(-2.5, -2.5) --> Interval(0x0p+0, 0x1.9372d999784c8p-1) - @fact Interval(1.1, Inf) ^ Interval(-Inf, -2.5) --> Interval(0x0p+0, 0x1.9372d999784c8p-1) - @fact Interval(0.0, 0.5) ^ ∅ --> ∅ - @fact Interval(0.0, 0.5) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(0.0, 0.5) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(0.0, 0.5) ^ Interval(0.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(0.0, 0.5) ^ Interval(-0.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(0.0, 0.5) ^ Interval(0.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(0.0, 0.5) ^ Interval(-0.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(0.0, 0.5) ^ Interval(0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(0.0, 0.5) ^ Interval(-0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(0.0, 0.5) ^ Interval(0.1, 0.1) --> Interval(0.0, 0x1.ddb680117ab13p-1) - @fact Interval(0.0, 0.5) ^ Interval(0.1, 1.0) --> Interval(0.0, 0x1.ddb680117ab13p-1) - @fact Interval(0.0, 0.5) ^ Interval(0.1, 2.5) --> Interval(0.0, 0x1.ddb680117ab13p-1) - @fact Interval(0.0, 0.5) ^ Interval(0.1, Inf) --> Interval(0.0, 0x1.ddb680117ab13p-1) - @fact Interval(0.0, 0.5) ^ Interval(1.0, 1.0) --> Interval(0.0, 0.5) - @fact Interval(0.0, 0.5) ^ Interval(1.0, 2.5) --> Interval(0.0, 0.5) - @fact Interval(0.0, 0.5) ^ Interval(1.0, Inf) --> Interval(0.0, 0.5) - @fact Interval(0.0, 0.5) ^ Interval(2.5, 2.5) --> Interval(0.0, 0x1.6a09e667f3bcdp-3) - @fact Interval(0.0, 0.5) ^ Interval(2.5, Inf) --> Interval(0.0, 0x1.6a09e667f3bcdp-3) - @fact Interval(0.0, 0.5) ^ Interval(-0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-1.0, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-2.5, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-2.5, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-Inf, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-Inf, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-Inf, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-1.0, 0.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-1.0, -0.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-2.5, 0.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-2.5, -0.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-Inf, 0.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-Inf, -0.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-0.1, -0.1) --> Interval(0x1.125fbee250664p+0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-1.0, -0.1) --> Interval(0x1.125fbee250664p+0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-2.5, -0.1) --> Interval(0x1.125fbee250664p+0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-Inf, -0.1) --> Interval(0x1.125fbee250664p+0, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-1.0, -1.0) --> Interval(0x1p+1, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-2.5, -1.0) --> Interval(0x1p+1, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-Inf, -1.0) --> Interval(0x1p+1, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-2.5, -2.5) --> Interval(0x1.6a09e667f3bccp+2, Inf) - @fact Interval(0.0, 0.5) ^ Interval(-Inf, -2.5) --> Interval(0x1.6a09e667f3bccp+2, Inf) - @fact Interval(0.0, 1.0) ^ ∅ --> ∅ - @fact Interval(0.0, 1.0) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(0.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(-0.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(0.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(-0.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(-0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(0.1, 0.1) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(0.1, 1.0) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(0.1, 2.5) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(0.1, Inf) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(1.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(1.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(1.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(2.5, 2.5) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(2.5, Inf) --> Interval(0.0, 1.0) - @fact Interval(0.0, 1.0) ^ Interval(-0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-1.0, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-2.5, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-2.5, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-Inf, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-Inf, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-Inf, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-0.1, 0.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-0.1, -0.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-1.0, 0.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-1.0, -0.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-2.5, 0.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-2.5, -0.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-Inf, 0.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-Inf, -0.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-0.1, -0.1) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-1.0, -0.1) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-2.5, -0.1) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-Inf, -0.1) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-1.0, -1.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-2.5, -1.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-Inf, -1.0) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-2.5, -2.5) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.0) ^ Interval(-Inf, -2.5) --> Interval(1.0, Inf) - @fact Interval(0.0, 1.5) ^ ∅ --> ∅ - @fact Interval(0.0, 1.5) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(0.0, 1.5) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(0.0, 1.5) ^ Interval(0.0, 1.0) --> Interval(0.0, 1.5) - @fact Interval(0.0, 1.5) ^ Interval(-0.0, 1.0) --> Interval(0.0, 1.5) - @fact Interval(0.0, 1.5) ^ Interval(0.0, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(0.0, 1.5) ^ Interval(-0.0, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(0.0, 1.5) ^ Interval(0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(0.1, 0.1) --> Interval(0.0, 0x1.0a97dce72a0cbp+0) - @fact Interval(0.0, 1.5) ^ Interval(0.1, 1.0) --> Interval(0.0, 1.5) - @fact Interval(0.0, 1.5) ^ Interval(0.1, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(0.0, 1.5) ^ Interval(0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(1.0, 1.0) --> Interval(0.0, 1.5) - @fact Interval(0.0, 1.5) ^ Interval(1.0, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(0.0, 1.5) ^ Interval(1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(2.5, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(0.0, 1.5) ^ Interval(2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-1.0, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-2.5, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-2.5, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-Inf, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-Inf, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-Inf, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-1.0, 0.0) --> Interval(0x1.5555555555555p-1, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-1.0, -0.0) --> Interval(0x1.5555555555555p-1, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-2.5, 0.0) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-2.5, -0.0) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-Inf, 0.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-Inf, -0.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-0.1, -0.1) --> Interval(0x1.eba7c9e4d31e9p-1, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-1.0, -0.1) --> Interval(0x1.5555555555555p-1, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-2.5, -0.1) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-Inf, -0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-1.0, -1.0) --> Interval(0x1.5555555555555p-1, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-2.5, -1.0) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-Inf, -1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-2.5, -2.5) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(0.0, 1.5) ^ Interval(-Inf, -2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ ∅ --> ∅ - @fact Interval(0.0, Inf) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(0.0, Inf) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(0.0, Inf) ^ Interval(0.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-0.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(0.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-0.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-1.0, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-2.5, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-2.5, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-Inf, 0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-Inf, 1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-Inf, 2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-1.0, 0.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-1.0, -0.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-2.5, 0.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-2.5, -0.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-Inf, 0.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-Inf, -0.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-0.1, -0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-1.0, -0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-2.5, -0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-Inf, -0.1) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-1.0, -1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-2.5, -1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-Inf, -1.0) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-Inf, -2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, Inf) ^ Interval(-2.5, -2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ ∅ --> ∅ - @fact Interval(-0.0, 0.5) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.0, 0.5) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.0, 0.5) ^ Interval(0.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 0.5) ^ Interval(-0.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 0.5) ^ Interval(0.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 0.5) ^ Interval(-0.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 0.5) ^ Interval(0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 0.5) ^ Interval(-0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 0.5) ^ Interval(0.1, 0.1) --> Interval(0.0, 0x1.ddb680117ab13p-1) - @fact Interval(-0.0, 0.5) ^ Interval(0.1, 1.0) --> Interval(0.0, 0x1.ddb680117ab13p-1) - @fact Interval(-0.0, 0.5) ^ Interval(0.1, 2.5) --> Interval(0.0, 0x1.ddb680117ab13p-1) - @fact Interval(-0.0, 0.5) ^ Interval(0.1, Inf) --> Interval(0.0, 0x1.ddb680117ab13p-1) - @fact Interval(-0.0, 0.5) ^ Interval(1.0, 1.0) --> Interval(0.0, 0.5) - @fact Interval(-0.0, 0.5) ^ Interval(1.0, 2.5) --> Interval(0.0, 0.5) - @fact Interval(-0.0, 0.5) ^ Interval(1.0, Inf) --> Interval(0.0, 0.5) - @fact Interval(-0.0, 0.5) ^ Interval(2.5, 2.5) --> Interval(0.0, 0x1.6a09e667f3bcdp-3) - @fact Interval(-0.0, 0.5) ^ Interval(2.5, Inf) --> Interval(0.0, 0x1.6a09e667f3bcdp-3) - @fact Interval(-0.0, 0.5) ^ Interval(-0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-1.0, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-2.5, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-2.5, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-Inf, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-Inf, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-Inf, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-1.0, 0.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-1.0, -0.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-2.5, 0.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-2.5, -0.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-Inf, 0.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-Inf, -0.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-0.1, -0.1) --> Interval(0x1.125fbee250664p+0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-1.0, -0.1) --> Interval(0x1.125fbee250664p+0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-2.5, -0.1) --> Interval(0x1.125fbee250664p+0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-Inf, -0.1) --> Interval(0x1.125fbee250664p+0, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-1.0, -1.0) --> Interval(0x1p+1, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-2.5, -1.0) --> Interval(0x1p+1, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-Inf, -1.0) --> Interval(0x1p+1, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-2.5, -2.5) --> Interval(0x1.6a09e667f3bccp+2, Inf) - @fact Interval(-0.0, 0.5) ^ Interval(-Inf, -2.5) --> Interval(0x1.6a09e667f3bccp+2, Inf) - @fact Interval(-0.0, 1.0) ^ ∅ --> ∅ - @fact Interval(-0.0, 1.0) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(0.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(-0.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(0.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(-0.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(-0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(0.1, 0.1) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(0.1, 1.0) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(0.1, 2.5) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(0.1, Inf) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(1.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(1.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(1.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(2.5, 2.5) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(2.5, Inf) --> Interval(0.0, 1.0) - @fact Interval(-0.0, 1.0) ^ Interval(-0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-1.0, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-2.5, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-2.5, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-Inf, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-Inf, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-Inf, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-0.1, 0.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-0.1, -0.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-1.0, 0.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-1.0, -0.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-2.5, 0.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-2.5, -0.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-Inf, 0.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-Inf, -0.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-0.1, -0.1) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-1.0, -0.1) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-2.5, -0.1) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-Inf, -0.1) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-1.0, -1.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-2.5, -1.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-Inf, -1.0) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-2.5, -2.5) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.0) ^ Interval(-Inf, -2.5) --> Interval(1.0, Inf) - @fact Interval(-0.0, 1.5) ^ ∅ --> ∅ - @fact Interval(-0.0, 1.5) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.0, 1.5) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.0, 1.5) ^ Interval(0.0, 1.0) --> Interval(0.0, 1.5) - @fact Interval(-0.0, 1.5) ^ Interval(-0.0, 1.0) --> Interval(0.0, 1.5) - @fact Interval(-0.0, 1.5) ^ Interval(0.0, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(-0.0, 1.5) ^ Interval(-0.0, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(-0.0, 1.5) ^ Interval(0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(0.1, 0.1) --> Interval(0.0, 0x1.0a97dce72a0cbp+0) - @fact Interval(-0.0, 1.5) ^ Interval(0.1, 1.0) --> Interval(0.0, 1.5) - @fact Interval(-0.0, 1.5) ^ Interval(0.1, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(-0.0, 1.5) ^ Interval(0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(1.0, 1.0) --> Interval(0.0, 1.5) - @fact Interval(-0.0, 1.5) ^ Interval(1.0, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(-0.0, 1.5) ^ Interval(1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(2.5, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(-0.0, 1.5) ^ Interval(2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-1.0, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-2.5, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-2.5, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-Inf, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-Inf, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-Inf, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-1.0, 0.0) --> Interval(0x1.5555555555555p-1, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-1.0, -0.0) --> Interval(0x1.5555555555555p-1, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-2.5, 0.0) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-2.5, -0.0) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-Inf, 0.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-Inf, -0.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-0.1, -0.1) --> Interval(0x1.eba7c9e4d31e9p-1, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-1.0, -0.1) --> Interval(0x1.5555555555555p-1, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-2.5, -0.1) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-Inf, -0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-1.0, -1.0) --> Interval(0x1.5555555555555p-1, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-2.5, -1.0) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-Inf, -1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-2.5, -2.5) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(-0.0, 1.5) ^ Interval(-Inf, -2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ ∅ --> ∅ - @fact Interval(-0.0, Inf) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.0, Inf) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.0, Inf) ^ Interval(0.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-0.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(0.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-0.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-1.0, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-2.5, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-2.5, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-Inf, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-Inf, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-Inf, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-1.0, 0.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-1.0, -0.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-2.5, 0.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-2.5, -0.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-Inf, 0.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-Inf, -0.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-0.1, -0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-1.0, -0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-2.5, -0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-Inf, -0.1) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-1.0, -1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-2.5, -1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-Inf, -1.0) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-Inf, -2.5) --> Interval(0.0, Inf) - @fact Interval(-0.0, Inf) ^ Interval(-2.5, -2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ ∅ --> ∅ - @fact Interval(-0.1, 0.5) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.1, 0.5) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.1, 0.5) ^ Interval(0.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 0.5) ^ Interval(-0.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 0.5) ^ Interval(0.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 0.5) ^ Interval(-0.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 0.5) ^ Interval(0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 0.5) ^ Interval(-0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 0.5) ^ Interval(0.1, 0.1) --> Interval(0.0, 0x1.ddb680117ab13p-1) - @fact Interval(-0.1, 0.5) ^ Interval(0.1, 1.0) --> Interval(0.0, 0x1.ddb680117ab13p-1) - @fact Interval(-0.1, 0.5) ^ Interval(0.1, 2.5) --> Interval(0.0, 0x1.ddb680117ab13p-1) - @fact Interval(-0.1, 0.5) ^ Interval(0.1, Inf) --> Interval(0.0, 0x1.ddb680117ab13p-1) - @fact Interval(-0.1, 0.5) ^ Interval(1.0, 1.0) --> Interval(0.0, 0.5) - @fact Interval(-0.1, 0.5) ^ Interval(1.0, 2.5) --> Interval(0.0, 0.5) - @fact Interval(-0.1, 0.5) ^ Interval(1.0, Inf) --> Interval(0.0, 0.5) - @fact Interval(-0.1, 0.5) ^ Interval(2.5, 2.5) --> Interval(0.0, 0x1.6a09e667f3bcdp-3) - @fact Interval(-0.1, 0.5) ^ Interval(2.5, Inf) --> Interval(0.0, 0x1.6a09e667f3bcdp-3) - @fact Interval(-0.1, 0.5) ^ Interval(-0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-1.0, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-2.5, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-2.5, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-Inf, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-Inf, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-Inf, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-1.0, 0.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-1.0, -0.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-2.5, 0.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-2.5, -0.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-Inf, 0.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-Inf, -0.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-0.1, -0.1) --> Interval(0x1.125fbee250664p+0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-1.0, -0.1) --> Interval(0x1.125fbee250664p+0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-2.5, -0.1) --> Interval(0x1.125fbee250664p+0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-Inf, -0.1) --> Interval(0x1.125fbee250664p+0, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-1.0, -1.0) --> Interval(0x1p+1, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-2.5, -1.0) --> Interval(0x1p+1, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-Inf, -1.0) --> Interval(0x1p+1, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-2.5, -2.5) --> Interval(0x1.6a09e667f3bccp+2, Inf) - @fact Interval(-0.1, 0.5) ^ Interval(-Inf, -2.5) --> Interval(0x1.6a09e667f3bccp+2, Inf) - @fact Interval(-0.1, 1.0) ^ ∅ --> ∅ - @fact Interval(-0.1, 1.0) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(0.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(-0.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(0.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(-0.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(-0.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(0.1, 0.1) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(0.1, 1.0) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(0.1, 2.5) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(0.1, Inf) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(1.0, 1.0) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(1.0, 2.5) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(1.0, Inf) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(2.5, 2.5) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(2.5, Inf) --> Interval(0.0, 1.0) - @fact Interval(-0.1, 1.0) ^ Interval(-0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-1.0, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-2.5, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-2.5, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-Inf, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-Inf, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-Inf, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-0.1, 0.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-0.1, -0.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-1.0, 0.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-1.0, -0.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-2.5, 0.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-2.5, -0.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-Inf, 0.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-Inf, -0.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-0.1, -0.1) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-1.0, -0.1) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-2.5, -0.1) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-Inf, -0.1) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-1.0, -1.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-2.5, -1.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-Inf, -1.0) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-2.5, -2.5) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.0) ^ Interval(-Inf, -2.5) --> Interval(1.0, Inf) - @fact Interval(-0.1, 1.5) ^ ∅ --> ∅ - @fact Interval(-0.1, 1.5) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.1, 1.5) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.1, 1.5) ^ Interval(0.0, 1.0) --> Interval(0.0, 1.5) - @fact Interval(-0.1, 1.5) ^ Interval(-0.0, 1.0) --> Interval(0.0, 1.5) - @fact Interval(-0.1, 1.5) ^ Interval(0.0, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(-0.1, 1.5) ^ Interval(-0.0, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(-0.1, 1.5) ^ Interval(0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(0.1, 0.1) --> Interval(0.0, 0x1.0a97dce72a0cbp+0) - @fact Interval(-0.1, 1.5) ^ Interval(0.1, 1.0) --> Interval(0.0, 1.5) - @fact Interval(-0.1, 1.5) ^ Interval(0.1, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(-0.1, 1.5) ^ Interval(0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(1.0, 1.0) --> Interval(0.0, 1.5) - @fact Interval(-0.1, 1.5) ^ Interval(1.0, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(-0.1, 1.5) ^ Interval(1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(2.5, 2.5) --> Interval(0.0, 0x1.60b9fd68a4555p+1) - @fact Interval(-0.1, 1.5) ^ Interval(2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-1.0, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-2.5, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-2.5, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-Inf, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-Inf, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-Inf, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-1.0, 0.0) --> Interval(0x1.5555555555555p-1, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-1.0, -0.0) --> Interval(0x1.5555555555555p-1, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-2.5, 0.0) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-2.5, -0.0) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-Inf, 0.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-Inf, -0.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-0.1, -0.1) --> Interval(0x1.eba7c9e4d31e9p-1, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-1.0, -0.1) --> Interval(0x1.5555555555555p-1, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-2.5, -0.1) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-Inf, -0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-1.0, -1.0) --> Interval(0x1.5555555555555p-1, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-2.5, -1.0) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-Inf, -1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-2.5, -2.5) --> Interval(0x1.7398bf1d1ee6fp-2, Inf) - @fact Interval(-0.1, 1.5) ^ Interval(-Inf, -2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ ∅ --> ∅ - @fact Interval(-0.1, Inf) ^ Interval(0.0, 0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.1, Inf) ^ Interval(-0.0, -0.0) --> Interval(1.0, 1.0) - @fact Interval(-0.1, Inf) ^ Interval(0.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-0.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(0.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-0.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-0.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-0.1, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-0.1, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-0.1, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-0.1, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-1.0, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-1.0, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-1.0, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-1.0, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-2.5, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-2.5, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-2.5, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-2.5, Inf) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-Inf, 0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-Inf, 1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-Inf, 2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ entireinterval(Float64) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-1.0, 0.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-1.0, -0.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-2.5, 0.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-2.5, -0.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-Inf, 0.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-Inf, -0.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-0.1, -0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-1.0, -0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-2.5, -0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-Inf, -0.1) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-1.0, -1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-2.5, -1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-Inf, -1.0) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-Inf, -2.5) --> Interval(0.0, Inf) - @fact Interval(-0.1, Inf) ^ Interval(-2.5, -2.5) --> Interval(0.0, Inf) - @fact Interval(0.0, 0.0) ^ ∅ --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(0.0, 0.0) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-0.0, -0.0) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(0.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-0.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(0.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-0.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(0.1, 0.1) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(0.1, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(0.1, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(0.1, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(1.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(1.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(1.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(2.5, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(2.5, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-0.1, 0.1) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-0.1, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-0.1, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-0.1, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-1.0, 0.1) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-1.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-1.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-1.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-2.5, 0.1) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-2.5, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-2.5, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-2.5, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-Inf, 0.1) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-Inf, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-Inf, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ entireinterval(Float64) --> Interval(0.0, 0.0) - @fact Interval(0.0, 0.0) ^ Interval(-1.0, 0.0) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-1.0, -0.0) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-2.5, 0.0) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-2.5, -0.0) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-Inf, 0.0) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-Inf, -0.0) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-0.1, -0.1) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-1.0, -0.1) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-2.5, -0.1) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-Inf, -0.1) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-1.0, -1.0) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-2.5, -1.0) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-Inf, -1.0) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-Inf, -2.5) --> ∅ - @fact Interval(0.0, 0.0) ^ Interval(-2.5, -2.5) --> ∅ - @fact Interval(-0.0, -0.0) ^ ∅ --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(0.0, 0.0) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-0.0, -0.0) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(0.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-0.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(0.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-0.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(0.1, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(0.1, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(0.1, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(0.1, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(1.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(1.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(1.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(2.5, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(2.5, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-0.1, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-0.1, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-0.1, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-0.1, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-1.0, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-1.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-1.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-1.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-2.5, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-2.5, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-2.5, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-2.5, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-Inf, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-Inf, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-Inf, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ entireinterval(Float64) --> Interval(0.0, 0.0) - @fact Interval(-0.0, -0.0) ^ Interval(-1.0, 0.0) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-1.0, -0.0) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-2.5, 0.0) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-2.5, -0.0) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-Inf, 0.0) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-Inf, -0.0) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-0.1, -0.1) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-1.0, -0.1) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-2.5, -0.1) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-Inf, -0.1) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-1.0, -1.0) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-2.5, -1.0) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-Inf, -1.0) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-Inf, -2.5) --> ∅ - @fact Interval(-0.0, -0.0) ^ Interval(-2.5, -2.5) --> ∅ - @fact Interval(-0.0, 0.0) ^ ∅ --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(0.0, 0.0) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-0.0, -0.0) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(0.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-0.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(0.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-0.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(0.1, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(0.1, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(0.1, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(0.1, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(1.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(1.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(1.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(2.5, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(2.5, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-0.1, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-0.1, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-0.1, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-0.1, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-1.0, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-1.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-1.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-1.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-2.5, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-2.5, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-2.5, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-2.5, Inf) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-Inf, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-Inf, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-Inf, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ entireinterval(Float64) --> Interval(0.0, 0.0) - @fact Interval(-0.0, 0.0) ^ Interval(-1.0, 0.0) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-1.0, -0.0) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-2.5, 0.0) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-2.5, -0.0) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-Inf, 0.0) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-Inf, -0.0) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-0.1, -0.1) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-1.0, -0.1) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-2.5, -0.1) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-Inf, -0.1) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-1.0, -1.0) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-2.5, -1.0) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-Inf, -1.0) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-Inf, -2.5) --> ∅ - @fact Interval(-0.0, 0.0) ^ Interval(-2.5, -2.5) --> ∅ - @fact Interval(0.0, -0.0) ^ ∅ --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(0.0, 0.0) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-0.0, -0.0) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(0.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-0.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(0.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-0.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(0.1, 0.1) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(0.1, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(0.1, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(0.1, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(1.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(1.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(1.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(2.5, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(2.5, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-0.1, 0.1) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-0.1, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-0.1, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-0.1, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-1.0, 0.1) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-1.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-1.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-1.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-2.5, 0.1) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-2.5, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-2.5, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-2.5, Inf) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-Inf, 0.1) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-Inf, 1.0) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-Inf, 2.5) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ entireinterval(Float64) --> Interval(0.0, 0.0) - @fact Interval(0.0, -0.0) ^ Interval(-1.0, 0.0) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-1.0, -0.0) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-2.5, 0.0) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-2.5, -0.0) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-Inf, 0.0) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-Inf, -0.0) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-0.1, -0.1) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-1.0, -0.1) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-2.5, -0.1) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-Inf, -0.1) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-1.0, -1.0) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-2.5, -1.0) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-Inf, -1.0) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-Inf, -2.5) --> ∅ - @fact Interval(0.0, -0.0) ^ Interval(-2.5, -2.5) --> ∅ - @fact Interval(-1.0, 0.0) ^ ∅ --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(0.0, 0.0) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-0.0, -0.0) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(0.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-0.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(0.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-0.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(0.1, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(0.1, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(0.1, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(0.1, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(1.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(1.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(1.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(2.5, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(2.5, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-0.1, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-0.1, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-0.1, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-0.1, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-1.0, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-1.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-1.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-1.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-2.5, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-2.5, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-2.5, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-2.5, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-Inf, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-Inf, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-Inf, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ entireinterval(Float64) --> Interval(0.0, 0.0) - @fact Interval(-1.0, 0.0) ^ Interval(-1.0, 0.0) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-1.0, -0.0) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-2.5, 0.0) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-2.5, -0.0) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-Inf, 0.0) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-Inf, -0.0) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-0.1, -0.1) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-1.0, -0.1) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-2.5, -0.1) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-Inf, -0.1) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-1.0, -1.0) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-2.5, -1.0) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-Inf, -1.0) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-Inf, -2.5) --> ∅ - @fact Interval(-1.0, 0.0) ^ Interval(-2.5, -2.5) --> ∅ - @fact Interval(-1.0, -0.0) ^ ∅ --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(0.0, 0.0) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-0.0, -0.0) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(0.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-0.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(0.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-0.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-0.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(0.1, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(0.1, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(0.1, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(0.1, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(1.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(1.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(1.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(2.5, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(2.5, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-0.1, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-0.1, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-0.1, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-0.1, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-1.0, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-1.0, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-1.0, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-1.0, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-2.5, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-2.5, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-2.5, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-2.5, Inf) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-Inf, 0.1) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-Inf, 1.0) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-Inf, 2.5) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ entireinterval(Float64) --> Interval(0.0, 0.0) - @fact Interval(-1.0, -0.0) ^ Interval(-1.0, 0.0) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-1.0, -0.0) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-2.5, 0.0) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-2.5, -0.0) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-Inf, 0.0) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-Inf, -0.0) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-0.1, -0.1) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-1.0, -0.1) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-2.5, -0.1) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-Inf, -0.1) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-1.0, -1.0) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-2.5, -1.0) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-Inf, -1.0) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-Inf, -2.5) --> ∅ - @fact Interval(-1.0, -0.0) ^ Interval(-2.5, -2.5) --> ∅ - @fact Interval(-1.0, -0.1) ^ ∅ --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(0.0, 0.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-0.0, -0.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(0.0, 1.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-0.0, 1.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(0.0, 2.5) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-0.0, 2.5) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(0.0, Inf) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-0.0, Inf) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(0.1, 0.1) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(0.1, 1.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(0.1, 2.5) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(0.1, Inf) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(1.0, 1.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(1.0, 2.5) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(1.0, Inf) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(2.5, 2.5) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(2.5, Inf) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-0.1, 0.1) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-0.1, 1.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-0.1, 2.5) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-0.1, Inf) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-1.0, 0.1) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-1.0, 1.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-1.0, 2.5) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-1.0, Inf) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-2.5, 0.1) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-2.5, 1.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-2.5, 2.5) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-2.5, Inf) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-Inf, 0.1) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-Inf, 1.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-Inf, 2.5) --> ∅ - @fact Interval(-1.0, -0.1) ^ entireinterval(Float64) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-1.0, 0.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-1.0, -0.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-2.5, 0.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-2.5, -0.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-Inf, 0.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-Inf, -0.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-0.1, -0.1) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-1.0, -0.1) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-2.5, -0.1) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-Inf, -0.1) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-1.0, -1.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-2.5, -1.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-Inf, -1.0) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-Inf, -2.5) --> ∅ - @fact Interval(-1.0, -0.1) ^ Interval(-2.5, -2.5) --> ∅ +@testset "minimal_pow_test" begin + @test ∅ ^ ∅ == ∅ + @test ∅ ^ entireinterval(Float64) == ∅ + @test ∅ ^ Interval(-Inf, -1.0) == ∅ + @test ∅ ^ Interval(-Inf, 0.0) == ∅ + @test ∅ ^ Interval(-Inf, -0.0) == ∅ + @test ∅ ^ Interval(0.0, Inf) == ∅ + @test ∅ ^ Interval(-0.0, Inf) == ∅ + @test ∅ ^ Interval(1.0, Inf) == ∅ + @test ∅ ^ Interval(-3.0, 5.0) == ∅ + @test ∅ ^ Interval(0.0, 0.0) == ∅ + @test ∅ ^ Interval(-0.0, -0.0) == ∅ + @test ∅ ^ Interval(-5.0, -5.0) == ∅ + @test ∅ ^ Interval(5.0, 5.0) == ∅ + @test Interval(0.1, 0.5) ^ ∅ == ∅ + @test Interval(0.1, 0.5) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(0.1, 0.5) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(0.1, 0.5) ^ Interval(0.0, 1.0) == Interval(0x1.999999999999ap-4, 1.0) + @test Interval(0.1, 0.5) ^ Interval(-0.0, 1.0) == Interval(0x1.999999999999ap-4, 1.0) + @test Interval(0.1, 0.5) ^ Interval(0.0, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 1.0) + @test Interval(0.1, 0.5) ^ Interval(-0.0, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 1.0) + @test Interval(0.1, 0.5) ^ Interval(0.0, Inf) == Interval(0.0, 1.0) + @test Interval(0.1, 0.5) ^ Interval(-0.0, Inf) == Interval(0.0, 1.0) + @test Interval(0.1, 0.5) ^ Interval(0.1, 0.1) == Interval(0x1.96b230bcdc434p-1, 0x1.ddb680117ab13p-1) + @test Interval(0.1, 0.5) ^ Interval(0.1, 1.0) == Interval(0x1.999999999999ap-4, 0x1.ddb680117ab13p-1) + @test Interval(0.1, 0.5) ^ Interval(0.1, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 0x1.ddb680117ab13p-1) + @test Interval(0.1, 0.5) ^ Interval(0.1, Inf) == Interval(0.0, 0x1.ddb680117ab13p-1) + @test Interval(0.1, 0.5) ^ Interval(1.0, 1.0) == Interval(0x1.999999999999ap-4, 0x1p-1) + @test Interval(0.1, 0.5) ^ Interval(1.0, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 0x1p-1) + @test Interval(0.1, 0.5) ^ Interval(1.0, Inf) == Interval(0.0, 0x1p-1) + @test Interval(0.1, 0.5) ^ Interval(2.5, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 0x1.6a09e667f3bcdp-3) + @test Interval(0.1, 0.5) ^ Interval(2.5, Inf) == Interval(0.0, 0x1.6a09e667f3bcdp-3) + @test Interval(0.1, 0.5) ^ Interval(-0.1, 0.1) == Interval(0x1.96b230bcdc434p-1, 0x1.4248ef8fc2604p+0) + @test Interval(0.1, 0.5) ^ Interval(-0.1, 1.0) == Interval(0x1.999999999999ap-4, 0x1.4248ef8fc2604p+0) + @test Interval(0.1, 0.5) ^ Interval(-0.1, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 0x1.4248ef8fc2604p+0) + @test Interval(0.1, 0.5) ^ Interval(-0.1, Inf) == Interval(0.0, 0x1.4248ef8fc2604p+0) + @test Interval(0.1, 0.5) ^ Interval(-1.0, 0.1) == Interval(0x1.96b230bcdc434p-1, 0x1.4p+3) + @test Interval(0.1, 0.5) ^ Interval(-1.0, 1.0) == Interval(0x1.999999999999ap-4, 0x1.4p+3) + @test Interval(0.1, 0.5) ^ Interval(-1.0, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 0x1.4p+3) + @test Interval(0.1, 0.5) ^ Interval(-1.0, Inf) == Interval(0.0, 0x1.4p+3) + @test Interval(0.1, 0.5) ^ Interval(-2.5, 0.1) == Interval(0x1.96b230bcdc434p-1, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 0.5) ^ Interval(-2.5, 1.0) == Interval(0x1.999999999999ap-4, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 0.5) ^ Interval(-2.5, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 0.5) ^ Interval(-2.5, Inf) == Interval(0.0, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 0.5) ^ Interval(-Inf, 0.1) == Interval(0x1.96b230bcdc434p-1, Inf) + @test Interval(0.1, 0.5) ^ Interval(-Inf, 1.0) == Interval(0x1.999999999999ap-4, Inf) + @test Interval(0.1, 0.5) ^ Interval(-Inf, 2.5) == Interval(0x1.9e7c6e43390b7p-9, Inf) + @test Interval(0.1, 0.5) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(0.1, 0.5) ^ Interval(-1.0, 0.0) == Interval(1.0, 0x1.4p+3) + @test Interval(0.1, 0.5) ^ Interval(-1.0, -0.0) == Interval(1.0, 0x1.4p+3) + @test Interval(0.1, 0.5) ^ Interval(-2.5, 0.0) == Interval(1.0, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 0.5) ^ Interval(-2.5, -0.0) == Interval(1.0, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 0.5) ^ Interval(-Inf, 0.0) == Interval(1.0, Inf) + @test Interval(0.1, 0.5) ^ Interval(-Inf, -0.0) == Interval(1.0, Inf) + @test Interval(0.1, 0.5) ^ Interval(-0.1, -0.1) == Interval(0x1.125fbee250664p+0, 0x1.4248ef8fc2604p+0) + @test Interval(0.1, 0.5) ^ Interval(-1.0, -0.1) == Interval(0x1.125fbee250664p+0, 0x1.4p+3) + @test Interval(0.1, 0.5) ^ Interval(-2.5, -0.1) == Interval(0x1.125fbee250664p+0, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 0.5) ^ Interval(-Inf, -0.1) == Interval(0x1.125fbee250664p+0, Inf) + @test Interval(0.1, 0.5) ^ Interval(-1.0, -1.0) == Interval(0x1p+1, 0x1.4p+3) + @test Interval(0.1, 0.5) ^ Interval(-2.5, -1.0) == Interval(0x1p+1, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 0.5) ^ Interval(-Inf, -1.0) == Interval(0x1p+1, Inf) + @test Interval(0.1, 0.5) ^ Interval(-2.5, -2.5) == Interval(0x1.6a09e667f3bccp+2, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 0.5) ^ Interval(-Inf, -2.5) == Interval(0x1.6a09e667f3bccp+2, Inf) + @test Interval(0.1, 1.0) ^ ∅ == ∅ + @test Interval(0.1, 1.0) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(0.1, 1.0) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(0.1, 1.0) ^ Interval(0.0, 1.0) == Interval(0x1.999999999999ap-4, 1.0) + @test Interval(0.1, 1.0) ^ Interval(-0.0, 1.0) == Interval(0x1.999999999999ap-4, 1.0) + @test Interval(0.1, 1.0) ^ Interval(0.0, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 1.0) + @test Interval(0.1, 1.0) ^ Interval(-0.0, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 1.0) + @test Interval(0.1, 1.0) ^ Interval(0.0, Inf) == Interval(0.0, 1.0) + @test Interval(0.1, 1.0) ^ Interval(-0.0, Inf) == Interval(0.0, 1.0) + @test Interval(0.1, 1.0) ^ Interval(0.1, 0.1) == Interval(0x1.96b230bcdc434p-1, 1.0) + @test Interval(0.1, 1.0) ^ Interval(0.1, 1.0) == Interval(0x1.999999999999ap-4, 1.0) + @test Interval(0.1, 1.0) ^ Interval(0.1, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 1.0) + @test Interval(0.1, 1.0) ^ Interval(0.1, Inf) == Interval(0.0, 1.0) + @test Interval(0.1, 1.0) ^ Interval(1.0, 1.0) == Interval(0x1.999999999999ap-4, 1.0) + @test Interval(0.1, 1.0) ^ Interval(1.0, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 1.0) + @test Interval(0.1, 1.0) ^ Interval(1.0, Inf) == Interval(0.0, 1.0) + @test Interval(0.1, 1.0) ^ Interval(2.5, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 1.0) + @test Interval(0.1, 1.0) ^ Interval(2.5, Inf) == Interval(0.0, 1.0) + @test Interval(0.1, 1.0) ^ Interval(-0.1, 0.1) == Interval(0x1.96b230bcdc434p-1, 0x1.4248ef8fc2604p+0) + @test Interval(0.1, 1.0) ^ Interval(-0.1, 1.0) == Interval(0x1.999999999999ap-4, 0x1.4248ef8fc2604p+0) + @test Interval(0.1, 1.0) ^ Interval(-0.1, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 0x1.4248ef8fc2604p+0) + @test Interval(0.1, 1.0) ^ Interval(-0.1, Inf) == Interval(0.0, 0x1.4248ef8fc2604p+0) + @test Interval(0.1, 1.0) ^ Interval(-1.0, 0.1) == Interval(0x1.96b230bcdc434p-1, 0x1.4p+3) + @test Interval(0.1, 1.0) ^ Interval(-1.0, 1.0) == Interval(0x1.999999999999ap-4, 0x1.4p+3) + @test Interval(0.1, 1.0) ^ Interval(-1.0, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 0x1.4p+3) + @test Interval(0.1, 1.0) ^ Interval(-1.0, Inf) == Interval(0.0, 0x1.4p+3) + @test Interval(0.1, 1.0) ^ Interval(-2.5, 0.1) == Interval(0x1.96b230bcdc434p-1, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 1.0) ^ Interval(-2.5, 1.0) == Interval(0x1.999999999999ap-4, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 1.0) ^ Interval(-2.5, 2.5) == Interval(0x1.9e7c6e43390b7p-9, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 1.0) ^ Interval(-2.5, Inf) == Interval(0.0, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 1.0) ^ Interval(-Inf, 0.1) == Interval(0x1.96b230bcdc434p-1, Inf) + @test Interval(0.1, 1.0) ^ Interval(-Inf, 1.0) == Interval(0x1.999999999999ap-4, Inf) + @test Interval(0.1, 1.0) ^ Interval(-Inf, 2.5) == Interval(0x1.9e7c6e43390b7p-9, Inf) + @test Interval(0.1, 1.0) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(0.1, 1.0) ^ Interval(-0.1, 0.0) == Interval(1.0, 0x1.4248ef8fc2604p+0) + @test Interval(0.1, 1.0) ^ Interval(-0.1, -0.0) == Interval(1.0, 0x1.4248ef8fc2604p+0) + @test Interval(0.1, 1.0) ^ Interval(-1.0, 0.0) == Interval(1.0, 0x1.4p+3) + @test Interval(0.1, 1.0) ^ Interval(-1.0, -0.0) == Interval(1.0, 0x1.4p+3) + @test Interval(0.1, 1.0) ^ Interval(-2.5, 0.0) == Interval(1.0, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 1.0) ^ Interval(-2.5, -0.0) == Interval(1.0, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 1.0) ^ Interval(-Inf, 0.0) == Interval(1.0, Inf) + @test Interval(0.1, 1.0) ^ Interval(-Inf, -0.0) == Interval(1.0, Inf) + @test Interval(0.1, 1.0) ^ Interval(-0.1, -0.1) == Interval(1.0, 0x1.4248ef8fc2604p+0) + @test Interval(0.1, 1.0) ^ Interval(-1.0, -0.1) == Interval(1.0, 0x1.4p+3) + @test Interval(0.1, 1.0) ^ Interval(-2.5, -0.1) == Interval(1.0, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 1.0) ^ Interval(-Inf, -0.1) == Interval(1.0, Inf) + @test Interval(0.1, 1.0) ^ Interval(-1.0, -1.0) == Interval(1.0, 0x1.4p+3) + @test Interval(0.1, 1.0) ^ Interval(-2.5, -1.0) == Interval(1.0, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 1.0) ^ Interval(-Inf, -1.0) == Interval(1.0, Inf) + @test Interval(0.1, 1.0) ^ Interval(-2.5, -2.5) == Interval(1.0, 0x1.3c3a4edfa9758p+8) + @test Interval(0.1, 1.0) ^ Interval(-Inf, -2.5) == Interval(1.0, Inf) + @test Interval(0.5, 1.5) ^ ∅ == ∅ + @test Interval(0.5, 1.5) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(0.5, 1.5) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(0.5, 1.5) ^ Interval(0.0, 1.0) == Interval(0.5, 1.5) + @test Interval(0.5, 1.5) ^ Interval(-0.0, 1.0) == Interval(0.5, 1.5) + @test Interval(0.5, 1.5) ^ Interval(0.0, 2.5) == Interval(0x1.6a09e667f3bccp-3, 0x1.60b9fd68a4555p+1) + @test Interval(0.5, 1.5) ^ Interval(-0.0, 2.5) == Interval(0x1.6a09e667f3bccp-3, 0x1.60b9fd68a4555p+1) + @test Interval(0.5, 1.5) ^ Interval(0.0, Inf) == Interval(0.0, Inf) + @test Interval(0.5, 1.5) ^ Interval(-0.0, Inf) == Interval(0.0, Inf) + @test Interval(0.5, 1.5) ^ Interval(0.1, 0.1) == Interval(0x1.ddb680117ab12p-1, 0x1.0a97dce72a0cbp+0) + @test Interval(0.5, 1.5) ^ Interval(0.1, 1.0) == Interval(0.5, 1.5) + @test Interval(0.5, 1.5) ^ Interval(0.1, 2.5) == Interval(0x1.6a09e667f3bccp-3, 0x1.60b9fd68a4555p+1) + @test Interval(0.5, 1.5) ^ Interval(0.1, Inf) == Interval(0.0, Inf) + @test Interval(0.5, 1.5) ^ Interval(1.0, 1.0) == Interval(0.5, 1.5) + @test Interval(0.5, 1.5) ^ Interval(1.0, 2.5) == Interval(0x1.6a09e667f3bccp-3, 0x1.60b9fd68a4555p+1) + @test Interval(0.5, 1.5) ^ Interval(1.0, Inf) == Interval(0.0, Inf) + @test Interval(0.5, 1.5) ^ Interval(2.5, 2.5) == Interval(0x1.6a09e667f3bccp-3, 0x1.60b9fd68a4555p+1) + @test Interval(0.5, 1.5) ^ Interval(2.5, Inf) == Interval(0.0, Inf) + @test Interval(0.5, 1.5) ^ Interval(-0.1, 0.1) == Interval(0x1.ddb680117ab12p-1, 0x1.125fbee250665p+0) + @test Interval(0.5, 1.5) ^ Interval(-0.1, 1.0) == Interval(0x1p-1, 0x1.8p+0) + @test Interval(0.5, 1.5) ^ Interval(-0.1, 2.5) == Interval(0x1.6a09e667f3bccp-3, 0x1.60b9fd68a4555p+1) + @test Interval(0.5, 1.5) ^ Interval(-0.1, Inf) == Interval(0x0p+0, Inf) + @test Interval(0.5, 1.5) ^ Interval(-1.0, 0.1) == Interval(0x1.5555555555555p-1, 0x1p+1) + @test Interval(0.5, 1.5) ^ Interval(-1.0, 1.0) == Interval(0x1p-1, 0x1p+1) + @test Interval(0.5, 1.5) ^ Interval(-1.0, 2.5) == Interval(0x1.6a09e667f3bccp-3, 0x1.60b9fd68a4555p+1) + @test Interval(0.5, 1.5) ^ Interval(-1.0, Inf) == Interval(0x0p+0, Inf) + @test Interval(0.5, 1.5) ^ Interval(-2.5, 0.1) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2) + @test Interval(0.5, 1.5) ^ Interval(-2.5, 1.0) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2) + @test Interval(0.5, 1.5) ^ Interval(-2.5, 2.5) == Interval(0x1.6a09e667f3bccp-3, 0x1.6a09e667f3bcdp+2) + @test Interval(0.5, 1.5) ^ Interval(-2.5, Inf) == Interval(0x0p+0, Inf) + @test Interval(0.5, 1.5) ^ Interval(-Inf, 0.1) == Interval(0x0p+0, Inf) + @test Interval(0.5, 1.5) ^ Interval(-Inf, 1.0) == Interval(0x0p+0, Inf) + @test Interval(0.5, 1.5) ^ Interval(-Inf, 2.5) == Interval(0x0p+0, Inf) + @test Interval(0.5, 1.5) ^ entireinterval(Float64) == Interval(0x0p+0, Inf) + @test Interval(0.5, 1.5) ^ Interval(-1.0, 0.0) == Interval(0x1.5555555555555p-1, 0x1p+1) + @test Interval(0.5, 1.5) ^ Interval(-1.0, -0.0) == Interval(0x1.5555555555555p-1, 0x1p+1) + @test Interval(0.5, 1.5) ^ Interval(-2.5, 0.0) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2) + @test Interval(0.5, 1.5) ^ Interval(-2.5, -0.0) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2) + @test Interval(0.5, 1.5) ^ Interval(-Inf, 0.0) == Interval(0x0p+0, Inf) + @test Interval(0.5, 1.5) ^ Interval(-Inf, -0.0) == Interval(0x0p+0, Inf) + @test Interval(0.5, 1.5) ^ Interval(-0.1, -0.1) == Interval(0x1.eba7c9e4d31e9p-1, 0x1.125fbee250665p+0) + @test Interval(0.5, 1.5) ^ Interval(-1.0, -0.1) == Interval(0x1.5555555555555p-1, 0x1p+1) + @test Interval(0.5, 1.5) ^ Interval(-2.5, -0.1) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2) + @test Interval(0.5, 1.5) ^ Interval(-Inf, -0.1) == Interval(0x0p+0, Inf) + @test Interval(0.5, 1.5) ^ Interval(-1.0, -1.0) == Interval(0x1.5555555555555p-1, 0x1p+1) + @test Interval(0.5, 1.5) ^ Interval(-2.5, -1.0) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2) + @test Interval(0.5, 1.5) ^ Interval(-Inf, -1.0) == Interval(0x0p+0, Inf) + @test Interval(0.5, 1.5) ^ Interval(-2.5, -2.5) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2) + @test Interval(0.5, 1.5) ^ Interval(-Inf, -2.5) == Interval(0x0p+0, Inf) + @test Interval(0.5, Inf) ^ ∅ == ∅ + @test Interval(0.5, Inf) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(0.5, Inf) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(0.5, Inf) ^ Interval(0.0, 1.0) == Interval(0.5, Inf) + @test Interval(0.5, Inf) ^ Interval(-0.0, 1.0) == Interval(0.5, Inf) + @test Interval(0.5, Inf) ^ Interval(0.0, 2.5) == Interval(0x1.6a09e667f3bccp-3, Inf) + @test Interval(0.5, Inf) ^ Interval(-0.0, 2.5) == Interval(0x1.6a09e667f3bccp-3, Inf) + @test Interval(0.5, Inf) ^ Interval(0.0, Inf) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-0.0, Inf) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(0.1, 0.1) == Interval(0x1.ddb680117ab12p-1, Inf) + @test Interval(0.5, Inf) ^ Interval(0.1, 1.0) == Interval(0.5, Inf) + @test Interval(0.5, Inf) ^ Interval(0.1, 2.5) == Interval(0x1.6a09e667f3bccp-3, Inf) + @test Interval(0.5, Inf) ^ Interval(0.1, Inf) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(1.0, 1.0) == Interval(0.5, Inf) + @test Interval(0.5, Inf) ^ Interval(1.0, 2.5) == Interval(0x1.6a09e667f3bccp-3, Inf) + @test Interval(0.5, Inf) ^ Interval(1.0, Inf) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(2.5, 2.5) == Interval(0x1.6a09e667f3bccp-3, Inf) + @test Interval(0.5, Inf) ^ Interval(2.5, Inf) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-0.1, 0.1) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-0.1, 1.0) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-0.1, 2.5) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-0.1, Inf) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-1.0, 0.1) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-1.0, 1.0) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-1.0, 2.5) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-1.0, Inf) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-2.5, 0.1) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-2.5, 1.0) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-2.5, 2.5) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-2.5, Inf) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-Inf, 0.1) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-Inf, 1.0) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-Inf, 2.5) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-1.0, 0.0) == Interval(0.0, 0x1p+1) + @test Interval(0.5, Inf) ^ Interval(-1.0, -0.0) == Interval(0.0, 0x1p+1) + @test Interval(0.5, Inf) ^ Interval(-2.5, 0.0) == Interval(0.0, 0x1.6a09e667f3bcdp+2) + @test Interval(0.5, Inf) ^ Interval(-2.5, -0.0) == Interval(0.0, 0x1.6a09e667f3bcdp+2) + @test Interval(0.5, Inf) ^ Interval(-Inf, 0.0) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-Inf, -0.0) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-0.1, -0.1) == Interval(0.0, 0x1.125fbee250665p+0) + @test Interval(0.5, Inf) ^ Interval(-1.0, -0.1) == Interval(0.0, 0x1p+1) + @test Interval(0.5, Inf) ^ Interval(-2.5, -0.1) == Interval(0.0, 0x1.6a09e667f3bcdp+2) + @test Interval(0.5, Inf) ^ Interval(-Inf, -0.1) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-1.0, -1.0) == Interval(0.0, 0x1p+1) + @test Interval(0.5, Inf) ^ Interval(-2.5, -1.0) == Interval(0.0, 0x1.6a09e667f3bcdp+2) + @test Interval(0.5, Inf) ^ Interval(-Inf, -1.0) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-Inf, -2.5) == Interval(0.0, Inf) + @test Interval(0.5, Inf) ^ Interval(-2.5, -2.5) == Interval(0.0, 0x1.6a09e667f3bcdp+2) + @test Interval(1.0, 1.5) ^ ∅ == ∅ + @test Interval(1.0, 1.5) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(1.0, 1.5) ^ Interval(0.0, 1.0) == Interval(1.0, 0x1.8p+0) + @test Interval(1.0, 1.5) ^ Interval(-0.0, 1.0) == Interval(1.0, 0x1.8p+0) + @test Interval(1.0, 1.5) ^ Interval(0.0, 2.5) == Interval(1.0, 0x1.60b9fd68a4555p+1) + @test Interval(1.0, 1.5) ^ Interval(-0.0, 2.5) == Interval(1.0, 0x1.60b9fd68a4555p+1) + @test Interval(1.0, 1.5) ^ Interval(0.0, Inf) == Interval(1.0, Inf) + @test Interval(1.0, 1.5) ^ Interval(-0.0, Inf) == Interval(1.0, Inf) + @test Interval(1.0, 1.5) ^ Interval(0.1, 0.1) == Interval(1.0, 0x1.0a97dce72a0cbp+0) + @test Interval(1.0, 1.5) ^ Interval(0.1, 1.0) == Interval(1.0, 0x1.8p+0) + @test Interval(1.0, 1.5) ^ Interval(0.1, 2.5) == Interval(1.0, 0x1.60b9fd68a4555p+1) + @test Interval(1.0, 1.5) ^ Interval(0.1, Inf) == Interval(1.0, Inf) + @test Interval(1.0, 1.5) ^ Interval(1.0, 1.0) == Interval(1.0, 0x1.8p+0) + @test Interval(1.0, 1.5) ^ Interval(1.0, 2.5) == Interval(1.0, 0x1.60b9fd68a4555p+1) + @test Interval(1.0, 1.5) ^ Interval(1.0, Inf) == Interval(1.0, Inf) + @test Interval(1.0, 1.5) ^ Interval(2.5, 2.5) == Interval(1.0, 0x1.60b9fd68a4555p+1) + @test Interval(1.0, 1.5) ^ Interval(2.5, Inf) == Interval(1.0, Inf) + @test Interval(1.0, 1.5) ^ Interval(-0.1, 0.1) == Interval(0x1.eba7c9e4d31e9p-1, 0x1.0a97dce72a0cbp+0) + @test Interval(1.0, 1.5) ^ Interval(-0.1, 1.0) == Interval(0x1.eba7c9e4d31e9p-1, 0x1.8p+0) + @test Interval(1.0, 1.5) ^ Interval(-0.1, 2.5) == Interval(0x1.eba7c9e4d31e9p-1, 0x1.60b9fd68a4555p+1) + @test Interval(1.0, 1.5) ^ Interval(-0.1, Inf) == Interval(0x1.eba7c9e4d31e9p-1, Inf) + @test Interval(1.0, 1.5) ^ Interval(-1.0, 0.1) == Interval(0x1.5555555555555p-1, 0x1.0a97dce72a0cbp+0) + @test Interval(1.0, 1.5) ^ Interval(-1.0, 1.0) == Interval(0x1.5555555555555p-1, 0x1.8p+0) + @test Interval(1.0, 1.5) ^ Interval(-1.0, 2.5) == Interval(0x1.5555555555555p-1, 0x1.60b9fd68a4555p+1) + @test Interval(1.0, 1.5) ^ Interval(-1.0, Inf) == Interval(0x1.5555555555555p-1, Inf) + @test Interval(1.0, 1.5) ^ Interval(-2.5, 0.1) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.0a97dce72a0cbp+0) + @test Interval(1.0, 1.5) ^ Interval(-2.5, 1.0) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.8p+0) + @test Interval(1.0, 1.5) ^ Interval(-2.5, 2.5) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.60b9fd68a4555p+1) + @test Interval(1.0, 1.5) ^ Interval(-2.5, Inf) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(1.0, 1.5) ^ Interval(-Inf, 0.1) == Interval(0x0p+0, 0x1.0a97dce72a0cbp+0) + @test Interval(1.0, 1.5) ^ Interval(-Inf, 1.0) == Interval(0x0p+0, 0x1.8p+0) + @test Interval(1.0, 1.5) ^ Interval(-Inf, 2.5) == Interval(0x0p+0, 0x1.60b9fd68a4555p+1) + @test Interval(1.0, 1.5) ^ entireinterval(Float64) == Interval(0x0p+0, Inf) + @test Interval(1.0, 1.5) ^ Interval(-1.0, 0.0) == Interval(0x1.5555555555555p-1, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-1.0, -0.0) == Interval(0x1.5555555555555p-1, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-2.5, 0.0) == Interval(0x1.7398bf1d1ee6fp-2, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-2.5, -0.0) == Interval(0x1.7398bf1d1ee6fp-2, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-Inf, 0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-Inf, -0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-0.1, -0.1) == Interval(0x1.eba7c9e4d31e9p-1, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-1.0, -0.1) == Interval(0x1.5555555555555p-1, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-2.5, -0.1) == Interval(0x1.7398bf1d1ee6fp-2, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-Inf, -0.1) == Interval(0x0p+0, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-1.0, -1.0) == Interval(0x1.5555555555555p-1, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-2.5, -1.0) == Interval(0x1.7398bf1d1ee6fp-2, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-Inf, -1.0) == Interval(0x0p+0, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-2.5, -2.5) == Interval(0x1.7398bf1d1ee6fp-2, 1.0) + @test Interval(1.0, 1.5) ^ Interval(-Inf, -2.5) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ ∅ == ∅ + @test Interval(1.0, Inf) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(1.0, Inf) ^ Interval(0.0, 1.0) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(-0.0, 1.0) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(0.0, 2.5) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(-0.0, 2.5) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(0.0, Inf) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(-0.0, Inf) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(0.1, 0.1) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(0.1, 1.0) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(0.1, 2.5) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(0.1, Inf) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(1.0, 1.0) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(1.0, 2.5) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(1.0, Inf) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(2.5, 2.5) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(2.5, Inf) == Interval(1.0, Inf) + @test Interval(1.0, Inf) ^ Interval(-0.1, 0.1) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-0.1, 1.0) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-0.1, 2.5) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-0.1, Inf) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-1.0, 0.1) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-1.0, 1.0) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-1.0, 2.5) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-1.0, Inf) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-2.5, 0.1) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-2.5, 1.0) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-2.5, 2.5) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-2.5, Inf) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-Inf, 0.1) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-Inf, 1.0) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-Inf, 2.5) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ entireinterval(Float64) == Interval(0x0p+0, Inf) + @test Interval(1.0, Inf) ^ Interval(-1.0, 0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-1.0, -0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-2.5, 0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-2.5, -0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-Inf, 0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-Inf, -0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-0.1, -0.1) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-1.0, -0.1) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-2.5, -0.1) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-Inf, -0.1) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-1.0, -1.0) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-2.5, -1.0) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-Inf, -1.0) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-2.5, -2.5) == Interval(0x0p+0, 1.0) + @test Interval(1.0, Inf) ^ Interval(-Inf, -2.5) == Interval(0x0p+0, 1.0) + @test Interval(1.1, 1.5) ^ ∅ == ∅ + @test Interval(1.1, 1.5) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(1.1, 1.5) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(1.1, 1.5) ^ Interval(0.0, 1.0) == Interval(1.0, 0x1.8p+0) + @test Interval(1.1, 1.5) ^ Interval(-0.0, 1.0) == Interval(1.0, 0x1.8p+0) + @test Interval(1.1, 1.5) ^ Interval(0.0, 2.5) == Interval(1.0, 0x1.60b9fd68a4555p+1) + @test Interval(1.1, 1.5) ^ Interval(-0.0, 2.5) == Interval(1.0, 0x1.60b9fd68a4555p+1) + @test Interval(1.1, 1.5) ^ Interval(0.0, Inf) == Interval(1.0, Inf) + @test Interval(1.1, 1.5) ^ Interval(-0.0, Inf) == Interval(1.0, Inf) + @test Interval(1.1, 1.5) ^ Interval(0.1, 0.1) == Interval(0x1.02739c65d58bfp+0, 0x1.0a97dce72a0cbp+0) + @test Interval(1.1, 1.5) ^ Interval(0.1, 1.0) == Interval(0x1.02739c65d58bfp+0, 0x1.8p+0) + @test Interval(1.1, 1.5) ^ Interval(0.1, 2.5) == Interval(0x1.02739c65d58bfp+0, 0x1.60b9fd68a4555p+1) + @test Interval(1.1, 1.5) ^ Interval(0.1, Inf) == Interval(0x1.02739c65d58bfp+0, Inf) + @test Interval(1.1, 1.5) ^ Interval(1.0, 1.0) == Interval(0x1.199999999999ap+0, 0x1.8p+0) + @test Interval(1.1, 1.5) ^ Interval(1.0, 2.5) == Interval(0x1.199999999999ap+0, 0x1.60b9fd68a4555p+1) + @test Interval(1.1, 1.5) ^ Interval(1.0, Inf) == Interval(0x1.199999999999ap+0, Inf) + @test Interval(1.1, 1.5) ^ Interval(2.5, 2.5) == Interval(0x1.44e1080833b25p+0, 0x1.60b9fd68a4555p+1) + @test Interval(1.1, 1.5) ^ Interval(2.5, Inf) == Interval(0x1.44e1080833b25p+0, Inf) + @test Interval(1.1, 1.5) ^ Interval(-0.1, 0.1) == Interval(0x1.eba7c9e4d31e9p-1, 0x1.0a97dce72a0cbp+0) + @test Interval(1.1, 1.5) ^ Interval(-0.1, 1.0) == Interval(0x1.eba7c9e4d31e9p-1, 0x1.8p+0) + @test Interval(1.1, 1.5) ^ Interval(-0.1, 2.5) == Interval(0x1.eba7c9e4d31e9p-1, 0x1.60b9fd68a4555p+1) + @test Interval(1.1, 1.5) ^ Interval(-0.1, Inf) == Interval(0x1.eba7c9e4d31e9p-1, Inf) + @test Interval(1.1, 1.5) ^ Interval(-1.0, 0.1) == Interval(0x1.5555555555555p-1, 0x1.0a97dce72a0cbp+0) + @test Interval(1.1, 1.5) ^ Interval(-1.0, 1.0) == Interval(0x1.5555555555555p-1, 0x1.8p+0) + @test Interval(1.1, 1.5) ^ Interval(-1.0, 2.5) == Interval(0x1.5555555555555p-1, 0x1.60b9fd68a4555p+1) + @test Interval(1.1, 1.5) ^ Interval(-1.0, Inf) == Interval(0x1.5555555555555p-1, Inf) + @test Interval(1.1, 1.5) ^ Interval(-2.5, 0.1) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.0a97dce72a0cbp+0) + @test Interval(1.1, 1.5) ^ Interval(-2.5, 1.0) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.8p+0) + @test Interval(1.1, 1.5) ^ Interval(-2.5, 2.5) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.60b9fd68a4555p+1) + @test Interval(1.1, 1.5) ^ Interval(-2.5, Inf) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(1.1, 1.5) ^ Interval(-Inf, 0.1) == Interval(0x0p+0, 0x1.0a97dce72a0cbp+0) + @test Interval(1.1, 1.5) ^ Interval(-Inf, 1.0) == Interval(0x0p+0, 0x1.8p+0) + @test Interval(1.1, 1.5) ^ Interval(-Inf, 2.5) == Interval(0x0p+0, 0x1.60b9fd68a4555p+1) + @test Interval(1.1, 1.5) ^ entireinterval(Float64) == Interval(0x0p+0, Inf) + @test Interval(1.1, 1.5) ^ Interval(-1.0, 0.0) == Interval(0x1.5555555555555p-1, 1.0) + @test Interval(1.1, 1.5) ^ Interval(-1.0, -0.0) == Interval(0x1.5555555555555p-1, 1.0) + @test Interval(1.1, 1.5) ^ Interval(-2.5, 0.0) == Interval(0x1.7398bf1d1ee6fp-2, 1.0) + @test Interval(1.1, 1.5) ^ Interval(-2.5, -0.0) == Interval(0x1.7398bf1d1ee6fp-2, 1.0) + @test Interval(1.1, 1.5) ^ Interval(-Inf, 0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.1, 1.5) ^ Interval(-Inf, -0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.1, 1.5) ^ Interval(-0.1, -0.1) == Interval(0x1.eba7c9e4d31e9p-1, 0x1.fb24af5281928p-1) + @test Interval(1.1, 1.5) ^ Interval(-1.0, -0.1) == Interval(0x1.5555555555555p-1, 0x1.fb24af5281928p-1) + @test Interval(1.1, 1.5) ^ Interval(-2.5, -0.1) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.fb24af5281928p-1) + @test Interval(1.1, 1.5) ^ Interval(-Inf, -0.1) == Interval(0x0p+0, 0x1.fb24af5281928p-1) + @test Interval(1.1, 1.5) ^ Interval(-1.0, -1.0) == Interval(0x1.5555555555555p-1, 0x1.d1745d1745d17p-1) + @test Interval(1.1, 1.5) ^ Interval(-2.5, -1.0) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.d1745d1745d17p-1) + @test Interval(1.1, 1.5) ^ Interval(-Inf, -1.0) == Interval(0x0p+0, 0x1.d1745d1745d17p-1) + @test Interval(1.1, 1.5) ^ Interval(-2.5, -2.5) == Interval(0x1.7398bf1d1ee6fp-2, 0x1.9372d999784c8p-1) + @test Interval(1.1, 1.5) ^ Interval(-Inf, -2.5) == Interval(0x0p+0, 0x1.9372d999784c8p-1) + @test Interval(1.1, Inf) ^ ∅ == ∅ + @test Interval(1.1, Inf) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(1.1, Inf) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(1.1, Inf) ^ Interval(0.0, 1.0) == Interval(1.0, Inf) + @test Interval(1.1, Inf) ^ Interval(-0.0, 1.0) == Interval(1.0, Inf) + @test Interval(1.1, Inf) ^ Interval(0.0, 2.5) == Interval(1.0, Inf) + @test Interval(1.1, Inf) ^ Interval(-0.0, 2.5) == Interval(1.0, Inf) + @test Interval(1.1, Inf) ^ Interval(0.0, Inf) == Interval(1.0, Inf) + @test Interval(1.1, Inf) ^ Interval(-0.0, Inf) == Interval(1.0, Inf) + @test Interval(1.1, Inf) ^ Interval(0.1, 0.1) == Interval(0x1.02739c65d58bfp+0, Inf) + @test Interval(1.1, Inf) ^ Interval(0.1, 1.0) == Interval(0x1.02739c65d58bfp+0, Inf) + @test Interval(1.1, Inf) ^ Interval(0.1, 2.5) == Interval(0x1.02739c65d58bfp+0, Inf) + @test Interval(1.1, Inf) ^ Interval(0.1, Inf) == Interval(0x1.02739c65d58bfp+0, Inf) + @test Interval(1.1, Inf) ^ Interval(1.0, 1.0) == Interval(0x1.199999999999ap+0, Inf) + @test Interval(1.1, Inf) ^ Interval(1.0, 2.5) == Interval(0x1.199999999999ap+0, Inf) + @test Interval(1.1, Inf) ^ Interval(1.0, Inf) == Interval(0x1.199999999999ap+0, Inf) + @test Interval(1.1, Inf) ^ Interval(2.5, 2.5) == Interval(0x1.44e1080833b25p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(2.5, Inf) == Interval(0x1.44e1080833b25p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-0.1, 0.1) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-0.1, 1.0) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-0.1, 2.5) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-0.1, Inf) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-1.0, 0.1) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-1.0, 1.0) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-1.0, 2.5) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-1.0, Inf) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-2.5, 0.1) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-2.5, 1.0) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-2.5, 2.5) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-2.5, Inf) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-Inf, 0.1) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-Inf, 1.0) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-Inf, 2.5) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ entireinterval(Float64) == Interval(0x0p+0, Inf) + @test Interval(1.1, Inf) ^ Interval(-1.0, 0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.1, Inf) ^ Interval(-1.0, -0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.1, Inf) ^ Interval(-2.5, 0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.1, Inf) ^ Interval(-2.5, -0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.1, Inf) ^ Interval(-Inf, 0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.1, Inf) ^ Interval(-Inf, -0.0) == Interval(0x0p+0, 1.0) + @test Interval(1.1, Inf) ^ Interval(-0.1, -0.1) == Interval(0x0p+0, 0x1.fb24af5281928p-1) + @test Interval(1.1, Inf) ^ Interval(-1.0, -0.1) == Interval(0x0p+0, 0x1.fb24af5281928p-1) + @test Interval(1.1, Inf) ^ Interval(-2.5, -0.1) == Interval(0x0p+0, 0x1.fb24af5281928p-1) + @test Interval(1.1, Inf) ^ Interval(-Inf, -0.1) == Interval(0x0p+0, 0x1.fb24af5281928p-1) + @test Interval(1.1, Inf) ^ Interval(-1.0, -1.0) == Interval(0x0p+0, 0x1.d1745d1745d17p-1) + @test Interval(1.1, Inf) ^ Interval(-2.5, -1.0) == Interval(0x0p+0, 0x1.d1745d1745d17p-1) + @test Interval(1.1, Inf) ^ Interval(-Inf, -1.0) == Interval(0x0p+0, 0x1.d1745d1745d17p-1) + @test Interval(1.1, Inf) ^ Interval(-2.5, -2.5) == Interval(0x0p+0, 0x1.9372d999784c8p-1) + @test Interval(1.1, Inf) ^ Interval(-Inf, -2.5) == Interval(0x0p+0, 0x1.9372d999784c8p-1) + @test Interval(0.0, 0.5) ^ ∅ == ∅ + @test Interval(0.0, 0.5) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(0.0, 0.5) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(0.0, 0.5) ^ Interval(0.0, 1.0) == Interval(0.0, 1.0) + @test Interval(0.0, 0.5) ^ Interval(-0.0, 1.0) == Interval(0.0, 1.0) + @test Interval(0.0, 0.5) ^ Interval(0.0, 2.5) == Interval(0.0, 1.0) + @test Interval(0.0, 0.5) ^ Interval(-0.0, 2.5) == Interval(0.0, 1.0) + @test Interval(0.0, 0.5) ^ Interval(0.0, Inf) == Interval(0.0, 1.0) + @test Interval(0.0, 0.5) ^ Interval(-0.0, Inf) == Interval(0.0, 1.0) + @test Interval(0.0, 0.5) ^ Interval(0.1, 0.1) == Interval(0.0, 0x1.ddb680117ab13p-1) + @test Interval(0.0, 0.5) ^ Interval(0.1, 1.0) == Interval(0.0, 0x1.ddb680117ab13p-1) + @test Interval(0.0, 0.5) ^ Interval(0.1, 2.5) == Interval(0.0, 0x1.ddb680117ab13p-1) + @test Interval(0.0, 0.5) ^ Interval(0.1, Inf) == Interval(0.0, 0x1.ddb680117ab13p-1) + @test Interval(0.0, 0.5) ^ Interval(1.0, 1.0) == Interval(0.0, 0.5) + @test Interval(0.0, 0.5) ^ Interval(1.0, 2.5) == Interval(0.0, 0.5) + @test Interval(0.0, 0.5) ^ Interval(1.0, Inf) == Interval(0.0, 0.5) + @test Interval(0.0, 0.5) ^ Interval(2.5, 2.5) == Interval(0.0, 0x1.6a09e667f3bcdp-3) + @test Interval(0.0, 0.5) ^ Interval(2.5, Inf) == Interval(0.0, 0x1.6a09e667f3bcdp-3) + @test Interval(0.0, 0.5) ^ Interval(-0.1, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-0.1, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-0.1, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-0.1, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-1.0, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-1.0, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-1.0, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-1.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-2.5, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-2.5, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-2.5, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-2.5, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-Inf, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-Inf, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-Inf, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-1.0, 0.0) == Interval(1.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-1.0, -0.0) == Interval(1.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-2.5, 0.0) == Interval(1.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-2.5, -0.0) == Interval(1.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-Inf, 0.0) == Interval(1.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-Inf, -0.0) == Interval(1.0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-0.1, -0.1) == Interval(0x1.125fbee250664p+0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-1.0, -0.1) == Interval(0x1.125fbee250664p+0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-2.5, -0.1) == Interval(0x1.125fbee250664p+0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-Inf, -0.1) == Interval(0x1.125fbee250664p+0, Inf) + @test Interval(0.0, 0.5) ^ Interval(-1.0, -1.0) == Interval(0x1p+1, Inf) + @test Interval(0.0, 0.5) ^ Interval(-2.5, -1.0) == Interval(0x1p+1, Inf) + @test Interval(0.0, 0.5) ^ Interval(-Inf, -1.0) == Interval(0x1p+1, Inf) + @test Interval(0.0, 0.5) ^ Interval(-2.5, -2.5) == Interval(0x1.6a09e667f3bccp+2, Inf) + @test Interval(0.0, 0.5) ^ Interval(-Inf, -2.5) == Interval(0x1.6a09e667f3bccp+2, Inf) + @test Interval(0.0, 1.0) ^ ∅ == ∅ + @test Interval(0.0, 1.0) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(0.0, 1.0) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(-0.0, 1.0) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(0.0, 2.5) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(-0.0, 2.5) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(0.0, Inf) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(-0.0, Inf) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(0.1, 0.1) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(0.1, 1.0) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(0.1, 2.5) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(0.1, Inf) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(1.0, 1.0) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(1.0, 2.5) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(1.0, Inf) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(2.5, 2.5) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(2.5, Inf) == Interval(0.0, 1.0) + @test Interval(0.0, 1.0) ^ Interval(-0.1, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-0.1, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-0.1, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-0.1, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-1.0, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-1.0, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-1.0, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-1.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-2.5, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-2.5, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-2.5, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-2.5, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-Inf, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-Inf, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-Inf, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-0.1, 0.0) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-0.1, -0.0) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-1.0, 0.0) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-1.0, -0.0) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-2.5, 0.0) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-2.5, -0.0) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-Inf, 0.0) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-Inf, -0.0) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-0.1, -0.1) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-1.0, -0.1) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-2.5, -0.1) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-Inf, -0.1) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-1.0, -1.0) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-2.5, -1.0) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-Inf, -1.0) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-2.5, -2.5) == Interval(1.0, Inf) + @test Interval(0.0, 1.0) ^ Interval(-Inf, -2.5) == Interval(1.0, Inf) + @test Interval(0.0, 1.5) ^ ∅ == ∅ + @test Interval(0.0, 1.5) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(0.0, 1.5) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(0.0, 1.5) ^ Interval(0.0, 1.0) == Interval(0.0, 1.5) + @test Interval(0.0, 1.5) ^ Interval(-0.0, 1.0) == Interval(0.0, 1.5) + @test Interval(0.0, 1.5) ^ Interval(0.0, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(0.0, 1.5) ^ Interval(-0.0, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(0.0, 1.5) ^ Interval(0.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-0.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(0.1, 0.1) == Interval(0.0, 0x1.0a97dce72a0cbp+0) + @test Interval(0.0, 1.5) ^ Interval(0.1, 1.0) == Interval(0.0, 1.5) + @test Interval(0.0, 1.5) ^ Interval(0.1, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(0.0, 1.5) ^ Interval(0.1, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(1.0, 1.0) == Interval(0.0, 1.5) + @test Interval(0.0, 1.5) ^ Interval(1.0, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(0.0, 1.5) ^ Interval(1.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(2.5, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(0.0, 1.5) ^ Interval(2.5, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-0.1, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-0.1, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-0.1, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-0.1, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-1.0, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-1.0, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-1.0, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-1.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-2.5, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-2.5, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-2.5, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-2.5, Inf) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-Inf, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-Inf, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-Inf, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-1.0, 0.0) == Interval(0x1.5555555555555p-1, Inf) + @test Interval(0.0, 1.5) ^ Interval(-1.0, -0.0) == Interval(0x1.5555555555555p-1, Inf) + @test Interval(0.0, 1.5) ^ Interval(-2.5, 0.0) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(0.0, 1.5) ^ Interval(-2.5, -0.0) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(0.0, 1.5) ^ Interval(-Inf, 0.0) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-Inf, -0.0) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-0.1, -0.1) == Interval(0x1.eba7c9e4d31e9p-1, Inf) + @test Interval(0.0, 1.5) ^ Interval(-1.0, -0.1) == Interval(0x1.5555555555555p-1, Inf) + @test Interval(0.0, 1.5) ^ Interval(-2.5, -0.1) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(0.0, 1.5) ^ Interval(-Inf, -0.1) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-1.0, -1.0) == Interval(0x1.5555555555555p-1, Inf) + @test Interval(0.0, 1.5) ^ Interval(-2.5, -1.0) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(0.0, 1.5) ^ Interval(-Inf, -1.0) == Interval(0.0, Inf) + @test Interval(0.0, 1.5) ^ Interval(-2.5, -2.5) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(0.0, 1.5) ^ Interval(-Inf, -2.5) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ ∅ == ∅ + @test Interval(0.0, Inf) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(0.0, Inf) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(0.0, Inf) ^ Interval(0.0, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-0.0, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(0.0, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-0.0, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(0.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-0.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(0.1, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(0.1, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(0.1, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(0.1, Inf) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(1.0, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(1.0, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(1.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(2.5, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(2.5, Inf) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-0.1, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-0.1, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-0.1, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-0.1, Inf) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-1.0, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-1.0, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-1.0, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-1.0, Inf) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-2.5, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-2.5, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-2.5, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-2.5, Inf) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-Inf, 0.1) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-Inf, 1.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-Inf, 2.5) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-1.0, 0.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-1.0, -0.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-2.5, 0.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-2.5, -0.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-Inf, 0.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-Inf, -0.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-0.1, -0.1) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-1.0, -0.1) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-2.5, -0.1) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-Inf, -0.1) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-1.0, -1.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-2.5, -1.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-Inf, -1.0) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-Inf, -2.5) == Interval(0.0, Inf) + @test Interval(0.0, Inf) ^ Interval(-2.5, -2.5) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ ∅ == ∅ + @test Interval(-0.0, 0.5) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(-0.0, 0.5) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(-0.0, 0.5) ^ Interval(0.0, 1.0) == Interval(0.0, 1.0) + @test Interval(-0.0, 0.5) ^ Interval(-0.0, 1.0) == Interval(0.0, 1.0) + @test Interval(-0.0, 0.5) ^ Interval(0.0, 2.5) == Interval(0.0, 1.0) + @test Interval(-0.0, 0.5) ^ Interval(-0.0, 2.5) == Interval(0.0, 1.0) + @test Interval(-0.0, 0.5) ^ Interval(0.0, Inf) == Interval(0.0, 1.0) + @test Interval(-0.0, 0.5) ^ Interval(-0.0, Inf) == Interval(0.0, 1.0) + @test Interval(-0.0, 0.5) ^ Interval(0.1, 0.1) == Interval(0.0, 0x1.ddb680117ab13p-1) + @test Interval(-0.0, 0.5) ^ Interval(0.1, 1.0) == Interval(0.0, 0x1.ddb680117ab13p-1) + @test Interval(-0.0, 0.5) ^ Interval(0.1, 2.5) == Interval(0.0, 0x1.ddb680117ab13p-1) + @test Interval(-0.0, 0.5) ^ Interval(0.1, Inf) == Interval(0.0, 0x1.ddb680117ab13p-1) + @test Interval(-0.0, 0.5) ^ Interval(1.0, 1.0) == Interval(0.0, 0.5) + @test Interval(-0.0, 0.5) ^ Interval(1.0, 2.5) == Interval(0.0, 0.5) + @test Interval(-0.0, 0.5) ^ Interval(1.0, Inf) == Interval(0.0, 0.5) + @test Interval(-0.0, 0.5) ^ Interval(2.5, 2.5) == Interval(0.0, 0x1.6a09e667f3bcdp-3) + @test Interval(-0.0, 0.5) ^ Interval(2.5, Inf) == Interval(0.0, 0x1.6a09e667f3bcdp-3) + @test Interval(-0.0, 0.5) ^ Interval(-0.1, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-0.1, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-0.1, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-0.1, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-1.0, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-1.0, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-1.0, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-1.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-2.5, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-2.5, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-2.5, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-2.5, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-Inf, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-Inf, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-Inf, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-1.0, 0.0) == Interval(1.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-1.0, -0.0) == Interval(1.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-2.5, 0.0) == Interval(1.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-2.5, -0.0) == Interval(1.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-Inf, 0.0) == Interval(1.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-Inf, -0.0) == Interval(1.0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-0.1, -0.1) == Interval(0x1.125fbee250664p+0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-1.0, -0.1) == Interval(0x1.125fbee250664p+0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-2.5, -0.1) == Interval(0x1.125fbee250664p+0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-Inf, -0.1) == Interval(0x1.125fbee250664p+0, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-1.0, -1.0) == Interval(0x1p+1, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-2.5, -1.0) == Interval(0x1p+1, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-Inf, -1.0) == Interval(0x1p+1, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-2.5, -2.5) == Interval(0x1.6a09e667f3bccp+2, Inf) + @test Interval(-0.0, 0.5) ^ Interval(-Inf, -2.5) == Interval(0x1.6a09e667f3bccp+2, Inf) + @test Interval(-0.0, 1.0) ^ ∅ == ∅ + @test Interval(-0.0, 1.0) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(0.0, 1.0) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(-0.0, 1.0) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(0.0, 2.5) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(-0.0, 2.5) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(0.0, Inf) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(-0.0, Inf) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(0.1, 0.1) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(0.1, 1.0) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(0.1, 2.5) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(0.1, Inf) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(1.0, 1.0) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(1.0, 2.5) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(1.0, Inf) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(2.5, 2.5) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(2.5, Inf) == Interval(0.0, 1.0) + @test Interval(-0.0, 1.0) ^ Interval(-0.1, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-0.1, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-0.1, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-0.1, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-1.0, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-1.0, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-1.0, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-1.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-2.5, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-2.5, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-2.5, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-2.5, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-Inf, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-Inf, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-Inf, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-0.1, 0.0) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-0.1, -0.0) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-1.0, 0.0) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-1.0, -0.0) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-2.5, 0.0) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-2.5, -0.0) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-Inf, 0.0) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-Inf, -0.0) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-0.1, -0.1) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-1.0, -0.1) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-2.5, -0.1) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-Inf, -0.1) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-1.0, -1.0) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-2.5, -1.0) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-Inf, -1.0) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-2.5, -2.5) == Interval(1.0, Inf) + @test Interval(-0.0, 1.0) ^ Interval(-Inf, -2.5) == Interval(1.0, Inf) + @test Interval(-0.0, 1.5) ^ ∅ == ∅ + @test Interval(-0.0, 1.5) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(-0.0, 1.5) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(-0.0, 1.5) ^ Interval(0.0, 1.0) == Interval(0.0, 1.5) + @test Interval(-0.0, 1.5) ^ Interval(-0.0, 1.0) == Interval(0.0, 1.5) + @test Interval(-0.0, 1.5) ^ Interval(0.0, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(-0.0, 1.5) ^ Interval(-0.0, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(-0.0, 1.5) ^ Interval(0.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-0.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(0.1, 0.1) == Interval(0.0, 0x1.0a97dce72a0cbp+0) + @test Interval(-0.0, 1.5) ^ Interval(0.1, 1.0) == Interval(0.0, 1.5) + @test Interval(-0.0, 1.5) ^ Interval(0.1, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(-0.0, 1.5) ^ Interval(0.1, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(1.0, 1.0) == Interval(0.0, 1.5) + @test Interval(-0.0, 1.5) ^ Interval(1.0, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(-0.0, 1.5) ^ Interval(1.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(2.5, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(-0.0, 1.5) ^ Interval(2.5, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-0.1, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-0.1, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-0.1, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-0.1, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-1.0, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-1.0, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-1.0, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-1.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-2.5, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-2.5, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-2.5, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-2.5, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-Inf, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-Inf, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-Inf, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-1.0, 0.0) == Interval(0x1.5555555555555p-1, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-1.0, -0.0) == Interval(0x1.5555555555555p-1, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-2.5, 0.0) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-2.5, -0.0) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-Inf, 0.0) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-Inf, -0.0) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-0.1, -0.1) == Interval(0x1.eba7c9e4d31e9p-1, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-1.0, -0.1) == Interval(0x1.5555555555555p-1, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-2.5, -0.1) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-Inf, -0.1) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-1.0, -1.0) == Interval(0x1.5555555555555p-1, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-2.5, -1.0) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-Inf, -1.0) == Interval(0.0, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-2.5, -2.5) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(-0.0, 1.5) ^ Interval(-Inf, -2.5) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ ∅ == ∅ + @test Interval(-0.0, Inf) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(-0.0, Inf) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(-0.0, Inf) ^ Interval(0.0, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-0.0, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(0.0, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-0.0, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(0.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-0.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(0.1, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(0.1, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(0.1, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(0.1, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(1.0, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(1.0, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(1.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(2.5, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(2.5, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-0.1, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-0.1, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-0.1, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-0.1, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-1.0, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-1.0, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-1.0, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-1.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-2.5, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-2.5, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-2.5, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-2.5, Inf) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-Inf, 0.1) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-Inf, 1.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-Inf, 2.5) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-1.0, 0.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-1.0, -0.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-2.5, 0.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-2.5, -0.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-Inf, 0.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-Inf, -0.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-0.1, -0.1) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-1.0, -0.1) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-2.5, -0.1) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-Inf, -0.1) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-1.0, -1.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-2.5, -1.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-Inf, -1.0) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-Inf, -2.5) == Interval(0.0, Inf) + @test Interval(-0.0, Inf) ^ Interval(-2.5, -2.5) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ ∅ == ∅ + @test Interval(-0.1, 0.5) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(-0.1, 0.5) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(-0.1, 0.5) ^ Interval(0.0, 1.0) == Interval(0.0, 1.0) + @test Interval(-0.1, 0.5) ^ Interval(-0.0, 1.0) == Interval(0.0, 1.0) + @test Interval(-0.1, 0.5) ^ Interval(0.0, 2.5) == Interval(0.0, 1.0) + @test Interval(-0.1, 0.5) ^ Interval(-0.0, 2.5) == Interval(0.0, 1.0) + @test Interval(-0.1, 0.5) ^ Interval(0.0, Inf) == Interval(0.0, 1.0) + @test Interval(-0.1, 0.5) ^ Interval(-0.0, Inf) == Interval(0.0, 1.0) + @test Interval(-0.1, 0.5) ^ Interval(0.1, 0.1) == Interval(0.0, 0x1.ddb680117ab13p-1) + @test Interval(-0.1, 0.5) ^ Interval(0.1, 1.0) == Interval(0.0, 0x1.ddb680117ab13p-1) + @test Interval(-0.1, 0.5) ^ Interval(0.1, 2.5) == Interval(0.0, 0x1.ddb680117ab13p-1) + @test Interval(-0.1, 0.5) ^ Interval(0.1, Inf) == Interval(0.0, 0x1.ddb680117ab13p-1) + @test Interval(-0.1, 0.5) ^ Interval(1.0, 1.0) == Interval(0.0, 0.5) + @test Interval(-0.1, 0.5) ^ Interval(1.0, 2.5) == Interval(0.0, 0.5) + @test Interval(-0.1, 0.5) ^ Interval(1.0, Inf) == Interval(0.0, 0.5) + @test Interval(-0.1, 0.5) ^ Interval(2.5, 2.5) == Interval(0.0, 0x1.6a09e667f3bcdp-3) + @test Interval(-0.1, 0.5) ^ Interval(2.5, Inf) == Interval(0.0, 0x1.6a09e667f3bcdp-3) + @test Interval(-0.1, 0.5) ^ Interval(-0.1, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-0.1, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-0.1, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-0.1, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-1.0, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-1.0, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-1.0, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-1.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-2.5, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-2.5, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-2.5, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-2.5, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-Inf, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-Inf, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-Inf, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-1.0, 0.0) == Interval(1.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-1.0, -0.0) == Interval(1.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-2.5, 0.0) == Interval(1.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-2.5, -0.0) == Interval(1.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-Inf, 0.0) == Interval(1.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-Inf, -0.0) == Interval(1.0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-0.1, -0.1) == Interval(0x1.125fbee250664p+0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-1.0, -0.1) == Interval(0x1.125fbee250664p+0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-2.5, -0.1) == Interval(0x1.125fbee250664p+0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-Inf, -0.1) == Interval(0x1.125fbee250664p+0, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-1.0, -1.0) == Interval(0x1p+1, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-2.5, -1.0) == Interval(0x1p+1, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-Inf, -1.0) == Interval(0x1p+1, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-2.5, -2.5) == Interval(0x1.6a09e667f3bccp+2, Inf) + @test Interval(-0.1, 0.5) ^ Interval(-Inf, -2.5) == Interval(0x1.6a09e667f3bccp+2, Inf) + @test Interval(-0.1, 1.0) ^ ∅ == ∅ + @test Interval(-0.1, 1.0) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(0.0, 1.0) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(-0.0, 1.0) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(0.0, 2.5) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(-0.0, 2.5) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(0.0, Inf) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(-0.0, Inf) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(0.1, 0.1) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(0.1, 1.0) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(0.1, 2.5) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(0.1, Inf) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(1.0, 1.0) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(1.0, 2.5) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(1.0, Inf) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(2.5, 2.5) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(2.5, Inf) == Interval(0.0, 1.0) + @test Interval(-0.1, 1.0) ^ Interval(-0.1, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-0.1, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-0.1, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-0.1, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-1.0, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-1.0, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-1.0, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-1.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-2.5, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-2.5, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-2.5, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-2.5, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-Inf, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-Inf, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-Inf, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-0.1, 0.0) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-0.1, -0.0) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-1.0, 0.0) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-1.0, -0.0) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-2.5, 0.0) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-2.5, -0.0) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-Inf, 0.0) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-Inf, -0.0) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-0.1, -0.1) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-1.0, -0.1) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-2.5, -0.1) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-Inf, -0.1) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-1.0, -1.0) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-2.5, -1.0) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-Inf, -1.0) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-2.5, -2.5) == Interval(1.0, Inf) + @test Interval(-0.1, 1.0) ^ Interval(-Inf, -2.5) == Interval(1.0, Inf) + @test Interval(-0.1, 1.5) ^ ∅ == ∅ + @test Interval(-0.1, 1.5) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(-0.1, 1.5) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(-0.1, 1.5) ^ Interval(0.0, 1.0) == Interval(0.0, 1.5) + @test Interval(-0.1, 1.5) ^ Interval(-0.0, 1.0) == Interval(0.0, 1.5) + @test Interval(-0.1, 1.5) ^ Interval(0.0, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(-0.1, 1.5) ^ Interval(-0.0, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(-0.1, 1.5) ^ Interval(0.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-0.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(0.1, 0.1) == Interval(0.0, 0x1.0a97dce72a0cbp+0) + @test Interval(-0.1, 1.5) ^ Interval(0.1, 1.0) == Interval(0.0, 1.5) + @test Interval(-0.1, 1.5) ^ Interval(0.1, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(-0.1, 1.5) ^ Interval(0.1, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(1.0, 1.0) == Interval(0.0, 1.5) + @test Interval(-0.1, 1.5) ^ Interval(1.0, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(-0.1, 1.5) ^ Interval(1.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(2.5, 2.5) == Interval(0.0, 0x1.60b9fd68a4555p+1) + @test Interval(-0.1, 1.5) ^ Interval(2.5, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-0.1, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-0.1, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-0.1, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-0.1, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-1.0, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-1.0, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-1.0, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-1.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-2.5, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-2.5, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-2.5, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-2.5, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-Inf, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-Inf, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-Inf, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-1.0, 0.0) == Interval(0x1.5555555555555p-1, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-1.0, -0.0) == Interval(0x1.5555555555555p-1, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-2.5, 0.0) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-2.5, -0.0) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-Inf, 0.0) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-Inf, -0.0) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-0.1, -0.1) == Interval(0x1.eba7c9e4d31e9p-1, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-1.0, -0.1) == Interval(0x1.5555555555555p-1, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-2.5, -0.1) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-Inf, -0.1) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-1.0, -1.0) == Interval(0x1.5555555555555p-1, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-2.5, -1.0) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-Inf, -1.0) == Interval(0.0, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-2.5, -2.5) == Interval(0x1.7398bf1d1ee6fp-2, Inf) + @test Interval(-0.1, 1.5) ^ Interval(-Inf, -2.5) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ ∅ == ∅ + @test Interval(-0.1, Inf) ^ Interval(0.0, 0.0) == Interval(1.0, 1.0) + @test Interval(-0.1, Inf) ^ Interval(-0.0, -0.0) == Interval(1.0, 1.0) + @test Interval(-0.1, Inf) ^ Interval(0.0, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-0.0, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(0.0, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-0.0, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(0.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-0.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(0.1, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(0.1, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(0.1, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(0.1, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(1.0, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(1.0, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(1.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(2.5, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(2.5, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-0.1, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-0.1, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-0.1, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-0.1, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-1.0, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-1.0, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-1.0, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-1.0, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-2.5, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-2.5, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-2.5, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-2.5, Inf) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-Inf, 0.1) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-Inf, 1.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-Inf, 2.5) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ entireinterval(Float64) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-1.0, 0.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-1.0, -0.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-2.5, 0.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-2.5, -0.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-Inf, 0.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-Inf, -0.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-0.1, -0.1) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-1.0, -0.1) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-2.5, -0.1) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-Inf, -0.1) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-1.0, -1.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-2.5, -1.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-Inf, -1.0) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-Inf, -2.5) == Interval(0.0, Inf) + @test Interval(-0.1, Inf) ^ Interval(-2.5, -2.5) == Interval(0.0, Inf) + @test Interval(0.0, 0.0) ^ ∅ == ∅ + @test Interval(0.0, 0.0) ^ Interval(0.0, 0.0) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-0.0, -0.0) == ∅ + @test Interval(0.0, 0.0) ^ Interval(0.0, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-0.0, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(0.0, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-0.0, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(0.0, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-0.0, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(0.1, 0.1) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(0.1, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(0.1, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(0.1, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(1.0, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(1.0, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(1.0, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(2.5, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(2.5, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-0.1, 0.1) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-0.1, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-0.1, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-0.1, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-1.0, 0.1) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-1.0, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-1.0, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-1.0, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-2.5, 0.1) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-2.5, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-2.5, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-2.5, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-Inf, 0.1) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-Inf, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-Inf, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ entireinterval(Float64) == Interval(0.0, 0.0) + @test Interval(0.0, 0.0) ^ Interval(-1.0, 0.0) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-1.0, -0.0) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-2.5, 0.0) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-2.5, -0.0) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-Inf, 0.0) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-Inf, -0.0) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-0.1, -0.1) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-1.0, -0.1) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-2.5, -0.1) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-Inf, -0.1) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-1.0, -1.0) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-2.5, -1.0) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-Inf, -1.0) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-Inf, -2.5) == ∅ + @test Interval(0.0, 0.0) ^ Interval(-2.5, -2.5) == ∅ + @test Interval(-0.0, -0.0) ^ ∅ == ∅ + @test Interval(-0.0, -0.0) ^ Interval(0.0, 0.0) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-0.0, -0.0) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(0.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-0.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(0.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-0.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(0.0, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-0.0, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(0.1, 0.1) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(0.1, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(0.1, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(0.1, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(1.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(1.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(1.0, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(2.5, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(2.5, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-0.1, 0.1) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-0.1, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-0.1, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-0.1, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-1.0, 0.1) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-1.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-1.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-1.0, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-2.5, 0.1) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-2.5, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-2.5, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-2.5, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-Inf, 0.1) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-Inf, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-Inf, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ entireinterval(Float64) == Interval(0.0, 0.0) + @test Interval(-0.0, -0.0) ^ Interval(-1.0, 0.0) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-1.0, -0.0) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-2.5, 0.0) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-2.5, -0.0) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-Inf, 0.0) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-Inf, -0.0) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-0.1, -0.1) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-1.0, -0.1) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-2.5, -0.1) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-Inf, -0.1) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-1.0, -1.0) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-2.5, -1.0) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-Inf, -1.0) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-Inf, -2.5) == ∅ + @test Interval(-0.0, -0.0) ^ Interval(-2.5, -2.5) == ∅ + @test Interval(-0.0, 0.0) ^ ∅ == ∅ + @test Interval(-0.0, 0.0) ^ Interval(0.0, 0.0) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-0.0, -0.0) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(0.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-0.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(0.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-0.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(0.0, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-0.0, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(0.1, 0.1) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(0.1, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(0.1, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(0.1, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(1.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(1.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(1.0, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(2.5, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(2.5, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-0.1, 0.1) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-0.1, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-0.1, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-0.1, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-1.0, 0.1) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-1.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-1.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-1.0, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-2.5, 0.1) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-2.5, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-2.5, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-2.5, Inf) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-Inf, 0.1) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-Inf, 1.0) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-Inf, 2.5) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ entireinterval(Float64) == Interval(0.0, 0.0) + @test Interval(-0.0, 0.0) ^ Interval(-1.0, 0.0) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-1.0, -0.0) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-2.5, 0.0) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-2.5, -0.0) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-Inf, 0.0) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-Inf, -0.0) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-0.1, -0.1) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-1.0, -0.1) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-2.5, -0.1) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-Inf, -0.1) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-1.0, -1.0) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-2.5, -1.0) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-Inf, -1.0) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-Inf, -2.5) == ∅ + @test Interval(-0.0, 0.0) ^ Interval(-2.5, -2.5) == ∅ + @test Interval(0.0, -0.0) ^ ∅ == ∅ + @test Interval(0.0, -0.0) ^ Interval(0.0, 0.0) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-0.0, -0.0) == ∅ + @test Interval(0.0, -0.0) ^ Interval(0.0, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-0.0, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(0.0, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-0.0, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(0.0, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-0.0, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(0.1, 0.1) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(0.1, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(0.1, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(0.1, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(1.0, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(1.0, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(1.0, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(2.5, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(2.5, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-0.1, 0.1) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-0.1, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-0.1, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-0.1, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-1.0, 0.1) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-1.0, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-1.0, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-1.0, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-2.5, 0.1) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-2.5, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-2.5, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-2.5, Inf) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-Inf, 0.1) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-Inf, 1.0) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-Inf, 2.5) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ entireinterval(Float64) == Interval(0.0, 0.0) + @test Interval(0.0, -0.0) ^ Interval(-1.0, 0.0) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-1.0, -0.0) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-2.5, 0.0) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-2.5, -0.0) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-Inf, 0.0) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-Inf, -0.0) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-0.1, -0.1) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-1.0, -0.1) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-2.5, -0.1) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-Inf, -0.1) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-1.0, -1.0) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-2.5, -1.0) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-Inf, -1.0) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-Inf, -2.5) == ∅ + @test Interval(0.0, -0.0) ^ Interval(-2.5, -2.5) == ∅ + @test Interval(-1.0, 0.0) ^ ∅ == ∅ + @test Interval(-1.0, 0.0) ^ Interval(0.0, 0.0) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-0.0, -0.0) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(0.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-0.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(0.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-0.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(0.0, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-0.0, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(0.1, 0.1) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(0.1, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(0.1, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(0.1, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(1.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(1.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(1.0, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(2.5, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(2.5, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-0.1, 0.1) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-0.1, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-0.1, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-0.1, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-1.0, 0.1) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-1.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-1.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-1.0, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-2.5, 0.1) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-2.5, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-2.5, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-2.5, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-Inf, 0.1) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-Inf, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-Inf, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ entireinterval(Float64) == Interval(0.0, 0.0) + @test Interval(-1.0, 0.0) ^ Interval(-1.0, 0.0) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-1.0, -0.0) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-2.5, 0.0) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-2.5, -0.0) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-Inf, 0.0) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-Inf, -0.0) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-0.1, -0.1) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-1.0, -0.1) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-2.5, -0.1) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-Inf, -0.1) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-1.0, -1.0) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-2.5, -1.0) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-Inf, -1.0) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-Inf, -2.5) == ∅ + @test Interval(-1.0, 0.0) ^ Interval(-2.5, -2.5) == ∅ + @test Interval(-1.0, -0.0) ^ ∅ == ∅ + @test Interval(-1.0, -0.0) ^ Interval(0.0, 0.0) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-0.0, -0.0) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(0.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-0.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(0.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-0.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(0.0, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-0.0, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(0.1, 0.1) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(0.1, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(0.1, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(0.1, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(1.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(1.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(1.0, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(2.5, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(2.5, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-0.1, 0.1) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-0.1, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-0.1, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-0.1, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-1.0, 0.1) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-1.0, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-1.0, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-1.0, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-2.5, 0.1) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-2.5, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-2.5, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-2.5, Inf) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-Inf, 0.1) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-Inf, 1.0) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-Inf, 2.5) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ entireinterval(Float64) == Interval(0.0, 0.0) + @test Interval(-1.0, -0.0) ^ Interval(-1.0, 0.0) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-1.0, -0.0) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-2.5, 0.0) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-2.5, -0.0) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-Inf, 0.0) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-Inf, -0.0) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-0.1, -0.1) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-1.0, -0.1) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-2.5, -0.1) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-Inf, -0.1) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-1.0, -1.0) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-2.5, -1.0) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-Inf, -1.0) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-Inf, -2.5) == ∅ + @test Interval(-1.0, -0.0) ^ Interval(-2.5, -2.5) == ∅ + @test Interval(-1.0, -0.1) ^ ∅ == ∅ + @test Interval(-1.0, -0.1) ^ Interval(0.0, 0.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-0.0, -0.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(0.0, 1.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-0.0, 1.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(0.0, 2.5) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-0.0, 2.5) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(0.0, Inf) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-0.0, Inf) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(0.1, 0.1) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(0.1, 1.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(0.1, 2.5) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(0.1, Inf) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(1.0, 1.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(1.0, 2.5) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(1.0, Inf) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(2.5, 2.5) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(2.5, Inf) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-0.1, 0.1) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-0.1, 1.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-0.1, 2.5) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-0.1, Inf) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-1.0, 0.1) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-1.0, 1.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-1.0, 2.5) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-1.0, Inf) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-2.5, 0.1) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-2.5, 1.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-2.5, 2.5) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-2.5, Inf) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-Inf, 0.1) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-Inf, 1.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-Inf, 2.5) == ∅ + @test Interval(-1.0, -0.1) ^ entireinterval(Float64) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-1.0, 0.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-1.0, -0.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-2.5, 0.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-2.5, -0.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-Inf, 0.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-Inf, -0.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-0.1, -0.1) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-1.0, -0.1) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-2.5, -0.1) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-Inf, -0.1) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-1.0, -1.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-2.5, -1.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-Inf, -1.0) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-Inf, -2.5) == ∅ + @test Interval(-1.0, -0.1) ^ Interval(-2.5, -2.5) == ∅ end -facts("minimal_pow_dec_test") do - @fact DecoratedInterval(Interval(0.1, 0.5), com) ^ DecoratedInterval(Interval(0.0, 1.0), com) --> DecoratedInterval(Interval(0x1.999999999999ap-4, 1.0), com) - @fact decoration(DecoratedInterval(Interval(0.1, 0.5), com) ^ DecoratedInterval(Interval(0.0, 1.0), com)) --> decoration(DecoratedInterval(Interval(0x1.999999999999ap-4, 1.0), com)) - @fact DecoratedInterval(Interval(0.1, 0.5), com) ^ DecoratedInterval(Interval(0.1, 0.1), def) --> DecoratedInterval(Interval(0x1.96b230bcdc434p-1, 0x1.ddb680117ab13p-1), def) - @fact decoration(DecoratedInterval(Interval(0.1, 0.5), com) ^ DecoratedInterval(Interval(0.1, 0.1), def)) --> decoration(DecoratedInterval(Interval(0x1.96b230bcdc434p-1, 0x1.ddb680117ab13p-1), def)) - @fact DecoratedInterval(Interval(0.1, 0.5), trv) ^ DecoratedInterval(Interval(-2.5, 2.5), dac) --> DecoratedInterval(Interval(0x1.9e7c6e43390b7p-9, 0x1.3c3a4edfa9758p+8), trv) - @fact decoration(DecoratedInterval(Interval(0.1, 0.5), trv) ^ DecoratedInterval(Interval(-2.5, 2.5), dac)) --> decoration(DecoratedInterval(Interval(0x1.9e7c6e43390b7p-9, 0x1.3c3a4edfa9758p+8), trv)) - @fact DecoratedInterval(Interval(0.1, 0.5), com) ^ DecoratedInterval(Interval(-2.5, Inf), dac) --> DecoratedInterval(Interval(0.0, 0x1.3c3a4edfa9758p+8), dac) - @fact decoration(DecoratedInterval(Interval(0.1, 0.5), com) ^ DecoratedInterval(Interval(-2.5, Inf), dac)) --> decoration(DecoratedInterval(Interval(0.0, 0x1.3c3a4edfa9758p+8), dac)) - @fact DecoratedInterval(Interval(0.1, 0.5), trv) ^ DecoratedInterval(Interval(-Inf, 0.1), dac) --> DecoratedInterval(Interval(0x1.96b230bcdc434p-1, Inf), trv) - @fact decoration(DecoratedInterval(Interval(0.1, 0.5), trv) ^ DecoratedInterval(Interval(-Inf, 0.1), dac)) --> decoration(DecoratedInterval(Interval(0x1.96b230bcdc434p-1, Inf), trv)) - @fact DecoratedInterval(Interval(0.1, 1.0), com) ^ DecoratedInterval(Interval(0.0, 2.5), com) --> DecoratedInterval(Interval(0x1.9e7c6e43390b7p-9, 1.0), com) - @fact decoration(DecoratedInterval(Interval(0.1, 1.0), com) ^ DecoratedInterval(Interval(0.0, 2.5), com)) --> decoration(DecoratedInterval(Interval(0x1.9e7c6e43390b7p-9, 1.0), com)) - @fact DecoratedInterval(Interval(0.1, 1.0), def) ^ DecoratedInterval(Interval(1.0, 1.0), dac) --> DecoratedInterval(Interval(0x1.999999999999ap-4, 1.0), def) - @fact decoration(DecoratedInterval(Interval(0.1, 1.0), def) ^ DecoratedInterval(Interval(1.0, 1.0), dac)) --> decoration(DecoratedInterval(Interval(0x1.999999999999ap-4, 1.0), def)) - @fact DecoratedInterval(Interval(0.1, 1.0), trv) ^ DecoratedInterval(Interval(-2.5, 1.0), def) --> DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.3c3a4edfa9758p+8), trv) - @fact decoration(DecoratedInterval(Interval(0.1, 1.0), trv) ^ DecoratedInterval(Interval(-2.5, 1.0), def)) --> decoration(DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.3c3a4edfa9758p+8), trv)) - @fact DecoratedInterval(Interval(0.5, 1.5), dac) ^ DecoratedInterval(Interval(0.1, 0.1), com) --> DecoratedInterval(Interval(0x1.ddb680117ab12p-1, 0x1.0a97dce72a0cbp+0), dac) - @fact decoration(DecoratedInterval(Interval(0.5, 1.5), dac) ^ DecoratedInterval(Interval(0.1, 0.1), com)) --> decoration(DecoratedInterval(Interval(0x1.ddb680117ab12p-1, 0x1.0a97dce72a0cbp+0), dac)) - @fact DecoratedInterval(Interval(0.5, 1.5), def) ^ DecoratedInterval(Interval(-2.5, 0.1), trv) --> DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2), trv) - @fact decoration(DecoratedInterval(Interval(0.5, 1.5), def) ^ DecoratedInterval(Interval(-2.5, 0.1), trv)) --> decoration(DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2), trv)) - @fact DecoratedInterval(Interval(0.5, 1.5), com) ^ DecoratedInterval(Interval(-2.5, -2.5), com) --> DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2), com) - @fact decoration(DecoratedInterval(Interval(0.5, 1.5), com) ^ DecoratedInterval(Interval(-2.5, -2.5), com)) --> decoration(DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2), com)) - @fact DecoratedInterval(Interval(0.5, Inf), dac) ^ DecoratedInterval(Interval(0.1, 0.1), com) --> DecoratedInterval(Interval(0x1.ddb680117ab12p-1, Inf), dac) - @fact decoration(DecoratedInterval(Interval(0.5, Inf), dac) ^ DecoratedInterval(Interval(0.1, 0.1), com)) --> decoration(DecoratedInterval(Interval(0x1.ddb680117ab12p-1, Inf), dac)) - @fact DecoratedInterval(Interval(0.5, Inf), def) ^ DecoratedInterval(Interval(-2.5, -0.0), com) --> DecoratedInterval(Interval(0.0, 0x1.6a09e667f3bcdp+2), def) - @fact decoration(DecoratedInterval(Interval(0.5, Inf), def) ^ DecoratedInterval(Interval(-2.5, -0.0), com)) --> decoration(DecoratedInterval(Interval(0.0, 0x1.6a09e667f3bcdp+2), def)) - @fact DecoratedInterval(Interval(1.0, 1.5), com) ^ DecoratedInterval(Interval(-0.1, 0.1), def) --> DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, 0x1.0a97dce72a0cbp+0), def) - @fact decoration(DecoratedInterval(Interval(1.0, 1.5), com) ^ DecoratedInterval(Interval(-0.1, 0.1), def)) --> decoration(DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, 0x1.0a97dce72a0cbp+0), def)) - @fact DecoratedInterval(Interval(1.0, 1.5), trv) ^ DecoratedInterval(Interval(-0.1, -0.1), com) --> DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, 1.0), trv) - @fact decoration(DecoratedInterval(Interval(1.0, 1.5), trv) ^ DecoratedInterval(Interval(-0.1, -0.1), com)) --> decoration(DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, 1.0), trv)) - @fact DecoratedInterval(Interval(1.0, Inf), dac) ^ DecoratedInterval(Interval(1.0, 1.0), dac) --> DecoratedInterval(Interval(1.0, Inf), dac) - @fact decoration(DecoratedInterval(Interval(1.0, Inf), dac) ^ DecoratedInterval(Interval(1.0, 1.0), dac)) --> decoration(DecoratedInterval(Interval(1.0, Inf), dac)) - @fact DecoratedInterval(Interval(1.0, Inf), def) ^ DecoratedInterval(Interval(-1.0, -0.0), dac) --> DecoratedInterval(Interval(0x0p+0, 1.0), def) - @fact decoration(DecoratedInterval(Interval(1.0, Inf), def) ^ DecoratedInterval(Interval(-1.0, -0.0), dac)) --> decoration(DecoratedInterval(Interval(0x0p+0, 1.0), def)) - @fact DecoratedInterval(Interval(1.1, 1.5), def) ^ DecoratedInterval(Interval(1.0, 2.5), com) --> DecoratedInterval(Interval(0x1.199999999999ap+0, 0x1.60b9fd68a4555p+1), def) - @fact decoration(DecoratedInterval(Interval(1.1, 1.5), def) ^ DecoratedInterval(Interval(1.0, 2.5), com)) --> decoration(DecoratedInterval(Interval(0x1.199999999999ap+0, 0x1.60b9fd68a4555p+1), def)) - @fact DecoratedInterval(Interval(1.1, 1.5), com) ^ DecoratedInterval(Interval(-0.1, -0.1), com) --> DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, 0x1.fb24af5281928p-1), com) - @fact decoration(DecoratedInterval(Interval(1.1, 1.5), com) ^ DecoratedInterval(Interval(-0.1, -0.1), com)) --> decoration(DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, 0x1.fb24af5281928p-1), com)) - @fact DecoratedInterval(Interval(1.1, Inf), dac) ^ DecoratedInterval(Interval(0.1, Inf), dac) --> DecoratedInterval(Interval(0x1.02739c65d58bfp+0, Inf), dac) - @fact decoration(DecoratedInterval(Interval(1.1, Inf), dac) ^ DecoratedInterval(Interval(0.1, Inf), dac)) --> decoration(DecoratedInterval(Interval(0x1.02739c65d58bfp+0, Inf), dac)) - @fact DecoratedInterval(Interval(1.1, Inf), def) ^ DecoratedInterval(Interval(-2.5, Inf), dac) --> DecoratedInterval(Interval(0x0p+0, Inf), def) - @fact decoration(DecoratedInterval(Interval(1.1, Inf), def) ^ DecoratedInterval(Interval(-2.5, Inf), dac)) --> decoration(DecoratedInterval(Interval(0x0p+0, Inf), def)) - @fact DecoratedInterval(Interval(1.1, Inf), trv) ^ DecoratedInterval(Interval(-Inf, -1.0), def) --> DecoratedInterval(Interval(0x0p+0, 0x1.d1745d1745d17p-1), trv) - @fact decoration(DecoratedInterval(Interval(1.1, Inf), trv) ^ DecoratedInterval(Interval(-Inf, -1.0), def)) --> decoration(DecoratedInterval(Interval(0x0p+0, 0x1.d1745d1745d17p-1), trv)) - @fact DecoratedInterval(Interval(0.0, 0.5), com) ^ DecoratedInterval(Interval(0.1, 0.1), com) --> DecoratedInterval(Interval(0.0, 0x1.ddb680117ab13p-1), com) - @fact decoration(DecoratedInterval(Interval(0.0, 0.5), com) ^ DecoratedInterval(Interval(0.1, 0.1), com)) --> decoration(DecoratedInterval(Interval(0.0, 0x1.ddb680117ab13p-1), com)) - @fact DecoratedInterval(Interval(0.0, 0.5), com) ^ DecoratedInterval(Interval(2.5, Inf), dac) --> DecoratedInterval(Interval(0.0, 0x1.6a09e667f3bcdp-3), dac) - @fact decoration(DecoratedInterval(Interval(0.0, 0.5), com) ^ DecoratedInterval(Interval(2.5, Inf), dac)) --> decoration(DecoratedInterval(Interval(0.0, 0x1.6a09e667f3bcdp-3), dac)) - @fact DecoratedInterval(Interval(0.0, 0.5), com) ^ DecoratedInterval(Interval(-Inf, -2.5), dac) --> DecoratedInterval(Interval(0x1.6a09e667f3bccp+2, Inf), trv) - @fact decoration(DecoratedInterval(Interval(0.0, 0.5), com) ^ DecoratedInterval(Interval(-Inf, -2.5), dac)) --> decoration(DecoratedInterval(Interval(0x1.6a09e667f3bccp+2, Inf), trv)) - @fact DecoratedInterval(Interval(0.0, 1.0), com) ^ DecoratedInterval(Interval(0.0, 0.0), com) --> DecoratedInterval(Interval(1.0, 1.0), trv) - @fact decoration(DecoratedInterval(Interval(0.0, 1.0), com) ^ DecoratedInterval(Interval(0.0, 0.0), com)) --> decoration(DecoratedInterval(Interval(1.0, 1.0), trv)) - @fact DecoratedInterval(Interval(0.0, 1.0), def) ^ DecoratedInterval(Interval(0.0, 2.5), dac) --> DecoratedInterval(Interval(0.0, 1.0), trv) - @fact decoration(DecoratedInterval(Interval(0.0, 1.0), def) ^ DecoratedInterval(Interval(0.0, 2.5), dac)) --> decoration(DecoratedInterval(Interval(0.0, 1.0), trv)) - @fact DecoratedInterval(Interval(0.0, 1.0), dac) ^ DecoratedInterval(Interval(1.0, 2.5), com) --> DecoratedInterval(Interval(0.0, 1.0), dac) - @fact decoration(DecoratedInterval(Interval(0.0, 1.0), dac) ^ DecoratedInterval(Interval(1.0, 2.5), com)) --> decoration(DecoratedInterval(Interval(0.0, 1.0), dac)) - @fact DecoratedInterval(Interval(0.0, 1.0), com) ^ DecoratedInterval(Interval(-2.5, 0.1), dac) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(0.0, 1.0), com) ^ DecoratedInterval(Interval(-2.5, 0.1), dac)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(0.0, 1.0), def) ^ DecoratedInterval(entireinterval(Float64), def) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(0.0, 1.0), def) ^ DecoratedInterval(entireinterval(Float64), def)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(0.0, 1.0), dac) ^ DecoratedInterval(Interval(-0.1, 0.0), com) --> DecoratedInterval(Interval(1.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(0.0, 1.0), dac) ^ DecoratedInterval(Interval(-0.1, 0.0), com)) --> decoration(DecoratedInterval(Interval(1.0, Inf), trv)) - @fact DecoratedInterval(Interval(0.0, 1.0), com) ^ DecoratedInterval(Interval(-Inf, 0.0), dac) --> DecoratedInterval(Interval(1.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(0.0, 1.0), com) ^ DecoratedInterval(Interval(-Inf, 0.0), dac)) --> decoration(DecoratedInterval(Interval(1.0, Inf), trv)) - @fact DecoratedInterval(Interval(0.0, 1.0), def) ^ DecoratedInterval(Interval(-Inf, -2.5), dac) --> DecoratedInterval(Interval(1.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(0.0, 1.0), def) ^ DecoratedInterval(Interval(-Inf, -2.5), dac)) --> decoration(DecoratedInterval(Interval(1.0, Inf), trv)) - @fact DecoratedInterval(Interval(0.0, 1.5), com) ^ DecoratedInterval(Interval(0.0, 2.5), com) --> DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), trv) - @fact decoration(DecoratedInterval(Interval(0.0, 1.5), com) ^ DecoratedInterval(Interval(0.0, 2.5), com)) --> decoration(DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), trv)) - @fact DecoratedInterval(Interval(0.0, 1.5), def) ^ DecoratedInterval(Interval(2.5, 2.5), dac) --> DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), def) - @fact decoration(DecoratedInterval(Interval(0.0, 1.5), def) ^ DecoratedInterval(Interval(2.5, 2.5), dac)) --> decoration(DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), def)) - @fact DecoratedInterval(Interval(0.0, 1.5), dac) ^ DecoratedInterval(Interval(-1.0, 0.0), com) --> DecoratedInterval(Interval(0x1.5555555555555p-1, Inf), trv) - @fact decoration(DecoratedInterval(Interval(0.0, 1.5), dac) ^ DecoratedInterval(Interval(-1.0, 0.0), com)) --> decoration(DecoratedInterval(Interval(0x1.5555555555555p-1, Inf), trv)) - @fact DecoratedInterval(Interval(0.0, 1.5), com) ^ DecoratedInterval(Interval(-2.5, -2.5), def) --> DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv) - @fact decoration(DecoratedInterval(Interval(0.0, 1.5), com) ^ DecoratedInterval(Interval(-2.5, -2.5), def)) --> decoration(DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv)) - @fact DecoratedInterval(Interval(0.0, Inf), dac) ^ DecoratedInterval(Interval(0.1, 0.1), com) --> DecoratedInterval(Interval(0.0, Inf), dac) - @fact decoration(DecoratedInterval(Interval(0.0, Inf), dac) ^ DecoratedInterval(Interval(0.1, 0.1), com)) --> decoration(DecoratedInterval(Interval(0.0, Inf), dac)) - @fact DecoratedInterval(Interval(0.0, Inf), def) ^ DecoratedInterval(Interval(-1.0, 1.0), dac) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(0.0, Inf), def) ^ DecoratedInterval(Interval(-1.0, 1.0), dac)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(0.0, Inf), trv) ^ DecoratedInterval(Interval(-Inf, -1.0), def) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(0.0, Inf), trv) ^ DecoratedInterval(Interval(-Inf, -1.0), def)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(0.0, Inf), dac) ^ DecoratedInterval(Interval(-2.5, -2.5), dac) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(0.0, Inf), dac) ^ DecoratedInterval(Interval(-2.5, -2.5), dac)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, 0.5), com) ^ DecoratedInterval(Interval(0.0, Inf), dac) --> DecoratedInterval(Interval(0.0, 1.0), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, 0.5), com) ^ DecoratedInterval(Interval(0.0, Inf), dac)) --> decoration(DecoratedInterval(Interval(0.0, 1.0), trv)) - @fact DecoratedInterval(Interval(-0.0, 0.5), def) ^ DecoratedInterval(Interval(0.1, Inf), def) --> DecoratedInterval(Interval(0.0, 0x1.ddb680117ab13p-1), def) - @fact decoration(DecoratedInterval(Interval(-0.0, 0.5), def) ^ DecoratedInterval(Interval(0.1, Inf), def)) --> decoration(DecoratedInterval(Interval(0.0, 0x1.ddb680117ab13p-1), def)) - @fact DecoratedInterval(Interval(-0.0, 0.5), dac) ^ DecoratedInterval(Interval(2.5, 2.5), com) --> DecoratedInterval(Interval(0.0, 0x1.6a09e667f3bcdp-3), dac) - @fact decoration(DecoratedInterval(Interval(-0.0, 0.5), dac) ^ DecoratedInterval(Interval(2.5, 2.5), com)) --> decoration(DecoratedInterval(Interval(0.0, 0x1.6a09e667f3bcdp-3), dac)) - @fact DecoratedInterval(Interval(-0.0, 0.5), trv) ^ DecoratedInterval(Interval(-2.5, -0.0), dac) --> DecoratedInterval(Interval(1.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, 0.5), trv) ^ DecoratedInterval(Interval(-2.5, -0.0), dac)) --> decoration(DecoratedInterval(Interval(1.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, 0.5), com) ^ DecoratedInterval(Interval(-Inf, -0.1), def) --> DecoratedInterval(Interval(0x1.125fbee250664p+0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, 0.5), com) ^ DecoratedInterval(Interval(-Inf, -0.1), def)) --> decoration(DecoratedInterval(Interval(0x1.125fbee250664p+0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, 0.5), def) ^ DecoratedInterval(Interval(-Inf, -2.5), dac) --> DecoratedInterval(Interval(0x1.6a09e667f3bccp+2, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, 0.5), def) ^ DecoratedInterval(Interval(-Inf, -2.5), dac)) --> decoration(DecoratedInterval(Interval(0x1.6a09e667f3bccp+2, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, 1.0), com) ^ DecoratedInterval(Interval(2.5, 2.5), dac) --> DecoratedInterval(Interval(0.0, 1.0), dac) - @fact decoration(DecoratedInterval(Interval(-0.0, 1.0), com) ^ DecoratedInterval(Interval(2.5, 2.5), dac)) --> decoration(DecoratedInterval(Interval(0.0, 1.0), dac)) - @fact DecoratedInterval(Interval(-0.0, 1.0), dac) ^ DecoratedInterval(Interval(-1.0, Inf), def) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, 1.0), dac) ^ DecoratedInterval(Interval(-1.0, Inf), def)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, 1.0), com) ^ DecoratedInterval(entireinterval(Float64), def) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, 1.0), com) ^ DecoratedInterval(entireinterval(Float64), def)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, 1.0), def) ^ DecoratedInterval(Interval(-2.5, -2.5), com) --> DecoratedInterval(Interval(1.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, 1.0), def) ^ DecoratedInterval(Interval(-2.5, -2.5), com)) --> decoration(DecoratedInterval(Interval(1.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, 1.0), dac) ^ DecoratedInterval(Interval(-Inf, -2.5), def) --> DecoratedInterval(Interval(1.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, 1.0), dac) ^ DecoratedInterval(Interval(-Inf, -2.5), def)) --> decoration(DecoratedInterval(Interval(1.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, 1.5), com) ^ DecoratedInterval(Interval(0.1, 2.5), dac) --> DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), dac) - @fact decoration(DecoratedInterval(Interval(-0.0, 1.5), com) ^ DecoratedInterval(Interval(0.1, 2.5), dac)) --> decoration(DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), dac)) - @fact DecoratedInterval(Interval(-0.0, 1.5), def) ^ DecoratedInterval(Interval(-1.0, 0.0), trv) --> DecoratedInterval(Interval(0x1.5555555555555p-1, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, 1.5), def) ^ DecoratedInterval(Interval(-1.0, 0.0), trv)) --> decoration(DecoratedInterval(Interval(0x1.5555555555555p-1, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, 1.5), dac) ^ DecoratedInterval(Interval(-2.5, -0.1), def) --> DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, 1.5), dac) ^ DecoratedInterval(Interval(-2.5, -0.1), def)) --> decoration(DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, 1.5), com) ^ DecoratedInterval(Interval(-2.5, -2.5), com) --> DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, 1.5), com) ^ DecoratedInterval(Interval(-2.5, -2.5), com)) --> decoration(DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, 1.5), def) ^ DecoratedInterval(Interval(-Inf, -2.5), dac) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, 1.5), def) ^ DecoratedInterval(Interval(-Inf, -2.5), dac)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, Inf), dac) ^ DecoratedInterval(Interval(-0.1, Inf), dac) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, Inf), dac) ^ DecoratedInterval(Interval(-0.1, Inf), dac)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, Inf), def) ^ DecoratedInterval(Interval(-2.5, -0.0), com) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, Inf), def) ^ DecoratedInterval(Interval(-2.5, -0.0), com)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, Inf), trv) ^ DecoratedInterval(Interval(-Inf, 0.0), def) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, Inf), trv) ^ DecoratedInterval(Interval(-Inf, 0.0), def)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, Inf), dac) ^ DecoratedInterval(Interval(-Inf, -0.0), trv) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, Inf), dac) ^ DecoratedInterval(Interval(-Inf, -0.0), trv)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.0, Inf), def) ^ DecoratedInterval(Interval(-Inf, -1.0), def) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.0, Inf), def) ^ DecoratedInterval(Interval(-Inf, -1.0), def)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.1, 0.5), def) ^ DecoratedInterval(Interval(0.1, Inf), dac) --> DecoratedInterval(Interval(0.0, 0x1.ddb680117ab13p-1), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, 0.5), def) ^ DecoratedInterval(Interval(0.1, Inf), dac)) --> decoration(DecoratedInterval(Interval(0.0, 0x1.ddb680117ab13p-1), trv)) - @fact DecoratedInterval(Interval(-0.1, 0.5), com) ^ DecoratedInterval(Interval(-0.1, -0.1), com) --> DecoratedInterval(Interval(0x1.125fbee250664p+0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, 0.5), com) ^ DecoratedInterval(Interval(-0.1, -0.1), com)) --> decoration(DecoratedInterval(Interval(0x1.125fbee250664p+0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.1, 0.5), dac) ^ DecoratedInterval(Interval(-Inf, -2.5), def) --> DecoratedInterval(Interval(0x1.6a09e667f3bccp+2, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, 0.5), dac) ^ DecoratedInterval(Interval(-Inf, -2.5), def)) --> decoration(DecoratedInterval(Interval(0x1.6a09e667f3bccp+2, Inf), trv)) - @fact DecoratedInterval(Interval(-0.1, 1.0), com) ^ DecoratedInterval(Interval(0.0, 0.0), com) --> DecoratedInterval(Interval(1.0, 1.0), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, 1.0), com) ^ DecoratedInterval(Interval(0.0, 0.0), com)) --> decoration(DecoratedInterval(Interval(1.0, 1.0), trv)) - @fact DecoratedInterval(Interval(-0.1, 1.0), dac) ^ DecoratedInterval(Interval(-Inf, 2.5), dac) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, 1.0), dac) ^ DecoratedInterval(Interval(-Inf, 2.5), dac)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.1, 1.0), def) ^ DecoratedInterval(Interval(-Inf, -1.0), def) --> DecoratedInterval(Interval(1.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, 1.0), def) ^ DecoratedInterval(Interval(-Inf, -1.0), def)) --> decoration(DecoratedInterval(Interval(1.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.1, 1.0), com) ^ DecoratedInterval(Interval(-2.5, -2.5), com) --> DecoratedInterval(Interval(1.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, 1.0), com) ^ DecoratedInterval(Interval(-2.5, -2.5), com)) --> decoration(DecoratedInterval(Interval(1.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.1, 1.0), trv) ^ DecoratedInterval(Interval(-Inf, -2.5), trv) --> DecoratedInterval(Interval(1.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, 1.0), trv) ^ DecoratedInterval(Interval(-Inf, -2.5), trv)) --> decoration(DecoratedInterval(Interval(1.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.1, 1.5), trv) ^ DecoratedInterval(Interval(0.0, 2.5), com) --> DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, 1.5), trv) ^ DecoratedInterval(Interval(0.0, 2.5), com)) --> decoration(DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), trv)) - @fact DecoratedInterval(Interval(-0.1, 1.5), com) ^ DecoratedInterval(Interval(2.5, 2.5), dac) --> DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, 1.5), com) ^ DecoratedInterval(Interval(2.5, 2.5), dac)) --> decoration(DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), trv)) - @fact DecoratedInterval(Interval(-0.1, 1.5), dac) ^ DecoratedInterval(Interval(-1.0, 0.0), trv) --> DecoratedInterval(Interval(0x1.5555555555555p-1, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, 1.5), dac) ^ DecoratedInterval(Interval(-1.0, 0.0), trv)) --> decoration(DecoratedInterval(Interval(0x1.5555555555555p-1, Inf), trv)) - @fact DecoratedInterval(Interval(-0.1, 1.5), com) ^ DecoratedInterval(Interval(-0.1, -0.1), com) --> DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, 1.5), com) ^ DecoratedInterval(Interval(-0.1, -0.1), com)) --> decoration(DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, Inf), trv)) - @fact DecoratedInterval(Interval(-0.1, 1.5), def) ^ DecoratedInterval(Interval(-2.5, -2.5), def) --> DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, 1.5), def) ^ DecoratedInterval(Interval(-2.5, -2.5), def)) --> decoration(DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv)) - @fact DecoratedInterval(Interval(-0.1, Inf), dac) ^ DecoratedInterval(Interval(-0.1, 2.5), com) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, Inf), dac) ^ DecoratedInterval(Interval(-0.1, 2.5), com)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.1, Inf), def) ^ DecoratedInterval(Interval(-2.5, 0.0), def) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, Inf), def) ^ DecoratedInterval(Interval(-2.5, 0.0), def)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(-0.1, Inf), dac) ^ DecoratedInterval(Interval(-2.5, -2.5), trv) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(DecoratedInterval(Interval(-0.1, Inf), dac) ^ DecoratedInterval(Interval(-2.5, -2.5), trv)) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact DecoratedInterval(Interval(0.0, 0.0), com) ^ DecoratedInterval(Interval(1.0, Inf), dac) --> DecoratedInterval(Interval(0.0, 0.0), dac) - @fact decoration(DecoratedInterval(Interval(0.0, 0.0), com) ^ DecoratedInterval(Interval(1.0, Inf), dac)) --> decoration(DecoratedInterval(Interval(0.0, 0.0), dac)) - @fact DecoratedInterval(Interval(0.0, 0.0), com) ^ DecoratedInterval(Interval(-2.5, 0.1), com) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(DecoratedInterval(Interval(0.0, 0.0), com) ^ DecoratedInterval(Interval(-2.5, 0.1), com)) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact DecoratedInterval(Interval(0.0, 0.0), dac) ^ DecoratedInterval(Interval(-1.0, 0.0), def) --> DecoratedInterval(∅, trv) - @fact decoration(DecoratedInterval(Interval(0.0, 0.0), dac) ^ DecoratedInterval(Interval(-1.0, 0.0), def)) --> decoration(DecoratedInterval(∅, trv)) - @fact DecoratedInterval(Interval(-1.0, -0.1), com) ^ DecoratedInterval(Interval(-0.1, 1.0), def) --> DecoratedInterval(∅, trv) - @fact decoration(DecoratedInterval(Interval(-1.0, -0.1), com) ^ DecoratedInterval(Interval(-0.1, 1.0), def)) --> decoration(DecoratedInterval(∅, trv)) - @fact DecoratedInterval(Interval(-1.0, -0.1), dac) ^ DecoratedInterval(Interval(-0.1, 2.5), com) --> DecoratedInterval(∅, trv) - @fact decoration(DecoratedInterval(Interval(-1.0, -0.1), dac) ^ DecoratedInterval(Interval(-0.1, 2.5), com)) --> decoration(DecoratedInterval(∅, trv)) - @fact DecoratedInterval(Interval(-1.0, -0.1), def) ^ DecoratedInterval(Interval(-0.1, Inf), trv) --> DecoratedInterval(∅, trv) - @fact decoration(DecoratedInterval(Interval(-1.0, -0.1), def) ^ DecoratedInterval(Interval(-0.1, Inf), trv)) --> decoration(DecoratedInterval(∅, trv)) +@testset "minimal_pow_dec_test" begin + @test DecoratedInterval(Interval(0.1, 0.5), com) ^ DecoratedInterval(Interval(0.0, 1.0), com) == DecoratedInterval(Interval(0x1.999999999999ap-4, 1.0), com) + @test decoration(DecoratedInterval(Interval(0.1, 0.5), com) ^ DecoratedInterval(Interval(0.0, 1.0), com)) == decoration(DecoratedInterval(Interval(0x1.999999999999ap-4, 1.0), com)) + @test DecoratedInterval(Interval(0.1, 0.5), com) ^ DecoratedInterval(Interval(0.1, 0.1), def) == DecoratedInterval(Interval(0x1.96b230bcdc434p-1, 0x1.ddb680117ab13p-1), def) + @test decoration(DecoratedInterval(Interval(0.1, 0.5), com) ^ DecoratedInterval(Interval(0.1, 0.1), def)) == decoration(DecoratedInterval(Interval(0x1.96b230bcdc434p-1, 0x1.ddb680117ab13p-1), def)) + @test DecoratedInterval(Interval(0.1, 0.5), trv) ^ DecoratedInterval(Interval(-2.5, 2.5), dac) == DecoratedInterval(Interval(0x1.9e7c6e43390b7p-9, 0x1.3c3a4edfa9758p+8), trv) + @test decoration(DecoratedInterval(Interval(0.1, 0.5), trv) ^ DecoratedInterval(Interval(-2.5, 2.5), dac)) == decoration(DecoratedInterval(Interval(0x1.9e7c6e43390b7p-9, 0x1.3c3a4edfa9758p+8), trv)) + @test DecoratedInterval(Interval(0.1, 0.5), com) ^ DecoratedInterval(Interval(-2.5, Inf), dac) == DecoratedInterval(Interval(0.0, 0x1.3c3a4edfa9758p+8), dac) + @test decoration(DecoratedInterval(Interval(0.1, 0.5), com) ^ DecoratedInterval(Interval(-2.5, Inf), dac)) == decoration(DecoratedInterval(Interval(0.0, 0x1.3c3a4edfa9758p+8), dac)) + @test DecoratedInterval(Interval(0.1, 0.5), trv) ^ DecoratedInterval(Interval(-Inf, 0.1), dac) == DecoratedInterval(Interval(0x1.96b230bcdc434p-1, Inf), trv) + @test decoration(DecoratedInterval(Interval(0.1, 0.5), trv) ^ DecoratedInterval(Interval(-Inf, 0.1), dac)) == decoration(DecoratedInterval(Interval(0x1.96b230bcdc434p-1, Inf), trv)) + @test DecoratedInterval(Interval(0.1, 1.0), com) ^ DecoratedInterval(Interval(0.0, 2.5), com) == DecoratedInterval(Interval(0x1.9e7c6e43390b7p-9, 1.0), com) + @test decoration(DecoratedInterval(Interval(0.1, 1.0), com) ^ DecoratedInterval(Interval(0.0, 2.5), com)) == decoration(DecoratedInterval(Interval(0x1.9e7c6e43390b7p-9, 1.0), com)) + @test DecoratedInterval(Interval(0.1, 1.0), def) ^ DecoratedInterval(Interval(1.0, 1.0), dac) == DecoratedInterval(Interval(0x1.999999999999ap-4, 1.0), def) + @test decoration(DecoratedInterval(Interval(0.1, 1.0), def) ^ DecoratedInterval(Interval(1.0, 1.0), dac)) == decoration(DecoratedInterval(Interval(0x1.999999999999ap-4, 1.0), def)) + @test DecoratedInterval(Interval(0.1, 1.0), trv) ^ DecoratedInterval(Interval(-2.5, 1.0), def) == DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.3c3a4edfa9758p+8), trv) + @test decoration(DecoratedInterval(Interval(0.1, 1.0), trv) ^ DecoratedInterval(Interval(-2.5, 1.0), def)) == decoration(DecoratedInterval(Interval(0x1.999999999999ap-4, 0x1.3c3a4edfa9758p+8), trv)) + @test DecoratedInterval(Interval(0.5, 1.5), dac) ^ DecoratedInterval(Interval(0.1, 0.1), com) == DecoratedInterval(Interval(0x1.ddb680117ab12p-1, 0x1.0a97dce72a0cbp+0), dac) + @test decoration(DecoratedInterval(Interval(0.5, 1.5), dac) ^ DecoratedInterval(Interval(0.1, 0.1), com)) == decoration(DecoratedInterval(Interval(0x1.ddb680117ab12p-1, 0x1.0a97dce72a0cbp+0), dac)) + @test DecoratedInterval(Interval(0.5, 1.5), def) ^ DecoratedInterval(Interval(-2.5, 0.1), trv) == DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2), trv) + @test decoration(DecoratedInterval(Interval(0.5, 1.5), def) ^ DecoratedInterval(Interval(-2.5, 0.1), trv)) == decoration(DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2), trv)) + @test DecoratedInterval(Interval(0.5, 1.5), com) ^ DecoratedInterval(Interval(-2.5, -2.5), com) == DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2), com) + @test decoration(DecoratedInterval(Interval(0.5, 1.5), com) ^ DecoratedInterval(Interval(-2.5, -2.5), com)) == decoration(DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, 0x1.6a09e667f3bcdp+2), com)) + @test DecoratedInterval(Interval(0.5, Inf), dac) ^ DecoratedInterval(Interval(0.1, 0.1), com) == DecoratedInterval(Interval(0x1.ddb680117ab12p-1, Inf), dac) + @test decoration(DecoratedInterval(Interval(0.5, Inf), dac) ^ DecoratedInterval(Interval(0.1, 0.1), com)) == decoration(DecoratedInterval(Interval(0x1.ddb680117ab12p-1, Inf), dac)) + @test DecoratedInterval(Interval(0.5, Inf), def) ^ DecoratedInterval(Interval(-2.5, -0.0), com) == DecoratedInterval(Interval(0.0, 0x1.6a09e667f3bcdp+2), def) + @test decoration(DecoratedInterval(Interval(0.5, Inf), def) ^ DecoratedInterval(Interval(-2.5, -0.0), com)) == decoration(DecoratedInterval(Interval(0.0, 0x1.6a09e667f3bcdp+2), def)) + @test DecoratedInterval(Interval(1.0, 1.5), com) ^ DecoratedInterval(Interval(-0.1, 0.1), def) == DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, 0x1.0a97dce72a0cbp+0), def) + @test decoration(DecoratedInterval(Interval(1.0, 1.5), com) ^ DecoratedInterval(Interval(-0.1, 0.1), def)) == decoration(DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, 0x1.0a97dce72a0cbp+0), def)) + @test DecoratedInterval(Interval(1.0, 1.5), trv) ^ DecoratedInterval(Interval(-0.1, -0.1), com) == DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, 1.0), trv) + @test decoration(DecoratedInterval(Interval(1.0, 1.5), trv) ^ DecoratedInterval(Interval(-0.1, -0.1), com)) == decoration(DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, 1.0), trv)) + @test DecoratedInterval(Interval(1.0, Inf), dac) ^ DecoratedInterval(Interval(1.0, 1.0), dac) == DecoratedInterval(Interval(1.0, Inf), dac) + @test decoration(DecoratedInterval(Interval(1.0, Inf), dac) ^ DecoratedInterval(Interval(1.0, 1.0), dac)) == decoration(DecoratedInterval(Interval(1.0, Inf), dac)) + @test DecoratedInterval(Interval(1.0, Inf), def) ^ DecoratedInterval(Interval(-1.0, -0.0), dac) == DecoratedInterval(Interval(0x0p+0, 1.0), def) + @test decoration(DecoratedInterval(Interval(1.0, Inf), def) ^ DecoratedInterval(Interval(-1.0, -0.0), dac)) == decoration(DecoratedInterval(Interval(0x0p+0, 1.0), def)) + @test DecoratedInterval(Interval(1.1, 1.5), def) ^ DecoratedInterval(Interval(1.0, 2.5), com) == DecoratedInterval(Interval(0x1.199999999999ap+0, 0x1.60b9fd68a4555p+1), def) + @test decoration(DecoratedInterval(Interval(1.1, 1.5), def) ^ DecoratedInterval(Interval(1.0, 2.5), com)) == decoration(DecoratedInterval(Interval(0x1.199999999999ap+0, 0x1.60b9fd68a4555p+1), def)) + @test DecoratedInterval(Interval(1.1, 1.5), com) ^ DecoratedInterval(Interval(-0.1, -0.1), com) == DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, 0x1.fb24af5281928p-1), com) + @test decoration(DecoratedInterval(Interval(1.1, 1.5), com) ^ DecoratedInterval(Interval(-0.1, -0.1), com)) == decoration(DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, 0x1.fb24af5281928p-1), com)) + @test DecoratedInterval(Interval(1.1, Inf), dac) ^ DecoratedInterval(Interval(0.1, Inf), dac) == DecoratedInterval(Interval(0x1.02739c65d58bfp+0, Inf), dac) + @test decoration(DecoratedInterval(Interval(1.1, Inf), dac) ^ DecoratedInterval(Interval(0.1, Inf), dac)) == decoration(DecoratedInterval(Interval(0x1.02739c65d58bfp+0, Inf), dac)) + @test DecoratedInterval(Interval(1.1, Inf), def) ^ DecoratedInterval(Interval(-2.5, Inf), dac) == DecoratedInterval(Interval(0x0p+0, Inf), def) + @test decoration(DecoratedInterval(Interval(1.1, Inf), def) ^ DecoratedInterval(Interval(-2.5, Inf), dac)) == decoration(DecoratedInterval(Interval(0x0p+0, Inf), def)) + @test DecoratedInterval(Interval(1.1, Inf), trv) ^ DecoratedInterval(Interval(-Inf, -1.0), def) == DecoratedInterval(Interval(0x0p+0, 0x1.d1745d1745d17p-1), trv) + @test decoration(DecoratedInterval(Interval(1.1, Inf), trv) ^ DecoratedInterval(Interval(-Inf, -1.0), def)) == decoration(DecoratedInterval(Interval(0x0p+0, 0x1.d1745d1745d17p-1), trv)) + @test DecoratedInterval(Interval(0.0, 0.5), com) ^ DecoratedInterval(Interval(0.1, 0.1), com) == DecoratedInterval(Interval(0.0, 0x1.ddb680117ab13p-1), com) + @test decoration(DecoratedInterval(Interval(0.0, 0.5), com) ^ DecoratedInterval(Interval(0.1, 0.1), com)) == decoration(DecoratedInterval(Interval(0.0, 0x1.ddb680117ab13p-1), com)) + @test DecoratedInterval(Interval(0.0, 0.5), com) ^ DecoratedInterval(Interval(2.5, Inf), dac) == DecoratedInterval(Interval(0.0, 0x1.6a09e667f3bcdp-3), dac) + @test decoration(DecoratedInterval(Interval(0.0, 0.5), com) ^ DecoratedInterval(Interval(2.5, Inf), dac)) == decoration(DecoratedInterval(Interval(0.0, 0x1.6a09e667f3bcdp-3), dac)) + @test DecoratedInterval(Interval(0.0, 0.5), com) ^ DecoratedInterval(Interval(-Inf, -2.5), dac) == DecoratedInterval(Interval(0x1.6a09e667f3bccp+2, Inf), trv) + @test decoration(DecoratedInterval(Interval(0.0, 0.5), com) ^ DecoratedInterval(Interval(-Inf, -2.5), dac)) == decoration(DecoratedInterval(Interval(0x1.6a09e667f3bccp+2, Inf), trv)) + @test DecoratedInterval(Interval(0.0, 1.0), com) ^ DecoratedInterval(Interval(0.0, 0.0), com) == DecoratedInterval(Interval(1.0, 1.0), trv) + @test decoration(DecoratedInterval(Interval(0.0, 1.0), com) ^ DecoratedInterval(Interval(0.0, 0.0), com)) == decoration(DecoratedInterval(Interval(1.0, 1.0), trv)) + @test DecoratedInterval(Interval(0.0, 1.0), def) ^ DecoratedInterval(Interval(0.0, 2.5), dac) == DecoratedInterval(Interval(0.0, 1.0), trv) + @test decoration(DecoratedInterval(Interval(0.0, 1.0), def) ^ DecoratedInterval(Interval(0.0, 2.5), dac)) == decoration(DecoratedInterval(Interval(0.0, 1.0), trv)) + @test DecoratedInterval(Interval(0.0, 1.0), dac) ^ DecoratedInterval(Interval(1.0, 2.5), com) == DecoratedInterval(Interval(0.0, 1.0), dac) + @test decoration(DecoratedInterval(Interval(0.0, 1.0), dac) ^ DecoratedInterval(Interval(1.0, 2.5), com)) == decoration(DecoratedInterval(Interval(0.0, 1.0), dac)) + @test DecoratedInterval(Interval(0.0, 1.0), com) ^ DecoratedInterval(Interval(-2.5, 0.1), dac) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(0.0, 1.0), com) ^ DecoratedInterval(Interval(-2.5, 0.1), dac)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(0.0, 1.0), def) ^ DecoratedInterval(entireinterval(Float64), def) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(0.0, 1.0), def) ^ DecoratedInterval(entireinterval(Float64), def)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(0.0, 1.0), dac) ^ DecoratedInterval(Interval(-0.1, 0.0), com) == DecoratedInterval(Interval(1.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(0.0, 1.0), dac) ^ DecoratedInterval(Interval(-0.1, 0.0), com)) == decoration(DecoratedInterval(Interval(1.0, Inf), trv)) + @test DecoratedInterval(Interval(0.0, 1.0), com) ^ DecoratedInterval(Interval(-Inf, 0.0), dac) == DecoratedInterval(Interval(1.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(0.0, 1.0), com) ^ DecoratedInterval(Interval(-Inf, 0.0), dac)) == decoration(DecoratedInterval(Interval(1.0, Inf), trv)) + @test DecoratedInterval(Interval(0.0, 1.0), def) ^ DecoratedInterval(Interval(-Inf, -2.5), dac) == DecoratedInterval(Interval(1.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(0.0, 1.0), def) ^ DecoratedInterval(Interval(-Inf, -2.5), dac)) == decoration(DecoratedInterval(Interval(1.0, Inf), trv)) + @test DecoratedInterval(Interval(0.0, 1.5), com) ^ DecoratedInterval(Interval(0.0, 2.5), com) == DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), trv) + @test decoration(DecoratedInterval(Interval(0.0, 1.5), com) ^ DecoratedInterval(Interval(0.0, 2.5), com)) == decoration(DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), trv)) + @test DecoratedInterval(Interval(0.0, 1.5), def) ^ DecoratedInterval(Interval(2.5, 2.5), dac) == DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), def) + @test decoration(DecoratedInterval(Interval(0.0, 1.5), def) ^ DecoratedInterval(Interval(2.5, 2.5), dac)) == decoration(DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), def)) + @test DecoratedInterval(Interval(0.0, 1.5), dac) ^ DecoratedInterval(Interval(-1.0, 0.0), com) == DecoratedInterval(Interval(0x1.5555555555555p-1, Inf), trv) + @test decoration(DecoratedInterval(Interval(0.0, 1.5), dac) ^ DecoratedInterval(Interval(-1.0, 0.0), com)) == decoration(DecoratedInterval(Interval(0x1.5555555555555p-1, Inf), trv)) + @test DecoratedInterval(Interval(0.0, 1.5), com) ^ DecoratedInterval(Interval(-2.5, -2.5), def) == DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv) + @test decoration(DecoratedInterval(Interval(0.0, 1.5), com) ^ DecoratedInterval(Interval(-2.5, -2.5), def)) == decoration(DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv)) + @test DecoratedInterval(Interval(0.0, Inf), dac) ^ DecoratedInterval(Interval(0.1, 0.1), com) == DecoratedInterval(Interval(0.0, Inf), dac) + @test decoration(DecoratedInterval(Interval(0.0, Inf), dac) ^ DecoratedInterval(Interval(0.1, 0.1), com)) == decoration(DecoratedInterval(Interval(0.0, Inf), dac)) + @test DecoratedInterval(Interval(0.0, Inf), def) ^ DecoratedInterval(Interval(-1.0, 1.0), dac) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(0.0, Inf), def) ^ DecoratedInterval(Interval(-1.0, 1.0), dac)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(0.0, Inf), trv) ^ DecoratedInterval(Interval(-Inf, -1.0), def) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(0.0, Inf), trv) ^ DecoratedInterval(Interval(-Inf, -1.0), def)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(0.0, Inf), dac) ^ DecoratedInterval(Interval(-2.5, -2.5), dac) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(0.0, Inf), dac) ^ DecoratedInterval(Interval(-2.5, -2.5), dac)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, 0.5), com) ^ DecoratedInterval(Interval(0.0, Inf), dac) == DecoratedInterval(Interval(0.0, 1.0), trv) + @test decoration(DecoratedInterval(Interval(-0.0, 0.5), com) ^ DecoratedInterval(Interval(0.0, Inf), dac)) == decoration(DecoratedInterval(Interval(0.0, 1.0), trv)) + @test DecoratedInterval(Interval(-0.0, 0.5), def) ^ DecoratedInterval(Interval(0.1, Inf), def) == DecoratedInterval(Interval(0.0, 0x1.ddb680117ab13p-1), def) + @test decoration(DecoratedInterval(Interval(-0.0, 0.5), def) ^ DecoratedInterval(Interval(0.1, Inf), def)) == decoration(DecoratedInterval(Interval(0.0, 0x1.ddb680117ab13p-1), def)) + @test DecoratedInterval(Interval(-0.0, 0.5), dac) ^ DecoratedInterval(Interval(2.5, 2.5), com) == DecoratedInterval(Interval(0.0, 0x1.6a09e667f3bcdp-3), dac) + @test decoration(DecoratedInterval(Interval(-0.0, 0.5), dac) ^ DecoratedInterval(Interval(2.5, 2.5), com)) == decoration(DecoratedInterval(Interval(0.0, 0x1.6a09e667f3bcdp-3), dac)) + @test DecoratedInterval(Interval(-0.0, 0.5), trv) ^ DecoratedInterval(Interval(-2.5, -0.0), dac) == DecoratedInterval(Interval(1.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, 0.5), trv) ^ DecoratedInterval(Interval(-2.5, -0.0), dac)) == decoration(DecoratedInterval(Interval(1.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, 0.5), com) ^ DecoratedInterval(Interval(-Inf, -0.1), def) == DecoratedInterval(Interval(0x1.125fbee250664p+0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, 0.5), com) ^ DecoratedInterval(Interval(-Inf, -0.1), def)) == decoration(DecoratedInterval(Interval(0x1.125fbee250664p+0, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, 0.5), def) ^ DecoratedInterval(Interval(-Inf, -2.5), dac) == DecoratedInterval(Interval(0x1.6a09e667f3bccp+2, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, 0.5), def) ^ DecoratedInterval(Interval(-Inf, -2.5), dac)) == decoration(DecoratedInterval(Interval(0x1.6a09e667f3bccp+2, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, 1.0), com) ^ DecoratedInterval(Interval(2.5, 2.5), dac) == DecoratedInterval(Interval(0.0, 1.0), dac) + @test decoration(DecoratedInterval(Interval(-0.0, 1.0), com) ^ DecoratedInterval(Interval(2.5, 2.5), dac)) == decoration(DecoratedInterval(Interval(0.0, 1.0), dac)) + @test DecoratedInterval(Interval(-0.0, 1.0), dac) ^ DecoratedInterval(Interval(-1.0, Inf), def) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, 1.0), dac) ^ DecoratedInterval(Interval(-1.0, Inf), def)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, 1.0), com) ^ DecoratedInterval(entireinterval(Float64), def) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, 1.0), com) ^ DecoratedInterval(entireinterval(Float64), def)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, 1.0), def) ^ DecoratedInterval(Interval(-2.5, -2.5), com) == DecoratedInterval(Interval(1.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, 1.0), def) ^ DecoratedInterval(Interval(-2.5, -2.5), com)) == decoration(DecoratedInterval(Interval(1.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, 1.0), dac) ^ DecoratedInterval(Interval(-Inf, -2.5), def) == DecoratedInterval(Interval(1.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, 1.0), dac) ^ DecoratedInterval(Interval(-Inf, -2.5), def)) == decoration(DecoratedInterval(Interval(1.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, 1.5), com) ^ DecoratedInterval(Interval(0.1, 2.5), dac) == DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), dac) + @test decoration(DecoratedInterval(Interval(-0.0, 1.5), com) ^ DecoratedInterval(Interval(0.1, 2.5), dac)) == decoration(DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), dac)) + @test DecoratedInterval(Interval(-0.0, 1.5), def) ^ DecoratedInterval(Interval(-1.0, 0.0), trv) == DecoratedInterval(Interval(0x1.5555555555555p-1, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, 1.5), def) ^ DecoratedInterval(Interval(-1.0, 0.0), trv)) == decoration(DecoratedInterval(Interval(0x1.5555555555555p-1, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, 1.5), dac) ^ DecoratedInterval(Interval(-2.5, -0.1), def) == DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, 1.5), dac) ^ DecoratedInterval(Interval(-2.5, -0.1), def)) == decoration(DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, 1.5), com) ^ DecoratedInterval(Interval(-2.5, -2.5), com) == DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, 1.5), com) ^ DecoratedInterval(Interval(-2.5, -2.5), com)) == decoration(DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, 1.5), def) ^ DecoratedInterval(Interval(-Inf, -2.5), dac) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, 1.5), def) ^ DecoratedInterval(Interval(-Inf, -2.5), dac)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, Inf), dac) ^ DecoratedInterval(Interval(-0.1, Inf), dac) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, Inf), dac) ^ DecoratedInterval(Interval(-0.1, Inf), dac)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, Inf), def) ^ DecoratedInterval(Interval(-2.5, -0.0), com) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, Inf), def) ^ DecoratedInterval(Interval(-2.5, -0.0), com)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, Inf), trv) ^ DecoratedInterval(Interval(-Inf, 0.0), def) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, Inf), trv) ^ DecoratedInterval(Interval(-Inf, 0.0), def)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, Inf), dac) ^ DecoratedInterval(Interval(-Inf, -0.0), trv) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, Inf), dac) ^ DecoratedInterval(Interval(-Inf, -0.0), trv)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.0, Inf), def) ^ DecoratedInterval(Interval(-Inf, -1.0), def) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.0, Inf), def) ^ DecoratedInterval(Interval(-Inf, -1.0), def)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.1, 0.5), def) ^ DecoratedInterval(Interval(0.1, Inf), dac) == DecoratedInterval(Interval(0.0, 0x1.ddb680117ab13p-1), trv) + @test decoration(DecoratedInterval(Interval(-0.1, 0.5), def) ^ DecoratedInterval(Interval(0.1, Inf), dac)) == decoration(DecoratedInterval(Interval(0.0, 0x1.ddb680117ab13p-1), trv)) + @test DecoratedInterval(Interval(-0.1, 0.5), com) ^ DecoratedInterval(Interval(-0.1, -0.1), com) == DecoratedInterval(Interval(0x1.125fbee250664p+0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.1, 0.5), com) ^ DecoratedInterval(Interval(-0.1, -0.1), com)) == decoration(DecoratedInterval(Interval(0x1.125fbee250664p+0, Inf), trv)) + @test DecoratedInterval(Interval(-0.1, 0.5), dac) ^ DecoratedInterval(Interval(-Inf, -2.5), def) == DecoratedInterval(Interval(0x1.6a09e667f3bccp+2, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.1, 0.5), dac) ^ DecoratedInterval(Interval(-Inf, -2.5), def)) == decoration(DecoratedInterval(Interval(0x1.6a09e667f3bccp+2, Inf), trv)) + @test DecoratedInterval(Interval(-0.1, 1.0), com) ^ DecoratedInterval(Interval(0.0, 0.0), com) == DecoratedInterval(Interval(1.0, 1.0), trv) + @test decoration(DecoratedInterval(Interval(-0.1, 1.0), com) ^ DecoratedInterval(Interval(0.0, 0.0), com)) == decoration(DecoratedInterval(Interval(1.0, 1.0), trv)) + @test DecoratedInterval(Interval(-0.1, 1.0), dac) ^ DecoratedInterval(Interval(-Inf, 2.5), dac) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.1, 1.0), dac) ^ DecoratedInterval(Interval(-Inf, 2.5), dac)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.1, 1.0), def) ^ DecoratedInterval(Interval(-Inf, -1.0), def) == DecoratedInterval(Interval(1.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.1, 1.0), def) ^ DecoratedInterval(Interval(-Inf, -1.0), def)) == decoration(DecoratedInterval(Interval(1.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.1, 1.0), com) ^ DecoratedInterval(Interval(-2.5, -2.5), com) == DecoratedInterval(Interval(1.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.1, 1.0), com) ^ DecoratedInterval(Interval(-2.5, -2.5), com)) == decoration(DecoratedInterval(Interval(1.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.1, 1.0), trv) ^ DecoratedInterval(Interval(-Inf, -2.5), trv) == DecoratedInterval(Interval(1.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.1, 1.0), trv) ^ DecoratedInterval(Interval(-Inf, -2.5), trv)) == decoration(DecoratedInterval(Interval(1.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.1, 1.5), trv) ^ DecoratedInterval(Interval(0.0, 2.5), com) == DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), trv) + @test decoration(DecoratedInterval(Interval(-0.1, 1.5), trv) ^ DecoratedInterval(Interval(0.0, 2.5), com)) == decoration(DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), trv)) + @test DecoratedInterval(Interval(-0.1, 1.5), com) ^ DecoratedInterval(Interval(2.5, 2.5), dac) == DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), trv) + @test decoration(DecoratedInterval(Interval(-0.1, 1.5), com) ^ DecoratedInterval(Interval(2.5, 2.5), dac)) == decoration(DecoratedInterval(Interval(0.0, 0x1.60b9fd68a4555p+1), trv)) + @test DecoratedInterval(Interval(-0.1, 1.5), dac) ^ DecoratedInterval(Interval(-1.0, 0.0), trv) == DecoratedInterval(Interval(0x1.5555555555555p-1, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.1, 1.5), dac) ^ DecoratedInterval(Interval(-1.0, 0.0), trv)) == decoration(DecoratedInterval(Interval(0x1.5555555555555p-1, Inf), trv)) + @test DecoratedInterval(Interval(-0.1, 1.5), com) ^ DecoratedInterval(Interval(-0.1, -0.1), com) == DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.1, 1.5), com) ^ DecoratedInterval(Interval(-0.1, -0.1), com)) == decoration(DecoratedInterval(Interval(0x1.eba7c9e4d31e9p-1, Inf), trv)) + @test DecoratedInterval(Interval(-0.1, 1.5), def) ^ DecoratedInterval(Interval(-2.5, -2.5), def) == DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.1, 1.5), def) ^ DecoratedInterval(Interval(-2.5, -2.5), def)) == decoration(DecoratedInterval(Interval(0x1.7398bf1d1ee6fp-2, Inf), trv)) + @test DecoratedInterval(Interval(-0.1, Inf), dac) ^ DecoratedInterval(Interval(-0.1, 2.5), com) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.1, Inf), dac) ^ DecoratedInterval(Interval(-0.1, 2.5), com)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.1, Inf), def) ^ DecoratedInterval(Interval(-2.5, 0.0), def) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.1, Inf), def) ^ DecoratedInterval(Interval(-2.5, 0.0), def)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(-0.1, Inf), dac) ^ DecoratedInterval(Interval(-2.5, -2.5), trv) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(DecoratedInterval(Interval(-0.1, Inf), dac) ^ DecoratedInterval(Interval(-2.5, -2.5), trv)) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test DecoratedInterval(Interval(0.0, 0.0), com) ^ DecoratedInterval(Interval(1.0, Inf), dac) == DecoratedInterval(Interval(0.0, 0.0), dac) + @test decoration(DecoratedInterval(Interval(0.0, 0.0), com) ^ DecoratedInterval(Interval(1.0, Inf), dac)) == decoration(DecoratedInterval(Interval(0.0, 0.0), dac)) + @test DecoratedInterval(Interval(0.0, 0.0), com) ^ DecoratedInterval(Interval(-2.5, 0.1), com) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(DecoratedInterval(Interval(0.0, 0.0), com) ^ DecoratedInterval(Interval(-2.5, 0.1), com)) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test DecoratedInterval(Interval(0.0, 0.0), dac) ^ DecoratedInterval(Interval(-1.0, 0.0), def) == DecoratedInterval(∅, trv) + @test decoration(DecoratedInterval(Interval(0.0, 0.0), dac) ^ DecoratedInterval(Interval(-1.0, 0.0), def)) == decoration(DecoratedInterval(∅, trv)) + @test DecoratedInterval(Interval(-1.0, -0.1), com) ^ DecoratedInterval(Interval(-0.1, 1.0), def) == DecoratedInterval(∅, trv) + @test decoration(DecoratedInterval(Interval(-1.0, -0.1), com) ^ DecoratedInterval(Interval(-0.1, 1.0), def)) == decoration(DecoratedInterval(∅, trv)) + @test DecoratedInterval(Interval(-1.0, -0.1), dac) ^ DecoratedInterval(Interval(-0.1, 2.5), com) == DecoratedInterval(∅, trv) + @test decoration(DecoratedInterval(Interval(-1.0, -0.1), dac) ^ DecoratedInterval(Interval(-0.1, 2.5), com)) == decoration(DecoratedInterval(∅, trv)) + @test DecoratedInterval(Interval(-1.0, -0.1), def) ^ DecoratedInterval(Interval(-0.1, Inf), trv) == DecoratedInterval(∅, trv) + @test decoration(DecoratedInterval(Interval(-1.0, -0.1), def) ^ DecoratedInterval(Interval(-0.1, Inf), trv)) == decoration(DecoratedInterval(∅, trv)) end -facts("minimal_exp_test") do - @fact exp(∅) --> ∅ - @fact exp(Interval(-Inf, 0.0)) --> Interval(0.0, 1.0) - @fact exp(Interval(-Inf, -0.0)) --> Interval(0.0, 1.0) - @fact exp(Interval(0.0, Inf)) --> Interval(1.0, Inf) - @fact exp(Interval(-0.0, Inf)) --> Interval(1.0, Inf) - @fact exp(entireinterval(Float64)) --> Interval(0.0, Inf) - @fact exp(Interval(-Inf, 0x1.62e42fefa39fp+9)) --> Interval(0.0, Inf) - @fact exp(Interval(0x1.62e42fefa39fp+9, 0x1.62e42fefa39fp+9)) --> Interval(0x1.fffffffffffffp+1023, Inf) - @fact exp(Interval(0.0, 0x1.62e42fefa39ep+9)) --> Interval(1.0, 0x1.fffffffffc32bp+1023) - @fact exp(Interval(-0.0, 0x1.62e42fefa39ep+9)) --> Interval(1.0, 0x1.fffffffffc32bp+1023) - @fact exp(Interval(-0x1.6232bdd7abcd3p+9, 0x1.62e42fefa39ep+9)) --> Interval(0x0.ffffffffffe7bp-1022, 0x1.fffffffffc32bp+1023) - @fact exp(Interval(-0x1.6232bdd7abcd3p+8, 0x1.62e42fefa39ep+9)) --> Interval(0x1.ffffffffffe7bp-512, 0x1.fffffffffc32bp+1023) - @fact exp(Interval(-0x1.6232bdd7abcd3p+8, 0.0)) --> Interval(0x1.ffffffffffe7bp-512, 1.0) - @fact exp(Interval(-0x1.6232bdd7abcd3p+8, -0.0)) --> Interval(0x1.ffffffffffe7bp-512, 1.0) - @fact exp(Interval(-0x1.6232bdd7abcd3p+8, 1.0)) --> Interval(0x1.ffffffffffe7bp-512, 0x1.5bf0a8b14576ap+1) - @fact exp(Interval(1.0, 5.0)) --> Interval(0x1.5bf0a8b145769p+1, 0x1.28d389970339p+7) - @fact exp(Interval(-0x1.a934f0979a372p+1, 0x1.ceaecfea8085ap+0)) --> Interval(0x1.2797f0a337a5fp-5, 0x1.86091cc9095c5p+2) - @fact exp(Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6)) --> Interval(0x1.1337e9e45812ap+1, 0x1.805a5c88021b6p+142) - @fact exp(Interval(0x1.78025c8b3fd39p+3, 0x1.9fd8eef3fa79bp+4)) --> Interval(0x1.ef461a783114cp+16, 0x1.691d36c6b008cp+37) +@testset "minimal_exp_test" begin + @test exp(∅) == ∅ + @test exp(Interval(-Inf, 0.0)) == Interval(0.0, 1.0) + @test exp(Interval(-Inf, -0.0)) == Interval(0.0, 1.0) + @test exp(Interval(0.0, Inf)) == Interval(1.0, Inf) + @test exp(Interval(-0.0, Inf)) == Interval(1.0, Inf) + @test exp(entireinterval(Float64)) == Interval(0.0, Inf) + @test exp(Interval(-Inf, 0x1.62e42fefa39fp+9)) == Interval(0.0, Inf) + @test exp(Interval(0x1.62e42fefa39fp+9, 0x1.62e42fefa39fp+9)) == Interval(0x1.fffffffffffffp+1023, Inf) + @test exp(Interval(0.0, 0x1.62e42fefa39ep+9)) == Interval(1.0, 0x1.fffffffffc32bp+1023) + @test exp(Interval(-0.0, 0x1.62e42fefa39ep+9)) == Interval(1.0, 0x1.fffffffffc32bp+1023) + @test exp(Interval(-0x1.6232bdd7abcd3p+9, 0x1.62e42fefa39ep+9)) == Interval(0x0.ffffffffffe7bp-1022, 0x1.fffffffffc32bp+1023) + @test exp(Interval(-0x1.6232bdd7abcd3p+8, 0x1.62e42fefa39ep+9)) == Interval(0x1.ffffffffffe7bp-512, 0x1.fffffffffc32bp+1023) + @test exp(Interval(-0x1.6232bdd7abcd3p+8, 0.0)) == Interval(0x1.ffffffffffe7bp-512, 1.0) + @test exp(Interval(-0x1.6232bdd7abcd3p+8, -0.0)) == Interval(0x1.ffffffffffe7bp-512, 1.0) + @test exp(Interval(-0x1.6232bdd7abcd3p+8, 1.0)) == Interval(0x1.ffffffffffe7bp-512, 0x1.5bf0a8b14576ap+1) + @test exp(Interval(1.0, 5.0)) == Interval(0x1.5bf0a8b145769p+1, 0x1.28d389970339p+7) + @test exp(Interval(-0x1.a934f0979a372p+1, 0x1.ceaecfea8085ap+0)) == Interval(0x1.2797f0a337a5fp-5, 0x1.86091cc9095c5p+2) + @test exp(Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6)) == Interval(0x1.1337e9e45812ap+1, 0x1.805a5c88021b6p+142) + @test exp(Interval(0x1.78025c8b3fd39p+3, 0x1.9fd8eef3fa79bp+4)) == Interval(0x1.ef461a783114cp+16, 0x1.691d36c6b008cp+37) end -facts("minimal_exp_dec_test") do - @fact exp(DecoratedInterval(Interval(0x1.62e42fefa39fp+9, 0x1.62e42fefa39fp+9), com)) --> DecoratedInterval(Interval(0x1.fffffffffffffp+1023, Inf), dac) - @fact decoration(exp(DecoratedInterval(Interval(0x1.62e42fefa39fp+9, 0x1.62e42fefa39fp+9), com))) --> decoration(DecoratedInterval(Interval(0x1.fffffffffffffp+1023, Inf), dac)) - @fact exp(DecoratedInterval(Interval(0.0, 0x1.62e42fefa39ep+9), def)) --> DecoratedInterval(Interval(1.0, 0x1.fffffffffc32bp+1023), def) - @fact decoration(exp(DecoratedInterval(Interval(0.0, 0x1.62e42fefa39ep+9), def))) --> decoration(DecoratedInterval(Interval(1.0, 0x1.fffffffffc32bp+1023), def)) +@testset "minimal_exp_dec_test" begin + @test exp(DecoratedInterval(Interval(0x1.62e42fefa39fp+9, 0x1.62e42fefa39fp+9), com)) == DecoratedInterval(Interval(0x1.fffffffffffffp+1023, Inf), dac) + @test decoration(exp(DecoratedInterval(Interval(0x1.62e42fefa39fp+9, 0x1.62e42fefa39fp+9), com))) == decoration(DecoratedInterval(Interval(0x1.fffffffffffffp+1023, Inf), dac)) + @test exp(DecoratedInterval(Interval(0.0, 0x1.62e42fefa39ep+9), def)) == DecoratedInterval(Interval(1.0, 0x1.fffffffffc32bp+1023), def) + @test decoration(exp(DecoratedInterval(Interval(0.0, 0x1.62e42fefa39ep+9), def))) == decoration(DecoratedInterval(Interval(1.0, 0x1.fffffffffc32bp+1023), def)) end -facts("minimal_exp2_test") do - @fact exp2(∅) --> ∅ - @fact exp2(Interval(-Inf, 0.0)) --> Interval(0.0, 1.0) - @fact exp2(Interval(-Inf, -0.0)) --> Interval(0.0, 1.0) - @fact exp2(Interval(0.0, Inf)) --> Interval(1.0, Inf) - @fact exp2(Interval(-0.0, Inf)) --> Interval(1.0, Inf) - @fact exp2(entireinterval(Float64)) --> Interval(0.0, Inf) - @fact exp2(Interval(-Inf, 1024.0)) --> Interval(0.0, Inf) - @fact exp2(Interval(1024.0, 1024.0)) --> Interval(0x1.fffffffffffffp+1023, Inf) - @fact exp2(Interval(0.0, 1023.0)) --> Interval(1.0, 0x1p+1023) - @fact exp2(Interval(-0.0, 1023.0)) --> Interval(1.0, 0x1p+1023) - @fact exp2(Interval(-1022.0, 1023.0)) --> Interval(0x1p-1022, 0x1p+1023) - @fact exp2(Interval(-1022.0, 0.0)) --> Interval(0x1p-1022, 1.0) - @fact exp2(Interval(-1022.0, -0.0)) --> Interval(0x1p-1022, 1.0) - @fact exp2(Interval(-1022.0, 1.0)) --> Interval(0x1p-1022, 2.0) - @fact exp2(Interval(1.0, 5.0)) --> Interval(2.0, 32.0) - @fact exp2(Interval(-0x1.a934f0979a372p+1, 0x1.ceaecfea8085ap+0)) --> Interval(0x1.9999999999998p-4, 0x1.c000000000001p+1) - @fact exp2(Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6)) --> Interval(0x1.b333333333332p+0, 0x1.c81fd88228b4fp+98) - @fact exp2(Interval(0x1.78025c8b3fd39p+3, 0x1.9fd8eef3fa79bp+4)) --> Interval(0x1.aea0000721857p+11, 0x1.fca0555555559p+25) +@testset "minimal_exp2_test" begin + @test exp2(∅) == ∅ + @test exp2(Interval(-Inf, 0.0)) == Interval(0.0, 1.0) + @test exp2(Interval(-Inf, -0.0)) == Interval(0.0, 1.0) + @test exp2(Interval(0.0, Inf)) == Interval(1.0, Inf) + @test exp2(Interval(-0.0, Inf)) == Interval(1.0, Inf) + @test exp2(entireinterval(Float64)) == Interval(0.0, Inf) + @test exp2(Interval(-Inf, 1024.0)) == Interval(0.0, Inf) + @test exp2(Interval(1024.0, 1024.0)) == Interval(0x1.fffffffffffffp+1023, Inf) + @test exp2(Interval(0.0, 1023.0)) == Interval(1.0, 0x1p+1023) + @test exp2(Interval(-0.0, 1023.0)) == Interval(1.0, 0x1p+1023) + @test exp2(Interval(-1022.0, 1023.0)) == Interval(0x1p-1022, 0x1p+1023) + @test exp2(Interval(-1022.0, 0.0)) == Interval(0x1p-1022, 1.0) + @test exp2(Interval(-1022.0, -0.0)) == Interval(0x1p-1022, 1.0) + @test exp2(Interval(-1022.0, 1.0)) == Interval(0x1p-1022, 2.0) + @test exp2(Interval(1.0, 5.0)) == Interval(2.0, 32.0) + @test exp2(Interval(-0x1.a934f0979a372p+1, 0x1.ceaecfea8085ap+0)) == Interval(0x1.9999999999998p-4, 0x1.c000000000001p+1) + @test exp2(Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6)) == Interval(0x1.b333333333332p+0, 0x1.c81fd88228b4fp+98) + @test exp2(Interval(0x1.78025c8b3fd39p+3, 0x1.9fd8eef3fa79bp+4)) == Interval(0x1.aea0000721857p+11, 0x1.fca0555555559p+25) end -facts("minimal_exp2_dec_test") do - @fact exp2(DecoratedInterval(Interval(1024.0, 1024.0), com)) --> DecoratedInterval(Interval(0x1.fffffffffffffp+1023, Inf), dac) - @fact decoration(exp2(DecoratedInterval(Interval(1024.0, 1024.0), com))) --> decoration(DecoratedInterval(Interval(0x1.fffffffffffffp+1023, Inf), dac)) - @fact exp2(DecoratedInterval(Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6), def)) --> DecoratedInterval(Interval(0x1.b333333333332p+0, 0x1.c81fd88228b4fp+98), def) - @fact decoration(exp2(DecoratedInterval(Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6), def))) --> decoration(DecoratedInterval(Interval(0x1.b333333333332p+0, 0x1.c81fd88228b4fp+98), def)) +@testset "minimal_exp2_dec_test" begin + @test exp2(DecoratedInterval(Interval(1024.0, 1024.0), com)) == DecoratedInterval(Interval(0x1.fffffffffffffp+1023, Inf), dac) + @test decoration(exp2(DecoratedInterval(Interval(1024.0, 1024.0), com))) == decoration(DecoratedInterval(Interval(0x1.fffffffffffffp+1023, Inf), dac)) + @test exp2(DecoratedInterval(Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6), def)) == DecoratedInterval(Interval(0x1.b333333333332p+0, 0x1.c81fd88228b4fp+98), def) + @test decoration(exp2(DecoratedInterval(Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6), def))) == decoration(DecoratedInterval(Interval(0x1.b333333333332p+0, 0x1.c81fd88228b4fp+98), def)) end -facts("minimal_exp10_test") do - @fact exp10(∅) --> ∅ - @fact exp10(Interval(-Inf, 0.0)) --> Interval(0.0, 1.0) - @fact exp10(Interval(-Inf, -0.0)) --> Interval(0.0, 1.0) - @fact exp10(Interval(0.0, Inf)) --> Interval(1.0, Inf) - @fact exp10(Interval(-0.0, Inf)) --> Interval(1.0, Inf) - @fact exp10(entireinterval(Float64)) --> Interval(0.0, Inf) - @fact exp10(Interval(-Inf, 0x1.34413509f79ffp+8)) --> Interval(0.0, Inf) - @fact exp10(Interval(0x1.34413509f79ffp+8, 0x1.34413509f79ffp+8)) --> Interval(0x1.fffffffffffffp+1023, Inf) - @fact exp10(Interval(0.0, 0x1.34413509f79fep+8)) --> Interval(1.0, 0x1.ffffffffffba1p+1023) - @fact exp10(Interval(-0.0, 0x1.34413509f79fep+8)) --> Interval(1.0, 0x1.ffffffffffba1p+1023) - @fact exp10(Interval(-0x1.33a7146f72a42p+8, 0x1.34413509f79fep+8)) --> Interval(0x0.fffffffffffe3p-1022, 0x1.ffffffffffba1p+1023) - @fact exp10(Interval(-0x1.22p+7, 0x1.34413509f79fep+8)) --> Interval(0x1.3faac3e3fa1f3p-482, 0x1.ffffffffffba1p+1023) - @fact exp10(Interval(-0x1.22p+7, 0.0)) --> Interval(0x1.3faac3e3fa1f3p-482, 1.0) - @fact exp10(Interval(-0x1.22p+7, -0.0)) --> Interval(0x1.3faac3e3fa1f3p-482, 1.0) - @fact exp10(Interval(-0x1.22p+7, 1.0)) --> Interval(0x1.3faac3e3fa1f3p-482, 10.0) - @fact exp10(Interval(1.0, 5.0)) --> Interval(10.0, 100000.0) - @fact exp10(Interval(-0x1.a934f0979a372p+1, 0x1.ceaecfea8085ap+0)) --> Interval(0x1.f3a8254311f9ap-12, 0x1.00b18ad5b7d56p+6) - @fact exp10(Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6)) --> Interval(0x1.75014b7296807p+2, 0x1.3eec1d47dfb2bp+328) - @fact exp10(Interval(0x1.78025c8b3fd39p+3, 0x1.9fd8eef3fa79bp+4)) --> Interval(0x1.0608d2279a811p+39, 0x1.43af5d4271cb8p+86) +@testset "minimal_exp10_test" begin + @test exp10(∅) == ∅ + @test exp10(Interval(-Inf, 0.0)) == Interval(0.0, 1.0) + @test exp10(Interval(-Inf, -0.0)) == Interval(0.0, 1.0) + @test exp10(Interval(0.0, Inf)) == Interval(1.0, Inf) + @test exp10(Interval(-0.0, Inf)) == Interval(1.0, Inf) + @test exp10(entireinterval(Float64)) == Interval(0.0, Inf) + @test exp10(Interval(-Inf, 0x1.34413509f79ffp+8)) == Interval(0.0, Inf) + @test exp10(Interval(0x1.34413509f79ffp+8, 0x1.34413509f79ffp+8)) == Interval(0x1.fffffffffffffp+1023, Inf) + @test exp10(Interval(0.0, 0x1.34413509f79fep+8)) == Interval(1.0, 0x1.ffffffffffba1p+1023) + @test exp10(Interval(-0.0, 0x1.34413509f79fep+8)) == Interval(1.0, 0x1.ffffffffffba1p+1023) + @test exp10(Interval(-0x1.33a7146f72a42p+8, 0x1.34413509f79fep+8)) == Interval(0x0.fffffffffffe3p-1022, 0x1.ffffffffffba1p+1023) + @test exp10(Interval(-0x1.22p+7, 0x1.34413509f79fep+8)) == Interval(0x1.3faac3e3fa1f3p-482, 0x1.ffffffffffba1p+1023) + @test exp10(Interval(-0x1.22p+7, 0.0)) == Interval(0x1.3faac3e3fa1f3p-482, 1.0) + @test exp10(Interval(-0x1.22p+7, -0.0)) == Interval(0x1.3faac3e3fa1f3p-482, 1.0) + @test exp10(Interval(-0x1.22p+7, 1.0)) == Interval(0x1.3faac3e3fa1f3p-482, 10.0) + @test exp10(Interval(1.0, 5.0)) == Interval(10.0, 100000.0) + @test exp10(Interval(-0x1.a934f0979a372p+1, 0x1.ceaecfea8085ap+0)) == Interval(0x1.f3a8254311f9ap-12, 0x1.00b18ad5b7d56p+6) + @test exp10(Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6)) == Interval(0x1.75014b7296807p+2, 0x1.3eec1d47dfb2bp+328) + @test exp10(Interval(0x1.78025c8b3fd39p+3, 0x1.9fd8eef3fa79bp+4)) == Interval(0x1.0608d2279a811p+39, 0x1.43af5d4271cb8p+86) end -facts("minimal_exp10_dec_test") do - @fact exp10(DecoratedInterval(Interval(0x1.34413509f79ffp+8, 0x1.34413509f79ffp+8), com)) --> DecoratedInterval(Interval(0x1.fffffffffffffp+1023, Inf), dac) - @fact decoration(exp10(DecoratedInterval(Interval(0x1.34413509f79ffp+8, 0x1.34413509f79ffp+8), com))) --> decoration(DecoratedInterval(Interval(0x1.fffffffffffffp+1023, Inf), dac)) - @fact exp10(DecoratedInterval(Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6), def)) --> DecoratedInterval(Interval(0x1.75014b7296807p+2, 0x1.3eec1d47dfb2bp+328), def) - @fact decoration(exp10(DecoratedInterval(Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6), def))) --> decoration(DecoratedInterval(Interval(0x1.75014b7296807p+2, 0x1.3eec1d47dfb2bp+328), def)) +@testset "minimal_exp10_dec_test" begin + @test exp10(DecoratedInterval(Interval(0x1.34413509f79ffp+8, 0x1.34413509f79ffp+8), com)) == DecoratedInterval(Interval(0x1.fffffffffffffp+1023, Inf), dac) + @test decoration(exp10(DecoratedInterval(Interval(0x1.34413509f79ffp+8, 0x1.34413509f79ffp+8), com))) == decoration(DecoratedInterval(Interval(0x1.fffffffffffffp+1023, Inf), dac)) + @test exp10(DecoratedInterval(Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6), def)) == DecoratedInterval(Interval(0x1.75014b7296807p+2, 0x1.3eec1d47dfb2bp+328), def) + @test decoration(exp10(DecoratedInterval(Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6), def))) == decoration(DecoratedInterval(Interval(0x1.75014b7296807p+2, 0x1.3eec1d47dfb2bp+328), def)) end -facts("minimal_log_test") do - @fact log(∅) --> ∅ - @fact log(Interval(-Inf, 0.0)) --> ∅ - @fact log(Interval(-Inf, -0.0)) --> ∅ - @fact log(Interval(0.0, 1.0)) --> Interval(-Inf, 0.0) - @fact log(Interval(-0.0, 1.0)) --> Interval(-Inf, 0.0) - @fact log(Interval(1.0, Inf)) --> Interval(0.0, Inf) - @fact log(Interval(0.0, Inf)) --> entireinterval(Float64) - @fact log(Interval(-0.0, Inf)) --> entireinterval(Float64) - @fact log(entireinterval(Float64)) --> entireinterval(Float64) - @fact log(Interval(0.0, 0x1.fffffffffffffp1023)) --> Interval(-Inf, 0x1.62e42fefa39fp+9) - @fact log(Interval(-0.0, 0x1.fffffffffffffp1023)) --> Interval(-Inf, 0x1.62e42fefa39fp+9) - @fact log(Interval(1.0, 0x1.fffffffffffffp1023)) --> Interval(0.0, 0x1.62e42fefa39fp+9) - @fact log(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023)) --> Interval(-0x1.74385446d71c4p9, +0x1.62e42fefa39fp9) - @fact log(Interval(0x0.0000000000001p-1022, 1.0)) --> Interval(-0x1.74385446d71c4p9, 0.0) - @fact log(Interval(0x1.5bf0a8b145769p+1, 0x1.5bf0a8b145769p+1)) --> Interval(0x1.fffffffffffffp-1, 0x1p+0) - @fact log(Interval(0x1.5bf0a8b14576ap+1, 0x1.5bf0a8b14576ap+1)) --> Interval(0x1p+0, 0x1.0000000000001p+0) - @fact log(Interval(0x0.0000000000001p-1022, 0x1.5bf0a8b14576ap+1)) --> Interval(-0x1.74385446d71c4p9, 0x1.0000000000001p+0) - @fact log(Interval(0x1.5bf0a8b145769p+1, 32.0)) --> Interval(0x1.fffffffffffffp-1, 0x1.bb9d3beb8c86cp+1) - @fact log(Interval(0x1.999999999999ap-4, 0x1.cp+1)) --> Interval(-0x1.26bb1bbb55516p+1, 0x1.40b512eb53d6p+0) - @fact log(Interval(0x1.b333333333333p+0, 0x1.c81fd88228b2fp+98)) --> Interval(0x1.0fae81914a99p-1, 0x1.120627f6ae7f1p+6) - @fact log(Interval(0x1.aea0000721861p+11, 0x1.fca055555554cp+25)) --> Interval(0x1.04a1363db1e63p+3, 0x1.203e52c0256b5p+4) +@testset "minimal_log_test" begin + @test log(∅) == ∅ + @test log(Interval(-Inf, 0.0)) == ∅ + @test log(Interval(-Inf, -0.0)) == ∅ + @test log(Interval(0.0, 1.0)) == Interval(-Inf, 0.0) + @test log(Interval(-0.0, 1.0)) == Interval(-Inf, 0.0) + @test log(Interval(1.0, Inf)) == Interval(0.0, Inf) + @test log(Interval(0.0, Inf)) == entireinterval(Float64) + @test log(Interval(-0.0, Inf)) == entireinterval(Float64) + @test log(entireinterval(Float64)) == entireinterval(Float64) + @test log(Interval(0.0, 0x1.fffffffffffffp1023)) == Interval(-Inf, 0x1.62e42fefa39fp+9) + @test log(Interval(-0.0, 0x1.fffffffffffffp1023)) == Interval(-Inf, 0x1.62e42fefa39fp+9) + @test log(Interval(1.0, 0x1.fffffffffffffp1023)) == Interval(0.0, 0x1.62e42fefa39fp+9) + @test log(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023)) == Interval(-0x1.74385446d71c4p9, +0x1.62e42fefa39fp9) + @test log(Interval(0x0.0000000000001p-1022, 1.0)) == Interval(-0x1.74385446d71c4p9, 0.0) + @test log(Interval(0x1.5bf0a8b145769p+1, 0x1.5bf0a8b145769p+1)) == Interval(0x1.fffffffffffffp-1, 0x1p+0) + @test log(Interval(0x1.5bf0a8b14576ap+1, 0x1.5bf0a8b14576ap+1)) == Interval(0x1p+0, 0x1.0000000000001p+0) + @test log(Interval(0x0.0000000000001p-1022, 0x1.5bf0a8b14576ap+1)) == Interval(-0x1.74385446d71c4p9, 0x1.0000000000001p+0) + @test log(Interval(0x1.5bf0a8b145769p+1, 32.0)) == Interval(0x1.fffffffffffffp-1, 0x1.bb9d3beb8c86cp+1) + @test log(Interval(0x1.999999999999ap-4, 0x1.cp+1)) == Interval(-0x1.26bb1bbb55516p+1, 0x1.40b512eb53d6p+0) + @test log(Interval(0x1.b333333333333p+0, 0x1.c81fd88228b2fp+98)) == Interval(0x1.0fae81914a99p-1, 0x1.120627f6ae7f1p+6) + @test log(Interval(0x1.aea0000721861p+11, 0x1.fca055555554cp+25)) == Interval(0x1.04a1363db1e63p+3, 0x1.203e52c0256b5p+4) end -facts("minimal_log_dec_test") do - @fact log(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023), com)) --> DecoratedInterval(Interval(-0x1.74385446d71c4p9, 0x1.62e42fefa39fp+9), com) - @fact decoration(log(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(Interval(-0x1.74385446d71c4p9, 0x1.62e42fefa39fp+9), com)) - @fact log(DecoratedInterval(Interval(0.0, 1.0), com)) --> DecoratedInterval(Interval(-Inf, 0.0), trv) - @fact decoration(log(DecoratedInterval(Interval(0.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(-Inf, 0.0), trv)) - @fact log(DecoratedInterval(Interval(0x1.5bf0a8b14576ap+1, 0x1.5bf0a8b14576ap+1), def)) --> DecoratedInterval(Interval(0x1p+0, 0x1.0000000000001p+0), def) - @fact decoration(log(DecoratedInterval(Interval(0x1.5bf0a8b14576ap+1, 0x1.5bf0a8b14576ap+1), def))) --> decoration(DecoratedInterval(Interval(0x1p+0, 0x1.0000000000001p+0), def)) +@testset "minimal_log_dec_test" begin + @test log(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023), com)) == DecoratedInterval(Interval(-0x1.74385446d71c4p9, 0x1.62e42fefa39fp+9), com) + @test decoration(log(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(Interval(-0x1.74385446d71c4p9, 0x1.62e42fefa39fp+9), com)) + @test log(DecoratedInterval(Interval(0.0, 1.0), com)) == DecoratedInterval(Interval(-Inf, 0.0), trv) + @test decoration(log(DecoratedInterval(Interval(0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(-Inf, 0.0), trv)) + @test log(DecoratedInterval(Interval(0x1.5bf0a8b14576ap+1, 0x1.5bf0a8b14576ap+1), def)) == DecoratedInterval(Interval(0x1p+0, 0x1.0000000000001p+0), def) + @test decoration(log(DecoratedInterval(Interval(0x1.5bf0a8b14576ap+1, 0x1.5bf0a8b14576ap+1), def))) == decoration(DecoratedInterval(Interval(0x1p+0, 0x1.0000000000001p+0), def)) end -facts("minimal_log2_test") do - @fact log2(∅) --> ∅ - @fact log2(Interval(-Inf, 0.0)) --> ∅ - @fact log2(Interval(-Inf, -0.0)) --> ∅ - @fact log2(Interval(0.0, 1.0)) --> Interval(-Inf, 0.0) - @fact log2(Interval(-0.0, 1.0)) --> Interval(-Inf, 0.0) - @fact log2(Interval(1.0, Inf)) --> Interval(0.0, Inf) - @fact log2(Interval(0.0, Inf)) --> entireinterval(Float64) - @fact log2(Interval(-0.0, Inf)) --> entireinterval(Float64) - @fact log2(entireinterval(Float64)) --> entireinterval(Float64) - @fact log2(Interval(0.0, 0x1.fffffffffffffp1023)) --> Interval(-Inf, 1024.0) - @fact log2(Interval(-0.0, 0x1.fffffffffffffp1023)) --> Interval(-Inf, 1024.0) - @fact log2(Interval(1.0, 0x1.fffffffffffffp1023)) --> Interval(0.0, 1024.0) - @fact log2(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023)) --> Interval(-1074.0, 1024.0) - @fact log2(Interval(0x0.0000000000001p-1022, 1.0)) --> Interval(-1074.0, 0.0) - @fact log2(Interval(0x0.0000000000001p-1022, 2.0)) --> Interval(-1074.0, 1.0) - @fact log2(Interval(2.0, 32.0)) --> Interval(1.0, 5.0) - @fact log2(Interval(0x1.999999999999ap-4, 0x1.cp+1)) --> Interval(-0x1.a934f0979a372p+1, 0x1.ceaecfea8085ap+0) - @fact log2(Interval(0x1.b333333333333p+0, 0x1.c81fd88228b2fp+98)) --> Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6) - @fact log2(Interval(0x1.aea0000721861p+11, 0x1.fca055555554cp+25)) --> Interval(0x1.78025c8b3fd39p+3, 0x1.9fd8eef3fa79bp+4) +@testset "minimal_log2_test" begin + @test log2(∅) == ∅ + @test log2(Interval(-Inf, 0.0)) == ∅ + @test log2(Interval(-Inf, -0.0)) == ∅ + @test log2(Interval(0.0, 1.0)) == Interval(-Inf, 0.0) + @test log2(Interval(-0.0, 1.0)) == Interval(-Inf, 0.0) + @test log2(Interval(1.0, Inf)) == Interval(0.0, Inf) + @test log2(Interval(0.0, Inf)) == entireinterval(Float64) + @test log2(Interval(-0.0, Inf)) == entireinterval(Float64) + @test log2(entireinterval(Float64)) == entireinterval(Float64) + @test log2(Interval(0.0, 0x1.fffffffffffffp1023)) == Interval(-Inf, 1024.0) + @test log2(Interval(-0.0, 0x1.fffffffffffffp1023)) == Interval(-Inf, 1024.0) + @test log2(Interval(1.0, 0x1.fffffffffffffp1023)) == Interval(0.0, 1024.0) + @test log2(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023)) == Interval(-1074.0, 1024.0) + @test log2(Interval(0x0.0000000000001p-1022, 1.0)) == Interval(-1074.0, 0.0) + @test log2(Interval(0x0.0000000000001p-1022, 2.0)) == Interval(-1074.0, 1.0) + @test log2(Interval(2.0, 32.0)) == Interval(1.0, 5.0) + @test log2(Interval(0x1.999999999999ap-4, 0x1.cp+1)) == Interval(-0x1.a934f0979a372p+1, 0x1.ceaecfea8085ap+0) + @test log2(Interval(0x1.b333333333333p+0, 0x1.c81fd88228b2fp+98)) == Interval(0x1.87f42b972949cp-1, 0x1.8b55484710029p+6) + @test log2(Interval(0x1.aea0000721861p+11, 0x1.fca055555554cp+25)) == Interval(0x1.78025c8b3fd39p+3, 0x1.9fd8eef3fa79bp+4) end -facts("minimal_log2_dec_test") do - @fact log2(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023), com)) --> DecoratedInterval(Interval(-1074.0, 1024.0), com) - @fact decoration(log2(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(Interval(-1074.0, 1024.0), com)) - @fact log2(DecoratedInterval(Interval(0x0.0000000000001p-1022, Inf), dac)) --> DecoratedInterval(Interval(-1074.0, Inf), dac) - @fact decoration(log2(DecoratedInterval(Interval(0x0.0000000000001p-1022, Inf), dac))) --> decoration(DecoratedInterval(Interval(-1074.0, Inf), dac)) - @fact log2(DecoratedInterval(Interval(2.0, 32.0), def)) --> DecoratedInterval(Interval(1.0, 5.0), def) - @fact decoration(log2(DecoratedInterval(Interval(2.0, 32.0), def))) --> decoration(DecoratedInterval(Interval(1.0, 5.0), def)) - @fact log2(DecoratedInterval(Interval(0.0, 0x1.fffffffffffffp1023), com)) --> DecoratedInterval(Interval(-Inf, 1024.0), trv) - @fact decoration(log2(DecoratedInterval(Interval(0.0, 0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(Interval(-Inf, 1024.0), trv)) +@testset "minimal_log2_dec_test" begin + @test log2(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023), com)) == DecoratedInterval(Interval(-1074.0, 1024.0), com) + @test decoration(log2(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(Interval(-1074.0, 1024.0), com)) + @test log2(DecoratedInterval(Interval(0x0.0000000000001p-1022, Inf), dac)) == DecoratedInterval(Interval(-1074.0, Inf), dac) + @test decoration(log2(DecoratedInterval(Interval(0x0.0000000000001p-1022, Inf), dac))) == decoration(DecoratedInterval(Interval(-1074.0, Inf), dac)) + @test log2(DecoratedInterval(Interval(2.0, 32.0), def)) == DecoratedInterval(Interval(1.0, 5.0), def) + @test decoration(log2(DecoratedInterval(Interval(2.0, 32.0), def))) == decoration(DecoratedInterval(Interval(1.0, 5.0), def)) + @test log2(DecoratedInterval(Interval(0.0, 0x1.fffffffffffffp1023), com)) == DecoratedInterval(Interval(-Inf, 1024.0), trv) + @test decoration(log2(DecoratedInterval(Interval(0.0, 0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(Interval(-Inf, 1024.0), trv)) end -facts("minimal_log10_test") do - @fact log10(∅) --> ∅ - @fact log10(Interval(-Inf, 0.0)) --> ∅ - @fact log10(Interval(-Inf, -0.0)) --> ∅ - @fact log10(Interval(0.0, 1.0)) --> Interval(-Inf, 0.0) - @fact log10(Interval(-0.0, 1.0)) --> Interval(-Inf, 0.0) - @fact log10(Interval(1.0, Inf)) --> Interval(0.0, Inf) - @fact log10(Interval(0.0, Inf)) --> entireinterval(Float64) - @fact log10(Interval(-0.0, Inf)) --> entireinterval(Float64) - @fact log10(entireinterval(Float64)) --> entireinterval(Float64) - @fact log10(Interval(0.0, 0x1.fffffffffffffp1023)) --> Interval(-Inf, 0x1.34413509f79ffp+8) - @fact log10(Interval(-0.0, 0x1.fffffffffffffp1023)) --> Interval(-Inf, 0x1.34413509f79ffp+8) - @fact log10(Interval(1.0, 0x1.fffffffffffffp1023)) --> Interval(0.0, 0x1.34413509f79ffp+8) - @fact log10(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023)) --> Interval(-0x1.434e6420f4374p+8, +0x1.34413509f79ffp+8) - @fact log10(Interval(0x0.0000000000001p-1022, 1.0)) --> Interval(-0x1.434e6420f4374p+8, 0.0) - @fact log10(Interval(0x0.0000000000001p-1022, 10.0)) --> Interval(-0x1.434e6420f4374p+8, 1.0) - @fact log10(Interval(10.0, 100000.0)) --> Interval(1.0, 5.0) - @fact log10(Interval(0x1.999999999999ap-4, 0x1.cp+1)) --> Interval(-0x1p+0, 0x1.1690163290f4p-1) - @fact log10(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4)) --> Interval(-0x1p+0, -0x1.fffffffffffffp-1) - @fact log10(Interval(0x1.b333333333333p+0, 0x1.c81fd88228b2fp+98)) --> Interval(0x1.d7f59aa5becb9p-3, 0x1.dc074d84e5aabp+4) - @fact log10(Interval(0x1.aea0000721861p+11, 0x1.fca055555554cp+25)) --> Interval(0x1.c4c29dd829191p+1, 0x1.f4baebba4fa4p+2) +@testset "minimal_log10_test" begin + @test log10(∅) == ∅ + @test log10(Interval(-Inf, 0.0)) == ∅ + @test log10(Interval(-Inf, -0.0)) == ∅ + @test log10(Interval(0.0, 1.0)) == Interval(-Inf, 0.0) + @test log10(Interval(-0.0, 1.0)) == Interval(-Inf, 0.0) + @test log10(Interval(1.0, Inf)) == Interval(0.0, Inf) + @test log10(Interval(0.0, Inf)) == entireinterval(Float64) + @test log10(Interval(-0.0, Inf)) == entireinterval(Float64) + @test log10(entireinterval(Float64)) == entireinterval(Float64) + @test log10(Interval(0.0, 0x1.fffffffffffffp1023)) == Interval(-Inf, 0x1.34413509f79ffp+8) + @test log10(Interval(-0.0, 0x1.fffffffffffffp1023)) == Interval(-Inf, 0x1.34413509f79ffp+8) + @test log10(Interval(1.0, 0x1.fffffffffffffp1023)) == Interval(0.0, 0x1.34413509f79ffp+8) + @test log10(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023)) == Interval(-0x1.434e6420f4374p+8, +0x1.34413509f79ffp+8) + @test log10(Interval(0x0.0000000000001p-1022, 1.0)) == Interval(-0x1.434e6420f4374p+8, 0.0) + @test log10(Interval(0x0.0000000000001p-1022, 10.0)) == Interval(-0x1.434e6420f4374p+8, 1.0) + @test log10(Interval(10.0, 100000.0)) == Interval(1.0, 5.0) + @test log10(Interval(0x1.999999999999ap-4, 0x1.cp+1)) == Interval(-0x1p+0, 0x1.1690163290f4p-1) + @test log10(Interval(0x1.999999999999ap-4, 0x1.999999999999ap-4)) == Interval(-0x1p+0, -0x1.fffffffffffffp-1) + @test log10(Interval(0x1.b333333333333p+0, 0x1.c81fd88228b2fp+98)) == Interval(0x1.d7f59aa5becb9p-3, 0x1.dc074d84e5aabp+4) + @test log10(Interval(0x1.aea0000721861p+11, 0x1.fca055555554cp+25)) == Interval(0x1.c4c29dd829191p+1, 0x1.f4baebba4fa4p+2) end -facts("minimal_log10_dec_test") do - @fact log10(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023), com)) --> DecoratedInterval(Interval(-0x1.434e6420f4374p+8, 0x1.34413509f79ffp+8), com) - @fact decoration(log10(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(Interval(-0x1.434e6420f4374p+8, 0x1.34413509f79ffp+8), com)) - @fact log10(DecoratedInterval(Interval(0.0, 0x1.fffffffffffffp1023), dac)) --> DecoratedInterval(Interval(-Inf, 0x1.34413509f79ffp+8), trv) - @fact decoration(log10(DecoratedInterval(Interval(0.0, 0x1.fffffffffffffp1023), dac))) --> decoration(DecoratedInterval(Interval(-Inf, 0x1.34413509f79ffp+8), trv)) +@testset "minimal_log10_dec_test" begin + @test log10(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023), com)) == DecoratedInterval(Interval(-0x1.434e6420f4374p+8, 0x1.34413509f79ffp+8), com) + @test decoration(log10(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(Interval(-0x1.434e6420f4374p+8, 0x1.34413509f79ffp+8), com)) + @test log10(DecoratedInterval(Interval(0.0, 0x1.fffffffffffffp1023), dac)) == DecoratedInterval(Interval(-Inf, 0x1.34413509f79ffp+8), trv) + @test decoration(log10(DecoratedInterval(Interval(0.0, 0x1.fffffffffffffp1023), dac))) == decoration(DecoratedInterval(Interval(-Inf, 0x1.34413509f79ffp+8), trv)) end -facts("minimal_sin_test") do - @fact sin(∅) --> ∅ - @fact sin(Interval(0.0, Inf)) --> Interval(-1.0, 1.0) - @fact sin(Interval(-0.0, Inf)) --> Interval(-1.0, 1.0) - @fact sin(Interval(-Inf, 0.0)) --> Interval(-1.0, 1.0) - @fact sin(Interval(-Inf, -0.0)) --> Interval(-1.0, 1.0) - @fact sin(entireinterval(Float64)) --> Interval(-1.0, 1.0) - @fact sin(Interval(0.0, 0.0)) --> Interval(0.0, 0.0) - @fact sin(Interval(-0.0, -0.0)) --> Interval(0.0, 0.0) - @fact sin(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0)) --> Interval(0x1.fffffffffffffp-1, 0x1p+0) - @fact sin(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0)) --> Interval(0x1.fffffffffffffp-1, 0x1p+0) - @fact sin(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)) --> Interval(0x1.fffffffffffffp-1, 0x1p+0) - @fact sin(Interval(0.0, 0x1.921fb54442d18p+0)) --> Interval(0.0, 0x1p+0) - @fact sin(Interval(-0.0, 0x1.921fb54442d18p+0)) --> Interval(0.0, 0x1p+0) - @fact sin(Interval(0.0, 0x1.921fb54442d19p+0)) --> Interval(0.0, 0x1p+0) - @fact sin(Interval(-0.0, 0x1.921fb54442d19p+0)) --> Interval(0.0, 0x1p+0) - @fact sin(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d18p+1)) --> Interval(0x1.1a62633145c06p-53, 0x1.1a62633145c07p-53) - @fact sin(Interval(0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1)) --> Interval(-0x1.72cece675d1fdp-52, -0x1.72cece675d1fcp-52) - @fact sin(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1)) --> Interval(-0x1.72cece675d1fdp-52, 0x1.1a62633145c07p-53) - @fact sin(Interval(0.0, 0x1.921fb54442d18p+1)) --> Interval(0.0, 1.0) - @fact sin(Interval(-0.0, 0x1.921fb54442d18p+1)) --> Interval(0.0, 1.0) - @fact sin(Interval(0.0, 0x1.921fb54442d19p+1)) --> Interval(-0x1.72cece675d1fdp-52, 1.0) - @fact sin(Interval(-0.0, 0x1.921fb54442d19p+1)) --> Interval(-0x1.72cece675d1fdp-52, 1.0) - @fact sin(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d18p+1)) --> Interval(0x1.1a62633145c06p-53, 0x1p+0) - @fact sin(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1)) --> Interval(-0x1.72cece675d1fdp-52, 0x1p+0) - @fact sin(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d18p+1)) --> Interval(0x1.1a62633145c06p-53, 0x1p+0) - @fact sin(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d19p+1)) --> Interval(-0x1.72cece675d1fdp-52, 0x1p+0) - @fact sin(Interval(-0x1.921fb54442d18p+0, -0x1.921fb54442d18p+0)) --> Interval(-0x1p+0, -0x1.fffffffffffffp-1) - @fact sin(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d19p+0)) --> Interval(-0x1p+0, -0x1.fffffffffffffp-1) - @fact sin(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0)) --> Interval(-0x1p+0, -0x1.fffffffffffffp-1) - @fact sin(Interval(-0x1.921fb54442d18p+0, 0.0)) --> Interval(-0x1p+0, 0.0) - @fact sin(Interval(-0x1.921fb54442d18p+0, -0.0)) --> Interval(-0x1p+0, 0.0) - @fact sin(Interval(-0x1.921fb54442d19p+0, 0.0)) --> Interval(-0x1p+0, 0.0) - @fact sin(Interval(-0x1.921fb54442d19p+0, -0.0)) --> Interval(-0x1p+0, 0.0) - @fact sin(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d18p+1)) --> Interval(-0x1.1a62633145c07p-53, -0x1.1a62633145c06p-53) - @fact sin(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d19p+1)) --> Interval(0x1.72cece675d1fcp-52, 0x1.72cece675d1fdp-52) - @fact sin(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d18p+1)) --> Interval(-0x1.1a62633145c07p-53, 0x1.72cece675d1fdp-52) - @fact sin(Interval(-0x1.921fb54442d18p+1, 0.0)) --> Interval(-1.0, 0.0) - @fact sin(Interval(-0x1.921fb54442d18p+1, -0.0)) --> Interval(-1.0, 0.0) - @fact sin(Interval(-0x1.921fb54442d19p+1, 0.0)) --> Interval(-1.0, 0x1.72cece675d1fdp-52) - @fact sin(Interval(-0x1.921fb54442d19p+1, -0.0)) --> Interval(-1.0, 0x1.72cece675d1fdp-52) - @fact sin(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d18p+0)) --> Interval(-0x1p+0, -0x1.1a62633145c06p-53) - @fact sin(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d18p+0)) --> Interval(-0x1p+0, 0x1.72cece675d1fdp-52) - @fact sin(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d19p+0)) --> Interval(-0x1p+0, -0x1.1a62633145c06p-53) - @fact sin(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d19p+0)) --> Interval(-0x1p+0, 0x1.72cece675d1fdp-52) - @fact sin(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0)) --> Interval(-0x1p+0, 0x1p+0) - @fact sin(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)) --> Interval(-0x1p+0, 0x1p+0) - @fact sin(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d18p+0)) --> Interval(-0x1p+0, 0x1p+0) - @fact sin(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0)) --> Interval(-0x1p+0, 0x1p+0) - @fact sin(Interval(-0.7, 0.1)) --> Interval(-0x1.49d6e694619b9p-1, 0x1.98eaecb8bcb2dp-4) - @fact sin(Interval(1.0, 2.0)) --> Interval(0x1.aed548f090ceep-1, 1.0) - @fact sin(Interval(-3.2, -2.9)) --> Interval(-0x1.e9fb8d64830e3p-3, 0x1.de33739e82d33p-5) - @fact sin(Interval(2.0, 3.0)) --> Interval(0x1.210386db6d55bp-3, 0x1.d18f6ead1b446p-1) +@testset "minimal_sin_test" begin + @test sin(∅) == ∅ + @test sin(Interval(0.0, Inf)) == Interval(-1.0, 1.0) + @test sin(Interval(-0.0, Inf)) == Interval(-1.0, 1.0) + @test sin(Interval(-Inf, 0.0)) == Interval(-1.0, 1.0) + @test sin(Interval(-Inf, -0.0)) == Interval(-1.0, 1.0) + @test sin(entireinterval(Float64)) == Interval(-1.0, 1.0) + @test sin(Interval(0.0, 0.0)) == Interval(0.0, 0.0) + @test sin(Interval(-0.0, -0.0)) == Interval(0.0, 0.0) + @test sin(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0)) == Interval(0x1.fffffffffffffp-1, 0x1p+0) + @test sin(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0)) == Interval(0x1.fffffffffffffp-1, 0x1p+0) + @test sin(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)) == Interval(0x1.fffffffffffffp-1, 0x1p+0) + @test sin(Interval(0.0, 0x1.921fb54442d18p+0)) == Interval(0.0, 0x1p+0) + @test sin(Interval(-0.0, 0x1.921fb54442d18p+0)) == Interval(0.0, 0x1p+0) + @test sin(Interval(0.0, 0x1.921fb54442d19p+0)) == Interval(0.0, 0x1p+0) + @test sin(Interval(-0.0, 0x1.921fb54442d19p+0)) == Interval(0.0, 0x1p+0) + @test sin(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d18p+1)) == Interval(0x1.1a62633145c06p-53, 0x1.1a62633145c07p-53) + @test sin(Interval(0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1)) == Interval(-0x1.72cece675d1fdp-52, -0x1.72cece675d1fcp-52) + @test sin(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1)) == Interval(-0x1.72cece675d1fdp-52, 0x1.1a62633145c07p-53) + @test sin(Interval(0.0, 0x1.921fb54442d18p+1)) == Interval(0.0, 1.0) + @test sin(Interval(-0.0, 0x1.921fb54442d18p+1)) == Interval(0.0, 1.0) + @test sin(Interval(0.0, 0x1.921fb54442d19p+1)) == Interval(-0x1.72cece675d1fdp-52, 1.0) + @test sin(Interval(-0.0, 0x1.921fb54442d19p+1)) == Interval(-0x1.72cece675d1fdp-52, 1.0) + @test sin(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d18p+1)) == Interval(0x1.1a62633145c06p-53, 0x1p+0) + @test sin(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1)) == Interval(-0x1.72cece675d1fdp-52, 0x1p+0) + @test sin(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d18p+1)) == Interval(0x1.1a62633145c06p-53, 0x1p+0) + @test sin(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d19p+1)) == Interval(-0x1.72cece675d1fdp-52, 0x1p+0) + @test sin(Interval(-0x1.921fb54442d18p+0, -0x1.921fb54442d18p+0)) == Interval(-0x1p+0, -0x1.fffffffffffffp-1) + @test sin(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d19p+0)) == Interval(-0x1p+0, -0x1.fffffffffffffp-1) + @test sin(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0)) == Interval(-0x1p+0, -0x1.fffffffffffffp-1) + @test sin(Interval(-0x1.921fb54442d18p+0, 0.0)) == Interval(-0x1p+0, 0.0) + @test sin(Interval(-0x1.921fb54442d18p+0, -0.0)) == Interval(-0x1p+0, 0.0) + @test sin(Interval(-0x1.921fb54442d19p+0, 0.0)) == Interval(-0x1p+0, 0.0) + @test sin(Interval(-0x1.921fb54442d19p+0, -0.0)) == Interval(-0x1p+0, 0.0) + @test sin(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d18p+1)) == Interval(-0x1.1a62633145c07p-53, -0x1.1a62633145c06p-53) + @test sin(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d19p+1)) == Interval(0x1.72cece675d1fcp-52, 0x1.72cece675d1fdp-52) + @test sin(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d18p+1)) == Interval(-0x1.1a62633145c07p-53, 0x1.72cece675d1fdp-52) + @test sin(Interval(-0x1.921fb54442d18p+1, 0.0)) == Interval(-1.0, 0.0) + @test sin(Interval(-0x1.921fb54442d18p+1, -0.0)) == Interval(-1.0, 0.0) + @test sin(Interval(-0x1.921fb54442d19p+1, 0.0)) == Interval(-1.0, 0x1.72cece675d1fdp-52) + @test sin(Interval(-0x1.921fb54442d19p+1, -0.0)) == Interval(-1.0, 0x1.72cece675d1fdp-52) + @test sin(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d18p+0)) == Interval(-0x1p+0, -0x1.1a62633145c06p-53) + @test sin(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d18p+0)) == Interval(-0x1p+0, 0x1.72cece675d1fdp-52) + @test sin(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d19p+0)) == Interval(-0x1p+0, -0x1.1a62633145c06p-53) + @test sin(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d19p+0)) == Interval(-0x1p+0, 0x1.72cece675d1fdp-52) + @test sin(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0)) == Interval(-0x1p+0, 0x1p+0) + @test sin(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)) == Interval(-0x1p+0, 0x1p+0) + @test sin(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d18p+0)) == Interval(-0x1p+0, 0x1p+0) + @test sin(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0)) == Interval(-0x1p+0, 0x1p+0) + @test sin(Interval(-0.7, 0.1)) == Interval(-0x1.49d6e694619b9p-1, 0x1.98eaecb8bcb2dp-4) + @test sin(Interval(1.0, 2.0)) == Interval(0x1.aed548f090ceep-1, 1.0) + @test sin(Interval(-3.2, -2.9)) == Interval(-0x1.e9fb8d64830e3p-3, 0x1.de33739e82d33p-5) + @test sin(Interval(2.0, 3.0)) == Interval(0x1.210386db6d55bp-3, 0x1.d18f6ead1b446p-1) end -facts("minimal_sin_dec_test") do - @fact sin(DecoratedInterval(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d18p+0), def)) --> DecoratedInterval(Interval(-0x1p+0, -0x1.1a62633145c06p-53), def) - @fact decoration(sin(DecoratedInterval(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d18p+0), def))) --> decoration(DecoratedInterval(Interval(-0x1p+0, -0x1.1a62633145c06p-53), def)) - @fact sin(DecoratedInterval(Interval(-Inf, -0.0), trv)) --> DecoratedInterval(Interval(-1.0, 1.0), trv) - @fact decoration(sin(DecoratedInterval(Interval(-Inf, -0.0), trv))) --> decoration(DecoratedInterval(Interval(-1.0, 1.0), trv)) - @fact sin(DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(-1.0, 1.0), def) - @fact decoration(sin(DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(-1.0, 1.0), def)) +@testset "minimal_sin_dec_test" begin + @test sin(DecoratedInterval(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d18p+0), def)) == DecoratedInterval(Interval(-0x1p+0, -0x1.1a62633145c06p-53), def) + @test decoration(sin(DecoratedInterval(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d18p+0), def))) == decoration(DecoratedInterval(Interval(-0x1p+0, -0x1.1a62633145c06p-53), def)) + @test sin(DecoratedInterval(Interval(-Inf, -0.0), trv)) == DecoratedInterval(Interval(-1.0, 1.0), trv) + @test decoration(sin(DecoratedInterval(Interval(-Inf, -0.0), trv))) == decoration(DecoratedInterval(Interval(-1.0, 1.0), trv)) + @test sin(DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-1.0, 1.0), def) + @test decoration(sin(DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-1.0, 1.0), def)) end -facts("minimal_cos_test") do - @fact cos(∅) --> ∅ - @fact cos(Interval(0.0, Inf)) --> Interval(-1.0, 1.0) - @fact cos(Interval(-0.0, Inf)) --> Interval(-1.0, 1.0) - @fact cos(Interval(-Inf, 0.0)) --> Interval(-1.0, 1.0) - @fact cos(Interval(-Inf, -0.0)) --> Interval(-1.0, 1.0) - @fact cos(entireinterval(Float64)) --> Interval(-1.0, 1.0) - @fact cos(Interval(0.0, 0.0)) --> Interval(1.0, 1.0) - @fact cos(Interval(-0.0, -0.0)) --> Interval(1.0, 1.0) - @fact cos(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0)) --> Interval(0x1.1a62633145c06p-54, 0x1.1a62633145c07p-54) - @fact cos(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0)) --> Interval(-0x1.72cece675d1fdp-53, -0x1.72cece675d1fcp-53) - @fact cos(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)) --> Interval(-0x1.72cece675d1fdp-53, 0x1.1a62633145c07p-54) - @fact cos(Interval(0.0, 0x1.921fb54442d18p+0)) --> Interval(0x1.1a62633145c06p-54, 1.0) - @fact cos(Interval(-0.0, 0x1.921fb54442d18p+0)) --> Interval(0x1.1a62633145c06p-54, 1.0) - @fact cos(Interval(0.0, 0x1.921fb54442d19p+0)) --> Interval(-0x1.72cece675d1fdp-53, 1.0) - @fact cos(Interval(-0.0, 0x1.921fb54442d19p+0)) --> Interval(-0x1.72cece675d1fdp-53, 1.0) - @fact cos(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d18p+1)) --> Interval(-0x1p+0, -0x1.fffffffffffffp-1) - @fact cos(Interval(0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1)) --> Interval(-0x1p+0, -0x1.fffffffffffffp-1) - @fact cos(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1)) --> Interval(-0x1p+0, -0x1.fffffffffffffp-1) - @fact cos(Interval(0.0, 0x1.921fb54442d18p+1)) --> Interval(-1.0, 1.0) - @fact cos(Interval(-0.0, 0x1.921fb54442d18p+1)) --> Interval(-1.0, 1.0) - @fact cos(Interval(0.0, 0x1.921fb54442d19p+1)) --> Interval(-1.0, 1.0) - @fact cos(Interval(-0.0, 0x1.921fb54442d19p+1)) --> Interval(-1.0, 1.0) - @fact cos(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d18p+1)) --> Interval(-1.0, 0x1.1a62633145c07p-54) - @fact cos(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1)) --> Interval(-1.0, 0x1.1a62633145c07p-54) - @fact cos(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d18p+1)) --> Interval(-1.0, -0x1.72cece675d1fcp-53) - @fact cos(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d19p+1)) --> Interval(-1.0, -0x1.72cece675d1fcp-53) - @fact cos(Interval(-0x1.921fb54442d18p+0, -0x1.921fb54442d18p+0)) --> Interval(0x1.1a62633145c06p-54, 0x1.1a62633145c07p-54) - @fact cos(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d19p+0)) --> Interval(-0x1.72cece675d1fdp-53, -0x1.72cece675d1fcp-53) - @fact cos(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0)) --> Interval(-0x1.72cece675d1fdp-53, 0x1.1a62633145c07p-54) - @fact cos(Interval(-0x1.921fb54442d18p+0, 0.0)) --> Interval(0x1.1a62633145c06p-54, 1.0) - @fact cos(Interval(-0x1.921fb54442d18p+0, -0.0)) --> Interval(0x1.1a62633145c06p-54, 1.0) - @fact cos(Interval(-0x1.921fb54442d19p+0, 0.0)) --> Interval(-0x1.72cece675d1fdp-53, 1.0) - @fact cos(Interval(-0x1.921fb54442d19p+0, -0.0)) --> Interval(-0x1.72cece675d1fdp-53, 1.0) - @fact cos(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d18p+1)) --> Interval(-0x1p+0, -0x1.fffffffffffffp-1) - @fact cos(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d19p+1)) --> Interval(-0x1p+0, -0x1.fffffffffffffp-1) - @fact cos(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d18p+1)) --> Interval(-0x1p+0, -0x1.fffffffffffffp-1) - @fact cos(Interval(-0x1.921fb54442d18p+1, 0.0)) --> Interval(-1.0, 1.0) - @fact cos(Interval(-0x1.921fb54442d18p+1, -0.0)) --> Interval(-1.0, 1.0) - @fact cos(Interval(-0x1.921fb54442d19p+1, 0.0)) --> Interval(-1.0, 1.0) - @fact cos(Interval(-0x1.921fb54442d19p+1, -0.0)) --> Interval(-1.0, 1.0) - @fact cos(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d18p+0)) --> Interval(-1.0, 0x1.1a62633145c07p-54) - @fact cos(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d18p+0)) --> Interval(-1.0, 0x1.1a62633145c07p-54) - @fact cos(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d19p+0)) --> Interval(-1.0, -0x1.72cece675d1fcp-53) - @fact cos(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d19p+0)) --> Interval(-1.0, -0x1.72cece675d1fcp-53) - @fact cos(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0)) --> Interval(0x1.1a62633145c06p-54, 1.0) - @fact cos(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)) --> Interval(-0x1.72cece675d1fdp-53, 1.0) - @fact cos(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d18p+0)) --> Interval(-0x1.72cece675d1fdp-53, 1.0) - @fact cos(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0)) --> Interval(-0x1.72cece675d1fdp-53, 1.0) - @fact cos(Interval(-0.7, 0.1)) --> Interval(0x1.87996529f9d92p-1, 1.0) - @fact cos(Interval(1.0, 2.0)) --> Interval(-0x1.aa22657537205p-2, 0x1.14a280fb5068cp-1) - @fact cos(Interval(-3.2, -2.9)) --> Interval(-1.0, -0x1.f1216dba340c8p-1) - @fact cos(Interval(2.0, 3.0)) --> Interval(-0x1.fae04be85e5d3p-1, -0x1.aa22657537204p-2) +@testset "minimal_cos_test" begin + @test cos(∅) == ∅ + @test cos(Interval(0.0, Inf)) == Interval(-1.0, 1.0) + @test cos(Interval(-0.0, Inf)) == Interval(-1.0, 1.0) + @test cos(Interval(-Inf, 0.0)) == Interval(-1.0, 1.0) + @test cos(Interval(-Inf, -0.0)) == Interval(-1.0, 1.0) + @test cos(entireinterval(Float64)) == Interval(-1.0, 1.0) + @test cos(Interval(0.0, 0.0)) == Interval(1.0, 1.0) + @test cos(Interval(-0.0, -0.0)) == Interval(1.0, 1.0) + @test cos(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0)) == Interval(0x1.1a62633145c06p-54, 0x1.1a62633145c07p-54) + @test cos(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0)) == Interval(-0x1.72cece675d1fdp-53, -0x1.72cece675d1fcp-53) + @test cos(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)) == Interval(-0x1.72cece675d1fdp-53, 0x1.1a62633145c07p-54) + @test cos(Interval(0.0, 0x1.921fb54442d18p+0)) == Interval(0x1.1a62633145c06p-54, 1.0) + @test cos(Interval(-0.0, 0x1.921fb54442d18p+0)) == Interval(0x1.1a62633145c06p-54, 1.0) + @test cos(Interval(0.0, 0x1.921fb54442d19p+0)) == Interval(-0x1.72cece675d1fdp-53, 1.0) + @test cos(Interval(-0.0, 0x1.921fb54442d19p+0)) == Interval(-0x1.72cece675d1fdp-53, 1.0) + @test cos(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d18p+1)) == Interval(-0x1p+0, -0x1.fffffffffffffp-1) + @test cos(Interval(0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1)) == Interval(-0x1p+0, -0x1.fffffffffffffp-1) + @test cos(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1)) == Interval(-0x1p+0, -0x1.fffffffffffffp-1) + @test cos(Interval(0.0, 0x1.921fb54442d18p+1)) == Interval(-1.0, 1.0) + @test cos(Interval(-0.0, 0x1.921fb54442d18p+1)) == Interval(-1.0, 1.0) + @test cos(Interval(0.0, 0x1.921fb54442d19p+1)) == Interval(-1.0, 1.0) + @test cos(Interval(-0.0, 0x1.921fb54442d19p+1)) == Interval(-1.0, 1.0) + @test cos(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d18p+1)) == Interval(-1.0, 0x1.1a62633145c07p-54) + @test cos(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1)) == Interval(-1.0, 0x1.1a62633145c07p-54) + @test cos(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d18p+1)) == Interval(-1.0, -0x1.72cece675d1fcp-53) + @test cos(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d19p+1)) == Interval(-1.0, -0x1.72cece675d1fcp-53) + @test cos(Interval(-0x1.921fb54442d18p+0, -0x1.921fb54442d18p+0)) == Interval(0x1.1a62633145c06p-54, 0x1.1a62633145c07p-54) + @test cos(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d19p+0)) == Interval(-0x1.72cece675d1fdp-53, -0x1.72cece675d1fcp-53) + @test cos(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0)) == Interval(-0x1.72cece675d1fdp-53, 0x1.1a62633145c07p-54) + @test cos(Interval(-0x1.921fb54442d18p+0, 0.0)) == Interval(0x1.1a62633145c06p-54, 1.0) + @test cos(Interval(-0x1.921fb54442d18p+0, -0.0)) == Interval(0x1.1a62633145c06p-54, 1.0) + @test cos(Interval(-0x1.921fb54442d19p+0, 0.0)) == Interval(-0x1.72cece675d1fdp-53, 1.0) + @test cos(Interval(-0x1.921fb54442d19p+0, -0.0)) == Interval(-0x1.72cece675d1fdp-53, 1.0) + @test cos(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d18p+1)) == Interval(-0x1p+0, -0x1.fffffffffffffp-1) + @test cos(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d19p+1)) == Interval(-0x1p+0, -0x1.fffffffffffffp-1) + @test cos(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d18p+1)) == Interval(-0x1p+0, -0x1.fffffffffffffp-1) + @test cos(Interval(-0x1.921fb54442d18p+1, 0.0)) == Interval(-1.0, 1.0) + @test cos(Interval(-0x1.921fb54442d18p+1, -0.0)) == Interval(-1.0, 1.0) + @test cos(Interval(-0x1.921fb54442d19p+1, 0.0)) == Interval(-1.0, 1.0) + @test cos(Interval(-0x1.921fb54442d19p+1, -0.0)) == Interval(-1.0, 1.0) + @test cos(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d18p+0)) == Interval(-1.0, 0x1.1a62633145c07p-54) + @test cos(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d18p+0)) == Interval(-1.0, 0x1.1a62633145c07p-54) + @test cos(Interval(-0x1.921fb54442d18p+1, -0x1.921fb54442d19p+0)) == Interval(-1.0, -0x1.72cece675d1fcp-53) + @test cos(Interval(-0x1.921fb54442d19p+1, -0x1.921fb54442d19p+0)) == Interval(-1.0, -0x1.72cece675d1fcp-53) + @test cos(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0)) == Interval(0x1.1a62633145c06p-54, 1.0) + @test cos(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)) == Interval(-0x1.72cece675d1fdp-53, 1.0) + @test cos(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d18p+0)) == Interval(-0x1.72cece675d1fdp-53, 1.0) + @test cos(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0)) == Interval(-0x1.72cece675d1fdp-53, 1.0) + @test cos(Interval(-0.7, 0.1)) == Interval(0x1.87996529f9d92p-1, 1.0) + @test cos(Interval(1.0, 2.0)) == Interval(-0x1.aa22657537205p-2, 0x1.14a280fb5068cp-1) + @test cos(Interval(-3.2, -2.9)) == Interval(-1.0, -0x1.f1216dba340c8p-1) + @test cos(Interval(2.0, 3.0)) == Interval(-0x1.fae04be85e5d3p-1, -0x1.aa22657537204p-2) end -facts("minimal_cos_dec_test") do - @fact cos(DecoratedInterval(Interval(-0x1.921fb54442d18p+0, -0x1.921fb54442d18p+0), trv)) --> DecoratedInterval(Interval(0x1.1a62633145c06p-54, 0x1.1a62633145c07p-54), trv) - @fact decoration(cos(DecoratedInterval(Interval(-0x1.921fb54442d18p+0, -0x1.921fb54442d18p+0), trv))) --> decoration(DecoratedInterval(Interval(0x1.1a62633145c06p-54, 0x1.1a62633145c07p-54), trv)) - @fact cos(DecoratedInterval(Interval(-Inf, -0.0), def)) --> DecoratedInterval(Interval(-1.0, 1.0), def) - @fact decoration(cos(DecoratedInterval(Interval(-Inf, -0.0), def))) --> decoration(DecoratedInterval(Interval(-1.0, 1.0), def)) - @fact cos(DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(-1.0, 1.0), def) - @fact decoration(cos(DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(-1.0, 1.0), def)) +@testset "minimal_cos_dec_test" begin + @test cos(DecoratedInterval(Interval(-0x1.921fb54442d18p+0, -0x1.921fb54442d18p+0), trv)) == DecoratedInterval(Interval(0x1.1a62633145c06p-54, 0x1.1a62633145c07p-54), trv) + @test decoration(cos(DecoratedInterval(Interval(-0x1.921fb54442d18p+0, -0x1.921fb54442d18p+0), trv))) == decoration(DecoratedInterval(Interval(0x1.1a62633145c06p-54, 0x1.1a62633145c07p-54), trv)) + @test cos(DecoratedInterval(Interval(-Inf, -0.0), def)) == DecoratedInterval(Interval(-1.0, 1.0), def) + @test decoration(cos(DecoratedInterval(Interval(-Inf, -0.0), def))) == decoration(DecoratedInterval(Interval(-1.0, 1.0), def)) + @test cos(DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-1.0, 1.0), def) + @test decoration(cos(DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-1.0, 1.0), def)) end -facts("minimal_tan_test") do - @fact tan(∅) --> ∅ - @fact tan(Interval(0.0, Inf)) --> entireinterval(Float64) - @fact tan(Interval(-0.0, Inf)) --> entireinterval(Float64) - @fact tan(Interval(-Inf, 0.0)) --> entireinterval(Float64) - @fact tan(Interval(-Inf, -0.0)) --> entireinterval(Float64) - @fact tan(entireinterval(Float64)) --> entireinterval(Float64) - @fact tan(Interval(0.0, 0.0)) --> Interval(0.0, 0.0) - @fact tan(Interval(-0.0, -0.0)) --> Interval(0.0, 0.0) - @fact tan(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0)) --> Interval(0x1.d02967c31cdb4p+53, 0x1.d02967c31cdb5p+53) - @fact tan(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0)) --> Interval(-0x1.617a15494767bp+52, -0x1.617a15494767ap+52) - @fact tan(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)) --> entireinterval(Float64) - @fact tan(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d18p+1)) --> Interval(-0x1.1a62633145c07p-53, -0x1.1a62633145c06p-53) - @fact tan(Interval(0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1)) --> Interval(0x1.72cece675d1fcp-52, 0x1.72cece675d1fdp-52) - @fact tan(Interval(0.0, 0x1.921fb54442d18p+0)) --> Interval(0.0, 0x1.d02967c31cdb5p+53) - @fact tan(Interval(-0.0, 0x1.921fb54442d18p+0)) --> Interval(0.0, 0x1.d02967c31cdb5p+53) - @fact tan(Interval(0.0, 0x1.921fb54442d19p+0)) --> entireinterval(Float64) - @fact tan(Interval(-0.0, 0x1.921fb54442d19p+0)) --> entireinterval(Float64) - @fact tan(Interval(0.0, 0x1.921fb54442d18p+1)) --> entireinterval(Float64) - @fact tan(Interval(-0.0, 0x1.921fb54442d18p+1)) --> entireinterval(Float64) - @fact tan(Interval(0.0, 0x1.921fb54442d19p+1)) --> entireinterval(Float64) - @fact tan(Interval(-0.0, 0x1.921fb54442d19p+1)) --> entireinterval(Float64) - @fact tan(Interval(0x1p-51, 0x1.921fb54442d18p+1)) --> entireinterval(Float64) - @fact tan(Interval(0x1p-51, 0x1.921fb54442d19p+1)) --> entireinterval(Float64) - @fact tan(Interval(0x1p-52, 0x1.921fb54442d18p+1)) --> entireinterval(Float64) - @fact tan(Interval(0x1p-52, 0x1.921fb54442d19p+1)) --> entireinterval(Float64) - @fact tan(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0)) --> Interval(-0x1.d02967c31cdb5p+53, 0x1.d02967c31cdb5p+53) - @fact tan(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)) --> entireinterval(Float64) - @fact tan(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d18p+0)) --> entireinterval(Float64) - @fact tan(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0)) --> entireinterval(Float64) - @fact tan(Interval(-0x1.555475a31a4bep-2, 0x1.999999999999ap-4)) --> Interval(-0x1.628f4fd931fefp-2, 0x1.9af8877430b81p-4) - @fact tan(Interval(0x1.4e18e147ae148p+12, 0x1.4e2028f5c28f6p+12)) --> Interval(-0x1.d6d67b035b6b4p+2, -0x1.7e42b0760e3f3p+0) - @fact tan(Interval(0x1.4e18e147ae148p+12, 0x1.546028f5c28f6p+12)) --> entireinterval(Float64) - @fact tan(Interval(0x1.fae147ae147aep-1, 0x1.028f5c28f5c29p+0)) --> Interval(0x1.860fadcc59064p+0, 0x1.979ad0628469dp+0) +@testset "minimal_tan_test" begin + @test tan(∅) == ∅ + @test tan(Interval(0.0, Inf)) == entireinterval(Float64) + @test tan(Interval(-0.0, Inf)) == entireinterval(Float64) + @test tan(Interval(-Inf, 0.0)) == entireinterval(Float64) + @test tan(Interval(-Inf, -0.0)) == entireinterval(Float64) + @test tan(entireinterval(Float64)) == entireinterval(Float64) + @test tan(Interval(0.0, 0.0)) == Interval(0.0, 0.0) + @test tan(Interval(-0.0, -0.0)) == Interval(0.0, 0.0) + @test tan(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0)) == Interval(0x1.d02967c31cdb4p+53, 0x1.d02967c31cdb5p+53) + @test tan(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0)) == Interval(-0x1.617a15494767bp+52, -0x1.617a15494767ap+52) + @test tan(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)) == entireinterval(Float64) + @test tan(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d18p+1)) == Interval(-0x1.1a62633145c07p-53, -0x1.1a62633145c06p-53) + @test tan(Interval(0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1)) == Interval(0x1.72cece675d1fcp-52, 0x1.72cece675d1fdp-52) + @test tan(Interval(0.0, 0x1.921fb54442d18p+0)) == Interval(0.0, 0x1.d02967c31cdb5p+53) + @test tan(Interval(-0.0, 0x1.921fb54442d18p+0)) == Interval(0.0, 0x1.d02967c31cdb5p+53) + @test tan(Interval(0.0, 0x1.921fb54442d19p+0)) == entireinterval(Float64) + @test tan(Interval(-0.0, 0x1.921fb54442d19p+0)) == entireinterval(Float64) + @test tan(Interval(0.0, 0x1.921fb54442d18p+1)) == entireinterval(Float64) + @test tan(Interval(-0.0, 0x1.921fb54442d18p+1)) == entireinterval(Float64) + @test tan(Interval(0.0, 0x1.921fb54442d19p+1)) == entireinterval(Float64) + @test tan(Interval(-0.0, 0x1.921fb54442d19p+1)) == entireinterval(Float64) + @test tan(Interval(0x1p-51, 0x1.921fb54442d18p+1)) == entireinterval(Float64) + @test tan(Interval(0x1p-51, 0x1.921fb54442d19p+1)) == entireinterval(Float64) + @test tan(Interval(0x1p-52, 0x1.921fb54442d18p+1)) == entireinterval(Float64) + @test tan(Interval(0x1p-52, 0x1.921fb54442d19p+1)) == entireinterval(Float64) + @test tan(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0)) == Interval(-0x1.d02967c31cdb5p+53, 0x1.d02967c31cdb5p+53) + @test tan(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0)) == entireinterval(Float64) + @test tan(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d18p+0)) == entireinterval(Float64) + @test tan(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0)) == entireinterval(Float64) + @test tan(Interval(-0x1.555475a31a4bep-2, 0x1.999999999999ap-4)) == Interval(-0x1.628f4fd931fefp-2, 0x1.9af8877430b81p-4) + @test tan(Interval(0x1.4e18e147ae148p+12, 0x1.4e2028f5c28f6p+12)) == Interval(-0x1.d6d67b035b6b4p+2, -0x1.7e42b0760e3f3p+0) + @test tan(Interval(0x1.4e18e147ae148p+12, 0x1.546028f5c28f6p+12)) == entireinterval(Float64) + @test tan(Interval(0x1.fae147ae147aep-1, 0x1.028f5c28f5c29p+0)) == Interval(0x1.860fadcc59064p+0, 0x1.979ad0628469dp+0) end -facts("minimal_tan_dec_test") do - @fact tan(DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(tan(DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact tan(DecoratedInterval(Interval(0.0, Inf), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(0.0, Inf), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(-0.0, Inf), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(-0.0, Inf), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(-Inf, 0.0), trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(-Inf, 0.0), trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(-Inf, -0.0), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(-Inf, -0.0), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(0.0, 0.0), com)) --> DecoratedInterval(Interval(0.0, 0.0), com) - @fact decoration(tan(DecoratedInterval(Interval(0.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), com)) - @fact tan(DecoratedInterval(Interval(-0.0, -0.0), def)) --> DecoratedInterval(Interval(0.0, 0.0), def) - @fact decoration(tan(DecoratedInterval(Interval(-0.0, -0.0), def))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), def)) - @fact tan(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0), com)) --> DecoratedInterval(Interval(0x1.d02967c31cdb4p+53, 0x1.d02967c31cdb5p+53), com) - @fact decoration(tan(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0), com))) --> decoration(DecoratedInterval(Interval(0x1.d02967c31cdb4p+53, 0x1.d02967c31cdb5p+53), com)) - @fact tan(DecoratedInterval(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), def)) --> DecoratedInterval(Interval(-0x1.617a15494767bp+52, -0x1.617a15494767ap+52), def) - @fact decoration(tan(DecoratedInterval(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), def))) --> decoration(DecoratedInterval(Interval(-0x1.617a15494767bp+52, -0x1.617a15494767ap+52), def)) - @fact tan(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d18p+1), trv)) --> DecoratedInterval(Interval(-0x1.1a62633145c07p-53, -0x1.1a62633145c06p-53), trv) - @fact decoration(tan(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d18p+1), trv))) --> decoration(DecoratedInterval(Interval(-0x1.1a62633145c07p-53, -0x1.1a62633145c06p-53), trv)) - @fact tan(DecoratedInterval(Interval(0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), com)) --> DecoratedInterval(Interval(0x1.72cece675d1fcp-52, 0x1.72cece675d1fdp-52), com) - @fact decoration(tan(DecoratedInterval(Interval(0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), com))) --> decoration(DecoratedInterval(Interval(0x1.72cece675d1fcp-52, 0x1.72cece675d1fdp-52), com)) - @fact tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d18p+0), dac)) --> DecoratedInterval(Interval(0.0, 0x1.d02967c31cdb5p+53), dac) - @fact decoration(tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d18p+0), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.d02967c31cdb5p+53), dac)) - @fact tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d18p+0), com)) --> DecoratedInterval(Interval(0.0, 0x1.d02967c31cdb5p+53), com) - @fact decoration(tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d18p+0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.d02967c31cdb5p+53), com)) - @fact tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d19p+0), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d19p+0), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d18p+1), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d18p+1), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d18p+1), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d18p+1), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d19p+1), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d19p+1), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(0x1p-51, 0x1.921fb54442d18p+1), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(0x1p-51, 0x1.921fb54442d18p+1), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(0x1p-51, 0x1.921fb54442d19p+1), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(0x1p-51, 0x1.921fb54442d19p+1), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(0x1p-52, 0x1.921fb54442d18p+1), trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(0x1p-52, 0x1.921fb54442d18p+1), trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(0x1p-52, 0x1.921fb54442d19p+1), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(0x1p-52, 0x1.921fb54442d19p+1), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0), com)) --> DecoratedInterval(Interval(-0x1.d02967c31cdb5p+53, 0x1.d02967c31cdb5p+53), com) - @fact decoration(tan(DecoratedInterval(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0), com))) --> decoration(DecoratedInterval(Interval(-0x1.d02967c31cdb5p+53, 0x1.d02967c31cdb5p+53), com)) - @fact tan(DecoratedInterval(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d18p+0), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d18p+0), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), dac)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), dac))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(-0x1.555475a31a4bep-2, 0x1.999999999999ap-4), com)) --> DecoratedInterval(Interval(-0x1.628f4fd931fefp-2, 0x1.9af8877430b81p-4), com) - @fact decoration(tan(DecoratedInterval(Interval(-0x1.555475a31a4bep-2, 0x1.999999999999ap-4), com))) --> decoration(DecoratedInterval(Interval(-0x1.628f4fd931fefp-2, 0x1.9af8877430b81p-4), com)) - @fact tan(DecoratedInterval(Interval(0x1.4e18e147ae148p+12, 0x1.4e2028f5c28f6p+12), dac)) --> DecoratedInterval(Interval(-0x1.d6d67b035b6b4p+2, -0x1.7e42b0760e3f3p+0), dac) - @fact decoration(tan(DecoratedInterval(Interval(0x1.4e18e147ae148p+12, 0x1.4e2028f5c28f6p+12), dac))) --> decoration(DecoratedInterval(Interval(-0x1.d6d67b035b6b4p+2, -0x1.7e42b0760e3f3p+0), dac)) - @fact tan(DecoratedInterval(Interval(0x1.4e18e147ae148p+12, 0x1.546028f5c28f6p+12), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(tan(DecoratedInterval(Interval(0x1.4e18e147ae148p+12, 0x1.546028f5c28f6p+12), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact tan(DecoratedInterval(Interval(0x1.fae147ae147aep-1, 0x1.028f5c28f5c29p+0), trv)) --> DecoratedInterval(Interval(0x1.860fadcc59064p+0, 0x1.979ad0628469dp+0), trv) - @fact decoration(tan(DecoratedInterval(Interval(0x1.fae147ae147aep-1, 0x1.028f5c28f5c29p+0), trv))) --> decoration(DecoratedInterval(Interval(0x1.860fadcc59064p+0, 0x1.979ad0628469dp+0), trv)) +@testset "minimal_tan_dec_test" begin + @test tan(DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(tan(DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test tan(DecoratedInterval(Interval(0.0, Inf), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(0.0, Inf), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(-0.0, Inf), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(-0.0, Inf), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(-Inf, 0.0), trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(-Inf, 0.0), trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(-Inf, -0.0), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(-Inf, -0.0), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(Interval(0.0, 0.0), com) + @test decoration(tan(DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), com)) + @test tan(DecoratedInterval(Interval(-0.0, -0.0), def)) == DecoratedInterval(Interval(0.0, 0.0), def) + @test decoration(tan(DecoratedInterval(Interval(-0.0, -0.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0.0), def)) + @test tan(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0), com)) == DecoratedInterval(Interval(0x1.d02967c31cdb4p+53, 0x1.d02967c31cdb5p+53), com) + @test decoration(tan(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0), com))) == decoration(DecoratedInterval(Interval(0x1.d02967c31cdb4p+53, 0x1.d02967c31cdb5p+53), com)) + @test tan(DecoratedInterval(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), def)) == DecoratedInterval(Interval(-0x1.617a15494767bp+52, -0x1.617a15494767ap+52), def) + @test decoration(tan(DecoratedInterval(Interval(0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), def))) == decoration(DecoratedInterval(Interval(-0x1.617a15494767bp+52, -0x1.617a15494767ap+52), def)) + @test tan(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d18p+1), trv)) == DecoratedInterval(Interval(-0x1.1a62633145c07p-53, -0x1.1a62633145c06p-53), trv) + @test decoration(tan(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d18p+1), trv))) == decoration(DecoratedInterval(Interval(-0x1.1a62633145c07p-53, -0x1.1a62633145c06p-53), trv)) + @test tan(DecoratedInterval(Interval(0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), com)) == DecoratedInterval(Interval(0x1.72cece675d1fcp-52, 0x1.72cece675d1fdp-52), com) + @test decoration(tan(DecoratedInterval(Interval(0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), com))) == decoration(DecoratedInterval(Interval(0x1.72cece675d1fcp-52, 0x1.72cece675d1fdp-52), com)) + @test tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d18p+0), dac)) == DecoratedInterval(Interval(0.0, 0x1.d02967c31cdb5p+53), dac) + @test decoration(tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d18p+0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0x1.d02967c31cdb5p+53), dac)) + @test tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d18p+0), com)) == DecoratedInterval(Interval(0.0, 0x1.d02967c31cdb5p+53), com) + @test decoration(tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d18p+0), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1.d02967c31cdb5p+53), com)) + @test tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d19p+0), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d19p+0), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d18p+1), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d18p+1), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d18p+1), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d18p+1), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d19p+1), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(-0.0, 0x1.921fb54442d19p+1), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(0x1p-51, 0x1.921fb54442d18p+1), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(0x1p-51, 0x1.921fb54442d18p+1), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(0x1p-51, 0x1.921fb54442d19p+1), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(0x1p-51, 0x1.921fb54442d19p+1), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(0x1p-52, 0x1.921fb54442d18p+1), trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(0x1p-52, 0x1.921fb54442d18p+1), trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(0x1p-52, 0x1.921fb54442d19p+1), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(0x1p-52, 0x1.921fb54442d19p+1), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0), com)) == DecoratedInterval(Interval(-0x1.d02967c31cdb5p+53, 0x1.d02967c31cdb5p+53), com) + @test decoration(tan(DecoratedInterval(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d18p+0), com))) == decoration(DecoratedInterval(Interval(-0x1.d02967c31cdb5p+53, 0x1.d02967c31cdb5p+53), com)) + @test tan(DecoratedInterval(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(-0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d18p+0), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d18p+0), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), dac)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), dac))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(-0x1.555475a31a4bep-2, 0x1.999999999999ap-4), com)) == DecoratedInterval(Interval(-0x1.628f4fd931fefp-2, 0x1.9af8877430b81p-4), com) + @test decoration(tan(DecoratedInterval(Interval(-0x1.555475a31a4bep-2, 0x1.999999999999ap-4), com))) == decoration(DecoratedInterval(Interval(-0x1.628f4fd931fefp-2, 0x1.9af8877430b81p-4), com)) + @test tan(DecoratedInterval(Interval(0x1.4e18e147ae148p+12, 0x1.4e2028f5c28f6p+12), dac)) == DecoratedInterval(Interval(-0x1.d6d67b035b6b4p+2, -0x1.7e42b0760e3f3p+0), dac) + @test decoration(tan(DecoratedInterval(Interval(0x1.4e18e147ae148p+12, 0x1.4e2028f5c28f6p+12), dac))) == decoration(DecoratedInterval(Interval(-0x1.d6d67b035b6b4p+2, -0x1.7e42b0760e3f3p+0), dac)) + @test tan(DecoratedInterval(Interval(0x1.4e18e147ae148p+12, 0x1.546028f5c28f6p+12), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(tan(DecoratedInterval(Interval(0x1.4e18e147ae148p+12, 0x1.546028f5c28f6p+12), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test tan(DecoratedInterval(Interval(0x1.fae147ae147aep-1, 0x1.028f5c28f5c29p+0), trv)) == DecoratedInterval(Interval(0x1.860fadcc59064p+0, 0x1.979ad0628469dp+0), trv) + @test decoration(tan(DecoratedInterval(Interval(0x1.fae147ae147aep-1, 0x1.028f5c28f5c29p+0), trv))) == decoration(DecoratedInterval(Interval(0x1.860fadcc59064p+0, 0x1.979ad0628469dp+0), trv)) end -facts("minimal_asin_test") do - @fact asin(∅) --> ∅ - @fact asin(Interval(0.0, Inf)) --> Interval(0.0, 0x1.921fb54442d19p+0) - @fact asin(Interval(-0.0, Inf)) --> Interval(0.0, 0x1.921fb54442d19p+0) - @fact asin(Interval(-Inf, 0.0)) --> Interval(-0x1.921fb54442d19p+0, 0.0) - @fact asin(Interval(-Inf, -0.0)) --> Interval(-0x1.921fb54442d19p+0, 0.0) - @fact asin(entireinterval(Float64)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact asin(Interval(-1.0, 1.0)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact asin(Interval(-Inf, -1.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @fact asin(Interval(1.0, Inf)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact asin(Interval(-1.0, -1.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @fact asin(Interval(1.0, 1.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact asin(Interval(0.0, 0.0)) --> Interval(0.0, 0.0) - @fact asin(Interval(-0.0, -0.0)) --> Interval(0.0, 0.0) - @fact asin(Interval(-Inf, -0x1.0000000000001p+0)) --> ∅ - @fact asin(Interval(0x1.0000000000001p+0, Inf)) --> ∅ - @fact asin(Interval(-0x1.999999999999ap-4, 0x1.999999999999ap-4)) --> Interval(-0x1.9a49276037885p-4, 0x1.9a49276037885p-4) - @fact asin(Interval(-0x1.51eb851eb851fp-2, 0x1.fffffffffffffp-1)) --> Interval(-0x1.585ff6e341c3fp-2, 0x1.921fb50442d19p+0) - @fact asin(Interval(-0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1)) --> Interval(-0x1.921fb50442d19p+0, 0x1.921fb50442d19p+0) +@testset "minimal_asin_test" begin + @test asin(∅) == ∅ + @test asin(Interval(0.0, Inf)) == Interval(0.0, 0x1.921fb54442d19p+0) + @test asin(Interval(-0.0, Inf)) == Interval(0.0, 0x1.921fb54442d19p+0) + @test asin(Interval(-Inf, 0.0)) == Interval(-0x1.921fb54442d19p+0, 0.0) + @test asin(Interval(-Inf, -0.0)) == Interval(-0x1.921fb54442d19p+0, 0.0) + @test asin(entireinterval(Float64)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test asin(Interval(-1.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test asin(Interval(-Inf, -1.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) + @test asin(Interval(1.0, Inf)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test asin(Interval(-1.0, -1.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) + @test asin(Interval(1.0, 1.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test asin(Interval(0.0, 0.0)) == Interval(0.0, 0.0) + @test asin(Interval(-0.0, -0.0)) == Interval(0.0, 0.0) + @test asin(Interval(-Inf, -0x1.0000000000001p+0)) == ∅ + @test asin(Interval(0x1.0000000000001p+0, Inf)) == ∅ + @test asin(Interval(-0x1.999999999999ap-4, 0x1.999999999999ap-4)) == Interval(-0x1.9a49276037885p-4, 0x1.9a49276037885p-4) + @test asin(Interval(-0x1.51eb851eb851fp-2, 0x1.fffffffffffffp-1)) == Interval(-0x1.585ff6e341c3fp-2, 0x1.921fb50442d19p+0) + @test asin(Interval(-0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1)) == Interval(-0x1.921fb50442d19p+0, 0x1.921fb50442d19p+0) end -facts("minimal_asin_dec_test") do - @fact asin(DecoratedInterval(Interval(0.0, Inf), dac)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) - @fact decoration(asin(DecoratedInterval(Interval(0.0, Inf), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) - @fact asin(DecoratedInterval(Interval(-Inf, 0.0), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv) - @fact decoration(asin(DecoratedInterval(Interval(-Inf, 0.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv)) - @fact asin(DecoratedInterval(Interval(-1.0, 1.0), com)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), com) - @fact decoration(asin(DecoratedInterval(Interval(-1.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), com)) - @fact asin(DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(asin(DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @fact asin(DecoratedInterval(Interval(-0x1.51eb851eb851fp-2, 0x1.fffffffffffffp-1), def)) --> DecoratedInterval(Interval(-0x1.585ff6e341c3fp-2, 0x1.921fb50442d19p+0), def) - @fact decoration(asin(DecoratedInterval(Interval(-0x1.51eb851eb851fp-2, 0x1.fffffffffffffp-1), def))) --> decoration(DecoratedInterval(Interval(-0x1.585ff6e341c3fp-2, 0x1.921fb50442d19p+0), def)) +@testset "minimal_asin_dec_test" begin + @test asin(DecoratedInterval(Interval(0.0, Inf), dac)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) + @test decoration(asin(DecoratedInterval(Interval(0.0, Inf), dac))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) + @test asin(DecoratedInterval(Interval(-Inf, 0.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv) + @test decoration(asin(DecoratedInterval(Interval(-Inf, 0.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv)) + @test asin(DecoratedInterval(Interval(-1.0, 1.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), com) + @test decoration(asin(DecoratedInterval(Interval(-1.0, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), com)) + @test asin(DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(asin(DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) + @test asin(DecoratedInterval(Interval(-0x1.51eb851eb851fp-2, 0x1.fffffffffffffp-1), def)) == DecoratedInterval(Interval(-0x1.585ff6e341c3fp-2, 0x1.921fb50442d19p+0), def) + @test decoration(asin(DecoratedInterval(Interval(-0x1.51eb851eb851fp-2, 0x1.fffffffffffffp-1), def))) == decoration(DecoratedInterval(Interval(-0x1.585ff6e341c3fp-2, 0x1.921fb50442d19p+0), def)) end -facts("minimal_acos_test") do - @fact acos(∅) --> ∅ - @fact acos(Interval(0.0, Inf)) --> Interval(0.0, 0x1.921fb54442d19p+0) - @fact acos(Interval(-0.0, Inf)) --> Interval(0.0, 0x1.921fb54442d19p+0) - @fact acos(Interval(-Inf, 0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) - @fact acos(Interval(-Inf, -0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) - @fact acos(entireinterval(Float64)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact acos(Interval(-1.0, 1.0)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact acos(Interval(-Inf, -1.0)) --> Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @fact acos(Interval(1.0, Inf)) --> Interval(0.0, 0.0) - @fact acos(Interval(-1.0, -1.0)) --> Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @fact acos(Interval(1.0, 1.0)) --> Interval(0.0, 0.0) - @fact acos(Interval(0.0, 0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact acos(Interval(-0.0, -0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact acos(Interval(-Inf, -0x1.0000000000001p+0)) --> ∅ - @fact acos(Interval(0x1.0000000000001p+0, Inf)) --> ∅ - @fact acos(Interval(-0x1.999999999999ap-4, 0x1.999999999999ap-4)) --> Interval(0x1.787b22ce3f59p+0, 0x1.abc447ba464a1p+0) - @fact acos(Interval(-0x1.51eb851eb851fp-2, 0x1.fffffffffffffp-1)) --> Interval(0x1p-26, 0x1.e837b2fd13428p+0) - @fact acos(Interval(-0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1)) --> Interval(0x1p-26, 0x1.921fb52442d19p+1) +@testset "minimal_acos_test" begin + @test acos(∅) == ∅ + @test acos(Interval(0.0, Inf)) == Interval(0.0, 0x1.921fb54442d19p+0) + @test acos(Interval(-0.0, Inf)) == Interval(0.0, 0x1.921fb54442d19p+0) + @test acos(Interval(-Inf, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) + @test acos(Interval(-Inf, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) + @test acos(entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test acos(Interval(-1.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test acos(Interval(-Inf, -1.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) + @test acos(Interval(1.0, Inf)) == Interval(0.0, 0.0) + @test acos(Interval(-1.0, -1.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) + @test acos(Interval(1.0, 1.0)) == Interval(0.0, 0.0) + @test acos(Interval(0.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test acos(Interval(-0.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test acos(Interval(-Inf, -0x1.0000000000001p+0)) == ∅ + @test acos(Interval(0x1.0000000000001p+0, Inf)) == ∅ + @test acos(Interval(-0x1.999999999999ap-4, 0x1.999999999999ap-4)) == Interval(0x1.787b22ce3f59p+0, 0x1.abc447ba464a1p+0) + @test acos(Interval(-0x1.51eb851eb851fp-2, 0x1.fffffffffffffp-1)) == Interval(0x1p-26, 0x1.e837b2fd13428p+0) + @test acos(Interval(-0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1)) == Interval(0x1p-26, 0x1.921fb52442d19p+1) end -facts("minimal_acos_dec_test") do - @fact acos(DecoratedInterval(Interval(0.0, Inf), dac)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) - @fact decoration(acos(DecoratedInterval(Interval(0.0, Inf), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) - @fact acos(DecoratedInterval(Interval(-Inf, 0.0), def)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv) - @fact decoration(acos(DecoratedInterval(Interval(-Inf, 0.0), def))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv)) - @fact acos(DecoratedInterval(Interval(-1.0, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), com) - @fact decoration(acos(DecoratedInterval(Interval(-1.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), com)) - @fact acos(DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @fact decoration(acos(DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @fact acos(DecoratedInterval(Interval(-0x1.51eb851eb851fp-2, 0x1.fffffffffffffp-1), def)) --> DecoratedInterval(Interval(0x1p-26, 0x1.e837b2fd13428p+0), def) - @fact decoration(acos(DecoratedInterval(Interval(-0x1.51eb851eb851fp-2, 0x1.fffffffffffffp-1), def))) --> decoration(DecoratedInterval(Interval(0x1p-26, 0x1.e837b2fd13428p+0), def)) +@testset "minimal_acos_dec_test" begin + @test acos(DecoratedInterval(Interval(0.0, Inf), dac)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) + @test decoration(acos(DecoratedInterval(Interval(0.0, Inf), dac))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) + @test acos(DecoratedInterval(Interval(-Inf, 0.0), def)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv) + @test decoration(acos(DecoratedInterval(Interval(-Inf, 0.0), def))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv)) + @test acos(DecoratedInterval(Interval(-1.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), com) + @test decoration(acos(DecoratedInterval(Interval(-1.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), com)) + @test acos(DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) + @test decoration(acos(DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) + @test acos(DecoratedInterval(Interval(-0x1.51eb851eb851fp-2, 0x1.fffffffffffffp-1), def)) == DecoratedInterval(Interval(0x1p-26, 0x1.e837b2fd13428p+0), def) + @test decoration(acos(DecoratedInterval(Interval(-0x1.51eb851eb851fp-2, 0x1.fffffffffffffp-1), def))) == decoration(DecoratedInterval(Interval(0x1p-26, 0x1.e837b2fd13428p+0), def)) end -facts("minimal_atan_test") do - @fact atan(∅) --> ∅ - @fact atan(Interval(0.0, Inf)) --> Interval(0.0, 0x1.921fb54442d19p+0) - @fact atan(Interval(-0.0, Inf)) --> Interval(0.0, 0x1.921fb54442d19p+0) - @fact atan(Interval(-Inf, 0.0)) --> Interval(-0x1.921fb54442d19p+0, 0.0) - @fact atan(Interval(-Inf, -0.0)) --> Interval(-0x1.921fb54442d19p+0, 0.0) - @fact atan(entireinterval(Float64)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact atan(Interval(0.0, 0.0)) --> Interval(0.0, 0.0) - @fact atan(Interval(-0.0, -0.0)) --> Interval(0.0, 0.0) - @fact atan(Interval(1.0, 0x1.4c2463567c5acp+25)) --> Interval(0x1.921fb54442d18p-1, 0x1.921fb4e19abd7p+0) - @fact atan(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9)) --> Interval(-0x1.921fb54440cebp+0, -0x1.91abe5c1e4c6dp+0) +@testset "minimal_atan_test" begin + @test atan(∅) == ∅ + @test atan(Interval(0.0, Inf)) == Interval(0.0, 0x1.921fb54442d19p+0) + @test atan(Interval(-0.0, Inf)) == Interval(0.0, 0x1.921fb54442d19p+0) + @test atan(Interval(-Inf, 0.0)) == Interval(-0x1.921fb54442d19p+0, 0.0) + @test atan(Interval(-Inf, -0.0)) == Interval(-0x1.921fb54442d19p+0, 0.0) + @test atan(entireinterval(Float64)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test atan(Interval(0.0, 0.0)) == Interval(0.0, 0.0) + @test atan(Interval(-0.0, -0.0)) == Interval(0.0, 0.0) + @test atan(Interval(1.0, 0x1.4c2463567c5acp+25)) == Interval(0x1.921fb54442d18p-1, 0x1.921fb4e19abd7p+0) + @test atan(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9)) == Interval(-0x1.921fb54440cebp+0, -0x1.91abe5c1e4c6dp+0) end -facts("minimal_atan_dec_test") do - @fact atan(DecoratedInterval(Interval(0.0, Inf), dac)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), dac) - @fact decoration(atan(DecoratedInterval(Interval(0.0, Inf), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), dac)) - @fact atan(DecoratedInterval(Interval(-Inf, 0.0), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), def) - @fact decoration(atan(DecoratedInterval(Interval(-Inf, 0.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), def)) - @fact atan(DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), def) - @fact decoration(atan(DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), def)) - @fact atan(DecoratedInterval(Interval(1.0, 0x1.4c2463567c5acp+25), trv)) --> DecoratedInterval(Interval(0x1.921fb54442d18p-1, 0x1.921fb4e19abd7p+0), trv) - @fact decoration(atan(DecoratedInterval(Interval(1.0, 0x1.4c2463567c5acp+25), trv))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p-1, 0x1.921fb4e19abd7p+0), trv)) - @fact atan(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), com)) --> DecoratedInterval(Interval(-0x1.921fb54440cebp+0, -0x1.91abe5c1e4c6dp+0), com) - @fact decoration(atan(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54440cebp+0, -0x1.91abe5c1e4c6dp+0), com)) +@testset "minimal_atan_dec_test" begin + @test atan(DecoratedInterval(Interval(0.0, Inf), dac)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), dac) + @test decoration(atan(DecoratedInterval(Interval(0.0, Inf), dac))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), dac)) + @test atan(DecoratedInterval(Interval(-Inf, 0.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), def) + @test decoration(atan(DecoratedInterval(Interval(-Inf, 0.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), def)) + @test atan(DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), def) + @test decoration(atan(DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), def)) + @test atan(DecoratedInterval(Interval(1.0, 0x1.4c2463567c5acp+25), trv)) == DecoratedInterval(Interval(0x1.921fb54442d18p-1, 0x1.921fb4e19abd7p+0), trv) + @test decoration(atan(DecoratedInterval(Interval(1.0, 0x1.4c2463567c5acp+25), trv))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p-1, 0x1.921fb4e19abd7p+0), trv)) + @test atan(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), com)) == DecoratedInterval(Interval(-0x1.921fb54440cebp+0, -0x1.91abe5c1e4c6dp+0), com) + @test decoration(atan(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54440cebp+0, -0x1.91abe5c1e4c6dp+0), com)) end -facts("minimal_atan2_test") do - @fact atan2(∅, ∅) --> ∅ - @fact atan2(∅, entireinterval(Float64)) --> ∅ - @fact atan2(∅, Interval(0.0, 0.0)) --> ∅ - @fact atan2(∅, Interval(-0.0, 0.0)) --> ∅ - @fact atan2(∅, Interval(0.0, -0.0)) --> ∅ - @fact atan2(∅, Interval(-0.0, -0.0)) --> ∅ - @fact atan2(∅, Interval(-2.0, -0.1)) --> ∅ - @fact atan2(∅, Interval(-2.0, 0.0)) --> ∅ - @fact atan2(∅, Interval(-2.0, -0.0)) --> ∅ - @fact atan2(∅, Interval(-2.0, 1.0)) --> ∅ - @fact atan2(∅, Interval(0.0, 1.0)) --> ∅ - @fact atan2(∅, Interval(-0.0, 1.0)) --> ∅ - @fact atan2(∅, Interval(0.1, 1.0)) --> ∅ - @fact atan2(entireinterval(Float64), ∅) --> ∅ - @fact atan2(entireinterval(Float64), entireinterval(Float64)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(entireinterval(Float64), Interval(0.0, 0.0)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact atan2(entireinterval(Float64), Interval(0.0, -0.0)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact atan2(entireinterval(Float64), Interval(-0.0, 0.0)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact atan2(entireinterval(Float64), Interval(-0.0, -0.0)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact atan2(entireinterval(Float64), Interval(-2.0, -0.1)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(entireinterval(Float64), Interval(-2.0, 0.0)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(entireinterval(Float64), Interval(-2.0, -0.0)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(entireinterval(Float64), Interval(-2.0, 1.0)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(entireinterval(Float64), Interval(0.0, 1.0)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact atan2(entireinterval(Float64), Interval(-0.0, 1.0)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact atan2(entireinterval(Float64), Interval(0.1, 1.0)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(0.0, 0.0), ∅) --> ∅ - @fact atan2(Interval(0.0, 0.0), entireinterval(Float64)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, 0.0), Interval(0.0, 0.0)) --> ∅ - @fact atan2(Interval(0.0, 0.0), Interval(-0.0, 0.0)) --> ∅ - @fact atan2(Interval(0.0, 0.0), Interval(0.0, -0.0)) --> ∅ - @fact atan2(Interval(0.0, 0.0), Interval(-0.0, -0.0)) --> ∅ - @fact atan2(Interval(0.0, 0.0), Interval(-2.0, -0.1)) --> Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, 0.0), Interval(-2.0, 0.0)) --> Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, 0.0), Interval(-2.0, -0.0)) --> Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, 0.0), Interval(-2.0, 1.0)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, 0.0), Interval(0.0, 1.0)) --> Interval(0.0, 0.0) - @fact atan2(Interval(0.0, 0.0), Interval(-0.0, 1.0)) --> Interval(0.0, 0.0) - @fact atan2(Interval(0.0, 0.0), Interval(0.1, 1.0)) --> Interval(0.0, 0.0) - @fact atan2(Interval(-0.0, 0.0), ∅) --> ∅ - @fact atan2(Interval(-0.0, 0.0), entireinterval(Float64)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, 0.0), Interval(0.0, 0.0)) --> ∅ - @fact atan2(Interval(-0.0, 0.0), Interval(-0.0, 0.0)) --> ∅ - @fact atan2(Interval(-0.0, 0.0), Interval(0.0, -0.0)) --> ∅ - @fact atan2(Interval(-0.0, 0.0), Interval(-0.0, -0.0)) --> ∅ - @fact atan2(Interval(-0.0, 0.0), Interval(-2.0, -0.1)) --> Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, 0.0), Interval(-2.0, 0.0)) --> Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, 0.0), Interval(-2.0, -0.0)) --> Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, 0.0), Interval(-2.0, 1.0)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, 0.0), Interval(0.0, 1.0)) --> Interval(0.0, 0.0) - @fact atan2(Interval(-0.0, 0.0), Interval(-0.0, 1.0)) --> Interval(0.0, 0.0) - @fact atan2(Interval(-0.0, 0.0), Interval(0.1, 1.0)) --> Interval(0.0, 0.0) - @fact atan2(Interval(0.0, -0.0), ∅) --> ∅ - @fact atan2(Interval(0.0, -0.0), entireinterval(Float64)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, -0.0), Interval(0.0, 0.0)) --> ∅ - @fact atan2(Interval(0.0, -0.0), Interval(-0.0, 0.0)) --> ∅ - @fact atan2(Interval(0.0, -0.0), Interval(0.0, -0.0)) --> ∅ - @fact atan2(Interval(0.0, -0.0), Interval(-0.0, -0.0)) --> ∅ - @fact atan2(Interval(0.0, -0.0), Interval(-2.0, -0.1)) --> Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, -0.0), Interval(-2.0, 0.0)) --> Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, -0.0), Interval(-2.0, -0.0)) --> Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, -0.0), Interval(-2.0, 1.0)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, -0.0), Interval(0.0, 1.0)) --> Interval(0.0, 0.0) - @fact atan2(Interval(0.0, -0.0), Interval(-0.0, 1.0)) --> Interval(0.0, 0.0) - @fact atan2(Interval(0.0, -0.0), Interval(0.1, 1.0)) --> Interval(0.0, 0.0) - @fact atan2(Interval(-0.0, -0.0), ∅) --> ∅ - @fact atan2(Interval(-0.0, -0.0), entireinterval(Float64)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, -0.0), Interval(0.0, 0.0)) --> ∅ - @fact atan2(Interval(-0.0, -0.0), Interval(-0.0, 0.0)) --> ∅ - @fact atan2(Interval(-0.0, -0.0), Interval(0.0, -0.0)) --> ∅ - @fact atan2(Interval(-0.0, -0.0), Interval(-0.0, -0.0)) --> ∅ - @fact atan2(Interval(-0.0, -0.0), Interval(-2.0, -0.1)) --> Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, -0.0), Interval(-2.0, 0.0)) --> Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, -0.0), Interval(-2.0, -0.0)) --> Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, -0.0), Interval(-2.0, 1.0)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, -0.0), Interval(0.0, 1.0)) --> Interval(0.0, 0.0) - @fact atan2(Interval(-0.0, -0.0), Interval(-0.0, 1.0)) --> Interval(0.0, 0.0) - @fact atan2(Interval(-0.0, -0.0), Interval(0.1, 1.0)) --> Interval(0.0, 0.0) - @fact atan2(Interval(-2.0, -0.1), ∅) --> ∅ - @fact atan2(Interval(-2.0, -0.1), entireinterval(Float64)) --> Interval(-0x1.921fb54442d19p+1, 0.0) - @fact atan2(Interval(-2.0, -0.1), Interval(0.0, 0.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @fact atan2(Interval(-2.0, -0.1), Interval(0.0, -0.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @fact atan2(Interval(-2.0, -0.1), Interval(-0.0, 0.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @fact atan2(Interval(-2.0, -0.1), Interval(0.0, -0.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @fact atan2(Interval(-2.0, -0.1), Interval(-2.0, -0.1)) --> Interval(-0x1.8bbaabde5e29cp+1, -0x1.9ee9c8100c211p+0) - @fact atan2(Interval(-2.0, -0.1), Interval(-2.0, 0.0)) --> Interval(-0x1.8bbaabde5e29cp+1, -0x1.921fb54442d18p+0) - @fact atan2(Interval(-2.0, -0.1), Interval(-2.0, -0.0)) --> Interval(-0x1.8bbaabde5e29cp+1, -0x1.921fb54442d18p+0) - @fact atan2(Interval(-2.0, -0.1), Interval(-2.0, 1.0)) --> Interval(-0x1.8bbaabde5e29cp+1, -0x1.983e282e2cc4cp-4) - @fact atan2(Interval(-2.0, -0.1), Interval(0.0, 1.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.983e282e2cc4cp-4) - @fact atan2(Interval(-2.0, -0.1), Interval(-0.0, 1.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.983e282e2cc4cp-4) - @fact atan2(Interval(-2.0, -0.1), Interval(0.1, 1.0)) --> Interval(-0x1.8555a2787982p+0, -0x1.983e282e2cc4cp-4) - @fact atan2(Interval(-2.0, 0.0), ∅) --> ∅ - @fact atan2(Interval(-2.0, 0.0), entireinterval(Float64)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, 0.0), Interval(0.0, 0.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @fact atan2(Interval(-2.0, 0.0), Interval(-0.0, 0.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @fact atan2(Interval(-2.0, 0.0), Interval(0.0, -0.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @fact atan2(Interval(-2.0, 0.0), Interval(-0.0, -0.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @fact atan2(Interval(-2.0, 0.0), Interval(-2.0, -0.1)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, 0.0), Interval(-2.0, 0.0)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, 0.0), Interval(-2.0, -0.0)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, 0.0), Interval(-2.0, 1.0)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, 0.0), Interval(0.0, 1.0)) --> Interval(-0x1.921fb54442d19p+0, 0.0) - @fact atan2(Interval(-2.0, 0.0), Interval(-0.0, 1.0)) --> Interval(-0x1.921fb54442d19p+0, 0.0) - @fact atan2(Interval(-2.0, 0.0), Interval(0.1, 1.0)) --> Interval(-0x1.8555a2787982p+0, 0.0) - @fact atan2(Interval(-2.0, -0.0), ∅) --> ∅ - @fact atan2(Interval(-2.0, -0.0), entireinterval(Float64)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, -0.0), Interval(0.0, 0.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @fact atan2(Interval(-2.0, -0.0), Interval(-0.0, 0.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @fact atan2(Interval(-2.0, -0.0), Interval(0.0, -0.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @fact atan2(Interval(-2.0, -0.0), Interval(-0.0, -0.0)) --> Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @fact atan2(Interval(-2.0, -0.0), Interval(-2.0, -0.1)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, -0.0), Interval(-2.0, 0.0)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, -0.0), Interval(-2.0, -0.0)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, -0.0), Interval(-2.0, 1.0)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, -0.0), Interval(0.0, 1.0)) --> Interval(-0x1.921fb54442d19p+0, 0.0) - @fact atan2(Interval(-2.0, -0.0), Interval(-0.0, 1.0)) --> Interval(-0x1.921fb54442d19p+0, 0.0) - @fact atan2(Interval(-2.0, -0.0), Interval(0.1, 1.0)) --> Interval(-0x1.8555a2787982p+0, 0.0) - @fact atan2(Interval(-2.0, 1.0), ∅) --> ∅ - @fact atan2(Interval(-2.0, 1.0), entireinterval(Float64)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, 1.0), Interval(0.0, 0.0)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(-2.0, 1.0), Interval(-0.0, 0.0)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(-2.0, 1.0), Interval(0.0, -0.0)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(-2.0, 1.0), Interval(-0.0, -0.0)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(-2.0, 1.0), Interval(-2.0, -0.1)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, 1.0), Interval(-2.0, 0.0)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, 1.0), Interval(-2.0, -0.0)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, 1.0), Interval(-2.0, 1.0)) --> Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-2.0, 1.0), Interval(0.0, 1.0)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(-2.0, 1.0), Interval(-0.0, 1.0)) --> Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(-2.0, 1.0), Interval(0.1, 1.0)) --> Interval(-0x1.8555a2787982p+0, 0x1.789bd2c160054p+0) - @fact atan2(Interval(-0.0, 1.0), ∅) --> ∅ - @fact atan2(Interval(-0.0, 1.0), entireinterval(Float64)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, 1.0), Interval(0.0, 0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(-0.0, 1.0), Interval(-0.0, 0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(-0.0, 1.0), Interval(0.0, -0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(-0.0, 1.0), Interval(-0.0, -0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(-0.0, 1.0), Interval(-2.0, -0.1)) --> Interval(0x1.aba397c7259ddp+0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, 1.0), Interval(-2.0, 0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, 1.0), Interval(-2.0, -0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, 1.0), Interval(-2.0, 1.0)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(-0.0, 1.0), Interval(0.0, 1.0)) --> Interval(0.0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(-0.0, 1.0), Interval(-0.0, 1.0)) --> Interval(0.0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(-0.0, 1.0), Interval(0.1, 1.0)) --> Interval(0.0, 0x1.789bd2c160054p+0) - @fact atan2(Interval(0.0, 1.0), ∅) --> ∅ - @fact atan2(Interval(0.0, 1.0), entireinterval(Float64)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, 1.0), Interval(0.0, 0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(0.0, 1.0), Interval(-0.0, 0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(0.0, 1.0), Interval(0.0, -0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(0.0, 1.0), Interval(-0.0, -0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(0.0, 1.0), Interval(-2.0, -0.1)) --> Interval(0x1.aba397c7259ddp+0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, 1.0), Interval(-2.0, 0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, 1.0), Interval(-2.0, -0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, 1.0), Interval(-2.0, 1.0)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.0, 1.0), Interval(0.0, 1.0)) --> Interval(0.0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(0.0, 1.0), Interval(-0.0, 1.0)) --> Interval(0.0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(0.0, 1.0), Interval(0.1, 1.0)) --> Interval(0.0, 0x1.789bd2c160054p+0) - @fact atan2(Interval(0.1, 1.0), ∅) --> ∅ - @fact atan2(Interval(0.1, 1.0), entireinterval(Float64)) --> Interval(0.0, 0x1.921fb54442d19p+1) - @fact atan2(Interval(0.1, 1.0), Interval(0.0, 0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(0.1, 1.0), Interval(-0.0, 0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(0.1, 1.0), Interval(0.0, -0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(0.1, 1.0), Interval(-0.0, -0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @fact atan2(Interval(0.1, 1.0), Interval(-2.0, -0.1)) --> Interval(0x1.aba397c7259ddp+0, 0x1.8bbaabde5e29cp+1) - @fact atan2(Interval(0.1, 1.0), Interval(-2.0, 0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.8bbaabde5e29cp+1) - @fact atan2(Interval(0.1, 1.0), Interval(-2.0, -0.0)) --> Interval(0x1.921fb54442d18p+0, 0x1.8bbaabde5e29cp+1) - @fact atan2(Interval(0.1, 1.0), Interval(-2.0, 1.0)) --> Interval(0x1.983e282e2cc4cp-4, 0x1.8bbaabde5e29cp+1) - @fact atan2(Interval(0.1, 1.0), Interval(0.0, 1.0)) --> Interval(0x1.983e282e2cc4cp-4, 0x1.921fb54442d19p+0) - @fact atan2(Interval(0.1, 1.0), Interval(-0.0, 1.0)) --> Interval(0x1.983e282e2cc4cp-4, 0x1.921fb54442d19p+0) - @fact atan2(Interval(0.1, 1.0), Interval(0.1, 1.0)) --> Interval(0x1.983e282e2cc4cp-4, 0x1.789bd2c160054p+0) +@testset "minimal_atan2_test" begin + @test atan2(∅, ∅) == ∅ + @test atan2(∅, entireinterval(Float64)) == ∅ + @test atan2(∅, Interval(0.0, 0.0)) == ∅ + @test atan2(∅, Interval(-0.0, 0.0)) == ∅ + @test atan2(∅, Interval(0.0, -0.0)) == ∅ + @test atan2(∅, Interval(-0.0, -0.0)) == ∅ + @test atan2(∅, Interval(-2.0, -0.1)) == ∅ + @test atan2(∅, Interval(-2.0, 0.0)) == ∅ + @test atan2(∅, Interval(-2.0, -0.0)) == ∅ + @test atan2(∅, Interval(-2.0, 1.0)) == ∅ + @test atan2(∅, Interval(0.0, 1.0)) == ∅ + @test atan2(∅, Interval(-0.0, 1.0)) == ∅ + @test atan2(∅, Interval(0.1, 1.0)) == ∅ + @test atan2(entireinterval(Float64), ∅) == ∅ + @test atan2(entireinterval(Float64), entireinterval(Float64)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(entireinterval(Float64), Interval(0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test atan2(entireinterval(Float64), Interval(0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test atan2(entireinterval(Float64), Interval(-0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test atan2(entireinterval(Float64), Interval(-0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test atan2(entireinterval(Float64), Interval(-2.0, -0.1)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(entireinterval(Float64), Interval(-2.0, 0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(entireinterval(Float64), Interval(-2.0, -0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(entireinterval(Float64), Interval(-2.0, 1.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(entireinterval(Float64), Interval(0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test atan2(entireinterval(Float64), Interval(-0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test atan2(entireinterval(Float64), Interval(0.1, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(0.0, 0.0), ∅) == ∅ + @test atan2(Interval(0.0, 0.0), entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, 0.0), Interval(0.0, 0.0)) == ∅ + @test atan2(Interval(0.0, 0.0), Interval(-0.0, 0.0)) == ∅ + @test atan2(Interval(0.0, 0.0), Interval(0.0, -0.0)) == ∅ + @test atan2(Interval(0.0, 0.0), Interval(-0.0, -0.0)) == ∅ + @test atan2(Interval(0.0, 0.0), Interval(-2.0, -0.1)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, 0.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, 0.0), Interval(-2.0, -0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, 0.0), Interval(-2.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, 0.0), Interval(0.0, 1.0)) == Interval(0.0, 0.0) + @test atan2(Interval(0.0, 0.0), Interval(-0.0, 1.0)) == Interval(0.0, 0.0) + @test atan2(Interval(0.0, 0.0), Interval(0.1, 1.0)) == Interval(0.0, 0.0) + @test atan2(Interval(-0.0, 0.0), ∅) == ∅ + @test atan2(Interval(-0.0, 0.0), entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, 0.0), Interval(0.0, 0.0)) == ∅ + @test atan2(Interval(-0.0, 0.0), Interval(-0.0, 0.0)) == ∅ + @test atan2(Interval(-0.0, 0.0), Interval(0.0, -0.0)) == ∅ + @test atan2(Interval(-0.0, 0.0), Interval(-0.0, -0.0)) == ∅ + @test atan2(Interval(-0.0, 0.0), Interval(-2.0, -0.1)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, 0.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, 0.0), Interval(-2.0, -0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, 0.0), Interval(-2.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, 0.0), Interval(0.0, 1.0)) == Interval(0.0, 0.0) + @test atan2(Interval(-0.0, 0.0), Interval(-0.0, 1.0)) == Interval(0.0, 0.0) + @test atan2(Interval(-0.0, 0.0), Interval(0.1, 1.0)) == Interval(0.0, 0.0) + @test atan2(Interval(0.0, -0.0), ∅) == ∅ + @test atan2(Interval(0.0, -0.0), entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, -0.0), Interval(0.0, 0.0)) == ∅ + @test atan2(Interval(0.0, -0.0), Interval(-0.0, 0.0)) == ∅ + @test atan2(Interval(0.0, -0.0), Interval(0.0, -0.0)) == ∅ + @test atan2(Interval(0.0, -0.0), Interval(-0.0, -0.0)) == ∅ + @test atan2(Interval(0.0, -0.0), Interval(-2.0, -0.1)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, -0.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, -0.0), Interval(-2.0, -0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, -0.0), Interval(-2.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, -0.0), Interval(0.0, 1.0)) == Interval(0.0, 0.0) + @test atan2(Interval(0.0, -0.0), Interval(-0.0, 1.0)) == Interval(0.0, 0.0) + @test atan2(Interval(0.0, -0.0), Interval(0.1, 1.0)) == Interval(0.0, 0.0) + @test atan2(Interval(-0.0, -0.0), ∅) == ∅ + @test atan2(Interval(-0.0, -0.0), entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, -0.0), Interval(0.0, 0.0)) == ∅ + @test atan2(Interval(-0.0, -0.0), Interval(-0.0, 0.0)) == ∅ + @test atan2(Interval(-0.0, -0.0), Interval(0.0, -0.0)) == ∅ + @test atan2(Interval(-0.0, -0.0), Interval(-0.0, -0.0)) == ∅ + @test atan2(Interval(-0.0, -0.0), Interval(-2.0, -0.1)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, -0.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, -0.0), Interval(-2.0, -0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, -0.0), Interval(-2.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, -0.0), Interval(0.0, 1.0)) == Interval(0.0, 0.0) + @test atan2(Interval(-0.0, -0.0), Interval(-0.0, 1.0)) == Interval(0.0, 0.0) + @test atan2(Interval(-0.0, -0.0), Interval(0.1, 1.0)) == Interval(0.0, 0.0) + @test atan2(Interval(-2.0, -0.1), ∅) == ∅ + @test atan2(Interval(-2.0, -0.1), entireinterval(Float64)) == Interval(-0x1.921fb54442d19p+1, 0.0) + @test atan2(Interval(-2.0, -0.1), Interval(0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) + @test atan2(Interval(-2.0, -0.1), Interval(0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) + @test atan2(Interval(-2.0, -0.1), Interval(-0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) + @test atan2(Interval(-2.0, -0.1), Interval(0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) + @test atan2(Interval(-2.0, -0.1), Interval(-2.0, -0.1)) == Interval(-0x1.8bbaabde5e29cp+1, -0x1.9ee9c8100c211p+0) + @test atan2(Interval(-2.0, -0.1), Interval(-2.0, 0.0)) == Interval(-0x1.8bbaabde5e29cp+1, -0x1.921fb54442d18p+0) + @test atan2(Interval(-2.0, -0.1), Interval(-2.0, -0.0)) == Interval(-0x1.8bbaabde5e29cp+1, -0x1.921fb54442d18p+0) + @test atan2(Interval(-2.0, -0.1), Interval(-2.0, 1.0)) == Interval(-0x1.8bbaabde5e29cp+1, -0x1.983e282e2cc4cp-4) + @test atan2(Interval(-2.0, -0.1), Interval(0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.983e282e2cc4cp-4) + @test atan2(Interval(-2.0, -0.1), Interval(-0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.983e282e2cc4cp-4) + @test atan2(Interval(-2.0, -0.1), Interval(0.1, 1.0)) == Interval(-0x1.8555a2787982p+0, -0x1.983e282e2cc4cp-4) + @test atan2(Interval(-2.0, 0.0), ∅) == ∅ + @test atan2(Interval(-2.0, 0.0), entireinterval(Float64)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, 0.0), Interval(0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) + @test atan2(Interval(-2.0, 0.0), Interval(-0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) + @test atan2(Interval(-2.0, 0.0), Interval(0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) + @test atan2(Interval(-2.0, 0.0), Interval(-0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) + @test atan2(Interval(-2.0, 0.0), Interval(-2.0, -0.1)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, 0.0), Interval(-2.0, 0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, 0.0), Interval(-2.0, -0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, 0.0), Interval(-2.0, 1.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, 0.0), Interval(0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0.0) + @test atan2(Interval(-2.0, 0.0), Interval(-0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0.0) + @test atan2(Interval(-2.0, 0.0), Interval(0.1, 1.0)) == Interval(-0x1.8555a2787982p+0, 0.0) + @test atan2(Interval(-2.0, -0.0), ∅) == ∅ + @test atan2(Interval(-2.0, -0.0), entireinterval(Float64)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, -0.0), Interval(0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) + @test atan2(Interval(-2.0, -0.0), Interval(-0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) + @test atan2(Interval(-2.0, -0.0), Interval(0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) + @test atan2(Interval(-2.0, -0.0), Interval(-0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) + @test atan2(Interval(-2.0, -0.0), Interval(-2.0, -0.1)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, -0.0), Interval(-2.0, 0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, -0.0), Interval(-2.0, -0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, -0.0), Interval(-2.0, 1.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, -0.0), Interval(0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0.0) + @test atan2(Interval(-2.0, -0.0), Interval(-0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0.0) + @test atan2(Interval(-2.0, -0.0), Interval(0.1, 1.0)) == Interval(-0x1.8555a2787982p+0, 0.0) + @test atan2(Interval(-2.0, 1.0), ∅) == ∅ + @test atan2(Interval(-2.0, 1.0), entireinterval(Float64)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, 1.0), Interval(0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(-2.0, 1.0), Interval(-0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(-2.0, 1.0), Interval(0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(-2.0, 1.0), Interval(-0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(-2.0, 1.0), Interval(-2.0, -0.1)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, 1.0), Interval(-2.0, 0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, 1.0), Interval(-2.0, -0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, 1.0), Interval(-2.0, 1.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) + @test atan2(Interval(-2.0, 1.0), Interval(0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(-2.0, 1.0), Interval(-0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(-2.0, 1.0), Interval(0.1, 1.0)) == Interval(-0x1.8555a2787982p+0, 0x1.789bd2c160054p+0) + @test atan2(Interval(-0.0, 1.0), ∅) == ∅ + @test atan2(Interval(-0.0, 1.0), entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, 1.0), Interval(0.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(-0.0, 1.0), Interval(-0.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(-0.0, 1.0), Interval(0.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(-0.0, 1.0), Interval(-0.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(-0.0, 1.0), Interval(-2.0, -0.1)) == Interval(0x1.aba397c7259ddp+0, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, 1.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, 1.0), Interval(-2.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, 1.0), Interval(-2.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test atan2(Interval(-0.0, 1.0), Interval(0.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+0) + @test atan2(Interval(-0.0, 1.0), Interval(-0.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+0) + @test atan2(Interval(-0.0, 1.0), Interval(0.1, 1.0)) == Interval(0.0, 0x1.789bd2c160054p+0) + @test atan2(Interval(0.0, 1.0), ∅) == ∅ + @test atan2(Interval(0.0, 1.0), entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, 1.0), Interval(0.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(0.0, 1.0), Interval(-0.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(0.0, 1.0), Interval(0.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(0.0, 1.0), Interval(-0.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(0.0, 1.0), Interval(-2.0, -0.1)) == Interval(0x1.aba397c7259ddp+0, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, 1.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, 1.0), Interval(-2.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, 1.0), Interval(-2.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.0, 1.0), Interval(0.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+0) + @test atan2(Interval(0.0, 1.0), Interval(-0.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+0) + @test atan2(Interval(0.0, 1.0), Interval(0.1, 1.0)) == Interval(0.0, 0x1.789bd2c160054p+0) + @test atan2(Interval(0.1, 1.0), ∅) == ∅ + @test atan2(Interval(0.1, 1.0), entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) + @test atan2(Interval(0.1, 1.0), Interval(0.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(0.1, 1.0), Interval(-0.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(0.1, 1.0), Interval(0.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(0.1, 1.0), Interval(-0.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) + @test atan2(Interval(0.1, 1.0), Interval(-2.0, -0.1)) == Interval(0x1.aba397c7259ddp+0, 0x1.8bbaabde5e29cp+1) + @test atan2(Interval(0.1, 1.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.8bbaabde5e29cp+1) + @test atan2(Interval(0.1, 1.0), Interval(-2.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.8bbaabde5e29cp+1) + @test atan2(Interval(0.1, 1.0), Interval(-2.0, 1.0)) == Interval(0x1.983e282e2cc4cp-4, 0x1.8bbaabde5e29cp+1) + @test atan2(Interval(0.1, 1.0), Interval(0.0, 1.0)) == Interval(0x1.983e282e2cc4cp-4, 0x1.921fb54442d19p+0) + @test atan2(Interval(0.1, 1.0), Interval(-0.0, 1.0)) == Interval(0x1.983e282e2cc4cp-4, 0x1.921fb54442d19p+0) + @test atan2(Interval(0.1, 1.0), Interval(0.1, 1.0)) == Interval(0x1.983e282e2cc4cp-4, 0x1.789bd2c160054p+0) end -facts("minimal_atan2_dec_test") do - @fact atan2(DecoratedInterval(∅, trv), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 0.0), com)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 0.0), com))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, 0.0), dac)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, 0.0), dac))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, -0.0), def)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, -0.0), def))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, -0.0), trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, -0.0), trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, -0.1), com)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, -0.1), com))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, 0.0), dac)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, 0.0), dac))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, -0.0), def)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, -0.0), def))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, 1.0), trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, 1.0), trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 1.0), com)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 1.0), com))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, 1.0), dac)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, 1.0), dac))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.1, 1.0), def)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.1, 1.0), def))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, 0.0), com)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, -0.0), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, -0.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, 0.0), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, 0.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, -0.0), trv)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, -0.0), trv))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, -0.1), com)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def) - @fact decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, -0.1), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def)) - @fact atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, 0.0), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, 0.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, -0.0), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, -0.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, 1.0), trv)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, 1.0), trv))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, 1.0), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, 1.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, 1.0), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, 1.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.1, 1.0), com)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), def) - @fact decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.1, 1.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), def)) - @fact atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(0.0, 0.0), trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(0.0, 0.0), trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), dac)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), dac))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), def)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), def))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.1), dac)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), dac) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.1), dac))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), dac)) - @fact atan2(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-2.0, 0.0), com)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-2.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.0), trv)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.0), trv))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(0.0, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(0.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0.0), com) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), com)) - @fact atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(0.0, 0.0), com)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(0.0, 0.0), com))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), def)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), def))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, -0.1), dac)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), dac) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, -0.1), dac))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), dac)) - @fact atan2(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(-2.0, 0.0), com)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(-2.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.0), trv)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.0), trv))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.0, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(-0.0, 1.0), dac)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(-0.0, 1.0), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0.0), com) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), com)) - @fact atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(0.0, 0.0), dac)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(0.0, 0.0), dac))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), com)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), com))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(Interval(0.0, -0.0), def)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(Interval(0.0, -0.0), def))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(-0.0, -0.0), trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(-0.0, -0.0), trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(-2.0, -0.1), dac)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), dac) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(-2.0, -0.1), dac))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), dac)) - @fact atan2(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(-2.0, 0.0), com)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(-2.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(-2.0, -0.0), dac)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(-2.0, -0.0), dac))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(0.0, 1.0), trv)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(0.0, 1.0), trv))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(-0.0, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(-0.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), def)) --> DecoratedInterval(Interval(0.0, 0.0), def) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), def))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), def)) - @fact atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(0.0, 0.0), com)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(0.0, 0.0), com))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), def)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), def))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.0, -0.0), trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.0, -0.0), trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(Interval(-2.0, -0.1), dac)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), def) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(Interval(-2.0, -0.1), dac))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), def)) - @fact atan2(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-2.0, 0.0), def)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-2.0, 0.0), def))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(-2.0, -0.0), trv)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(-2.0, -0.0), trv))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(Interval(-2.0, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(Interval(-2.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.0, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0.0), com) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), com)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.1), dac), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), dac), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.1), def), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0.0), def) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), def), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0.0), def)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.1), trv), DecoratedInterval(Interval(0.0, 0.0), com)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), trv), DecoratedInterval(Interval(0.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.0, -0.0), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), dac) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.0, -0.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), dac)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.1), dac), DecoratedInterval(Interval(-0.0, 0.0), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), def) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), dac), DecoratedInterval(Interval(-0.0, 0.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), def)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.0, -0.0), trv)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.0, -0.0), trv))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.1), def), DecoratedInterval(Interval(-2.0, -0.1), com)) --> DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.9ee9c8100c211p+0), def) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), def), DecoratedInterval(Interval(-2.0, -0.1), com))) --> decoration(DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.9ee9c8100c211p+0), def)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(-2.0, 0.0), def)) --> DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.921fb54442d18p+0), def) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(-2.0, 0.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.921fb54442d18p+0), def)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.1), trv), DecoratedInterval(Interval(-2.0, -0.0), dac)) --> DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.921fb54442d18p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), trv), DecoratedInterval(Interval(-2.0, -0.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.921fb54442d18p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.1), def), DecoratedInterval(Interval(-2.0, 1.0), trv)) --> DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.983e282e2cc4cp-4), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), def), DecoratedInterval(Interval(-2.0, 1.0), trv))) --> decoration(DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.983e282e2cc4cp-4), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.0, 1.0), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.983e282e2cc4cp-4), def) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.0, 1.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.983e282e2cc4cp-4), def)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.1), dac), DecoratedInterval(Interval(-0.0, 1.0), com)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.983e282e2cc4cp-4), dac) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), dac), DecoratedInterval(Interval(-0.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.983e282e2cc4cp-4), dac)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.1, 1.0), com)) --> DecoratedInterval(Interval(-0x1.8555a2787982p+0, -0x1.983e282e2cc4cp-4), com) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.1, 1.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.8555a2787982p+0, -0x1.983e282e2cc4cp-4), com)) - @fact atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 0.0), dac), DecoratedInterval(Interval(0.0, 0.0), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), dac), DecoratedInterval(Interval(0.0, 0.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), com)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), trv)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), trv))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(Interval(-0.0, -0.0), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(Interval(-0.0, -0.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.1), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.1), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def)) - @fact atan2(DecoratedInterval(Interval(-2.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 0.0), com)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.0), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 0.0), trv), DecoratedInterval(Interval(-2.0, 1.0), com)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), trv), DecoratedInterval(Interval(-2.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(Interval(0.0, 1.0), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(Interval(0.0, 1.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(-0.0, 1.0), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(-0.0, 1.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) --> DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0.0), com) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0.0), com)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.0), trv), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), trv), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.0), dac), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), dac), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(0.0, 0.0), com)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(0.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.0), def), DecoratedInterval(Interval(-0.0, 0.0), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), def), DecoratedInterval(Interval(-0.0, 0.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.0), dac), DecoratedInterval(Interval(0.0, -0.0), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), dac), DecoratedInterval(Interval(0.0, -0.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(-0.0, -0.0), trv)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(-0.0, -0.0), trv))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.0), def), DecoratedInterval(Interval(-2.0, -0.1), com)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), def), DecoratedInterval(Interval(-2.0, -0.1), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(-2.0, 0.0), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(-2.0, 0.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.0), dac), DecoratedInterval(Interval(-2.0, -0.0), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), dac), DecoratedInterval(Interval(-2.0, -0.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.0), def), DecoratedInterval(Interval(-2.0, 1.0), trv)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), def), DecoratedInterval(Interval(-2.0, 1.0), trv))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.0), trv), DecoratedInterval(Interval(0.0, 1.0), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), trv), DecoratedInterval(Interval(0.0, 1.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(-0.0, 1.0), com)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(-0.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) --> DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0.0), com) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0.0), com)) - @fact atan2(DecoratedInterval(Interval(-2.0, 1.0), def), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), def), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 1.0), def), DecoratedInterval(Interval(0.0, 0.0), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), def), DecoratedInterval(Interval(0.0, 0.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(-0.0, 0.0), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(-0.0, 0.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 1.0), trv), DecoratedInterval(Interval(0.0, -0.0), trv)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), trv), DecoratedInterval(Interval(0.0, -0.0), trv))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(-0.0, -0.0), com)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(-0.0, -0.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 1.0), dac), DecoratedInterval(Interval(-2.0, -0.1), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), dac), DecoratedInterval(Interval(-2.0, -0.1), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def)) - @fact atan2(DecoratedInterval(Interval(-2.0, 1.0), def), DecoratedInterval(Interval(-2.0, 0.0), def)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), def), DecoratedInterval(Interval(-2.0, 0.0), def))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 1.0), trv), DecoratedInterval(Interval(-2.0, -0.0), trv)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), trv), DecoratedInterval(Interval(-2.0, -0.0), trv))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), com)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(0.0, 1.0), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(0.0, 1.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac)) --> DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac))) --> decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) --> DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0x1.789bd2c160054p+0), com) - @fact decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0x1.789bd2c160054p+0), com)) - @fact atan2(DecoratedInterval(Interval(-0.0, 1.0), com), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), com), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 1.0), def), DecoratedInterval(Interval(0.0, 0.0), def)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), def), DecoratedInterval(Interval(0.0, 0.0), def))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(0.0, -0.0), dac)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(0.0, -0.0), dac))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 1.0), com), DecoratedInterval(Interval(-0.0, -0.0), def)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), com), DecoratedInterval(Interval(-0.0, -0.0), def))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 1.0), com), DecoratedInterval(Interval(-2.0, -0.1), com)) --> DecoratedInterval(Interval(0x1.aba397c7259ddp+0, 0x1.921fb54442d19p+1), dac) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), com), DecoratedInterval(Interval(-2.0, -0.1), com))) --> decoration(DecoratedInterval(Interval(0x1.aba397c7259ddp+0, 0x1.921fb54442d19p+1), dac)) - @fact atan2(DecoratedInterval(Interval(-0.0, 1.0), def), DecoratedInterval(Interval(-2.0, 0.0), com)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), def), DecoratedInterval(Interval(-2.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 1.0), def), DecoratedInterval(Interval(-2.0, -0.0), def)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), def), DecoratedInterval(Interval(-2.0, -0.0), def))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), dac)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 1.0), dac)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 1.0), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(0.1, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0x1.789bd2c160054p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(0.1, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.789bd2c160054p+0), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 1.0), def), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), def), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 0.0), def)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 0.0), def))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 1.0), trv), DecoratedInterval(Interval(0.0, -0.0), dac)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), trv), DecoratedInterval(Interval(0.0, -0.0), dac))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 1.0), def), DecoratedInterval(Interval(-0.0, -0.0), com)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), def), DecoratedInterval(Interval(-0.0, -0.0), com))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, -0.1), dac)) --> DecoratedInterval(Interval(0x1.aba397c7259ddp+0, 0x1.921fb54442d19p+1), dac) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, -0.1), dac))) --> decoration(DecoratedInterval(Interval(0x1.aba397c7259ddp+0, 0x1.921fb54442d19p+1), dac)) - @fact atan2(DecoratedInterval(Interval(0.0, 1.0), def), DecoratedInterval(Interval(-2.0, 0.0), trv)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), def), DecoratedInterval(Interval(-2.0, 0.0), trv))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, -0.0), dac)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, -0.0), dac))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 1.0), trv)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 1.0), trv))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-0.0, 1.0), def)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-0.0, 1.0), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(0.0, 1.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0x1.789bd2c160054p+0), com) - @fact decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.789bd2c160054p+0), com)) - @fact atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), def) - @fact decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), def)) - @fact atan2(DecoratedInterval(Interval(0.1, 1.0), def), DecoratedInterval(Interval(0.0, 0.0), com)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), def) - @fact decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), def), DecoratedInterval(Interval(0.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), def)) - @fact atan2(DecoratedInterval(Interval(0.1, 1.0), trv), DecoratedInterval(Interval(-0.0, 0.0), def)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), trv), DecoratedInterval(Interval(-0.0, 0.0), def))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(0.1, 1.0), trv), DecoratedInterval(Interval(0.0, -0.0), def)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), trv), DecoratedInterval(Interval(0.0, -0.0), def))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) - @fact atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(Interval(-0.0, -0.0), def)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), def) - @fact decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(Interval(-0.0, -0.0), def))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), def)) - @fact atan2(DecoratedInterval(Interval(0.1, 1.0), com), DecoratedInterval(Interval(-2.0, -0.1), trv)) --> DecoratedInterval(Interval(0x1.aba397c7259ddp+0, 0x1.8bbaabde5e29cp+1), trv) - @fact decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), com), DecoratedInterval(Interval(-2.0, -0.1), trv))) --> decoration(DecoratedInterval(Interval(0x1.aba397c7259ddp+0, 0x1.8bbaabde5e29cp+1), trv)) - @fact atan2(DecoratedInterval(Interval(0.1, 1.0), com), DecoratedInterval(Interval(-2.0, 0.0), dac)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.8bbaabde5e29cp+1), dac) - @fact decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), com), DecoratedInterval(Interval(-2.0, 0.0), dac))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.8bbaabde5e29cp+1), dac)) - @fact atan2(DecoratedInterval(Interval(0.1, 1.0), com), DecoratedInterval(Interval(-2.0, -0.0), dac)) --> DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.8bbaabde5e29cp+1), dac) - @fact decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), com), DecoratedInterval(Interval(-2.0, -0.0), dac))) --> decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.8bbaabde5e29cp+1), dac)) - @fact atan2(DecoratedInterval(Interval(0.1, 1.0), def), DecoratedInterval(Interval(-2.0, 1.0), dac)) --> DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.8bbaabde5e29cp+1), def) - @fact decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), def), DecoratedInterval(Interval(-2.0, 1.0), dac))) --> decoration(DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.8bbaabde5e29cp+1), def)) - @fact atan2(DecoratedInterval(Interval(0.1, 1.0), def), DecoratedInterval(Interval(0.0, 1.0), def)) --> DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.921fb54442d19p+0), def) - @fact decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), def), DecoratedInterval(Interval(0.0, 1.0), def))) --> decoration(DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.921fb54442d19p+0), def)) - @fact atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(Interval(-0.0, 1.0), def)) --> DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.921fb54442d19p+0), def) - @fact decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(Interval(-0.0, 1.0), def))) --> decoration(DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.921fb54442d19p+0), def)) - @fact atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(Interval(0.1, 1.0), def)) --> DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.789bd2c160054p+0), def) - @fact decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(Interval(0.1, 1.0), def))) --> decoration(DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.789bd2c160054p+0), def)) +@testset "minimal_atan2_dec_test" begin + @test atan2(DecoratedInterval(∅, trv), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, 0.0), dac)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, 0.0), dac))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, -0.0), def)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, -0.0), def))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, -0.0), trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, -0.0), trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, -0.1), com)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, -0.1), com))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, 0.0), dac)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, 0.0), dac))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, -0.0), def)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, -0.0), def))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, 1.0), trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, 1.0), trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 1.0), com)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 1.0), com))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, 1.0), dac)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, 1.0), dac))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.1, 1.0), def)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.1, 1.0), def))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, -0.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, -0.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, 0.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, 0.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, -0.0), trv)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, -0.0), trv))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, -0.1), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def) + @test decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, -0.1), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def)) + @test atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, 0.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, 0.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, -0.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, -0.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, 1.0), trv)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, 1.0), trv))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, 1.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, 1.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, 1.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), def) + @test decoration(atan2(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), def)) + @test atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(0.0, 0.0), trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(0.0, 0.0), trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), dac)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), dac))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), def)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), def))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.1), dac)) == DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), dac) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.1), dac))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), dac)) + @test atan2(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-2.0, 0.0), com)) == DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-2.0, 0.0), com))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.0), trv)) == DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.0), trv))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(0.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), com) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), com)) + @test atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), def)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), def))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, -0.1), dac)) == DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), dac) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, -0.1), dac))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), dac)) + @test atan2(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(-2.0, 0.0), com)) == DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(-2.0, 0.0), com))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.0), trv)) == DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.0), trv))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(-0.0, 1.0), dac)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(-0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), com) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), com)) + @test atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(0.0, 0.0), dac)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(0.0, 0.0), dac))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), com)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), com))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(Interval(0.0, -0.0), def)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(Interval(0.0, -0.0), def))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(-0.0, -0.0), trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(-0.0, -0.0), trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(-2.0, -0.1), dac)) == DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), dac) + @test decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(-2.0, -0.1), dac))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), dac)) + @test atan2(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(-2.0, 0.0), com)) == DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(-2.0, 0.0), com))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(-2.0, -0.0), dac)) == DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(-2.0, -0.0), dac))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(0.0, 1.0), trv)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(0.0, 1.0), trv))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test atan2(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(-0.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(-0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), def)) == DecoratedInterval(Interval(0.0, 0.0), def) + @test decoration(atan2(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0.0), def)) + @test atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), def)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), def))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.0, -0.0), trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.0, -0.0), trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(Interval(-2.0, -0.1), dac)) == DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), def) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(Interval(-2.0, -0.1), dac))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), def)) + @test atan2(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-2.0, 0.0), def)) == DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-2.0, 0.0), def))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(-2.0, -0.0), trv)) == DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(-2.0, -0.0), trv))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(Interval(-2.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(Interval(-2.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), com) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), com)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.1), dac), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), dac), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.1), def), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0.0), def) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), def), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0.0), def)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.1), trv), DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), trv), DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.0, -0.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), dac) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.0, -0.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), dac)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.1), dac), DecoratedInterval(Interval(-0.0, 0.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), def) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), dac), DecoratedInterval(Interval(-0.0, 0.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), def)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.0, -0.0), trv)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.0, -0.0), trv))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.1), def), DecoratedInterval(Interval(-2.0, -0.1), com)) == DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.9ee9c8100c211p+0), def) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), def), DecoratedInterval(Interval(-2.0, -0.1), com))) == decoration(DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.9ee9c8100c211p+0), def)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(-2.0, 0.0), def)) == DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.921fb54442d18p+0), def) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(-2.0, 0.0), def))) == decoration(DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.921fb54442d18p+0), def)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.1), trv), DecoratedInterval(Interval(-2.0, -0.0), dac)) == DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.921fb54442d18p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), trv), DecoratedInterval(Interval(-2.0, -0.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.921fb54442d18p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.1), def), DecoratedInterval(Interval(-2.0, 1.0), trv)) == DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.983e282e2cc4cp-4), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), def), DecoratedInterval(Interval(-2.0, 1.0), trv))) == decoration(DecoratedInterval(Interval(-0x1.8bbaabde5e29cp+1, -0x1.983e282e2cc4cp-4), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.0, 1.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.983e282e2cc4cp-4), def) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.0, 1.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.983e282e2cc4cp-4), def)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.1), dac), DecoratedInterval(Interval(-0.0, 1.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.983e282e2cc4cp-4), dac) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), dac), DecoratedInterval(Interval(-0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.983e282e2cc4cp-4), dac)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(-0x1.8555a2787982p+0, -0x1.983e282e2cc4cp-4), com) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.1), com), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.8555a2787982p+0, -0x1.983e282e2cc4cp-4), com)) + @test atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 0.0), dac), DecoratedInterval(Interval(0.0, 0.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), dac), DecoratedInterval(Interval(0.0, 0.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), trv)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), trv))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(Interval(-0.0, -0.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(Interval(-0.0, -0.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.1), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.1), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def)) + @test atan2(DecoratedInterval(Interval(-2.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 0.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 0.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(-2.0, -0.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 0.0), trv), DecoratedInterval(Interval(-2.0, 1.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), trv), DecoratedInterval(Interval(-2.0, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(Interval(0.0, 1.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(Interval(0.0, 1.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(-0.0, 1.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(-0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0.0), com) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0.0), com)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.0), trv), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), trv), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.0), def), DecoratedInterval(Interval(-0.0, 0.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), def), DecoratedInterval(Interval(-0.0, 0.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.0), dac), DecoratedInterval(Interval(0.0, -0.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), dac), DecoratedInterval(Interval(0.0, -0.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(-0.0, -0.0), trv)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(-0.0, -0.0), trv))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.0), def), DecoratedInterval(Interval(-2.0, -0.1), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), def), DecoratedInterval(Interval(-2.0, -0.1), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(-2.0, 0.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(-2.0, 0.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.0), dac), DecoratedInterval(Interval(-2.0, -0.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), dac), DecoratedInterval(Interval(-2.0, -0.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.0), def), DecoratedInterval(Interval(-2.0, 1.0), trv)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), def), DecoratedInterval(Interval(-2.0, 1.0), trv))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.0), trv), DecoratedInterval(Interval(0.0, 1.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), trv), DecoratedInterval(Interval(0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(-0.0, 1.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(-0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0.0), com) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0.0), com)) + @test atan2(DecoratedInterval(Interval(-2.0, 1.0), def), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 1.0), def), DecoratedInterval(Interval(0.0, 0.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), def), DecoratedInterval(Interval(0.0, 0.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(-0.0, 0.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(-0.0, 0.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 1.0), trv), DecoratedInterval(Interval(0.0, -0.0), trv)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), trv), DecoratedInterval(Interval(0.0, -0.0), trv))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(-0.0, -0.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(-0.0, -0.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 1.0), dac), DecoratedInterval(Interval(-2.0, -0.1), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), dac), DecoratedInterval(Interval(-2.0, -0.1), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def)) + @test atan2(DecoratedInterval(Interval(-2.0, 1.0), def), DecoratedInterval(Interval(-2.0, 0.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), def), DecoratedInterval(Interval(-2.0, 0.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 1.0), trv), DecoratedInterval(Interval(-2.0, -0.0), trv)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), trv), DecoratedInterval(Interval(-2.0, -0.0), trv))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(0.0, 1.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0x1.789bd2c160054p+0), com) + @test decoration(atan2(DecoratedInterval(Interval(-2.0, 1.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0x1.789bd2c160054p+0), com)) + @test atan2(DecoratedInterval(Interval(-0.0, 1.0), com), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), com), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 1.0), def), DecoratedInterval(Interval(0.0, 0.0), def)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), def), DecoratedInterval(Interval(0.0, 0.0), def))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(0.0, -0.0), dac)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(0.0, -0.0), dac))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 1.0), com), DecoratedInterval(Interval(-0.0, -0.0), def)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), com), DecoratedInterval(Interval(-0.0, -0.0), def))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 1.0), com), DecoratedInterval(Interval(-2.0, -0.1), com)) == DecoratedInterval(Interval(0x1.aba397c7259ddp+0, 0x1.921fb54442d19p+1), dac) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), com), DecoratedInterval(Interval(-2.0, -0.1), com))) == decoration(DecoratedInterval(Interval(0x1.aba397c7259ddp+0, 0x1.921fb54442d19p+1), dac)) + @test atan2(DecoratedInterval(Interval(-0.0, 1.0), def), DecoratedInterval(Interval(-2.0, 0.0), com)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), def), DecoratedInterval(Interval(-2.0, 0.0), com))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 1.0), def), DecoratedInterval(Interval(-2.0, -0.0), def)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), def), DecoratedInterval(Interval(-2.0, -0.0), def))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), dac)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 1.0), dac)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(0.0, 0x1.789bd2c160054p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1.789bd2c160054p+0), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 1.0), def), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 0.0), def)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 0.0), def))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 1.0), trv), DecoratedInterval(Interval(0.0, -0.0), dac)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), trv), DecoratedInterval(Interval(0.0, -0.0), dac))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 1.0), def), DecoratedInterval(Interval(-0.0, -0.0), com)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), def), DecoratedInterval(Interval(-0.0, -0.0), com))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, -0.1), dac)) == DecoratedInterval(Interval(0x1.aba397c7259ddp+0, 0x1.921fb54442d19p+1), dac) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, -0.1), dac))) == decoration(DecoratedInterval(Interval(0x1.aba397c7259ddp+0, 0x1.921fb54442d19p+1), dac)) + @test atan2(DecoratedInterval(Interval(0.0, 1.0), def), DecoratedInterval(Interval(-2.0, 0.0), trv)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), def), DecoratedInterval(Interval(-2.0, 0.0), trv))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, -0.0), dac)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, -0.0), dac))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 1.0), trv)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 1.0), trv))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-0.0, 1.0), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-0.0, 1.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(0.0, 1.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(0.0, 0x1.789bd2c160054p+0), com) + @test decoration(atan2(DecoratedInterval(Interval(0.0, 1.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1.789bd2c160054p+0), com)) + @test atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), def) + @test decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), def)) + @test atan2(DecoratedInterval(Interval(0.1, 1.0), def), DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), def) + @test decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), def), DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), def)) + @test atan2(DecoratedInterval(Interval(0.1, 1.0), trv), DecoratedInterval(Interval(-0.0, 0.0), def)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), trv), DecoratedInterval(Interval(-0.0, 0.0), def))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(0.1, 1.0), trv), DecoratedInterval(Interval(0.0, -0.0), def)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), trv), DecoratedInterval(Interval(0.0, -0.0), def))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), trv)) + @test atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(Interval(-0.0, -0.0), def)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), def) + @test decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(Interval(-0.0, -0.0), def))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0), def)) + @test atan2(DecoratedInterval(Interval(0.1, 1.0), com), DecoratedInterval(Interval(-2.0, -0.1), trv)) == DecoratedInterval(Interval(0x1.aba397c7259ddp+0, 0x1.8bbaabde5e29cp+1), trv) + @test decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), com), DecoratedInterval(Interval(-2.0, -0.1), trv))) == decoration(DecoratedInterval(Interval(0x1.aba397c7259ddp+0, 0x1.8bbaabde5e29cp+1), trv)) + @test atan2(DecoratedInterval(Interval(0.1, 1.0), com), DecoratedInterval(Interval(-2.0, 0.0), dac)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.8bbaabde5e29cp+1), dac) + @test decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), com), DecoratedInterval(Interval(-2.0, 0.0), dac))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.8bbaabde5e29cp+1), dac)) + @test atan2(DecoratedInterval(Interval(0.1, 1.0), com), DecoratedInterval(Interval(-2.0, -0.0), dac)) == DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.8bbaabde5e29cp+1), dac) + @test decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), com), DecoratedInterval(Interval(-2.0, -0.0), dac))) == decoration(DecoratedInterval(Interval(0x1.921fb54442d18p+0, 0x1.8bbaabde5e29cp+1), dac)) + @test atan2(DecoratedInterval(Interval(0.1, 1.0), def), DecoratedInterval(Interval(-2.0, 1.0), dac)) == DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.8bbaabde5e29cp+1), def) + @test decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), def), DecoratedInterval(Interval(-2.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.8bbaabde5e29cp+1), def)) + @test atan2(DecoratedInterval(Interval(0.1, 1.0), def), DecoratedInterval(Interval(0.0, 1.0), def)) == DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.921fb54442d19p+0), def) + @test decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), def), DecoratedInterval(Interval(0.0, 1.0), def))) == decoration(DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.921fb54442d19p+0), def)) + @test atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(Interval(-0.0, 1.0), def)) == DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.921fb54442d19p+0), def) + @test decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(Interval(-0.0, 1.0), def))) == decoration(DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.921fb54442d19p+0), def)) + @test atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(Interval(0.1, 1.0), def)) == DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.789bd2c160054p+0), def) + @test decoration(atan2(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(Interval(0.1, 1.0), def))) == decoration(DecoratedInterval(Interval(0x1.983e282e2cc4cp-4, 0x1.789bd2c160054p+0), def)) end -facts("minimal_sinh_test") do - @fact sinh(∅) --> ∅ - @fact sinh(Interval(0.0, Inf)) --> Interval(0.0, Inf) - @fact sinh(Interval(-0.0, Inf)) --> Interval(0.0, Inf) - @fact sinh(Interval(-Inf, 0.0)) --> Interval(-Inf, 0.0) - @fact sinh(Interval(-Inf, -0.0)) --> Interval(-Inf, 0.0) - @fact sinh(entireinterval(Float64)) --> entireinterval(Float64) - @fact sinh(Interval(0.0, 0.0)) --> Interval(0.0, 0.0) - @fact sinh(Interval(-0.0, -0.0)) --> Interval(0.0, 0.0) - @fact sinh(Interval(1.0, 0x1.2c903022dd7aap+8)) --> Interval(0x1.2cd9fc44eb982p+0, 0x1.89bca168970c6p+432) - @fact sinh(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9)) --> Interval(-Inf, -0x1.53045b4f849dep+815) - @fact sinh(Interval(-0x1.199999999999ap+0, 0x1.2666666666666p+1)) --> Interval(-0x1.55ecfe1b2b215p+0, 0x1.3bf72ea61af1bp+2) +@testset "minimal_sinh_test" begin + @test sinh(∅) == ∅ + @test sinh(Interval(0.0, Inf)) == Interval(0.0, Inf) + @test sinh(Interval(-0.0, Inf)) == Interval(0.0, Inf) + @test sinh(Interval(-Inf, 0.0)) == Interval(-Inf, 0.0) + @test sinh(Interval(-Inf, -0.0)) == Interval(-Inf, 0.0) + @test sinh(entireinterval(Float64)) == entireinterval(Float64) + @test sinh(Interval(0.0, 0.0)) == Interval(0.0, 0.0) + @test sinh(Interval(-0.0, -0.0)) == Interval(0.0, 0.0) + @test sinh(Interval(1.0, 0x1.2c903022dd7aap+8)) == Interval(0x1.2cd9fc44eb982p+0, 0x1.89bca168970c6p+432) + @test sinh(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9)) == Interval(-Inf, -0x1.53045b4f849dep+815) + @test sinh(Interval(-0x1.199999999999ap+0, 0x1.2666666666666p+1)) == Interval(-0x1.55ecfe1b2b215p+0, 0x1.3bf72ea61af1bp+2) end -facts("minimal_sinh_dec_test") do - @fact sinh(DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), def) - @fact decoration(sinh(DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), def)) - @fact sinh(DecoratedInterval(Interval(0.0, Inf), dac)) --> DecoratedInterval(Interval(0.0, Inf), dac) - @fact decoration(sinh(DecoratedInterval(Interval(0.0, Inf), dac))) --> decoration(DecoratedInterval(Interval(0.0, Inf), dac)) - @fact sinh(DecoratedInterval(Interval(-Inf, 0.0), def)) --> DecoratedInterval(Interval(-Inf, 0.0), def) - @fact decoration(sinh(DecoratedInterval(Interval(-Inf, 0.0), def))) --> decoration(DecoratedInterval(Interval(-Inf, 0.0), def)) - @fact sinh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), com)) --> DecoratedInterval(Interval(0x1.2cd9fc44eb982p+0, 0x1.89bca168970c6p+432), com) - @fact decoration(sinh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), com))) --> decoration(DecoratedInterval(Interval(0x1.2cd9fc44eb982p+0, 0x1.89bca168970c6p+432), com)) - @fact sinh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), com)) --> DecoratedInterval(Interval(-Inf, -0x1.53045b4f849dep+815), dac) - @fact decoration(sinh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), com))) --> decoration(DecoratedInterval(Interval(-Inf, -0x1.53045b4f849dep+815), dac)) +@testset "minimal_sinh_dec_test" begin + @test sinh(DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), def) + @test decoration(sinh(DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), def)) + @test sinh(DecoratedInterval(Interval(0.0, Inf), dac)) == DecoratedInterval(Interval(0.0, Inf), dac) + @test decoration(sinh(DecoratedInterval(Interval(0.0, Inf), dac))) == decoration(DecoratedInterval(Interval(0.0, Inf), dac)) + @test sinh(DecoratedInterval(Interval(-Inf, 0.0), def)) == DecoratedInterval(Interval(-Inf, 0.0), def) + @test decoration(sinh(DecoratedInterval(Interval(-Inf, 0.0), def))) == decoration(DecoratedInterval(Interval(-Inf, 0.0), def)) + @test sinh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), com)) == DecoratedInterval(Interval(0x1.2cd9fc44eb982p+0, 0x1.89bca168970c6p+432), com) + @test decoration(sinh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), com))) == decoration(DecoratedInterval(Interval(0x1.2cd9fc44eb982p+0, 0x1.89bca168970c6p+432), com)) + @test sinh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), com)) == DecoratedInterval(Interval(-Inf, -0x1.53045b4f849dep+815), dac) + @test decoration(sinh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), com))) == decoration(DecoratedInterval(Interval(-Inf, -0x1.53045b4f849dep+815), dac)) end -facts("minimal_cosh_test") do - @fact cosh(∅) --> ∅ - @fact cosh(Interval(0.0, Inf)) --> Interval(1.0, Inf) - @fact cosh(Interval(-0.0, Inf)) --> Interval(1.0, Inf) - @fact cosh(Interval(-Inf, 0.0)) --> Interval(1.0, Inf) - @fact cosh(Interval(-Inf, -0.0)) --> Interval(1.0, Inf) - @fact cosh(entireinterval(Float64)) --> Interval(1.0, Inf) - @fact cosh(Interval(0.0, 0.0)) --> Interval(1.0, 1.0) - @fact cosh(Interval(-0.0, -0.0)) --> Interval(1.0, 1.0) - @fact cosh(Interval(1.0, 0x1.2c903022dd7aap+8)) --> Interval(0x1.8b07551d9f55p+0, 0x1.89bca168970c6p+432) - @fact cosh(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9)) --> Interval(0x1.53045b4f849dep+815, Inf) - @fact cosh(Interval(-0x1.199999999999ap+0, 0x1.2666666666666p+1)) --> Interval(1.0, 0x1.4261d2b7d6181p+2) +@testset "minimal_cosh_test" begin + @test cosh(∅) == ∅ + @test cosh(Interval(0.0, Inf)) == Interval(1.0, Inf) + @test cosh(Interval(-0.0, Inf)) == Interval(1.0, Inf) + @test cosh(Interval(-Inf, 0.0)) == Interval(1.0, Inf) + @test cosh(Interval(-Inf, -0.0)) == Interval(1.0, Inf) + @test cosh(entireinterval(Float64)) == Interval(1.0, Inf) + @test cosh(Interval(0.0, 0.0)) == Interval(1.0, 1.0) + @test cosh(Interval(-0.0, -0.0)) == Interval(1.0, 1.0) + @test cosh(Interval(1.0, 0x1.2c903022dd7aap+8)) == Interval(0x1.8b07551d9f55p+0, 0x1.89bca168970c6p+432) + @test cosh(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9)) == Interval(0x1.53045b4f849dep+815, Inf) + @test cosh(Interval(-0x1.199999999999ap+0, 0x1.2666666666666p+1)) == Interval(1.0, 0x1.4261d2b7d6181p+2) end -facts("minimal_cosh_dec_test") do - @fact cosh(DecoratedInterval(Interval(0.0, Inf), dac)) --> DecoratedInterval(Interval(1.0, Inf), dac) - @fact decoration(cosh(DecoratedInterval(Interval(0.0, Inf), dac))) --> decoration(DecoratedInterval(Interval(1.0, Inf), dac)) - @fact cosh(DecoratedInterval(Interval(-Inf, 0.0), def)) --> DecoratedInterval(Interval(1.0, Inf), def) - @fact decoration(cosh(DecoratedInterval(Interval(-Inf, 0.0), def))) --> decoration(DecoratedInterval(Interval(1.0, Inf), def)) - @fact cosh(DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(1.0, Inf), def) - @fact decoration(cosh(DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(1.0, Inf), def)) - @fact cosh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), def)) --> DecoratedInterval(Interval(0x1.8b07551d9f55p+0, 0x1.89bca168970c6p+432), def) - @fact decoration(cosh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), def))) --> decoration(DecoratedInterval(Interval(0x1.8b07551d9f55p+0, 0x1.89bca168970c6p+432), def)) - @fact cosh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), com)) --> DecoratedInterval(Interval(0x1.53045b4f849dep+815, Inf), dac) - @fact decoration(cosh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), com))) --> decoration(DecoratedInterval(Interval(0x1.53045b4f849dep+815, Inf), dac)) +@testset "minimal_cosh_dec_test" begin + @test cosh(DecoratedInterval(Interval(0.0, Inf), dac)) == DecoratedInterval(Interval(1.0, Inf), dac) + @test decoration(cosh(DecoratedInterval(Interval(0.0, Inf), dac))) == decoration(DecoratedInterval(Interval(1.0, Inf), dac)) + @test cosh(DecoratedInterval(Interval(-Inf, 0.0), def)) == DecoratedInterval(Interval(1.0, Inf), def) + @test decoration(cosh(DecoratedInterval(Interval(-Inf, 0.0), def))) == decoration(DecoratedInterval(Interval(1.0, Inf), def)) + @test cosh(DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(1.0, Inf), def) + @test decoration(cosh(DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(1.0, Inf), def)) + @test cosh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), def)) == DecoratedInterval(Interval(0x1.8b07551d9f55p+0, 0x1.89bca168970c6p+432), def) + @test decoration(cosh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), def))) == decoration(DecoratedInterval(Interval(0x1.8b07551d9f55p+0, 0x1.89bca168970c6p+432), def)) + @test cosh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), com)) == DecoratedInterval(Interval(0x1.53045b4f849dep+815, Inf), dac) + @test decoration(cosh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), com))) == decoration(DecoratedInterval(Interval(0x1.53045b4f849dep+815, Inf), dac)) end -facts("minimal_tanh_test") do - @fact tanh(∅) --> ∅ - @fact tanh(Interval(0.0, Inf)) --> Interval(0.0, 1.0) - @fact tanh(Interval(-0.0, Inf)) --> Interval(0.0, 1.0) - @fact tanh(Interval(-Inf, 0.0)) --> Interval(-1.0, 0.0) - @fact tanh(Interval(-Inf, -0.0)) --> Interval(-1.0, 0.0) - @fact tanh(entireinterval(Float64)) --> Interval(-1.0, 1.0) - @fact tanh(Interval(0.0, 0.0)) --> Interval(0.0, 0.0) - @fact tanh(Interval(-0.0, -0.0)) --> Interval(0.0, 0.0) - @fact tanh(Interval(1.0, 0x1.2c903022dd7aap+8)) --> Interval(0x1.85efab514f394p-1, 0x1p+0) - @fact tanh(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9)) --> Interval(-0x1p+0, -0x1.fffffffffffffp-1) - @fact tanh(Interval(-0x1.199999999999ap+0, 0x1.2666666666666p+1)) --> Interval(-0x1.99db01fde2406p-1, 0x1.f5cf31e1c8103p-1) +@testset "minimal_tanh_test" begin + @test tanh(∅) == ∅ + @test tanh(Interval(0.0, Inf)) == Interval(0.0, 1.0) + @test tanh(Interval(-0.0, Inf)) == Interval(0.0, 1.0) + @test tanh(Interval(-Inf, 0.0)) == Interval(-1.0, 0.0) + @test tanh(Interval(-Inf, -0.0)) == Interval(-1.0, 0.0) + @test tanh(entireinterval(Float64)) == Interval(-1.0, 1.0) + @test tanh(Interval(0.0, 0.0)) == Interval(0.0, 0.0) + @test tanh(Interval(-0.0, -0.0)) == Interval(0.0, 0.0) + @test tanh(Interval(1.0, 0x1.2c903022dd7aap+8)) == Interval(0x1.85efab514f394p-1, 0x1p+0) + @test tanh(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9)) == Interval(-0x1p+0, -0x1.fffffffffffffp-1) + @test tanh(Interval(-0x1.199999999999ap+0, 0x1.2666666666666p+1)) == Interval(-0x1.99db01fde2406p-1, 0x1.f5cf31e1c8103p-1) end -facts("minimal_tanh_dec_test") do - @fact tanh(DecoratedInterval(Interval(0.0, Inf), dac)) --> DecoratedInterval(Interval(0.0, 1.0), dac) - @fact decoration(tanh(DecoratedInterval(Interval(0.0, Inf), dac))) --> decoration(DecoratedInterval(Interval(0.0, 1.0), dac)) - @fact tanh(DecoratedInterval(Interval(-Inf, 0.0), def)) --> DecoratedInterval(Interval(-1.0, 0.0), def) - @fact decoration(tanh(DecoratedInterval(Interval(-Inf, 0.0), def))) --> decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) - @fact tanh(DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(-1.0, 1.0), def) - @fact decoration(tanh(DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(-1.0, 1.0), def)) - @fact tanh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), com)) --> DecoratedInterval(Interval(0x1.85efab514f394p-1, 0x1p+0), com) - @fact decoration(tanh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), com))) --> decoration(DecoratedInterval(Interval(0x1.85efab514f394p-1, 0x1p+0), com)) - @fact tanh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), trv)) --> DecoratedInterval(Interval(-0x1p+0, -0x1.fffffffffffffp-1), trv) - @fact decoration(tanh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), trv))) --> decoration(DecoratedInterval(Interval(-0x1p+0, -0x1.fffffffffffffp-1), trv)) +@testset "minimal_tanh_dec_test" begin + @test tanh(DecoratedInterval(Interval(0.0, Inf), dac)) == DecoratedInterval(Interval(0.0, 1.0), dac) + @test decoration(tanh(DecoratedInterval(Interval(0.0, Inf), dac))) == decoration(DecoratedInterval(Interval(0.0, 1.0), dac)) + @test tanh(DecoratedInterval(Interval(-Inf, 0.0), def)) == DecoratedInterval(Interval(-1.0, 0.0), def) + @test decoration(tanh(DecoratedInterval(Interval(-Inf, 0.0), def))) == decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) + @test tanh(DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-1.0, 1.0), def) + @test decoration(tanh(DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-1.0, 1.0), def)) + @test tanh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), com)) == DecoratedInterval(Interval(0x1.85efab514f394p-1, 0x1p+0), com) + @test decoration(tanh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), com))) == decoration(DecoratedInterval(Interval(0x1.85efab514f394p-1, 0x1p+0), com)) + @test tanh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), trv)) == DecoratedInterval(Interval(-0x1p+0, -0x1.fffffffffffffp-1), trv) + @test decoration(tanh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), trv))) == decoration(DecoratedInterval(Interval(-0x1p+0, -0x1.fffffffffffffp-1), trv)) end -facts("minimal_asinh_test") do - @fact asinh(∅) --> ∅ - @fact asinh(Interval(0.0, Inf)) --> Interval(0.0, Inf) - @fact asinh(Interval(-0.0, Inf)) --> Interval(0.0, Inf) - @fact asinh(Interval(-Inf, 0.0)) --> Interval(-Inf, 0.0) - @fact asinh(Interval(-Inf, -0.0)) --> Interval(-Inf, 0.0) - @fact asinh(entireinterval(Float64)) --> entireinterval(Float64) - @fact asinh(Interval(0.0, 0.0)) --> Interval(0.0, 0.0) - @fact asinh(Interval(-0.0, -0.0)) --> Interval(0.0, 0.0) - @fact asinh(Interval(1.0, 0x1.2c903022dd7aap+8)) --> Interval(0x1.c34366179d426p-1, 0x1.9986127438a87p+2) - @fact asinh(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9)) --> Interval(-0x1.bb86380a6cc45p+4, -0x1.c204d8eb20827p+2) - @fact asinh(Interval(-0x1.199999999999ap+0, 0x1.2666666666666p+1)) --> Interval(-0x1.e693df6edf1e7p-1, 0x1.91fdc64de0e51p+0) +@testset "minimal_asinh_test" begin + @test asinh(∅) == ∅ + @test asinh(Interval(0.0, Inf)) == Interval(0.0, Inf) + @test asinh(Interval(-0.0, Inf)) == Interval(0.0, Inf) + @test asinh(Interval(-Inf, 0.0)) == Interval(-Inf, 0.0) + @test asinh(Interval(-Inf, -0.0)) == Interval(-Inf, 0.0) + @test asinh(entireinterval(Float64)) == entireinterval(Float64) + @test asinh(Interval(0.0, 0.0)) == Interval(0.0, 0.0) + @test asinh(Interval(-0.0, -0.0)) == Interval(0.0, 0.0) + @test asinh(Interval(1.0, 0x1.2c903022dd7aap+8)) == Interval(0x1.c34366179d426p-1, 0x1.9986127438a87p+2) + @test asinh(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9)) == Interval(-0x1.bb86380a6cc45p+4, -0x1.c204d8eb20827p+2) + @test asinh(Interval(-0x1.199999999999ap+0, 0x1.2666666666666p+1)) == Interval(-0x1.e693df6edf1e7p-1, 0x1.91fdc64de0e51p+0) end -facts("minimal_asinh_dec_test") do - @fact asinh(DecoratedInterval(Interval(0.0, Inf), dac)) --> DecoratedInterval(Interval(0.0, Inf), dac) - @fact decoration(asinh(DecoratedInterval(Interval(0.0, Inf), dac))) --> decoration(DecoratedInterval(Interval(0.0, Inf), dac)) - @fact asinh(DecoratedInterval(Interval(-Inf, 0.0), trv)) --> DecoratedInterval(Interval(-Inf, 0.0), trv) - @fact decoration(asinh(DecoratedInterval(Interval(-Inf, 0.0), trv))) --> decoration(DecoratedInterval(Interval(-Inf, 0.0), trv)) - @fact asinh(DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), def) - @fact decoration(asinh(DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), def)) - @fact asinh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), com)) --> DecoratedInterval(Interval(0x1.c34366179d426p-1, 0x1.9986127438a87p+2), com) - @fact decoration(asinh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), com))) --> decoration(DecoratedInterval(Interval(0x1.c34366179d426p-1, 0x1.9986127438a87p+2), com)) - @fact asinh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), def)) --> DecoratedInterval(Interval(-0x1.bb86380a6cc45p+4, -0x1.c204d8eb20827p+2), def) - @fact decoration(asinh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), def))) --> decoration(DecoratedInterval(Interval(-0x1.bb86380a6cc45p+4, -0x1.c204d8eb20827p+2), def)) +@testset "minimal_asinh_dec_test" begin + @test asinh(DecoratedInterval(Interval(0.0, Inf), dac)) == DecoratedInterval(Interval(0.0, Inf), dac) + @test decoration(asinh(DecoratedInterval(Interval(0.0, Inf), dac))) == decoration(DecoratedInterval(Interval(0.0, Inf), dac)) + @test asinh(DecoratedInterval(Interval(-Inf, 0.0), trv)) == DecoratedInterval(Interval(-Inf, 0.0), trv) + @test decoration(asinh(DecoratedInterval(Interval(-Inf, 0.0), trv))) == decoration(DecoratedInterval(Interval(-Inf, 0.0), trv)) + @test asinh(DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), def) + @test decoration(asinh(DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), def)) + @test asinh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), com)) == DecoratedInterval(Interval(0x1.c34366179d426p-1, 0x1.9986127438a87p+2), com) + @test decoration(asinh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), com))) == decoration(DecoratedInterval(Interval(0x1.c34366179d426p-1, 0x1.9986127438a87p+2), com)) + @test asinh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), def)) == DecoratedInterval(Interval(-0x1.bb86380a6cc45p+4, -0x1.c204d8eb20827p+2), def) + @test decoration(asinh(DecoratedInterval(Interval(-0x1.fd219490eaac1p+38, -0x1.1af1c9d74f06dp+9), def))) == decoration(DecoratedInterval(Interval(-0x1.bb86380a6cc45p+4, -0x1.c204d8eb20827p+2), def)) end -facts("minimal_acosh_test") do - @fact acosh(∅) --> ∅ - @fact acosh(Interval(0.0, Inf)) --> Interval(0.0, Inf) - @fact acosh(Interval(-0.0, Inf)) --> Interval(0.0, Inf) - @fact acosh(Interval(1.0, Inf)) --> Interval(0.0, Inf) - @fact acosh(Interval(-Inf, 1.0)) --> Interval(0.0, 0.0) - @fact acosh(Interval(-Inf, 0x1.fffffffffffffp-1)) --> ∅ - @fact acosh(entireinterval(Float64)) --> Interval(0.0, Inf) - @fact acosh(Interval(1.0, 1.0)) --> Interval(0.0, 0.0) - @fact acosh(Interval(1.0, 0x1.2c903022dd7aap+8)) --> Interval(0.0, 0x1.9985fb3d532afp+2) - @fact acosh(Interval(0x1.199999999999ap+0, 0x1.2666666666666p+1)) --> Interval(0x1.c636c1a882f2cp-2, 0x1.799c88e79140dp+0) - @fact acosh(Interval(0x1.14d4e82b2b26fp+15, 0x1.72dbe91c837b5p+29)) --> Interval(0x1.656510b4baec3p+3, 0x1.52a415ee8455ap+4) +@testset "minimal_acosh_test" begin + @test acosh(∅) == ∅ + @test acosh(Interval(0.0, Inf)) == Interval(0.0, Inf) + @test acosh(Interval(-0.0, Inf)) == Interval(0.0, Inf) + @test acosh(Interval(1.0, Inf)) == Interval(0.0, Inf) + @test acosh(Interval(-Inf, 1.0)) == Interval(0.0, 0.0) + @test acosh(Interval(-Inf, 0x1.fffffffffffffp-1)) == ∅ + @test acosh(entireinterval(Float64)) == Interval(0.0, Inf) + @test acosh(Interval(1.0, 1.0)) == Interval(0.0, 0.0) + @test acosh(Interval(1.0, 0x1.2c903022dd7aap+8)) == Interval(0.0, 0x1.9985fb3d532afp+2) + @test acosh(Interval(0x1.199999999999ap+0, 0x1.2666666666666p+1)) == Interval(0x1.c636c1a882f2cp-2, 0x1.799c88e79140dp+0) + @test acosh(Interval(0x1.14d4e82b2b26fp+15, 0x1.72dbe91c837b5p+29)) == Interval(0x1.656510b4baec3p+3, 0x1.52a415ee8455ap+4) end -facts("minimal_acosh_dec_test") do - @fact acosh(DecoratedInterval(Interval(0.0, Inf), dac)) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(acosh(DecoratedInterval(Interval(0.0, Inf), dac))) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact acosh(DecoratedInterval(Interval(1.0, Inf), dac)) --> DecoratedInterval(Interval(0.0, Inf), dac) - @fact decoration(acosh(DecoratedInterval(Interval(1.0, Inf), dac))) --> decoration(DecoratedInterval(Interval(0.0, Inf), dac)) - @fact acosh(DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(acosh(DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact acosh(DecoratedInterval(Interval(1.0, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0.0), com) - @fact decoration(acosh(DecoratedInterval(Interval(1.0, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), com)) - @fact acosh(DecoratedInterval(Interval(0.9, 1.0), com)) --> DecoratedInterval(Interval(0.0, 0.0), trv) - @fact decoration(acosh(DecoratedInterval(Interval(0.9, 1.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @fact acosh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), dac)) --> DecoratedInterval(Interval(0.0, 0x1.9985fb3d532afp+2), dac) - @fact decoration(acosh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.9985fb3d532afp+2), dac)) - @fact acosh(DecoratedInterval(Interval(0.9, 0x1.2c903022dd7aap+8), com)) --> DecoratedInterval(Interval(0.0, 0x1.9985fb3d532afp+2), trv) - @fact decoration(acosh(DecoratedInterval(Interval(0.9, 0x1.2c903022dd7aap+8), com))) --> decoration(DecoratedInterval(Interval(0.0, 0x1.9985fb3d532afp+2), trv)) - @fact acosh(DecoratedInterval(Interval(0x1.14d4e82b2b26fp+15, 0x1.72dbe91c837b5p+29), def)) --> DecoratedInterval(Interval(0x1.656510b4baec3p+3, 0x1.52a415ee8455ap+4), def) - @fact decoration(acosh(DecoratedInterval(Interval(0x1.14d4e82b2b26fp+15, 0x1.72dbe91c837b5p+29), def))) --> decoration(DecoratedInterval(Interval(0x1.656510b4baec3p+3, 0x1.52a415ee8455ap+4), def)) +@testset "minimal_acosh_dec_test" begin + @test acosh(DecoratedInterval(Interval(0.0, Inf), dac)) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(acosh(DecoratedInterval(Interval(0.0, Inf), dac))) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test acosh(DecoratedInterval(Interval(1.0, Inf), dac)) == DecoratedInterval(Interval(0.0, Inf), dac) + @test decoration(acosh(DecoratedInterval(Interval(1.0, Inf), dac))) == decoration(DecoratedInterval(Interval(0.0, Inf), dac)) + @test acosh(DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(acosh(DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test acosh(DecoratedInterval(Interval(1.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), com) + @test decoration(acosh(DecoratedInterval(Interval(1.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), com)) + @test acosh(DecoratedInterval(Interval(0.9, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) + @test decoration(acosh(DecoratedInterval(Interval(0.9, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) + @test acosh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), dac)) == DecoratedInterval(Interval(0.0, 0x1.9985fb3d532afp+2), dac) + @test decoration(acosh(DecoratedInterval(Interval(1.0, 0x1.2c903022dd7aap+8), dac))) == decoration(DecoratedInterval(Interval(0.0, 0x1.9985fb3d532afp+2), dac)) + @test acosh(DecoratedInterval(Interval(0.9, 0x1.2c903022dd7aap+8), com)) == DecoratedInterval(Interval(0.0, 0x1.9985fb3d532afp+2), trv) + @test decoration(acosh(DecoratedInterval(Interval(0.9, 0x1.2c903022dd7aap+8), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1.9985fb3d532afp+2), trv)) + @test acosh(DecoratedInterval(Interval(0x1.14d4e82b2b26fp+15, 0x1.72dbe91c837b5p+29), def)) == DecoratedInterval(Interval(0x1.656510b4baec3p+3, 0x1.52a415ee8455ap+4), def) + @test decoration(acosh(DecoratedInterval(Interval(0x1.14d4e82b2b26fp+15, 0x1.72dbe91c837b5p+29), def))) == decoration(DecoratedInterval(Interval(0x1.656510b4baec3p+3, 0x1.52a415ee8455ap+4), def)) end -facts("minimal_atanh_test") do - @fact atanh(∅) --> ∅ - @fact atanh(Interval(0.0, Inf)) --> Interval(0.0, Inf) - @fact atanh(Interval(-0.0, Inf)) --> Interval(0.0, Inf) - @fact atanh(Interval(1.0, Inf)) --> ∅ - @fact atanh(Interval(-Inf, 0.0)) --> Interval(-Inf, 0.0) - @fact atanh(Interval(-Inf, -0.0)) --> Interval(-Inf, 0.0) - @fact atanh(Interval(-Inf, -1.0)) --> ∅ - @fact atanh(Interval(-1.0, 1.0)) --> entireinterval(Float64) - @fact atanh(Interval(0.0, 0.0)) --> Interval(0.0, 0.0) - @fact atanh(Interval(-0.0, -0.0)) --> Interval(0.0, 0.0) - @fact atanh(Interval(-1.0, -1.0)) --> ∅ - @fact atanh(Interval(1.0, 1.0)) --> ∅ - @fact atanh(entireinterval(Float64)) --> entireinterval(Float64) - @fact atanh(Interval(0x1.4c0420f6f08ccp-2, 0x1.fffffffffffffp-1)) --> Interval(0x1.5871dd2df9102p-2, 0x1.2b708872320e2p+4) - @fact atanh(Interval(-0x1.ffb88e9eb6307p-1, 0x1.999999999999ap-4)) --> Interval(-0x1.06a3a97d7979cp+2, 0x1.9af93cd234413p-4) +@testset "minimal_atanh_test" begin + @test atanh(∅) == ∅ + @test atanh(Interval(0.0, Inf)) == Interval(0.0, Inf) + @test atanh(Interval(-0.0, Inf)) == Interval(0.0, Inf) + @test atanh(Interval(1.0, Inf)) == ∅ + @test atanh(Interval(-Inf, 0.0)) == Interval(-Inf, 0.0) + @test atanh(Interval(-Inf, -0.0)) == Interval(-Inf, 0.0) + @test atanh(Interval(-Inf, -1.0)) == ∅ + @test atanh(Interval(-1.0, 1.0)) == entireinterval(Float64) + @test atanh(Interval(0.0, 0.0)) == Interval(0.0, 0.0) + @test atanh(Interval(-0.0, -0.0)) == Interval(0.0, 0.0) + @test atanh(Interval(-1.0, -1.0)) == ∅ + @test atanh(Interval(1.0, 1.0)) == ∅ + @test atanh(entireinterval(Float64)) == entireinterval(Float64) + @test atanh(Interval(0x1.4c0420f6f08ccp-2, 0x1.fffffffffffffp-1)) == Interval(0x1.5871dd2df9102p-2, 0x1.2b708872320e2p+4) + @test atanh(Interval(-0x1.ffb88e9eb6307p-1, 0x1.999999999999ap-4)) == Interval(-0x1.06a3a97d7979cp+2, 0x1.9af93cd234413p-4) end -facts("minimal_atanh_dec_test") do - @fact atanh(DecoratedInterval(Interval(0.0, Inf), dac)) --> DecoratedInterval(Interval(0.0, Inf), trv) - @fact decoration(atanh(DecoratedInterval(Interval(0.0, Inf), dac))) --> decoration(DecoratedInterval(Interval(0.0, Inf), trv)) - @fact atanh(DecoratedInterval(Interval(-Inf, 0.0), def)) --> DecoratedInterval(Interval(-Inf, 0.0), trv) - @fact decoration(atanh(DecoratedInterval(Interval(-Inf, 0.0), def))) --> decoration(DecoratedInterval(Interval(-Inf, 0.0), trv)) - @fact atanh(DecoratedInterval(Interval(-1.0, 1.0), com)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(atanh(DecoratedInterval(Interval(-1.0, 1.0), com))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact atanh(DecoratedInterval(Interval(0.0, 0.0), com)) --> DecoratedInterval(Interval(0.0, 0.0), com) - @fact decoration(atanh(DecoratedInterval(Interval(0.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), com)) - @fact atanh(DecoratedInterval(Interval(1.0, 1.0), def)) --> DecoratedInterval(∅, trv) - @fact decoration(atanh(DecoratedInterval(Interval(1.0, 1.0), def))) --> decoration(DecoratedInterval(∅, trv)) - @fact atanh(DecoratedInterval(Interval(0x1.4c0420f6f08ccp-2, 0x1.fffffffffffffp-1), com)) --> DecoratedInterval(Interval(0x1.5871dd2df9102p-2, 0x1.2b708872320e2p+4), com) - @fact decoration(atanh(DecoratedInterval(Interval(0x1.4c0420f6f08ccp-2, 0x1.fffffffffffffp-1), com))) --> decoration(DecoratedInterval(Interval(0x1.5871dd2df9102p-2, 0x1.2b708872320e2p+4), com)) - @fact atanh(DecoratedInterval(Interval(-1.0, 0x1.fffffffffffffp-1), com)) --> DecoratedInterval(Interval(-Inf, 0x1.2b708872320e2p+4), trv) - @fact decoration(atanh(DecoratedInterval(Interval(-1.0, 0x1.fffffffffffffp-1), com))) --> decoration(DecoratedInterval(Interval(-Inf, 0x1.2b708872320e2p+4), trv)) - @fact atanh(DecoratedInterval(Interval(-0x1.ffb88e9eb6307p-1, 0x1.999999999999ap-4), def)) --> DecoratedInterval(Interval(-0x1.06a3a97d7979cp+2, 0x1.9af93cd234413p-4), def) - @fact decoration(atanh(DecoratedInterval(Interval(-0x1.ffb88e9eb6307p-1, 0x1.999999999999ap-4), def))) --> decoration(DecoratedInterval(Interval(-0x1.06a3a97d7979cp+2, 0x1.9af93cd234413p-4), def)) - @fact atanh(DecoratedInterval(Interval(-0x1.ffb88e9eb6307p-1, 1.0), com)) --> DecoratedInterval(Interval(-0x1.06a3a97d7979cp+2, Inf), trv) - @fact decoration(atanh(DecoratedInterval(Interval(-0x1.ffb88e9eb6307p-1, 1.0), com))) --> decoration(DecoratedInterval(Interval(-0x1.06a3a97d7979cp+2, Inf), trv)) +@testset "minimal_atanh_dec_test" begin + @test atanh(DecoratedInterval(Interval(0.0, Inf), dac)) == DecoratedInterval(Interval(0.0, Inf), trv) + @test decoration(atanh(DecoratedInterval(Interval(0.0, Inf), dac))) == decoration(DecoratedInterval(Interval(0.0, Inf), trv)) + @test atanh(DecoratedInterval(Interval(-Inf, 0.0), def)) == DecoratedInterval(Interval(-Inf, 0.0), trv) + @test decoration(atanh(DecoratedInterval(Interval(-Inf, 0.0), def))) == decoration(DecoratedInterval(Interval(-Inf, 0.0), trv)) + @test atanh(DecoratedInterval(Interval(-1.0, 1.0), com)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(atanh(DecoratedInterval(Interval(-1.0, 1.0), com))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test atanh(DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(Interval(0.0, 0.0), com) + @test decoration(atanh(DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), com)) + @test atanh(DecoratedInterval(Interval(1.0, 1.0), def)) == DecoratedInterval(∅, trv) + @test decoration(atanh(DecoratedInterval(Interval(1.0, 1.0), def))) == decoration(DecoratedInterval(∅, trv)) + @test atanh(DecoratedInterval(Interval(0x1.4c0420f6f08ccp-2, 0x1.fffffffffffffp-1), com)) == DecoratedInterval(Interval(0x1.5871dd2df9102p-2, 0x1.2b708872320e2p+4), com) + @test decoration(atanh(DecoratedInterval(Interval(0x1.4c0420f6f08ccp-2, 0x1.fffffffffffffp-1), com))) == decoration(DecoratedInterval(Interval(0x1.5871dd2df9102p-2, 0x1.2b708872320e2p+4), com)) + @test atanh(DecoratedInterval(Interval(-1.0, 0x1.fffffffffffffp-1), com)) == DecoratedInterval(Interval(-Inf, 0x1.2b708872320e2p+4), trv) + @test decoration(atanh(DecoratedInterval(Interval(-1.0, 0x1.fffffffffffffp-1), com))) == decoration(DecoratedInterval(Interval(-Inf, 0x1.2b708872320e2p+4), trv)) + @test atanh(DecoratedInterval(Interval(-0x1.ffb88e9eb6307p-1, 0x1.999999999999ap-4), def)) == DecoratedInterval(Interval(-0x1.06a3a97d7979cp+2, 0x1.9af93cd234413p-4), def) + @test decoration(atanh(DecoratedInterval(Interval(-0x1.ffb88e9eb6307p-1, 0x1.999999999999ap-4), def))) == decoration(DecoratedInterval(Interval(-0x1.06a3a97d7979cp+2, 0x1.9af93cd234413p-4), def)) + @test atanh(DecoratedInterval(Interval(-0x1.ffb88e9eb6307p-1, 1.0), com)) == DecoratedInterval(Interval(-0x1.06a3a97d7979cp+2, Inf), trv) + @test decoration(atanh(DecoratedInterval(Interval(-0x1.ffb88e9eb6307p-1, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.06a3a97d7979cp+2, Inf), trv)) end -facts("minimal_sign_test") do - @fact sign(∅) --> ∅ - @fact sign(Interval(1.0, 2.0)) --> Interval(1.0, 1.0) - @fact sign(Interval(-1.0, 2.0)) --> Interval(-1.0, 1.0) - @fact sign(Interval(-1.0, 0.0)) --> Interval(-1.0, 0.0) - @fact sign(Interval(0.0, 2.0)) --> Interval(0.0, 1.0) - @fact sign(Interval(-0.0, 2.0)) --> Interval(0.0, 1.0) - @fact sign(Interval(-5.0, -2.0)) --> Interval(-1.0, -1.0) - @fact sign(Interval(0.0, 0.0)) --> Interval(0.0, 0.0) - @fact sign(Interval(-0.0, -0.0)) --> Interval(0.0, 0.0) - @fact sign(Interval(-0.0, 0.0)) --> Interval(0.0, 0.0) - @fact sign(entireinterval(Float64)) --> Interval(-1.0, 1.0) +@testset "minimal_sign_test" begin + @test sign(∅) == ∅ + @test sign(Interval(1.0, 2.0)) == Interval(1.0, 1.0) + @test sign(Interval(-1.0, 2.0)) == Interval(-1.0, 1.0) + @test sign(Interval(-1.0, 0.0)) == Interval(-1.0, 0.0) + @test sign(Interval(0.0, 2.0)) == Interval(0.0, 1.0) + @test sign(Interval(-0.0, 2.0)) == Interval(0.0, 1.0) + @test sign(Interval(-5.0, -2.0)) == Interval(-1.0, -1.0) + @test sign(Interval(0.0, 0.0)) == Interval(0.0, 0.0) + @test sign(Interval(-0.0, -0.0)) == Interval(0.0, 0.0) + @test sign(Interval(-0.0, 0.0)) == Interval(0.0, 0.0) + @test sign(entireinterval(Float64)) == Interval(-1.0, 1.0) end -facts("minimal_sign_dec_test") do - @fact sign(DecoratedInterval(Interval(1.0, 2.0), com)) --> DecoratedInterval(Interval(1.0, 1.0), com) - @fact decoration(sign(DecoratedInterval(Interval(1.0, 2.0), com))) --> decoration(DecoratedInterval(Interval(1.0, 1.0), com)) - @fact sign(DecoratedInterval(Interval(-1.0, 2.0), com)) --> DecoratedInterval(Interval(-1.0, 1.0), def) - @fact decoration(sign(DecoratedInterval(Interval(-1.0, 2.0), com))) --> decoration(DecoratedInterval(Interval(-1.0, 1.0), def)) - @fact sign(DecoratedInterval(Interval(-1.0, 0.0), com)) --> DecoratedInterval(Interval(-1.0, 0.0), def) - @fact decoration(sign(DecoratedInterval(Interval(-1.0, 0.0), com))) --> decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) - @fact sign(DecoratedInterval(Interval(0.0, 2.0), com)) --> DecoratedInterval(Interval(0.0, 1.0), def) - @fact decoration(sign(DecoratedInterval(Interval(0.0, 2.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 1.0), def)) - @fact sign(DecoratedInterval(Interval(-0.0, 2.0), def)) --> DecoratedInterval(Interval(0.0, 1.0), def) - @fact decoration(sign(DecoratedInterval(Interval(-0.0, 2.0), def))) --> decoration(DecoratedInterval(Interval(0.0, 1.0), def)) - @fact sign(DecoratedInterval(Interval(-5.0, -2.0), trv)) --> DecoratedInterval(Interval(-1.0, -1.0), trv) - @fact decoration(sign(DecoratedInterval(Interval(-5.0, -2.0), trv))) --> decoration(DecoratedInterval(Interval(-1.0, -1.0), trv)) - @fact sign(DecoratedInterval(Interval(0.0, 0.0), dac)) --> DecoratedInterval(Interval(0.0, 0.0), dac) - @fact decoration(sign(DecoratedInterval(Interval(0.0, 0.0), dac))) --> decoration(DecoratedInterval(Interval(0.0, 0.0), dac)) +@testset "minimal_sign_dec_test" begin + @test sign(DecoratedInterval(Interval(1.0, 2.0), com)) == DecoratedInterval(Interval(1.0, 1.0), com) + @test decoration(sign(DecoratedInterval(Interval(1.0, 2.0), com))) == decoration(DecoratedInterval(Interval(1.0, 1.0), com)) + @test sign(DecoratedInterval(Interval(-1.0, 2.0), com)) == DecoratedInterval(Interval(-1.0, 1.0), def) + @test decoration(sign(DecoratedInterval(Interval(-1.0, 2.0), com))) == decoration(DecoratedInterval(Interval(-1.0, 1.0), def)) + @test sign(DecoratedInterval(Interval(-1.0, 0.0), com)) == DecoratedInterval(Interval(-1.0, 0.0), def) + @test decoration(sign(DecoratedInterval(Interval(-1.0, 0.0), com))) == decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) + @test sign(DecoratedInterval(Interval(0.0, 2.0), com)) == DecoratedInterval(Interval(0.0, 1.0), def) + @test decoration(sign(DecoratedInterval(Interval(0.0, 2.0), com))) == decoration(DecoratedInterval(Interval(0.0, 1.0), def)) + @test sign(DecoratedInterval(Interval(-0.0, 2.0), def)) == DecoratedInterval(Interval(0.0, 1.0), def) + @test decoration(sign(DecoratedInterval(Interval(-0.0, 2.0), def))) == decoration(DecoratedInterval(Interval(0.0, 1.0), def)) + @test sign(DecoratedInterval(Interval(-5.0, -2.0), trv)) == DecoratedInterval(Interval(-1.0, -1.0), trv) + @test decoration(sign(DecoratedInterval(Interval(-5.0, -2.0), trv))) == decoration(DecoratedInterval(Interval(-1.0, -1.0), trv)) + @test sign(DecoratedInterval(Interval(0.0, 0.0), dac)) == DecoratedInterval(Interval(0.0, 0.0), dac) + @test decoration(sign(DecoratedInterval(Interval(0.0, 0.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0.0), dac)) end -facts("minimal_ceil_test") do - @fact ceil(∅) --> ∅ - @fact round(∅, RoundUp) --> ∅ - @fact ceil(entireinterval(Float64)) --> entireinterval(Float64) - @fact round(entireinterval(Float64), RoundUp) --> entireinterval(Float64) - @fact ceil(Interval(1.1, 2.0)) --> Interval(2.0, 2.0) - @fact round(Interval(1.1, 2.0), RoundUp) --> Interval(2.0, 2.0) - @fact ceil(Interval(-1.1, 2.0)) --> Interval(-1.0, 2.0) - @fact round(Interval(-1.1, 2.0), RoundUp) --> Interval(-1.0, 2.0) - @fact ceil(Interval(-1.1, 0.0)) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, 0.0), RoundUp) --> Interval(-1.0, 0.0) - @fact ceil(Interval(-1.1, -0.0)) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, -0.0), RoundUp) --> Interval(-1.0, 0.0) - @fact ceil(Interval(-1.1, -0.4)) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, -0.4), RoundUp) --> Interval(-1.0, 0.0) - @fact ceil(Interval(-1.9, 2.2)) --> Interval(-1.0, 3.0) - @fact round(Interval(-1.9, 2.2), RoundUp) --> Interval(-1.0, 3.0) - @fact ceil(Interval(-1.0, 2.2)) --> Interval(-1.0, 3.0) - @fact round(Interval(-1.0, 2.2), RoundUp) --> Interval(-1.0, 3.0) - @fact ceil(Interval(0.0, 2.2)) --> Interval(0.0, 3.0) - @fact round(Interval(0.0, 2.2), RoundUp) --> Interval(0.0, 3.0) - @fact ceil(Interval(-0.0, 2.2)) --> Interval(0.0, 3.0) - @fact round(Interval(-0.0, 2.2), RoundUp) --> Interval(0.0, 3.0) - @fact ceil(Interval(-1.5, Inf)) --> Interval(-1.0, Inf) - @fact round(Interval(-1.5, Inf), RoundUp) --> Interval(-1.0, Inf) - @fact ceil(Interval(0x1.fffffffffffffp1023, Inf)) --> Interval(0x1.fffffffffffffp1023, Inf) - @fact round(Interval(0x1.fffffffffffffp1023, Inf), RoundUp) --> Interval(0x1.fffffffffffffp1023, Inf) - @fact ceil(Interval(-Inf, 2.2)) --> Interval(-Inf, 3.0) - @fact round(Interval(-Inf, 2.2), RoundUp) --> Interval(-Inf, 3.0) - @fact ceil(Interval(-Inf, -0x1.fffffffffffffp1023)) --> Interval(-Inf, -0x1.fffffffffffffp1023) - @fact round(Interval(-Inf, -0x1.fffffffffffffp1023), RoundUp) --> Interval(-Inf, -0x1.fffffffffffffp1023) +@testset "minimal_ceil_test" begin + @test ceil(∅) == ∅ + @test round(∅, RoundUp) == ∅ + @test ceil(entireinterval(Float64)) == entireinterval(Float64) + @test round(entireinterval(Float64), RoundUp) == entireinterval(Float64) + @test ceil(Interval(1.1, 2.0)) == Interval(2.0, 2.0) + @test round(Interval(1.1, 2.0), RoundUp) == Interval(2.0, 2.0) + @test ceil(Interval(-1.1, 2.0)) == Interval(-1.0, 2.0) + @test round(Interval(-1.1, 2.0), RoundUp) == Interval(-1.0, 2.0) + @test ceil(Interval(-1.1, 0.0)) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, 0.0), RoundUp) == Interval(-1.0, 0.0) + @test ceil(Interval(-1.1, -0.0)) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, -0.0), RoundUp) == Interval(-1.0, 0.0) + @test ceil(Interval(-1.1, -0.4)) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, -0.4), RoundUp) == Interval(-1.0, 0.0) + @test ceil(Interval(-1.9, 2.2)) == Interval(-1.0, 3.0) + @test round(Interval(-1.9, 2.2), RoundUp) == Interval(-1.0, 3.0) + @test ceil(Interval(-1.0, 2.2)) == Interval(-1.0, 3.0) + @test round(Interval(-1.0, 2.2), RoundUp) == Interval(-1.0, 3.0) + @test ceil(Interval(0.0, 2.2)) == Interval(0.0, 3.0) + @test round(Interval(0.0, 2.2), RoundUp) == Interval(0.0, 3.0) + @test ceil(Interval(-0.0, 2.2)) == Interval(0.0, 3.0) + @test round(Interval(-0.0, 2.2), RoundUp) == Interval(0.0, 3.0) + @test ceil(Interval(-1.5, Inf)) == Interval(-1.0, Inf) + @test round(Interval(-1.5, Inf), RoundUp) == Interval(-1.0, Inf) + @test ceil(Interval(0x1.fffffffffffffp1023, Inf)) == Interval(0x1.fffffffffffffp1023, Inf) + @test round(Interval(0x1.fffffffffffffp1023, Inf), RoundUp) == Interval(0x1.fffffffffffffp1023, Inf) + @test ceil(Interval(-Inf, 2.2)) == Interval(-Inf, 3.0) + @test round(Interval(-Inf, 2.2), RoundUp) == Interval(-Inf, 3.0) + @test ceil(Interval(-Inf, -0x1.fffffffffffffp1023)) == Interval(-Inf, -0x1.fffffffffffffp1023) + @test round(Interval(-Inf, -0x1.fffffffffffffp1023), RoundUp) == Interval(-Inf, -0x1.fffffffffffffp1023) end -facts("minimal_ceil_dec_test") do - @fact ceil(DecoratedInterval(Interval(1.1, 2.0), com)) --> DecoratedInterval(Interval(2.0, 2.0), dac) - @fact decoration(ceil(DecoratedInterval(Interval(1.1, 2.0), com))) --> decoration(DecoratedInterval(Interval(2.0, 2.0), dac)) - @fact round(DecoratedInterval(Interval(1.1, 2.0), com), RoundUp) --> DecoratedInterval(Interval(2.0, 2.0), dac) - @fact decoration(round(DecoratedInterval(Interval(1.1, 2.0), com), RoundUp)) --> decoration(DecoratedInterval(Interval(2.0, 2.0), dac)) - @fact ceil(DecoratedInterval(Interval(-1.1, 2.0), com)) --> DecoratedInterval(Interval(-1.0, 2.0), def) - @fact decoration(ceil(DecoratedInterval(Interval(-1.1, 2.0), com))) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(-1.1, 2.0), com), RoundUp) --> DecoratedInterval(Interval(-1.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.1, 2.0), com), RoundUp)) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) - @fact ceil(DecoratedInterval(Interval(-1.1, 0.0), dac)) --> DecoratedInterval(Interval(-1.0, 0.0), def) - @fact decoration(ceil(DecoratedInterval(Interval(-1.1, 0.0), dac))) --> decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) - @fact round(DecoratedInterval(Interval(-1.1, 0.0), dac), RoundUp) --> DecoratedInterval(Interval(-1.0, 0.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.1, 0.0), dac), RoundUp)) --> decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) - @fact ceil(DecoratedInterval(Interval(-1.1, -0.0), trv)) --> DecoratedInterval(Interval(-1.0, 0.0), trv) - @fact decoration(ceil(DecoratedInterval(Interval(-1.1, -0.0), trv))) --> decoration(DecoratedInterval(Interval(-1.0, 0.0), trv)) - @fact round(DecoratedInterval(Interval(-1.1, -0.0), trv), RoundUp) --> DecoratedInterval(Interval(-1.0, 0.0), trv) - @fact decoration(round(DecoratedInterval(Interval(-1.1, -0.0), trv), RoundUp)) --> decoration(DecoratedInterval(Interval(-1.0, 0.0), trv)) - @fact ceil(DecoratedInterval(Interval(-1.1, -0.4), dac)) --> DecoratedInterval(Interval(-1.0, 0.0), def) - @fact decoration(ceil(DecoratedInterval(Interval(-1.1, -0.4), dac))) --> decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) - @fact round(DecoratedInterval(Interval(-1.1, -0.4), dac), RoundUp) --> DecoratedInterval(Interval(-1.0, 0.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.1, -0.4), dac), RoundUp)) --> decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) - @fact ceil(DecoratedInterval(Interval(-1.9, 2.2), com)) --> DecoratedInterval(Interval(-1.0, 3.0), def) - @fact decoration(ceil(DecoratedInterval(Interval(-1.9, 2.2), com))) --> decoration(DecoratedInterval(Interval(-1.0, 3.0), def)) - @fact round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundUp) --> DecoratedInterval(Interval(-1.0, 3.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundUp)) --> decoration(DecoratedInterval(Interval(-1.0, 3.0), def)) - @fact ceil(DecoratedInterval(Interval(-1.0, 2.2), dac)) --> DecoratedInterval(Interval(-1.0, 3.0), def) - @fact decoration(ceil(DecoratedInterval(Interval(-1.0, 2.2), dac))) --> decoration(DecoratedInterval(Interval(-1.0, 3.0), def)) - @fact round(DecoratedInterval(Interval(-1.0, 2.2), dac), RoundUp) --> DecoratedInterval(Interval(-1.0, 3.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.0, 2.2), dac), RoundUp)) --> decoration(DecoratedInterval(Interval(-1.0, 3.0), def)) - @fact ceil(DecoratedInterval(Interval(0.0, 2.2), trv)) --> DecoratedInterval(Interval(0.0, 3.0), trv) - @fact decoration(ceil(DecoratedInterval(Interval(0.0, 2.2), trv))) --> decoration(DecoratedInterval(Interval(0.0, 3.0), trv)) - @fact round(DecoratedInterval(Interval(0.0, 2.2), trv), RoundUp) --> DecoratedInterval(Interval(0.0, 3.0), trv) - @fact decoration(round(DecoratedInterval(Interval(0.0, 2.2), trv), RoundUp)) --> decoration(DecoratedInterval(Interval(0.0, 3.0), trv)) - @fact ceil(DecoratedInterval(Interval(-0.0, 2.2), def)) --> DecoratedInterval(Interval(0.0, 3.0), def) - @fact decoration(ceil(DecoratedInterval(Interval(-0.0, 2.2), def))) --> decoration(DecoratedInterval(Interval(0.0, 3.0), def)) - @fact round(DecoratedInterval(Interval(-0.0, 2.2), def), RoundUp) --> DecoratedInterval(Interval(0.0, 3.0), def) - @fact decoration(round(DecoratedInterval(Interval(-0.0, 2.2), def), RoundUp)) --> decoration(DecoratedInterval(Interval(0.0, 3.0), def)) - @fact ceil(DecoratedInterval(Interval(-1.5, Inf), trv)) --> DecoratedInterval(Interval(-1.0, Inf), trv) - @fact decoration(ceil(DecoratedInterval(Interval(-1.5, Inf), trv))) --> decoration(DecoratedInterval(Interval(-1.0, Inf), trv)) - @fact round(DecoratedInterval(Interval(-1.5, Inf), trv), RoundUp) --> DecoratedInterval(Interval(-1.0, Inf), trv) - @fact decoration(round(DecoratedInterval(Interval(-1.5, Inf), trv), RoundUp)) --> decoration(DecoratedInterval(Interval(-1.0, Inf), trv)) - @fact ceil(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), dac)) --> DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), def) - @fact decoration(ceil(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), dac))) --> decoration(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), def)) - @fact round(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), dac), RoundUp) --> DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), def) - @fact decoration(round(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), dac), RoundUp)) --> decoration(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), def)) - @fact ceil(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) --> DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac) - @fact decoration(ceil(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) --> decoration(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac)) - @fact round(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), RoundUp) --> DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac) - @fact decoration(round(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), RoundUp)) --> decoration(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac)) - @fact ceil(DecoratedInterval(Interval(-Inf, 2.2), trv)) --> DecoratedInterval(Interval(-Inf, 3.0), trv) - @fact decoration(ceil(DecoratedInterval(Interval(-Inf, 2.2), trv))) --> decoration(DecoratedInterval(Interval(-Inf, 3.0), trv)) - @fact round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundUp) --> DecoratedInterval(Interval(-Inf, 3.0), trv) - @fact decoration(round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundUp)) --> decoration(DecoratedInterval(Interval(-Inf, 3.0), trv)) - @fact ceil(DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), dac)) --> DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), def) - @fact decoration(ceil(DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), dac))) --> decoration(DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), def)) - @fact round(DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), dac), RoundUp) --> DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), def) - @fact decoration(round(DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), dac), RoundUp)) --> decoration(DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), def)) +@testset "minimal_ceil_dec_test" begin + @test ceil(DecoratedInterval(Interval(1.1, 2.0), com)) == DecoratedInterval(Interval(2.0, 2.0), dac) + @test decoration(ceil(DecoratedInterval(Interval(1.1, 2.0), com))) == decoration(DecoratedInterval(Interval(2.0, 2.0), dac)) + @test round(DecoratedInterval(Interval(1.1, 2.0), com), RoundUp) == DecoratedInterval(Interval(2.0, 2.0), dac) + @test decoration(round(DecoratedInterval(Interval(1.1, 2.0), com), RoundUp)) == decoration(DecoratedInterval(Interval(2.0, 2.0), dac)) + @test ceil(DecoratedInterval(Interval(-1.1, 2.0), com)) == DecoratedInterval(Interval(-1.0, 2.0), def) + @test decoration(ceil(DecoratedInterval(Interval(-1.1, 2.0), com))) == decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) + @test round(DecoratedInterval(Interval(-1.1, 2.0), com), RoundUp) == DecoratedInterval(Interval(-1.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.1, 2.0), com), RoundUp)) == decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) + @test ceil(DecoratedInterval(Interval(-1.1, 0.0), dac)) == DecoratedInterval(Interval(-1.0, 0.0), def) + @test decoration(ceil(DecoratedInterval(Interval(-1.1, 0.0), dac))) == decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) + @test round(DecoratedInterval(Interval(-1.1, 0.0), dac), RoundUp) == DecoratedInterval(Interval(-1.0, 0.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.1, 0.0), dac), RoundUp)) == decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) + @test ceil(DecoratedInterval(Interval(-1.1, -0.0), trv)) == DecoratedInterval(Interval(-1.0, 0.0), trv) + @test decoration(ceil(DecoratedInterval(Interval(-1.1, -0.0), trv))) == decoration(DecoratedInterval(Interval(-1.0, 0.0), trv)) + @test round(DecoratedInterval(Interval(-1.1, -0.0), trv), RoundUp) == DecoratedInterval(Interval(-1.0, 0.0), trv) + @test decoration(round(DecoratedInterval(Interval(-1.1, -0.0), trv), RoundUp)) == decoration(DecoratedInterval(Interval(-1.0, 0.0), trv)) + @test ceil(DecoratedInterval(Interval(-1.1, -0.4), dac)) == DecoratedInterval(Interval(-1.0, 0.0), def) + @test decoration(ceil(DecoratedInterval(Interval(-1.1, -0.4), dac))) == decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) + @test round(DecoratedInterval(Interval(-1.1, -0.4), dac), RoundUp) == DecoratedInterval(Interval(-1.0, 0.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.1, -0.4), dac), RoundUp)) == decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) + @test ceil(DecoratedInterval(Interval(-1.9, 2.2), com)) == DecoratedInterval(Interval(-1.0, 3.0), def) + @test decoration(ceil(DecoratedInterval(Interval(-1.9, 2.2), com))) == decoration(DecoratedInterval(Interval(-1.0, 3.0), def)) + @test round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundUp) == DecoratedInterval(Interval(-1.0, 3.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundUp)) == decoration(DecoratedInterval(Interval(-1.0, 3.0), def)) + @test ceil(DecoratedInterval(Interval(-1.0, 2.2), dac)) == DecoratedInterval(Interval(-1.0, 3.0), def) + @test decoration(ceil(DecoratedInterval(Interval(-1.0, 2.2), dac))) == decoration(DecoratedInterval(Interval(-1.0, 3.0), def)) + @test round(DecoratedInterval(Interval(-1.0, 2.2), dac), RoundUp) == DecoratedInterval(Interval(-1.0, 3.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.0, 2.2), dac), RoundUp)) == decoration(DecoratedInterval(Interval(-1.0, 3.0), def)) + @test ceil(DecoratedInterval(Interval(0.0, 2.2), trv)) == DecoratedInterval(Interval(0.0, 3.0), trv) + @test decoration(ceil(DecoratedInterval(Interval(0.0, 2.2), trv))) == decoration(DecoratedInterval(Interval(0.0, 3.0), trv)) + @test round(DecoratedInterval(Interval(0.0, 2.2), trv), RoundUp) == DecoratedInterval(Interval(0.0, 3.0), trv) + @test decoration(round(DecoratedInterval(Interval(0.0, 2.2), trv), RoundUp)) == decoration(DecoratedInterval(Interval(0.0, 3.0), trv)) + @test ceil(DecoratedInterval(Interval(-0.0, 2.2), def)) == DecoratedInterval(Interval(0.0, 3.0), def) + @test decoration(ceil(DecoratedInterval(Interval(-0.0, 2.2), def))) == decoration(DecoratedInterval(Interval(0.0, 3.0), def)) + @test round(DecoratedInterval(Interval(-0.0, 2.2), def), RoundUp) == DecoratedInterval(Interval(0.0, 3.0), def) + @test decoration(round(DecoratedInterval(Interval(-0.0, 2.2), def), RoundUp)) == decoration(DecoratedInterval(Interval(0.0, 3.0), def)) + @test ceil(DecoratedInterval(Interval(-1.5, Inf), trv)) == DecoratedInterval(Interval(-1.0, Inf), trv) + @test decoration(ceil(DecoratedInterval(Interval(-1.5, Inf), trv))) == decoration(DecoratedInterval(Interval(-1.0, Inf), trv)) + @test round(DecoratedInterval(Interval(-1.5, Inf), trv), RoundUp) == DecoratedInterval(Interval(-1.0, Inf), trv) + @test decoration(round(DecoratedInterval(Interval(-1.5, Inf), trv), RoundUp)) == decoration(DecoratedInterval(Interval(-1.0, Inf), trv)) + @test ceil(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), dac)) == DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), def) + @test decoration(ceil(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), dac))) == decoration(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), def)) + @test round(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), dac), RoundUp) == DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), def) + @test decoration(round(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), dac), RoundUp)) == decoration(DecoratedInterval(Interval(0x1.fffffffffffffp1023, Inf), def)) + @test ceil(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) == DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac) + @test decoration(ceil(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com))) == decoration(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac)) + @test round(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), RoundUp) == DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac) + @test decoration(round(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com), RoundUp)) == decoration(DecoratedInterval(Interval(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), dac)) + @test ceil(DecoratedInterval(Interval(-Inf, 2.2), trv)) == DecoratedInterval(Interval(-Inf, 3.0), trv) + @test decoration(ceil(DecoratedInterval(Interval(-Inf, 2.2), trv))) == decoration(DecoratedInterval(Interval(-Inf, 3.0), trv)) + @test round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundUp) == DecoratedInterval(Interval(-Inf, 3.0), trv) + @test decoration(round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundUp)) == decoration(DecoratedInterval(Interval(-Inf, 3.0), trv)) + @test ceil(DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), dac)) == DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), def) + @test decoration(ceil(DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), dac))) == decoration(DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), def)) + @test round(DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), dac), RoundUp) == DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), def) + @test decoration(round(DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), dac), RoundUp)) == decoration(DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), def)) end -facts("minimal_floor_test") do - @fact floor(∅) --> ∅ - @fact round(∅, RoundDown) --> ∅ - @fact floor(entireinterval(Float64)) --> entireinterval(Float64) - @fact round(entireinterval(Float64), RoundDown) --> entireinterval(Float64) - @fact floor(Interval(1.1, 2.0)) --> Interval(1.0, 2.0) - @fact round(Interval(1.1, 2.0), RoundDown) --> Interval(1.0, 2.0) - @fact floor(Interval(-1.1, 2.0)) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.1, 2.0), RoundDown) --> Interval(-2.0, 2.0) - @fact floor(Interval(-1.1, 0.0)) --> Interval(-2.0, 0.0) - @fact round(Interval(-1.1, 0.0), RoundDown) --> Interval(-2.0, 0.0) - @fact floor(Interval(-1.1, -0.0)) --> Interval(-2.0, 0.0) - @fact round(Interval(-1.1, -0.0), RoundDown) --> Interval(-2.0, 0.0) - @fact floor(Interval(-1.1, -0.4)) --> Interval(-2.0, -1.0) - @fact round(Interval(-1.1, -0.4), RoundDown) --> Interval(-2.0, -1.0) - @fact floor(Interval(-1.9, 2.2)) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.9, 2.2), RoundDown) --> Interval(-2.0, 2.0) - @fact floor(Interval(-1.0, 2.2)) --> Interval(-1.0, 2.0) - @fact round(Interval(-1.0, 2.2), RoundDown) --> Interval(-1.0, 2.0) - @fact floor(Interval(0.0, 2.2)) --> Interval(0.0, 2.0) - @fact round(Interval(0.0, 2.2), RoundDown) --> Interval(0.0, 2.0) - @fact floor(Interval(-0.0, 2.2)) --> Interval(0.0, 2.0) - @fact round(Interval(-0.0, 2.2), RoundDown) --> Interval(0.0, 2.0) - @fact floor(Interval(-1.5, Inf)) --> Interval(-2.0, Inf) - @fact round(Interval(-1.5, Inf), RoundDown) --> Interval(-2.0, Inf) - @fact floor(Interval(-Inf, 2.2)) --> Interval(-Inf, 2.0) - @fact round(Interval(-Inf, 2.2), RoundDown) --> Interval(-Inf, 2.0) +@testset "minimal_floor_test" begin + @test floor(∅) == ∅ + @test round(∅, RoundDown) == ∅ + @test floor(entireinterval(Float64)) == entireinterval(Float64) + @test round(entireinterval(Float64), RoundDown) == entireinterval(Float64) + @test floor(Interval(1.1, 2.0)) == Interval(1.0, 2.0) + @test round(Interval(1.1, 2.0), RoundDown) == Interval(1.0, 2.0) + @test floor(Interval(-1.1, 2.0)) == Interval(-2.0, 2.0) + @test round(Interval(-1.1, 2.0), RoundDown) == Interval(-2.0, 2.0) + @test floor(Interval(-1.1, 0.0)) == Interval(-2.0, 0.0) + @test round(Interval(-1.1, 0.0), RoundDown) == Interval(-2.0, 0.0) + @test floor(Interval(-1.1, -0.0)) == Interval(-2.0, 0.0) + @test round(Interval(-1.1, -0.0), RoundDown) == Interval(-2.0, 0.0) + @test floor(Interval(-1.1, -0.4)) == Interval(-2.0, -1.0) + @test round(Interval(-1.1, -0.4), RoundDown) == Interval(-2.0, -1.0) + @test floor(Interval(-1.9, 2.2)) == Interval(-2.0, 2.0) + @test round(Interval(-1.9, 2.2), RoundDown) == Interval(-2.0, 2.0) + @test floor(Interval(-1.0, 2.2)) == Interval(-1.0, 2.0) + @test round(Interval(-1.0, 2.2), RoundDown) == Interval(-1.0, 2.0) + @test floor(Interval(0.0, 2.2)) == Interval(0.0, 2.0) + @test round(Interval(0.0, 2.2), RoundDown) == Interval(0.0, 2.0) + @test floor(Interval(-0.0, 2.2)) == Interval(0.0, 2.0) + @test round(Interval(-0.0, 2.2), RoundDown) == Interval(0.0, 2.0) + @test floor(Interval(-1.5, Inf)) == Interval(-2.0, Inf) + @test round(Interval(-1.5, Inf), RoundDown) == Interval(-2.0, Inf) + @test floor(Interval(-Inf, 2.2)) == Interval(-Inf, 2.0) + @test round(Interval(-Inf, 2.2), RoundDown) == Interval(-Inf, 2.0) end -facts("minimal_floor_dec_test") do - @fact floor(DecoratedInterval(Interval(1.1, 2.0), com)) --> DecoratedInterval(Interval(1.0, 2.0), def) - @fact decoration(floor(DecoratedInterval(Interval(1.1, 2.0), com))) --> decoration(DecoratedInterval(Interval(1.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(1.1, 2.0), com), RoundDown) --> DecoratedInterval(Interval(1.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(1.1, 2.0), com), RoundDown)) --> decoration(DecoratedInterval(Interval(1.0, 2.0), def)) - @fact floor(DecoratedInterval(Interval(-1.1, 2.0), def)) --> DecoratedInterval(Interval(-2.0, 2.0), def) - @fact decoration(floor(DecoratedInterval(Interval(-1.1, 2.0), def))) --> decoration(DecoratedInterval(Interval(-2.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(-1.1, 2.0), def), RoundDown) --> DecoratedInterval(Interval(-2.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.1, 2.0), def), RoundDown)) --> decoration(DecoratedInterval(Interval(-2.0, 2.0), def)) - @fact floor(DecoratedInterval(Interval(-1.1, 0.0), dac)) --> DecoratedInterval(Interval(-2.0, 0.0), def) - @fact decoration(floor(DecoratedInterval(Interval(-1.1, 0.0), dac))) --> decoration(DecoratedInterval(Interval(-2.0, 0.0), def)) - @fact round(DecoratedInterval(Interval(-1.1, 0.0), dac), RoundDown) --> DecoratedInterval(Interval(-2.0, 0.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.1, 0.0), dac), RoundDown)) --> decoration(DecoratedInterval(Interval(-2.0, 0.0), def)) - @fact floor(DecoratedInterval(Interval(-1.2, -1.1), com)) --> DecoratedInterval(Interval(-2.0, -2.0), com) - @fact decoration(floor(DecoratedInterval(Interval(-1.2, -1.1), com))) --> decoration(DecoratedInterval(Interval(-2.0, -2.0), com)) - @fact round(DecoratedInterval(Interval(-1.2, -1.1), com), RoundDown) --> DecoratedInterval(Interval(-2.0, -2.0), com) - @fact decoration(round(DecoratedInterval(Interval(-1.2, -1.1), com), RoundDown)) --> decoration(DecoratedInterval(Interval(-2.0, -2.0), com)) - @fact floor(DecoratedInterval(Interval(-1.1, -0.4), def)) --> DecoratedInterval(Interval(-2.0, -1.0), def) - @fact decoration(floor(DecoratedInterval(Interval(-1.1, -0.4), def))) --> decoration(DecoratedInterval(Interval(-2.0, -1.0), def)) - @fact round(DecoratedInterval(Interval(-1.1, -0.4), def), RoundDown) --> DecoratedInterval(Interval(-2.0, -1.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.1, -0.4), def), RoundDown)) --> decoration(DecoratedInterval(Interval(-2.0, -1.0), def)) - @fact floor(DecoratedInterval(Interval(-1.9, 2.2), com)) --> DecoratedInterval(Interval(-2.0, 2.0), def) - @fact decoration(floor(DecoratedInterval(Interval(-1.9, 2.2), com))) --> decoration(DecoratedInterval(Interval(-2.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundDown) --> DecoratedInterval(Interval(-2.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundDown)) --> decoration(DecoratedInterval(Interval(-2.0, 2.0), def)) - @fact floor(DecoratedInterval(Interval(-1.0, 2.2), trv)) --> DecoratedInterval(Interval(-1.0, 2.0), trv) - @fact decoration(floor(DecoratedInterval(Interval(-1.0, 2.2), trv))) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), trv)) - @fact round(DecoratedInterval(Interval(-1.0, 2.2), trv), RoundDown) --> DecoratedInterval(Interval(-1.0, 2.0), trv) - @fact decoration(round(DecoratedInterval(Interval(-1.0, 2.2), trv), RoundDown)) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), trv)) - @fact floor(DecoratedInterval(Interval(0.0, 2.2), trv)) --> DecoratedInterval(Interval(0.0, 2.0), trv) - @fact decoration(floor(DecoratedInterval(Interval(0.0, 2.2), trv))) --> decoration(DecoratedInterval(Interval(0.0, 2.0), trv)) - @fact round(DecoratedInterval(Interval(0.0, 2.2), trv), RoundDown) --> DecoratedInterval(Interval(0.0, 2.0), trv) - @fact decoration(round(DecoratedInterval(Interval(0.0, 2.2), trv), RoundDown)) --> decoration(DecoratedInterval(Interval(0.0, 2.0), trv)) - @fact floor(DecoratedInterval(Interval(-0.0, 2.2), com)) --> DecoratedInterval(Interval(0.0, 2.0), def) - @fact decoration(floor(DecoratedInterval(Interval(-0.0, 2.2), com))) --> decoration(DecoratedInterval(Interval(0.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(-0.0, 2.2), com), RoundDown) --> DecoratedInterval(Interval(0.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(-0.0, 2.2), com), RoundDown)) --> decoration(DecoratedInterval(Interval(0.0, 2.0), def)) - @fact floor(DecoratedInterval(Interval(-1.5, Inf), dac)) --> DecoratedInterval(Interval(-2.0, Inf), def) - @fact decoration(floor(DecoratedInterval(Interval(-1.5, Inf), dac))) --> decoration(DecoratedInterval(Interval(-2.0, Inf), def)) - @fact round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundDown) --> DecoratedInterval(Interval(-2.0, Inf), def) - @fact decoration(round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundDown)) --> decoration(DecoratedInterval(Interval(-2.0, Inf), def)) - @fact floor(DecoratedInterval(Interval(-Inf, 2.2), trv)) --> DecoratedInterval(Interval(-Inf, 2.0), trv) - @fact decoration(floor(DecoratedInterval(Interval(-Inf, 2.2), trv))) --> decoration(DecoratedInterval(Interval(-Inf, 2.0), trv)) - @fact round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundDown) --> DecoratedInterval(Interval(-Inf, 2.0), trv) - @fact decoration(round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundDown)) --> decoration(DecoratedInterval(Interval(-Inf, 2.0), trv)) +@testset "minimal_floor_dec_test" begin + @test floor(DecoratedInterval(Interval(1.1, 2.0), com)) == DecoratedInterval(Interval(1.0, 2.0), def) + @test decoration(floor(DecoratedInterval(Interval(1.1, 2.0), com))) == decoration(DecoratedInterval(Interval(1.0, 2.0), def)) + @test round(DecoratedInterval(Interval(1.1, 2.0), com), RoundDown) == DecoratedInterval(Interval(1.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(1.1, 2.0), com), RoundDown)) == decoration(DecoratedInterval(Interval(1.0, 2.0), def)) + @test floor(DecoratedInterval(Interval(-1.1, 2.0), def)) == DecoratedInterval(Interval(-2.0, 2.0), def) + @test decoration(floor(DecoratedInterval(Interval(-1.1, 2.0), def))) == decoration(DecoratedInterval(Interval(-2.0, 2.0), def)) + @test round(DecoratedInterval(Interval(-1.1, 2.0), def), RoundDown) == DecoratedInterval(Interval(-2.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.1, 2.0), def), RoundDown)) == decoration(DecoratedInterval(Interval(-2.0, 2.0), def)) + @test floor(DecoratedInterval(Interval(-1.1, 0.0), dac)) == DecoratedInterval(Interval(-2.0, 0.0), def) + @test decoration(floor(DecoratedInterval(Interval(-1.1, 0.0), dac))) == decoration(DecoratedInterval(Interval(-2.0, 0.0), def)) + @test round(DecoratedInterval(Interval(-1.1, 0.0), dac), RoundDown) == DecoratedInterval(Interval(-2.0, 0.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.1, 0.0), dac), RoundDown)) == decoration(DecoratedInterval(Interval(-2.0, 0.0), def)) + @test floor(DecoratedInterval(Interval(-1.2, -1.1), com)) == DecoratedInterval(Interval(-2.0, -2.0), com) + @test decoration(floor(DecoratedInterval(Interval(-1.2, -1.1), com))) == decoration(DecoratedInterval(Interval(-2.0, -2.0), com)) + @test round(DecoratedInterval(Interval(-1.2, -1.1), com), RoundDown) == DecoratedInterval(Interval(-2.0, -2.0), com) + @test decoration(round(DecoratedInterval(Interval(-1.2, -1.1), com), RoundDown)) == decoration(DecoratedInterval(Interval(-2.0, -2.0), com)) + @test floor(DecoratedInterval(Interval(-1.1, -0.4), def)) == DecoratedInterval(Interval(-2.0, -1.0), def) + @test decoration(floor(DecoratedInterval(Interval(-1.1, -0.4), def))) == decoration(DecoratedInterval(Interval(-2.0, -1.0), def)) + @test round(DecoratedInterval(Interval(-1.1, -0.4), def), RoundDown) == DecoratedInterval(Interval(-2.0, -1.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.1, -0.4), def), RoundDown)) == decoration(DecoratedInterval(Interval(-2.0, -1.0), def)) + @test floor(DecoratedInterval(Interval(-1.9, 2.2), com)) == DecoratedInterval(Interval(-2.0, 2.0), def) + @test decoration(floor(DecoratedInterval(Interval(-1.9, 2.2), com))) == decoration(DecoratedInterval(Interval(-2.0, 2.0), def)) + @test round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundDown) == DecoratedInterval(Interval(-2.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundDown)) == decoration(DecoratedInterval(Interval(-2.0, 2.0), def)) + @test floor(DecoratedInterval(Interval(-1.0, 2.2), trv)) == DecoratedInterval(Interval(-1.0, 2.0), trv) + @test decoration(floor(DecoratedInterval(Interval(-1.0, 2.2), trv))) == decoration(DecoratedInterval(Interval(-1.0, 2.0), trv)) + @test round(DecoratedInterval(Interval(-1.0, 2.2), trv), RoundDown) == DecoratedInterval(Interval(-1.0, 2.0), trv) + @test decoration(round(DecoratedInterval(Interval(-1.0, 2.2), trv), RoundDown)) == decoration(DecoratedInterval(Interval(-1.0, 2.0), trv)) + @test floor(DecoratedInterval(Interval(0.0, 2.2), trv)) == DecoratedInterval(Interval(0.0, 2.0), trv) + @test decoration(floor(DecoratedInterval(Interval(0.0, 2.2), trv))) == decoration(DecoratedInterval(Interval(0.0, 2.0), trv)) + @test round(DecoratedInterval(Interval(0.0, 2.2), trv), RoundDown) == DecoratedInterval(Interval(0.0, 2.0), trv) + @test decoration(round(DecoratedInterval(Interval(0.0, 2.2), trv), RoundDown)) == decoration(DecoratedInterval(Interval(0.0, 2.0), trv)) + @test floor(DecoratedInterval(Interval(-0.0, 2.2), com)) == DecoratedInterval(Interval(0.0, 2.0), def) + @test decoration(floor(DecoratedInterval(Interval(-0.0, 2.2), com))) == decoration(DecoratedInterval(Interval(0.0, 2.0), def)) + @test round(DecoratedInterval(Interval(-0.0, 2.2), com), RoundDown) == DecoratedInterval(Interval(0.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(-0.0, 2.2), com), RoundDown)) == decoration(DecoratedInterval(Interval(0.0, 2.0), def)) + @test floor(DecoratedInterval(Interval(-1.5, Inf), dac)) == DecoratedInterval(Interval(-2.0, Inf), def) + @test decoration(floor(DecoratedInterval(Interval(-1.5, Inf), dac))) == decoration(DecoratedInterval(Interval(-2.0, Inf), def)) + @test round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundDown) == DecoratedInterval(Interval(-2.0, Inf), def) + @test decoration(round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundDown)) == decoration(DecoratedInterval(Interval(-2.0, Inf), def)) + @test floor(DecoratedInterval(Interval(-Inf, 2.2), trv)) == DecoratedInterval(Interval(-Inf, 2.0), trv) + @test decoration(floor(DecoratedInterval(Interval(-Inf, 2.2), trv))) == decoration(DecoratedInterval(Interval(-Inf, 2.0), trv)) + @test round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundDown) == DecoratedInterval(Interval(-Inf, 2.0), trv) + @test decoration(round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundDown)) == decoration(DecoratedInterval(Interval(-Inf, 2.0), trv)) end -facts("minimal_trunc_test") do - @fact trunc(∅) --> ∅ - @fact round(∅, RoundToZero) --> ∅ - @fact trunc(entireinterval(Float64)) --> entireinterval(Float64) - @fact round(entireinterval(Float64), RoundToZero) --> entireinterval(Float64) - @fact trunc(Interval(1.1, 2.1)) --> Interval(1.0, 2.0) - @fact round(Interval(1.1, 2.1), RoundToZero) --> Interval(1.0, 2.0) - @fact trunc(Interval(-1.1, 2.0)) --> Interval(-1.0, 2.0) - @fact round(Interval(-1.1, 2.0), RoundToZero) --> Interval(-1.0, 2.0) - @fact trunc(Interval(-1.1, 0.0)) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, 0.0), RoundToZero) --> Interval(-1.0, 0.0) - @fact trunc(Interval(-1.1, -0.0)) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, -0.0), RoundToZero) --> Interval(-1.0, 0.0) - @fact trunc(Interval(-1.1, -0.4)) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, -0.4), RoundToZero) --> Interval(-1.0, 0.0) - @fact trunc(Interval(-1.9, 2.2)) --> Interval(-1.0, 2.0) - @fact round(Interval(-1.9, 2.2), RoundToZero) --> Interval(-1.0, 2.0) - @fact trunc(Interval(-1.0, 2.2)) --> Interval(-1.0, 2.0) - @fact round(Interval(-1.0, 2.2), RoundToZero) --> Interval(-1.0, 2.0) - @fact trunc(Interval(0.0, 2.2)) --> Interval(0.0, 2.0) - @fact round(Interval(0.0, 2.2), RoundToZero) --> Interval(0.0, 2.0) - @fact trunc(Interval(-0.0, 2.2)) --> Interval(0.0, 2.0) - @fact round(Interval(-0.0, 2.2), RoundToZero) --> Interval(0.0, 2.0) - @fact trunc(Interval(-1.5, Inf)) --> Interval(-1.0, Inf) - @fact round(Interval(-1.5, Inf), RoundToZero) --> Interval(-1.0, Inf) - @fact trunc(Interval(-Inf, 2.2)) --> Interval(-Inf, 2.0) - @fact round(Interval(-Inf, 2.2), RoundToZero) --> Interval(-Inf, 2.0) +@testset "minimal_trunc_test" begin + @test trunc(∅) == ∅ + @test round(∅, RoundToZero) == ∅ + @test trunc(entireinterval(Float64)) == entireinterval(Float64) + @test round(entireinterval(Float64), RoundToZero) == entireinterval(Float64) + @test trunc(Interval(1.1, 2.1)) == Interval(1.0, 2.0) + @test round(Interval(1.1, 2.1), RoundToZero) == Interval(1.0, 2.0) + @test trunc(Interval(-1.1, 2.0)) == Interval(-1.0, 2.0) + @test round(Interval(-1.1, 2.0), RoundToZero) == Interval(-1.0, 2.0) + @test trunc(Interval(-1.1, 0.0)) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, 0.0), RoundToZero) == Interval(-1.0, 0.0) + @test trunc(Interval(-1.1, -0.0)) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, -0.0), RoundToZero) == Interval(-1.0, 0.0) + @test trunc(Interval(-1.1, -0.4)) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, -0.4), RoundToZero) == Interval(-1.0, 0.0) + @test trunc(Interval(-1.9, 2.2)) == Interval(-1.0, 2.0) + @test round(Interval(-1.9, 2.2), RoundToZero) == Interval(-1.0, 2.0) + @test trunc(Interval(-1.0, 2.2)) == Interval(-1.0, 2.0) + @test round(Interval(-1.0, 2.2), RoundToZero) == Interval(-1.0, 2.0) + @test trunc(Interval(0.0, 2.2)) == Interval(0.0, 2.0) + @test round(Interval(0.0, 2.2), RoundToZero) == Interval(0.0, 2.0) + @test trunc(Interval(-0.0, 2.2)) == Interval(0.0, 2.0) + @test round(Interval(-0.0, 2.2), RoundToZero) == Interval(0.0, 2.0) + @test trunc(Interval(-1.5, Inf)) == Interval(-1.0, Inf) + @test round(Interval(-1.5, Inf), RoundToZero) == Interval(-1.0, Inf) + @test trunc(Interval(-Inf, 2.2)) == Interval(-Inf, 2.0) + @test round(Interval(-Inf, 2.2), RoundToZero) == Interval(-Inf, 2.0) end -facts("minimal_trunc_dec_test") do - @fact trunc(DecoratedInterval(Interval(1.1, 2.1), com)) --> DecoratedInterval(Interval(1.0, 2.0), def) - @fact decoration(trunc(DecoratedInterval(Interval(1.1, 2.1), com))) --> decoration(DecoratedInterval(Interval(1.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(1.1, 2.1), com), RoundToZero) --> DecoratedInterval(Interval(1.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(1.1, 2.1), com), RoundToZero)) --> decoration(DecoratedInterval(Interval(1.0, 2.0), def)) - @fact trunc(DecoratedInterval(Interval(1.1, 1.9), com)) --> DecoratedInterval(Interval(1.0, 1.0), com) - @fact decoration(trunc(DecoratedInterval(Interval(1.1, 1.9), com))) --> decoration(DecoratedInterval(Interval(1.0, 1.0), com)) - @fact round(DecoratedInterval(Interval(1.1, 1.9), com), RoundToZero) --> DecoratedInterval(Interval(1.0, 1.0), com) - @fact decoration(round(DecoratedInterval(Interval(1.1, 1.9), com), RoundToZero)) --> decoration(DecoratedInterval(Interval(1.0, 1.0), com)) - @fact trunc(DecoratedInterval(Interval(-1.1, 2.0), dac)) --> DecoratedInterval(Interval(-1.0, 2.0), def) - @fact decoration(trunc(DecoratedInterval(Interval(-1.1, 2.0), dac))) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(-1.1, 2.0), dac), RoundToZero) --> DecoratedInterval(Interval(-1.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.1, 2.0), dac), RoundToZero)) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) - @fact trunc(DecoratedInterval(Interval(-1.1, 0.0), trv)) --> DecoratedInterval(Interval(-1.0, 0.0), trv) - @fact decoration(trunc(DecoratedInterval(Interval(-1.1, 0.0), trv))) --> decoration(DecoratedInterval(Interval(-1.0, 0.0), trv)) - @fact round(DecoratedInterval(Interval(-1.1, 0.0), trv), RoundToZero) --> DecoratedInterval(Interval(-1.0, 0.0), trv) - @fact decoration(round(DecoratedInterval(Interval(-1.1, 0.0), trv), RoundToZero)) --> decoration(DecoratedInterval(Interval(-1.0, 0.0), trv)) - @fact trunc(DecoratedInterval(Interval(-1.1, -0.0), def)) --> DecoratedInterval(Interval(-1.0, 0.0), def) - @fact decoration(trunc(DecoratedInterval(Interval(-1.1, -0.0), def))) --> decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) - @fact round(DecoratedInterval(Interval(-1.1, -0.0), def), RoundToZero) --> DecoratedInterval(Interval(-1.0, 0.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.1, -0.0), def), RoundToZero)) --> decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) - @fact trunc(DecoratedInterval(Interval(-1.1, -0.4), com)) --> DecoratedInterval(Interval(-1.0, 0.0), def) - @fact decoration(trunc(DecoratedInterval(Interval(-1.1, -0.4), com))) --> decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) - @fact round(DecoratedInterval(Interval(-1.1, -0.4), com), RoundToZero) --> DecoratedInterval(Interval(-1.0, 0.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.1, -0.4), com), RoundToZero)) --> decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) - @fact trunc(DecoratedInterval(Interval(-1.9, 2.2), def)) --> DecoratedInterval(Interval(-1.0, 2.0), def) - @fact decoration(trunc(DecoratedInterval(Interval(-1.9, 2.2), def))) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(-1.9, 2.2), def), RoundToZero) --> DecoratedInterval(Interval(-1.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.9, 2.2), def), RoundToZero)) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) - @fact trunc(DecoratedInterval(Interval(-1.0, 2.2), dac)) --> DecoratedInterval(Interval(-1.0, 2.0), def) - @fact decoration(trunc(DecoratedInterval(Interval(-1.0, 2.2), dac))) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(-1.0, 2.2), dac), RoundToZero) --> DecoratedInterval(Interval(-1.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.0, 2.2), dac), RoundToZero)) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) - @fact trunc(DecoratedInterval(Interval(-1.5, Inf), dac)) --> DecoratedInterval(Interval(-1.0, Inf), def) - @fact decoration(trunc(DecoratedInterval(Interval(-1.5, Inf), dac))) --> decoration(DecoratedInterval(Interval(-1.0, Inf), def)) - @fact round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundToZero) --> DecoratedInterval(Interval(-1.0, Inf), def) - @fact decoration(round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundToZero)) --> decoration(DecoratedInterval(Interval(-1.0, Inf), def)) - @fact trunc(DecoratedInterval(Interval(-Inf, 2.2), trv)) --> DecoratedInterval(Interval(-Inf, 2.0), trv) - @fact decoration(trunc(DecoratedInterval(Interval(-Inf, 2.2), trv))) --> decoration(DecoratedInterval(Interval(-Inf, 2.0), trv)) - @fact round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundToZero) --> DecoratedInterval(Interval(-Inf, 2.0), trv) - @fact decoration(round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundToZero)) --> decoration(DecoratedInterval(Interval(-Inf, 2.0), trv)) +@testset "minimal_trunc_dec_test" begin + @test trunc(DecoratedInterval(Interval(1.1, 2.1), com)) == DecoratedInterval(Interval(1.0, 2.0), def) + @test decoration(trunc(DecoratedInterval(Interval(1.1, 2.1), com))) == decoration(DecoratedInterval(Interval(1.0, 2.0), def)) + @test round(DecoratedInterval(Interval(1.1, 2.1), com), RoundToZero) == DecoratedInterval(Interval(1.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(1.1, 2.1), com), RoundToZero)) == decoration(DecoratedInterval(Interval(1.0, 2.0), def)) + @test trunc(DecoratedInterval(Interval(1.1, 1.9), com)) == DecoratedInterval(Interval(1.0, 1.0), com) + @test decoration(trunc(DecoratedInterval(Interval(1.1, 1.9), com))) == decoration(DecoratedInterval(Interval(1.0, 1.0), com)) + @test round(DecoratedInterval(Interval(1.1, 1.9), com), RoundToZero) == DecoratedInterval(Interval(1.0, 1.0), com) + @test decoration(round(DecoratedInterval(Interval(1.1, 1.9), com), RoundToZero)) == decoration(DecoratedInterval(Interval(1.0, 1.0), com)) + @test trunc(DecoratedInterval(Interval(-1.1, 2.0), dac)) == DecoratedInterval(Interval(-1.0, 2.0), def) + @test decoration(trunc(DecoratedInterval(Interval(-1.1, 2.0), dac))) == decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) + @test round(DecoratedInterval(Interval(-1.1, 2.0), dac), RoundToZero) == DecoratedInterval(Interval(-1.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.1, 2.0), dac), RoundToZero)) == decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) + @test trunc(DecoratedInterval(Interval(-1.1, 0.0), trv)) == DecoratedInterval(Interval(-1.0, 0.0), trv) + @test decoration(trunc(DecoratedInterval(Interval(-1.1, 0.0), trv))) == decoration(DecoratedInterval(Interval(-1.0, 0.0), trv)) + @test round(DecoratedInterval(Interval(-1.1, 0.0), trv), RoundToZero) == DecoratedInterval(Interval(-1.0, 0.0), trv) + @test decoration(round(DecoratedInterval(Interval(-1.1, 0.0), trv), RoundToZero)) == decoration(DecoratedInterval(Interval(-1.0, 0.0), trv)) + @test trunc(DecoratedInterval(Interval(-1.1, -0.0), def)) == DecoratedInterval(Interval(-1.0, 0.0), def) + @test decoration(trunc(DecoratedInterval(Interval(-1.1, -0.0), def))) == decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) + @test round(DecoratedInterval(Interval(-1.1, -0.0), def), RoundToZero) == DecoratedInterval(Interval(-1.0, 0.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.1, -0.0), def), RoundToZero)) == decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) + @test trunc(DecoratedInterval(Interval(-1.1, -0.4), com)) == DecoratedInterval(Interval(-1.0, 0.0), def) + @test decoration(trunc(DecoratedInterval(Interval(-1.1, -0.4), com))) == decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) + @test round(DecoratedInterval(Interval(-1.1, -0.4), com), RoundToZero) == DecoratedInterval(Interval(-1.0, 0.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.1, -0.4), com), RoundToZero)) == decoration(DecoratedInterval(Interval(-1.0, 0.0), def)) + @test trunc(DecoratedInterval(Interval(-1.9, 2.2), def)) == DecoratedInterval(Interval(-1.0, 2.0), def) + @test decoration(trunc(DecoratedInterval(Interval(-1.9, 2.2), def))) == decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) + @test round(DecoratedInterval(Interval(-1.9, 2.2), def), RoundToZero) == DecoratedInterval(Interval(-1.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.9, 2.2), def), RoundToZero)) == decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) + @test trunc(DecoratedInterval(Interval(-1.0, 2.2), dac)) == DecoratedInterval(Interval(-1.0, 2.0), def) + @test decoration(trunc(DecoratedInterval(Interval(-1.0, 2.2), dac))) == decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) + @test round(DecoratedInterval(Interval(-1.0, 2.2), dac), RoundToZero) == DecoratedInterval(Interval(-1.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.0, 2.2), dac), RoundToZero)) == decoration(DecoratedInterval(Interval(-1.0, 2.0), def)) + @test trunc(DecoratedInterval(Interval(-1.5, Inf), dac)) == DecoratedInterval(Interval(-1.0, Inf), def) + @test decoration(trunc(DecoratedInterval(Interval(-1.5, Inf), dac))) == decoration(DecoratedInterval(Interval(-1.0, Inf), def)) + @test round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundToZero) == DecoratedInterval(Interval(-1.0, Inf), def) + @test decoration(round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundToZero)) == decoration(DecoratedInterval(Interval(-1.0, Inf), def)) + @test trunc(DecoratedInterval(Interval(-Inf, 2.2), trv)) == DecoratedInterval(Interval(-Inf, 2.0), trv) + @test decoration(trunc(DecoratedInterval(Interval(-Inf, 2.2), trv))) == decoration(DecoratedInterval(Interval(-Inf, 2.0), trv)) + @test round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundToZero) == DecoratedInterval(Interval(-Inf, 2.0), trv) + @test decoration(round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundToZero)) == decoration(DecoratedInterval(Interval(-Inf, 2.0), trv)) end -facts("minimal_roundTiesToEven_test") do - @fact round(∅) --> ∅ - @fact round(∅, RoundNearest) --> ∅ - @fact round(∅, RoundTiesToEven) --> ∅ - @fact round(entireinterval(Float64)) --> entireinterval(Float64) - @fact round(entireinterval(Float64), RoundNearest) --> entireinterval(Float64) - @fact round(entireinterval(Float64), RoundTiesToEven) --> entireinterval(Float64) - @fact round(Interval(1.1, 2.1)) --> Interval(1.0, 2.0) - @fact round(Interval(1.1, 2.1), RoundNearest) --> Interval(1.0, 2.0) - @fact round(Interval(1.1, 2.1), RoundTiesToEven) --> Interval(1.0, 2.0) - @fact round(Interval(-1.1, 2.0)) --> Interval(-1.0, 2.0) - @fact round(Interval(-1.1, 2.0), RoundNearest) --> Interval(-1.0, 2.0) - @fact round(Interval(-1.1, 2.0), RoundTiesToEven) --> Interval(-1.0, 2.0) - @fact round(Interval(-1.1, -0.4)) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, -0.4), RoundNearest) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, -0.4), RoundTiesToEven) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, 0.0)) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, 0.0), RoundNearest) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, 0.0), RoundTiesToEven) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, -0.0)) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, -0.0), RoundNearest) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, -0.0), RoundTiesToEven) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.9, 2.2)) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.9, 2.2), RoundNearest) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.9, 2.2), RoundTiesToEven) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.0, 2.2)) --> Interval(-1.0, 2.0) - @fact round(Interval(-1.0, 2.2), RoundNearest) --> Interval(-1.0, 2.0) - @fact round(Interval(-1.0, 2.2), RoundTiesToEven) --> Interval(-1.0, 2.0) - @fact round(Interval(1.5, 2.1)) --> Interval(2.0, 2.0) - @fact round(Interval(1.5, 2.1), RoundNearest) --> Interval(2.0, 2.0) - @fact round(Interval(1.5, 2.1), RoundTiesToEven) --> Interval(2.0, 2.0) - @fact round(Interval(-1.5, 2.0)) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.5, 2.0), RoundNearest) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.5, 2.0), RoundTiesToEven) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.1, -0.5)) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, -0.5), RoundNearest) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, -0.5), RoundTiesToEven) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.9, 2.5)) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.9, 2.5), RoundNearest) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.9, 2.5), RoundTiesToEven) --> Interval(-2.0, 2.0) - @fact round(Interval(0.0, 2.5)) --> Interval(0.0, 2.0) - @fact round(Interval(0.0, 2.5), RoundNearest) --> Interval(0.0, 2.0) - @fact round(Interval(0.0, 2.5), RoundTiesToEven) --> Interval(0.0, 2.0) - @fact round(Interval(-0.0, 2.5)) --> Interval(0.0, 2.0) - @fact round(Interval(-0.0, 2.5), RoundNearest) --> Interval(0.0, 2.0) - @fact round(Interval(-0.0, 2.5), RoundTiesToEven) --> Interval(0.0, 2.0) - @fact round(Interval(-1.5, 2.5)) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.5, 2.5), RoundNearest) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.5, 2.5), RoundTiesToEven) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.5, Inf)) --> Interval(-2.0, Inf) - @fact round(Interval(-1.5, Inf), RoundNearest) --> Interval(-2.0, Inf) - @fact round(Interval(-1.5, Inf), RoundTiesToEven) --> Interval(-2.0, Inf) - @fact round(Interval(-Inf, 2.2)) --> Interval(-Inf, 2.0) - @fact round(Interval(-Inf, 2.2), RoundNearest) --> Interval(-Inf, 2.0) - @fact round(Interval(-Inf, 2.2), RoundTiesToEven) --> Interval(-Inf, 2.0) +@testset "minimal_roundTiesToEven_test" begin + @test round(∅) == ∅ + @test round(∅, RoundNearest) == ∅ + @test round(∅, RoundTiesToEven) == ∅ + @test round(entireinterval(Float64)) == entireinterval(Float64) + @test round(entireinterval(Float64), RoundNearest) == entireinterval(Float64) + @test round(entireinterval(Float64), RoundTiesToEven) == entireinterval(Float64) + @test round(Interval(1.1, 2.1)) == Interval(1.0, 2.0) + @test round(Interval(1.1, 2.1), RoundNearest) == Interval(1.0, 2.0) + @test round(Interval(1.1, 2.1), RoundTiesToEven) == Interval(1.0, 2.0) + @test round(Interval(-1.1, 2.0)) == Interval(-1.0, 2.0) + @test round(Interval(-1.1, 2.0), RoundNearest) == Interval(-1.0, 2.0) + @test round(Interval(-1.1, 2.0), RoundTiesToEven) == Interval(-1.0, 2.0) + @test round(Interval(-1.1, -0.4)) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, -0.4), RoundNearest) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, -0.4), RoundTiesToEven) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, 0.0)) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, 0.0), RoundNearest) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, 0.0), RoundTiesToEven) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, -0.0)) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, -0.0), RoundNearest) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, -0.0), RoundTiesToEven) == Interval(-1.0, 0.0) + @test round(Interval(-1.9, 2.2)) == Interval(-2.0, 2.0) + @test round(Interval(-1.9, 2.2), RoundNearest) == Interval(-2.0, 2.0) + @test round(Interval(-1.9, 2.2), RoundTiesToEven) == Interval(-2.0, 2.0) + @test round(Interval(-1.0, 2.2)) == Interval(-1.0, 2.0) + @test round(Interval(-1.0, 2.2), RoundNearest) == Interval(-1.0, 2.0) + @test round(Interval(-1.0, 2.2), RoundTiesToEven) == Interval(-1.0, 2.0) + @test round(Interval(1.5, 2.1)) == Interval(2.0, 2.0) + @test round(Interval(1.5, 2.1), RoundNearest) == Interval(2.0, 2.0) + @test round(Interval(1.5, 2.1), RoundTiesToEven) == Interval(2.0, 2.0) + @test round(Interval(-1.5, 2.0)) == Interval(-2.0, 2.0) + @test round(Interval(-1.5, 2.0), RoundNearest) == Interval(-2.0, 2.0) + @test round(Interval(-1.5, 2.0), RoundTiesToEven) == Interval(-2.0, 2.0) + @test round(Interval(-1.1, -0.5)) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, -0.5), RoundNearest) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, -0.5), RoundTiesToEven) == Interval(-1.0, 0.0) + @test round(Interval(-1.9, 2.5)) == Interval(-2.0, 2.0) + @test round(Interval(-1.9, 2.5), RoundNearest) == Interval(-2.0, 2.0) + @test round(Interval(-1.9, 2.5), RoundTiesToEven) == Interval(-2.0, 2.0) + @test round(Interval(0.0, 2.5)) == Interval(0.0, 2.0) + @test round(Interval(0.0, 2.5), RoundNearest) == Interval(0.0, 2.0) + @test round(Interval(0.0, 2.5), RoundTiesToEven) == Interval(0.0, 2.0) + @test round(Interval(-0.0, 2.5)) == Interval(0.0, 2.0) + @test round(Interval(-0.0, 2.5), RoundNearest) == Interval(0.0, 2.0) + @test round(Interval(-0.0, 2.5), RoundTiesToEven) == Interval(0.0, 2.0) + @test round(Interval(-1.5, 2.5)) == Interval(-2.0, 2.0) + @test round(Interval(-1.5, 2.5), RoundNearest) == Interval(-2.0, 2.0) + @test round(Interval(-1.5, 2.5), RoundTiesToEven) == Interval(-2.0, 2.0) + @test round(Interval(-1.5, Inf)) == Interval(-2.0, Inf) + @test round(Interval(-1.5, Inf), RoundNearest) == Interval(-2.0, Inf) + @test round(Interval(-1.5, Inf), RoundTiesToEven) == Interval(-2.0, Inf) + @test round(Interval(-Inf, 2.2)) == Interval(-Inf, 2.0) + @test round(Interval(-Inf, 2.2), RoundNearest) == Interval(-Inf, 2.0) + @test round(Interval(-Inf, 2.2), RoundTiesToEven) == Interval(-Inf, 2.0) end -facts("minimal_roundTiesToEven_dec_test") do - @fact round(DecoratedInterval(Interval(1.1, 2.1), com)) --> DecoratedInterval(Interval(1.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(1.1, 2.1), com))) --> decoration(DecoratedInterval(Interval(1.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(1.1, 2.1), com), RoundNearest) --> DecoratedInterval(Interval(1.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(1.1, 2.1), com), RoundNearest)) --> decoration(DecoratedInterval(Interval(1.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(1.1, 2.1), com), RoundTiesToEven) --> DecoratedInterval(Interval(1.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(1.1, 2.1), com), RoundTiesToEven)) --> decoration(DecoratedInterval(Interval(1.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(-1.1, 2.0), trv)) --> DecoratedInterval(Interval(-1.0, 2.0), trv) - @fact decoration(round(DecoratedInterval(Interval(-1.1, 2.0), trv))) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), trv)) - @fact round(DecoratedInterval(Interval(-1.1, 2.0), trv), RoundNearest) --> DecoratedInterval(Interval(-1.0, 2.0), trv) - @fact decoration(round(DecoratedInterval(Interval(-1.1, 2.0), trv), RoundNearest)) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), trv)) - @fact round(DecoratedInterval(Interval(-1.1, 2.0), trv), RoundTiesToEven) --> DecoratedInterval(Interval(-1.0, 2.0), trv) - @fact decoration(round(DecoratedInterval(Interval(-1.1, 2.0), trv), RoundTiesToEven)) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), trv)) - @fact round(DecoratedInterval(Interval(-1.6, -1.5), com)) --> DecoratedInterval(Interval(-2.0, -2.0), dac) - @fact decoration(round(DecoratedInterval(Interval(-1.6, -1.5), com))) --> decoration(DecoratedInterval(Interval(-2.0, -2.0), dac)) - @fact round(DecoratedInterval(Interval(-1.6, -1.5), com), RoundNearest) --> DecoratedInterval(Interval(-2.0, -2.0), dac) - @fact decoration(round(DecoratedInterval(Interval(-1.6, -1.5), com), RoundNearest)) --> decoration(DecoratedInterval(Interval(-2.0, -2.0), dac)) - @fact round(DecoratedInterval(Interval(-1.6, -1.5), com), RoundTiesToEven) --> DecoratedInterval(Interval(-2.0, -2.0), dac) - @fact decoration(round(DecoratedInterval(Interval(-1.6, -1.5), com), RoundTiesToEven)) --> decoration(DecoratedInterval(Interval(-2.0, -2.0), dac)) - @fact round(DecoratedInterval(Interval(-1.6, -1.4), com)) --> DecoratedInterval(Interval(-2.0, -1.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.6, -1.4), com))) --> decoration(DecoratedInterval(Interval(-2.0, -1.0), def)) - @fact round(DecoratedInterval(Interval(-1.6, -1.4), com), RoundNearest) --> DecoratedInterval(Interval(-2.0, -1.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.6, -1.4), com), RoundNearest)) --> decoration(DecoratedInterval(Interval(-2.0, -1.0), def)) - @fact round(DecoratedInterval(Interval(-1.6, -1.4), com), RoundTiesToEven) --> DecoratedInterval(Interval(-2.0, -1.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.6, -1.4), com), RoundTiesToEven)) --> decoration(DecoratedInterval(Interval(-2.0, -1.0), def)) - @fact round(DecoratedInterval(Interval(-1.5, Inf), dac)) --> DecoratedInterval(Interval(-2.0, Inf), def) - @fact decoration(round(DecoratedInterval(Interval(-1.5, Inf), dac))) --> decoration(DecoratedInterval(Interval(-2.0, Inf), def)) - @fact round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundNearest) --> DecoratedInterval(Interval(-2.0, Inf), def) - @fact decoration(round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundNearest)) --> decoration(DecoratedInterval(Interval(-2.0, Inf), def)) - @fact round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundTiesToEven) --> DecoratedInterval(Interval(-2.0, Inf), def) - @fact decoration(round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundTiesToEven)) --> decoration(DecoratedInterval(Interval(-2.0, Inf), def)) - @fact round(DecoratedInterval(Interval(-Inf, 2.2), trv)) --> DecoratedInterval(Interval(-Inf, 2.0), trv) - @fact decoration(round(DecoratedInterval(Interval(-Inf, 2.2), trv))) --> decoration(DecoratedInterval(Interval(-Inf, 2.0), trv)) - @fact round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundNearest) --> DecoratedInterval(Interval(-Inf, 2.0), trv) - @fact decoration(round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundNearest)) --> decoration(DecoratedInterval(Interval(-Inf, 2.0), trv)) - @fact round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundTiesToEven) --> DecoratedInterval(Interval(-Inf, 2.0), trv) - @fact decoration(round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundTiesToEven)) --> decoration(DecoratedInterval(Interval(-Inf, 2.0), trv)) +@testset "minimal_roundTiesToEven_dec_test" begin + @test round(DecoratedInterval(Interval(1.1, 2.1), com)) == DecoratedInterval(Interval(1.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(1.1, 2.1), com))) == decoration(DecoratedInterval(Interval(1.0, 2.0), def)) + @test round(DecoratedInterval(Interval(1.1, 2.1), com), RoundNearest) == DecoratedInterval(Interval(1.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(1.1, 2.1), com), RoundNearest)) == decoration(DecoratedInterval(Interval(1.0, 2.0), def)) + @test round(DecoratedInterval(Interval(1.1, 2.1), com), RoundTiesToEven) == DecoratedInterval(Interval(1.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(1.1, 2.1), com), RoundTiesToEven)) == decoration(DecoratedInterval(Interval(1.0, 2.0), def)) + @test round(DecoratedInterval(Interval(-1.1, 2.0), trv)) == DecoratedInterval(Interval(-1.0, 2.0), trv) + @test decoration(round(DecoratedInterval(Interval(-1.1, 2.0), trv))) == decoration(DecoratedInterval(Interval(-1.0, 2.0), trv)) + @test round(DecoratedInterval(Interval(-1.1, 2.0), trv), RoundNearest) == DecoratedInterval(Interval(-1.0, 2.0), trv) + @test decoration(round(DecoratedInterval(Interval(-1.1, 2.0), trv), RoundNearest)) == decoration(DecoratedInterval(Interval(-1.0, 2.0), trv)) + @test round(DecoratedInterval(Interval(-1.1, 2.0), trv), RoundTiesToEven) == DecoratedInterval(Interval(-1.0, 2.0), trv) + @test decoration(round(DecoratedInterval(Interval(-1.1, 2.0), trv), RoundTiesToEven)) == decoration(DecoratedInterval(Interval(-1.0, 2.0), trv)) + @test round(DecoratedInterval(Interval(-1.6, -1.5), com)) == DecoratedInterval(Interval(-2.0, -2.0), dac) + @test decoration(round(DecoratedInterval(Interval(-1.6, -1.5), com))) == decoration(DecoratedInterval(Interval(-2.0, -2.0), dac)) + @test round(DecoratedInterval(Interval(-1.6, -1.5), com), RoundNearest) == DecoratedInterval(Interval(-2.0, -2.0), dac) + @test decoration(round(DecoratedInterval(Interval(-1.6, -1.5), com), RoundNearest)) == decoration(DecoratedInterval(Interval(-2.0, -2.0), dac)) + @test round(DecoratedInterval(Interval(-1.6, -1.5), com), RoundTiesToEven) == DecoratedInterval(Interval(-2.0, -2.0), dac) + @test decoration(round(DecoratedInterval(Interval(-1.6, -1.5), com), RoundTiesToEven)) == decoration(DecoratedInterval(Interval(-2.0, -2.0), dac)) + @test round(DecoratedInterval(Interval(-1.6, -1.4), com)) == DecoratedInterval(Interval(-2.0, -1.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.6, -1.4), com))) == decoration(DecoratedInterval(Interval(-2.0, -1.0), def)) + @test round(DecoratedInterval(Interval(-1.6, -1.4), com), RoundNearest) == DecoratedInterval(Interval(-2.0, -1.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.6, -1.4), com), RoundNearest)) == decoration(DecoratedInterval(Interval(-2.0, -1.0), def)) + @test round(DecoratedInterval(Interval(-1.6, -1.4), com), RoundTiesToEven) == DecoratedInterval(Interval(-2.0, -1.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.6, -1.4), com), RoundTiesToEven)) == decoration(DecoratedInterval(Interval(-2.0, -1.0), def)) + @test round(DecoratedInterval(Interval(-1.5, Inf), dac)) == DecoratedInterval(Interval(-2.0, Inf), def) + @test decoration(round(DecoratedInterval(Interval(-1.5, Inf), dac))) == decoration(DecoratedInterval(Interval(-2.0, Inf), def)) + @test round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundNearest) == DecoratedInterval(Interval(-2.0, Inf), def) + @test decoration(round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundNearest)) == decoration(DecoratedInterval(Interval(-2.0, Inf), def)) + @test round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundTiesToEven) == DecoratedInterval(Interval(-2.0, Inf), def) + @test decoration(round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundTiesToEven)) == decoration(DecoratedInterval(Interval(-2.0, Inf), def)) + @test round(DecoratedInterval(Interval(-Inf, 2.2), trv)) == DecoratedInterval(Interval(-Inf, 2.0), trv) + @test decoration(round(DecoratedInterval(Interval(-Inf, 2.2), trv))) == decoration(DecoratedInterval(Interval(-Inf, 2.0), trv)) + @test round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundNearest) == DecoratedInterval(Interval(-Inf, 2.0), trv) + @test decoration(round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundNearest)) == decoration(DecoratedInterval(Interval(-Inf, 2.0), trv)) + @test round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundTiesToEven) == DecoratedInterval(Interval(-Inf, 2.0), trv) + @test decoration(round(DecoratedInterval(Interval(-Inf, 2.2), trv), RoundTiesToEven)) == decoration(DecoratedInterval(Interval(-Inf, 2.0), trv)) end -facts("minimal_roundTiesToAway_test") do - @fact round(∅, RoundNearestTiesAway) --> ∅ - @fact round(∅, RoundTiesToAway) --> ∅ - @fact round(entireinterval(Float64), RoundNearestTiesAway) --> entireinterval(Float64) - @fact round(entireinterval(Float64), RoundTiesToAway) --> entireinterval(Float64) - @fact round(Interval(1.1, 2.1), RoundNearestTiesAway) --> Interval(1.0, 2.0) - @fact round(Interval(1.1, 2.1), RoundTiesToAway) --> Interval(1.0, 2.0) - @fact round(Interval(-1.1, 2.0), RoundNearestTiesAway) --> Interval(-1.0, 2.0) - @fact round(Interval(-1.1, 2.0), RoundTiesToAway) --> Interval(-1.0, 2.0) - @fact round(Interval(-1.1, 0.0), RoundNearestTiesAway) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, 0.0), RoundTiesToAway) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, -0.0), RoundNearestTiesAway) --> Interval(-1.0, -0.0) - @fact round(Interval(-1.1, -0.0), RoundTiesToAway) --> Interval(-1.0, -0.0) - @fact round(Interval(-1.1, -0.4), RoundNearestTiesAway) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.1, -0.4), RoundTiesToAway) --> Interval(-1.0, 0.0) - @fact round(Interval(-1.9, 2.2), RoundNearestTiesAway) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.9, 2.2), RoundTiesToAway) --> Interval(-2.0, 2.0) - @fact round(Interval(-1.0, 2.2), RoundNearestTiesAway) --> Interval(-1.0, 2.0) - @fact round(Interval(-1.0, 2.2), RoundTiesToAway) --> Interval(-1.0, 2.0) - @fact round(Interval(0.5, 2.1), RoundNearestTiesAway) --> Interval(1.0, 2.0) - @fact round(Interval(0.5, 2.1), RoundTiesToAway) --> Interval(1.0, 2.0) - @fact round(Interval(-2.5, 2.0), RoundNearestTiesAway) --> Interval(-3.0, 2.0) - @fact round(Interval(-2.5, 2.0), RoundTiesToAway) --> Interval(-3.0, 2.0) - @fact round(Interval(-1.1, -0.5), RoundNearestTiesAway) --> Interval(-1.0, -1.0) - @fact round(Interval(-1.1, -0.5), RoundTiesToAway) --> Interval(-1.0, -1.0) - @fact round(Interval(-1.9, 2.5), RoundNearestTiesAway) --> Interval(-2.0, 3.0) - @fact round(Interval(-1.9, 2.5), RoundTiesToAway) --> Interval(-2.0, 3.0) - @fact round(Interval(-1.5, 2.5), RoundNearestTiesAway) --> Interval(-2.0, 3.0) - @fact round(Interval(-1.5, 2.5), RoundTiesToAway) --> Interval(-2.0, 3.0) - @fact round(Interval(0.0, 2.5), RoundNearestTiesAway) --> Interval(0.0, 3.0) - @fact round(Interval(0.0, 2.5), RoundTiesToAway) --> Interval(0.0, 3.0) - @fact round(Interval(-0.0, 2.5), RoundNearestTiesAway) --> Interval(0.0, 3.0) - @fact round(Interval(-0.0, 2.5), RoundTiesToAway) --> Interval(0.0, 3.0) - @fact round(Interval(-1.5, Inf), RoundNearestTiesAway) --> Interval(-2.0, Inf) - @fact round(Interval(-1.5, Inf), RoundTiesToAway) --> Interval(-2.0, Inf) - @fact round(Interval(-Inf, 2.2), RoundNearestTiesAway) --> Interval(-Inf, 2.0) - @fact round(Interval(-Inf, 2.2), RoundTiesToAway) --> Interval(-Inf, 2.0) +@testset "minimal_roundTiesToAway_test" begin + @test round(∅, RoundNearestTiesAway) == ∅ + @test round(∅, RoundTiesToAway) == ∅ + @test round(entireinterval(Float64), RoundNearestTiesAway) == entireinterval(Float64) + @test round(entireinterval(Float64), RoundTiesToAway) == entireinterval(Float64) + @test round(Interval(1.1, 2.1), RoundNearestTiesAway) == Interval(1.0, 2.0) + @test round(Interval(1.1, 2.1), RoundTiesToAway) == Interval(1.0, 2.0) + @test round(Interval(-1.1, 2.0), RoundNearestTiesAway) == Interval(-1.0, 2.0) + @test round(Interval(-1.1, 2.0), RoundTiesToAway) == Interval(-1.0, 2.0) + @test round(Interval(-1.1, 0.0), RoundNearestTiesAway) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, 0.0), RoundTiesToAway) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, -0.0), RoundNearestTiesAway) == Interval(-1.0, -0.0) + @test round(Interval(-1.1, -0.0), RoundTiesToAway) == Interval(-1.0, -0.0) + @test round(Interval(-1.1, -0.4), RoundNearestTiesAway) == Interval(-1.0, 0.0) + @test round(Interval(-1.1, -0.4), RoundTiesToAway) == Interval(-1.0, 0.0) + @test round(Interval(-1.9, 2.2), RoundNearestTiesAway) == Interval(-2.0, 2.0) + @test round(Interval(-1.9, 2.2), RoundTiesToAway) == Interval(-2.0, 2.0) + @test round(Interval(-1.0, 2.2), RoundNearestTiesAway) == Interval(-1.0, 2.0) + @test round(Interval(-1.0, 2.2), RoundTiesToAway) == Interval(-1.0, 2.0) + @test round(Interval(0.5, 2.1), RoundNearestTiesAway) == Interval(1.0, 2.0) + @test round(Interval(0.5, 2.1), RoundTiesToAway) == Interval(1.0, 2.0) + @test round(Interval(-2.5, 2.0), RoundNearestTiesAway) == Interval(-3.0, 2.0) + @test round(Interval(-2.5, 2.0), RoundTiesToAway) == Interval(-3.0, 2.0) + @test round(Interval(-1.1, -0.5), RoundNearestTiesAway) == Interval(-1.0, -1.0) + @test round(Interval(-1.1, -0.5), RoundTiesToAway) == Interval(-1.0, -1.0) + @test round(Interval(-1.9, 2.5), RoundNearestTiesAway) == Interval(-2.0, 3.0) + @test round(Interval(-1.9, 2.5), RoundTiesToAway) == Interval(-2.0, 3.0) + @test round(Interval(-1.5, 2.5), RoundNearestTiesAway) == Interval(-2.0, 3.0) + @test round(Interval(-1.5, 2.5), RoundTiesToAway) == Interval(-2.0, 3.0) + @test round(Interval(0.0, 2.5), RoundNearestTiesAway) == Interval(0.0, 3.0) + @test round(Interval(0.0, 2.5), RoundTiesToAway) == Interval(0.0, 3.0) + @test round(Interval(-0.0, 2.5), RoundNearestTiesAway) == Interval(0.0, 3.0) + @test round(Interval(-0.0, 2.5), RoundTiesToAway) == Interval(0.0, 3.0) + @test round(Interval(-1.5, Inf), RoundNearestTiesAway) == Interval(-2.0, Inf) + @test round(Interval(-1.5, Inf), RoundTiesToAway) == Interval(-2.0, Inf) + @test round(Interval(-Inf, 2.2), RoundNearestTiesAway) == Interval(-Inf, 2.0) + @test round(Interval(-Inf, 2.2), RoundTiesToAway) == Interval(-Inf, 2.0) end -facts("minimal_roundTiesToAway_dec_test") do - @fact round(DecoratedInterval(Interval(1.1, 2.1), com), RoundNearestTiesAway) --> DecoratedInterval(Interval(1.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(1.1, 2.1), com), RoundNearestTiesAway)) --> decoration(DecoratedInterval(Interval(1.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(1.1, 2.1), com), RoundTiesToAway) --> DecoratedInterval(Interval(1.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(1.1, 2.1), com), RoundTiesToAway)) --> decoration(DecoratedInterval(Interval(1.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundNearestTiesAway) --> DecoratedInterval(Interval(-2.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundNearestTiesAway)) --> decoration(DecoratedInterval(Interval(-2.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundTiesToAway) --> DecoratedInterval(Interval(-2.0, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundTiesToAway)) --> decoration(DecoratedInterval(Interval(-2.0, 2.0), def)) - @fact round(DecoratedInterval(Interval(1.9, 2.2), com), RoundNearestTiesAway) --> DecoratedInterval(Interval(2.0, 2.0), com) - @fact decoration(round(DecoratedInterval(Interval(1.9, 2.2), com), RoundNearestTiesAway)) --> decoration(DecoratedInterval(Interval(2.0, 2.0), com)) - @fact round(DecoratedInterval(Interval(1.9, 2.2), com), RoundTiesToAway) --> DecoratedInterval(Interval(2.0, 2.0), com) - @fact decoration(round(DecoratedInterval(Interval(1.9, 2.2), com), RoundTiesToAway)) --> decoration(DecoratedInterval(Interval(2.0, 2.0), com)) - @fact round(DecoratedInterval(Interval(-1.0, 2.2), trv), RoundNearestTiesAway) --> DecoratedInterval(Interval(-1.0, 2.0), trv) - @fact decoration(round(DecoratedInterval(Interval(-1.0, 2.2), trv), RoundNearestTiesAway)) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), trv)) - @fact round(DecoratedInterval(Interval(-1.0, 2.2), trv), RoundTiesToAway) --> DecoratedInterval(Interval(-1.0, 2.0), trv) - @fact decoration(round(DecoratedInterval(Interval(-1.0, 2.2), trv), RoundTiesToAway)) --> decoration(DecoratedInterval(Interval(-1.0, 2.0), trv)) - @fact round(DecoratedInterval(Interval(2.5, 2.6), com), RoundNearestTiesAway) --> DecoratedInterval(Interval(3.0, 3.0), dac) - @fact decoration(round(DecoratedInterval(Interval(2.5, 2.6), com), RoundNearestTiesAway)) --> decoration(DecoratedInterval(Interval(3.0, 3.0), dac)) - @fact round(DecoratedInterval(Interval(2.5, 2.6), com), RoundTiesToAway) --> DecoratedInterval(Interval(3.0, 3.0), dac) - @fact decoration(round(DecoratedInterval(Interval(2.5, 2.6), com), RoundTiesToAway)) --> decoration(DecoratedInterval(Interval(3.0, 3.0), dac)) - @fact round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundNearestTiesAway) --> DecoratedInterval(Interval(-2.0, Inf), def) - @fact decoration(round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundNearestTiesAway)) --> decoration(DecoratedInterval(Interval(-2.0, Inf), def)) - @fact round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundTiesToAway) --> DecoratedInterval(Interval(-2.0, Inf), def) - @fact decoration(round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundTiesToAway)) --> decoration(DecoratedInterval(Interval(-2.0, Inf), def)) - @fact round(DecoratedInterval(Interval(-Inf, 2.2), def), RoundNearestTiesAway) --> DecoratedInterval(Interval(-Inf, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(-Inf, 2.2), def), RoundNearestTiesAway)) --> decoration(DecoratedInterval(Interval(-Inf, 2.0), def)) - @fact round(DecoratedInterval(Interval(-Inf, 2.2), def), RoundTiesToAway) --> DecoratedInterval(Interval(-Inf, 2.0), def) - @fact decoration(round(DecoratedInterval(Interval(-Inf, 2.2), def), RoundTiesToAway)) --> decoration(DecoratedInterval(Interval(-Inf, 2.0), def)) +@testset "minimal_roundTiesToAway_dec_test" begin + @test round(DecoratedInterval(Interval(1.1, 2.1), com), RoundNearestTiesAway) == DecoratedInterval(Interval(1.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(1.1, 2.1), com), RoundNearestTiesAway)) == decoration(DecoratedInterval(Interval(1.0, 2.0), def)) + @test round(DecoratedInterval(Interval(1.1, 2.1), com), RoundTiesToAway) == DecoratedInterval(Interval(1.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(1.1, 2.1), com), RoundTiesToAway)) == decoration(DecoratedInterval(Interval(1.0, 2.0), def)) + @test round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundNearestTiesAway) == DecoratedInterval(Interval(-2.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundNearestTiesAway)) == decoration(DecoratedInterval(Interval(-2.0, 2.0), def)) + @test round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundTiesToAway) == DecoratedInterval(Interval(-2.0, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(-1.9, 2.2), com), RoundTiesToAway)) == decoration(DecoratedInterval(Interval(-2.0, 2.0), def)) + @test round(DecoratedInterval(Interval(1.9, 2.2), com), RoundNearestTiesAway) == DecoratedInterval(Interval(2.0, 2.0), com) + @test decoration(round(DecoratedInterval(Interval(1.9, 2.2), com), RoundNearestTiesAway)) == decoration(DecoratedInterval(Interval(2.0, 2.0), com)) + @test round(DecoratedInterval(Interval(1.9, 2.2), com), RoundTiesToAway) == DecoratedInterval(Interval(2.0, 2.0), com) + @test decoration(round(DecoratedInterval(Interval(1.9, 2.2), com), RoundTiesToAway)) == decoration(DecoratedInterval(Interval(2.0, 2.0), com)) + @test round(DecoratedInterval(Interval(-1.0, 2.2), trv), RoundNearestTiesAway) == DecoratedInterval(Interval(-1.0, 2.0), trv) + @test decoration(round(DecoratedInterval(Interval(-1.0, 2.2), trv), RoundNearestTiesAway)) == decoration(DecoratedInterval(Interval(-1.0, 2.0), trv)) + @test round(DecoratedInterval(Interval(-1.0, 2.2), trv), RoundTiesToAway) == DecoratedInterval(Interval(-1.0, 2.0), trv) + @test decoration(round(DecoratedInterval(Interval(-1.0, 2.2), trv), RoundTiesToAway)) == decoration(DecoratedInterval(Interval(-1.0, 2.0), trv)) + @test round(DecoratedInterval(Interval(2.5, 2.6), com), RoundNearestTiesAway) == DecoratedInterval(Interval(3.0, 3.0), dac) + @test decoration(round(DecoratedInterval(Interval(2.5, 2.6), com), RoundNearestTiesAway)) == decoration(DecoratedInterval(Interval(3.0, 3.0), dac)) + @test round(DecoratedInterval(Interval(2.5, 2.6), com), RoundTiesToAway) == DecoratedInterval(Interval(3.0, 3.0), dac) + @test decoration(round(DecoratedInterval(Interval(2.5, 2.6), com), RoundTiesToAway)) == decoration(DecoratedInterval(Interval(3.0, 3.0), dac)) + @test round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundNearestTiesAway) == DecoratedInterval(Interval(-2.0, Inf), def) + @test decoration(round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundNearestTiesAway)) == decoration(DecoratedInterval(Interval(-2.0, Inf), def)) + @test round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundTiesToAway) == DecoratedInterval(Interval(-2.0, Inf), def) + @test decoration(round(DecoratedInterval(Interval(-1.5, Inf), dac), RoundTiesToAway)) == decoration(DecoratedInterval(Interval(-2.0, Inf), def)) + @test round(DecoratedInterval(Interval(-Inf, 2.2), def), RoundNearestTiesAway) == DecoratedInterval(Interval(-Inf, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(-Inf, 2.2), def), RoundNearestTiesAway)) == decoration(DecoratedInterval(Interval(-Inf, 2.0), def)) + @test round(DecoratedInterval(Interval(-Inf, 2.2), def), RoundTiesToAway) == DecoratedInterval(Interval(-Inf, 2.0), def) + @test decoration(round(DecoratedInterval(Interval(-Inf, 2.2), def), RoundTiesToAway)) == decoration(DecoratedInterval(Interval(-Inf, 2.0), def)) end -facts("minimal_abs_test") do - @fact abs(∅) --> ∅ - @fact abs(entireinterval(Float64)) --> Interval(0.0, Inf) - @fact abs(Interval(1.1, 2.1)) --> Interval(1.1, 2.1) - @fact abs(Interval(-1.1, 2.0)) --> Interval(0.0, 2.0) - @fact abs(Interval(-1.1, 0.0)) --> Interval(0.0, 1.1) - @fact abs(Interval(-1.1, -0.0)) --> Interval(0.0, 1.1) - @fact abs(Interval(-1.1, -0.4)) --> Interval(0.4, 1.1) - @fact abs(Interval(-1.9, 0.2)) --> Interval(0.0, 1.9) - @fact abs(Interval(0.0, 0.2)) --> Interval(0.0, 0.2) - @fact abs(Interval(-0.0, 0.2)) --> Interval(0.0, 0.2) - @fact abs(Interval(-1.5, Inf)) --> Interval(0.0, Inf) - @fact abs(Interval(-Inf, -2.2)) --> Interval(2.2, Inf) +@testset "minimal_abs_test" begin + @test abs(∅) == ∅ + @test abs(entireinterval(Float64)) == Interval(0.0, Inf) + @test abs(Interval(1.1, 2.1)) == Interval(1.1, 2.1) + @test abs(Interval(-1.1, 2.0)) == Interval(0.0, 2.0) + @test abs(Interval(-1.1, 0.0)) == Interval(0.0, 1.1) + @test abs(Interval(-1.1, -0.0)) == Interval(0.0, 1.1) + @test abs(Interval(-1.1, -0.4)) == Interval(0.4, 1.1) + @test abs(Interval(-1.9, 0.2)) == Interval(0.0, 1.9) + @test abs(Interval(0.0, 0.2)) == Interval(0.0, 0.2) + @test abs(Interval(-0.0, 0.2)) == Interval(0.0, 0.2) + @test abs(Interval(-1.5, Inf)) == Interval(0.0, Inf) + @test abs(Interval(-Inf, -2.2)) == Interval(2.2, Inf) end -facts("minimal_abs_dec_test") do - @fact abs(DecoratedInterval(Interval(-1.1, 2.0), com)) --> DecoratedInterval(Interval(0.0, 2.0), com) - @fact decoration(abs(DecoratedInterval(Interval(-1.1, 2.0), com))) --> decoration(DecoratedInterval(Interval(0.0, 2.0), com)) - @fact abs(DecoratedInterval(Interval(-1.1, 0.0), dac)) --> DecoratedInterval(Interval(0.0, 1.1), dac) - @fact decoration(abs(DecoratedInterval(Interval(-1.1, 0.0), dac))) --> decoration(DecoratedInterval(Interval(0.0, 1.1), dac)) - @fact abs(DecoratedInterval(Interval(-1.1, -0.0), def)) --> DecoratedInterval(Interval(0.0, 1.1), def) - @fact decoration(abs(DecoratedInterval(Interval(-1.1, -0.0), def))) --> decoration(DecoratedInterval(Interval(0.0, 1.1), def)) - @fact abs(DecoratedInterval(Interval(-1.1, -0.4), trv)) --> DecoratedInterval(Interval(0.4, 1.1), trv) - @fact decoration(abs(DecoratedInterval(Interval(-1.1, -0.4), trv))) --> decoration(DecoratedInterval(Interval(0.4, 1.1), trv)) - @fact abs(DecoratedInterval(Interval(-1.9, 0.2), dac)) --> DecoratedInterval(Interval(0.0, 1.9), dac) - @fact decoration(abs(DecoratedInterval(Interval(-1.9, 0.2), dac))) --> decoration(DecoratedInterval(Interval(0.0, 1.9), dac)) - @fact abs(DecoratedInterval(Interval(0.0, 0.2), def)) --> DecoratedInterval(Interval(0.0, 0.2), def) - @fact decoration(abs(DecoratedInterval(Interval(0.0, 0.2), def))) --> decoration(DecoratedInterval(Interval(0.0, 0.2), def)) - @fact abs(DecoratedInterval(Interval(-0.0, 0.2), com)) --> DecoratedInterval(Interval(0.0, 0.2), com) - @fact decoration(abs(DecoratedInterval(Interval(-0.0, 0.2), com))) --> decoration(DecoratedInterval(Interval(0.0, 0.2), com)) - @fact abs(DecoratedInterval(Interval(-1.5, Inf), dac)) --> DecoratedInterval(Interval(0.0, Inf), dac) - @fact decoration(abs(DecoratedInterval(Interval(-1.5, Inf), dac))) --> decoration(DecoratedInterval(Interval(0.0, Inf), dac)) +@testset "minimal_abs_dec_test" begin + @test abs(DecoratedInterval(Interval(-1.1, 2.0), com)) == DecoratedInterval(Interval(0.0, 2.0), com) + @test decoration(abs(DecoratedInterval(Interval(-1.1, 2.0), com))) == decoration(DecoratedInterval(Interval(0.0, 2.0), com)) + @test abs(DecoratedInterval(Interval(-1.1, 0.0), dac)) == DecoratedInterval(Interval(0.0, 1.1), dac) + @test decoration(abs(DecoratedInterval(Interval(-1.1, 0.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 1.1), dac)) + @test abs(DecoratedInterval(Interval(-1.1, -0.0), def)) == DecoratedInterval(Interval(0.0, 1.1), def) + @test decoration(abs(DecoratedInterval(Interval(-1.1, -0.0), def))) == decoration(DecoratedInterval(Interval(0.0, 1.1), def)) + @test abs(DecoratedInterval(Interval(-1.1, -0.4), trv)) == DecoratedInterval(Interval(0.4, 1.1), trv) + @test decoration(abs(DecoratedInterval(Interval(-1.1, -0.4), trv))) == decoration(DecoratedInterval(Interval(0.4, 1.1), trv)) + @test abs(DecoratedInterval(Interval(-1.9, 0.2), dac)) == DecoratedInterval(Interval(0.0, 1.9), dac) + @test decoration(abs(DecoratedInterval(Interval(-1.9, 0.2), dac))) == decoration(DecoratedInterval(Interval(0.0, 1.9), dac)) + @test abs(DecoratedInterval(Interval(0.0, 0.2), def)) == DecoratedInterval(Interval(0.0, 0.2), def) + @test decoration(abs(DecoratedInterval(Interval(0.0, 0.2), def))) == decoration(DecoratedInterval(Interval(0.0, 0.2), def)) + @test abs(DecoratedInterval(Interval(-0.0, 0.2), com)) == DecoratedInterval(Interval(0.0, 0.2), com) + @test decoration(abs(DecoratedInterval(Interval(-0.0, 0.2), com))) == decoration(DecoratedInterval(Interval(0.0, 0.2), com)) + @test abs(DecoratedInterval(Interval(-1.5, Inf), dac)) == DecoratedInterval(Interval(0.0, Inf), dac) + @test decoration(abs(DecoratedInterval(Interval(-1.5, Inf), dac))) == decoration(DecoratedInterval(Interval(0.0, Inf), dac)) end -facts("minimal_min_test") do - @fact min(∅, Interval(1.0, 2.0)) --> ∅ - @fact min(Interval(1.0, 2.0), ∅) --> ∅ - @fact min(∅, ∅) --> ∅ - @fact min(entireinterval(Float64), Interval(1.0, 2.0)) --> Interval(-Inf, 2.0) - @fact min(Interval(1.0, 2.0), entireinterval(Float64)) --> Interval(-Inf, 2.0) - @fact min(entireinterval(Float64), entireinterval(Float64)) --> entireinterval(Float64) - @fact min(∅, entireinterval(Float64)) --> ∅ - @fact min(Interval(1.0, 5.0), Interval(2.0, 4.0)) --> Interval(1.0, 4.0) - @fact min(Interval(0.0, 5.0), Interval(2.0, 4.0)) --> Interval(0.0, 4.0) - @fact min(Interval(-0.0, 5.0), Interval(2.0, 4.0)) --> Interval(0.0, 4.0) - @fact min(Interval(1.0, 5.0), Interval(2.0, 8.0)) --> Interval(1.0, 5.0) - @fact min(Interval(1.0, 5.0), entireinterval(Float64)) --> Interval(-Inf, 5.0) - @fact min(Interval(-7.0, -5.0), Interval(2.0, 4.0)) --> Interval(-7.0, -5.0) - @fact min(Interval(-7.0, 0.0), Interval(2.0, 4.0)) --> Interval(-7.0, 0.0) - @fact min(Interval(-7.0, -0.0), Interval(2.0, 4.0)) --> Interval(-7.0, 0.0) +@testset "minimal_min_test" begin + @test min(∅, Interval(1.0, 2.0)) == ∅ + @test min(Interval(1.0, 2.0), ∅) == ∅ + @test min(∅, ∅) == ∅ + @test min(entireinterval(Float64), Interval(1.0, 2.0)) == Interval(-Inf, 2.0) + @test min(Interval(1.0, 2.0), entireinterval(Float64)) == Interval(-Inf, 2.0) + @test min(entireinterval(Float64), entireinterval(Float64)) == entireinterval(Float64) + @test min(∅, entireinterval(Float64)) == ∅ + @test min(Interval(1.0, 5.0), Interval(2.0, 4.0)) == Interval(1.0, 4.0) + @test min(Interval(0.0, 5.0), Interval(2.0, 4.0)) == Interval(0.0, 4.0) + @test min(Interval(-0.0, 5.0), Interval(2.0, 4.0)) == Interval(0.0, 4.0) + @test min(Interval(1.0, 5.0), Interval(2.0, 8.0)) == Interval(1.0, 5.0) + @test min(Interval(1.0, 5.0), entireinterval(Float64)) == Interval(-Inf, 5.0) + @test min(Interval(-7.0, -5.0), Interval(2.0, 4.0)) == Interval(-7.0, -5.0) + @test min(Interval(-7.0, 0.0), Interval(2.0, 4.0)) == Interval(-7.0, 0.0) + @test min(Interval(-7.0, -0.0), Interval(2.0, 4.0)) == Interval(-7.0, 0.0) end -facts("minimal_min_dec_test") do - @fact min(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(1.0, 2.0), com)) --> DecoratedInterval(Interval(-Inf, 2.0), def) - @fact decoration(min(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(1.0, 2.0), com))) --> decoration(DecoratedInterval(Interval(-Inf, 2.0), def)) - @fact min(DecoratedInterval(Interval(-7.0, -5.0), trv), DecoratedInterval(Interval(2.0, 4.0), def)) --> DecoratedInterval(Interval(-7.0, -5.0), trv) - @fact decoration(min(DecoratedInterval(Interval(-7.0, -5.0), trv), DecoratedInterval(Interval(2.0, 4.0), def))) --> decoration(DecoratedInterval(Interval(-7.0, -5.0), trv)) - @fact min(DecoratedInterval(Interval(-7.0, 0.0), dac), DecoratedInterval(Interval(2.0, 4.0), def)) --> DecoratedInterval(Interval(-7.0, 0.0), def) - @fact decoration(min(DecoratedInterval(Interval(-7.0, 0.0), dac), DecoratedInterval(Interval(2.0, 4.0), def))) --> decoration(DecoratedInterval(Interval(-7.0, 0.0), def)) - @fact min(DecoratedInterval(Interval(-7.0, -0.0), com), DecoratedInterval(Interval(2.0, 4.0), com)) --> DecoratedInterval(Interval(-7.0, 0.0), com) - @fact decoration(min(DecoratedInterval(Interval(-7.0, -0.0), com), DecoratedInterval(Interval(2.0, 4.0), com))) --> decoration(DecoratedInterval(Interval(-7.0, 0.0), com)) +@testset "minimal_min_dec_test" begin + @test min(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(1.0, 2.0), com)) == DecoratedInterval(Interval(-Inf, 2.0), def) + @test decoration(min(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(1.0, 2.0), com))) == decoration(DecoratedInterval(Interval(-Inf, 2.0), def)) + @test min(DecoratedInterval(Interval(-7.0, -5.0), trv), DecoratedInterval(Interval(2.0, 4.0), def)) == DecoratedInterval(Interval(-7.0, -5.0), trv) + @test decoration(min(DecoratedInterval(Interval(-7.0, -5.0), trv), DecoratedInterval(Interval(2.0, 4.0), def))) == decoration(DecoratedInterval(Interval(-7.0, -5.0), trv)) + @test min(DecoratedInterval(Interval(-7.0, 0.0), dac), DecoratedInterval(Interval(2.0, 4.0), def)) == DecoratedInterval(Interval(-7.0, 0.0), def) + @test decoration(min(DecoratedInterval(Interval(-7.0, 0.0), dac), DecoratedInterval(Interval(2.0, 4.0), def))) == decoration(DecoratedInterval(Interval(-7.0, 0.0), def)) + @test min(DecoratedInterval(Interval(-7.0, -0.0), com), DecoratedInterval(Interval(2.0, 4.0), com)) == DecoratedInterval(Interval(-7.0, 0.0), com) + @test decoration(min(DecoratedInterval(Interval(-7.0, -0.0), com), DecoratedInterval(Interval(2.0, 4.0), com))) == decoration(DecoratedInterval(Interval(-7.0, 0.0), com)) end -facts("minimal_max_test") do - @fact max(∅, Interval(1.0, 2.0)) --> ∅ - @fact max(Interval(1.0, 2.0), ∅) --> ∅ - @fact max(∅, ∅) --> ∅ - @fact max(entireinterval(Float64), Interval(1.0, 2.0)) --> Interval(1.0, Inf) - @fact max(Interval(1.0, 2.0), entireinterval(Float64)) --> Interval(1.0, Inf) - @fact max(entireinterval(Float64), entireinterval(Float64)) --> entireinterval(Float64) - @fact max(∅, entireinterval(Float64)) --> ∅ - @fact max(Interval(1.0, 5.0), Interval(2.0, 4.0)) --> Interval(2.0, 5.0) - @fact max(Interval(1.0, 5.0), Interval(2.0, 8.0)) --> Interval(2.0, 8.0) - @fact max(Interval(-1.0, 5.0), entireinterval(Float64)) --> Interval(-1.0, Inf) - @fact max(Interval(-7.0, -5.0), Interval(2.0, 4.0)) --> Interval(2.0, 4.0) - @fact max(Interval(-7.0, -5.0), Interval(0.0, 4.0)) --> Interval(0.0, 4.0) - @fact max(Interval(-7.0, -5.0), Interval(-0.0, 4.0)) --> Interval(0.0, 4.0) - @fact max(Interval(-7.0, -5.0), Interval(-2.0, 0.0)) --> Interval(-2.0, 0.0) - @fact max(Interval(-7.0, -5.0), Interval(-2.0, -0.0)) --> Interval(-2.0, 0.0) +@testset "minimal_max_test" begin + @test max(∅, Interval(1.0, 2.0)) == ∅ + @test max(Interval(1.0, 2.0), ∅) == ∅ + @test max(∅, ∅) == ∅ + @test max(entireinterval(Float64), Interval(1.0, 2.0)) == Interval(1.0, Inf) + @test max(Interval(1.0, 2.0), entireinterval(Float64)) == Interval(1.0, Inf) + @test max(entireinterval(Float64), entireinterval(Float64)) == entireinterval(Float64) + @test max(∅, entireinterval(Float64)) == ∅ + @test max(Interval(1.0, 5.0), Interval(2.0, 4.0)) == Interval(2.0, 5.0) + @test max(Interval(1.0, 5.0), Interval(2.0, 8.0)) == Interval(2.0, 8.0) + @test max(Interval(-1.0, 5.0), entireinterval(Float64)) == Interval(-1.0, Inf) + @test max(Interval(-7.0, -5.0), Interval(2.0, 4.0)) == Interval(2.0, 4.0) + @test max(Interval(-7.0, -5.0), Interval(0.0, 4.0)) == Interval(0.0, 4.0) + @test max(Interval(-7.0, -5.0), Interval(-0.0, 4.0)) == Interval(0.0, 4.0) + @test max(Interval(-7.0, -5.0), Interval(-2.0, 0.0)) == Interval(-2.0, 0.0) + @test max(Interval(-7.0, -5.0), Interval(-2.0, -0.0)) == Interval(-2.0, 0.0) end -facts("minimal_max_dec_test") do - @fact max(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(1.0, 2.0), com)) --> DecoratedInterval(Interval(1.0, Inf), def) - @fact decoration(max(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(1.0, 2.0), com))) --> decoration(DecoratedInterval(Interval(1.0, Inf), def)) - @fact max(DecoratedInterval(Interval(-7.0, -5.0), trv), DecoratedInterval(Interval(2.0, 4.0), def)) --> DecoratedInterval(Interval(2.0, 4.0), trv) - @fact decoration(max(DecoratedInterval(Interval(-7.0, -5.0), trv), DecoratedInterval(Interval(2.0, 4.0), def))) --> decoration(DecoratedInterval(Interval(2.0, 4.0), trv)) - @fact max(DecoratedInterval(Interval(-7.0, 5.0), dac), DecoratedInterval(Interval(2.0, 4.0), def)) --> DecoratedInterval(Interval(2.0, 5.0), def) - @fact decoration(max(DecoratedInterval(Interval(-7.0, 5.0), dac), DecoratedInterval(Interval(2.0, 4.0), def))) --> decoration(DecoratedInterval(Interval(2.0, 5.0), def)) - @fact max(DecoratedInterval(Interval(3.0, 3.5), com), DecoratedInterval(Interval(2.0, 4.0), com)) --> DecoratedInterval(Interval(3.0, 4.0), com) - @fact decoration(max(DecoratedInterval(Interval(3.0, 3.5), com), DecoratedInterval(Interval(2.0, 4.0), com))) --> decoration(DecoratedInterval(Interval(3.0, 4.0), com)) +@testset "minimal_max_dec_test" begin + @test max(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(1.0, 2.0), com)) == DecoratedInterval(Interval(1.0, Inf), def) + @test decoration(max(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(1.0, 2.0), com))) == decoration(DecoratedInterval(Interval(1.0, Inf), def)) + @test max(DecoratedInterval(Interval(-7.0, -5.0), trv), DecoratedInterval(Interval(2.0, 4.0), def)) == DecoratedInterval(Interval(2.0, 4.0), trv) + @test decoration(max(DecoratedInterval(Interval(-7.0, -5.0), trv), DecoratedInterval(Interval(2.0, 4.0), def))) == decoration(DecoratedInterval(Interval(2.0, 4.0), trv)) + @test max(DecoratedInterval(Interval(-7.0, 5.0), dac), DecoratedInterval(Interval(2.0, 4.0), def)) == DecoratedInterval(Interval(2.0, 5.0), def) + @test decoration(max(DecoratedInterval(Interval(-7.0, 5.0), dac), DecoratedInterval(Interval(2.0, 4.0), def))) == decoration(DecoratedInterval(Interval(2.0, 5.0), def)) + @test max(DecoratedInterval(Interval(3.0, 3.5), com), DecoratedInterval(Interval(2.0, 4.0), com)) == DecoratedInterval(Interval(3.0, 4.0), com) + @test decoration(max(DecoratedInterval(Interval(3.0, 3.5), com), DecoratedInterval(Interval(2.0, 4.0), com))) == decoration(DecoratedInterval(Interval(3.0, 4.0), com)) end -# FactCheck.exitstatus() diff --git a/test/ITF1788_tests/libieeep1788_tests_mul_rev.jl b/test/ITF1788_tests/libieeep1788_tests_mul_rev.jl index c08f368..d2d9c54 100644 --- a/test/ITF1788_tests/libieeep1788_tests_mul_rev.jl +++ b/test/ITF1788_tests/libieeep1788_tests_mul_rev.jl @@ -1,26 +1,31 @@ -# -# Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) -# Copyright 2015 Oliver Heimlich (oheim@posteo.de) -# -# Original author: Marco Nehmeier (unit tests in libieeep1788) -# Converted into portable ITL format by Oliver Heimlich with minor corrections. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# +#= + Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) + Copyright 2015 Oliver Heimlich (oheim@posteo.de) + + Original author: Marco Nehmeier (unit tests in libieeep1788) + Converted into portable ITL format by Oliver Heimlich with minor corrections. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +=# #Language imports #Test library imports -using FactCheck +if VERSION >= v"0.5.0-dev+7720" + using Base.Test +else + using BaseTestNext + const Test = BaseTestNext +end #Arithmetic library imports using ValidatedNumerics @@ -30,11 +35,10 @@ setprecision(53) setprecision(Interval, Float64) setrounding(Interval, :narrow) -facts("minimal_mulRevToPair_test") do +@testset "minimal_mulRevToPair_test" begin end -facts("minimal_mulRevToPair_dec_test") do +@testset "minimal_mulRevToPair_dec_test" begin end -# FactCheck.exitstatus() diff --git a/test/ITF1788_tests/libieeep1788_tests_num.jl b/test/ITF1788_tests/libieeep1788_tests_num.jl index 6ae1eb1..ab8ee12 100644 --- a/test/ITF1788_tests/libieeep1788_tests_num.jl +++ b/test/ITF1788_tests/libieeep1788_tests_num.jl @@ -1,26 +1,31 @@ -# -# Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) -# Copyright 2015 Oliver Heimlich (oheim@posteo.de) -# -# Original author: Marco Nehmeier (unit tests in libieeep1788) -# Converted into portable ITL format by Oliver Heimlich with minor corrections. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# +#= + Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) + Copyright 2015 Oliver Heimlich (oheim@posteo.de) + + Original author: Marco Nehmeier (unit tests in libieeep1788) + Converted into portable ITL format by Oliver Heimlich with minor corrections. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +=# #Language imports #Test library imports -using FactCheck +if VERSION >= v"0.5.0-dev+7720" + using Base.Test +else + using BaseTestNext + const Test = BaseTestNext +end #Arithmetic library imports using ValidatedNumerics @@ -30,169 +35,168 @@ setprecision(53) setprecision(Interval, Float64) setrounding(Interval, :narrow) -facts("minimal_inf_test") do - @fact infimum(∅) --> Inf - @fact infimum(Interval(-Inf, Inf)) --> -Inf - @fact infimum(Interval(1.0, 2.0)) --> 1.0 - @fact infimum(Interval(-3.0, -2.0)) --> -3.0 - @fact infimum(Interval(-Inf, 2.0)) --> -Inf - @fact infimum(Interval(-Inf, 0.0)) --> -Inf - @fact infimum(Interval(-Inf, -0.0)) --> -Inf - @fact infimum(Interval(-2.0, Inf)) --> -2.0 - @fact infimum(Interval(0.0, Inf)) --> -0.0 - @fact infimum(Interval(-0.0, Inf)) --> -0.0 - @fact infimum(Interval(-0.0, 0.0)) --> -0.0 - @fact infimum(Interval(0.0, -0.0)) --> -0.0 - @fact infimum(Interval(0.0, 0.0)) --> -0.0 - @fact infimum(Interval(-0.0, -0.0)) --> -0.0 +@testset "minimal_inf_test" begin + @test infimum(∅) == Inf + @test infimum(Interval(-Inf, Inf)) == -Inf + @test infimum(Interval(1.0, 2.0)) == 1.0 + @test infimum(Interval(-3.0, -2.0)) == -3.0 + @test infimum(Interval(-Inf, 2.0)) == -Inf + @test infimum(Interval(-Inf, 0.0)) == -Inf + @test infimum(Interval(-Inf, -0.0)) == -Inf + @test infimum(Interval(-2.0, Inf)) == -2.0 + @test infimum(Interval(0.0, Inf)) == -0.0 + @test infimum(Interval(-0.0, Inf)) == -0.0 + @test infimum(Interval(-0.0, 0.0)) == -0.0 + @test infimum(Interval(0.0, -0.0)) == -0.0 + @test infimum(Interval(0.0, 0.0)) == -0.0 + @test infimum(Interval(-0.0, -0.0)) == -0.0 end -facts("minimal_inf_dec_test") do - @fact infimum(DecoratedInterval(∅, trv)) --> Inf - @fact infimum(DecoratedInterval(Interval(-Inf, Inf), def)) --> -Inf - @fact infimum(DecoratedInterval(Interval(1.0, 2.0), com)) --> 1.0 - @fact infimum(DecoratedInterval(Interval(-3.0, -2.0), trv)) --> -3.0 - @fact infimum(DecoratedInterval(Interval(-Inf, 2.0), dac)) --> -Inf - @fact infimum(DecoratedInterval(Interval(-Inf, 0.0), def)) --> -Inf - @fact infimum(DecoratedInterval(Interval(-Inf, -0.0), trv)) --> -Inf - @fact infimum(DecoratedInterval(Interval(-2.0, Inf), trv)) --> -2.0 - @fact infimum(DecoratedInterval(Interval(0.0, Inf), def)) --> -0.0 - @fact infimum(DecoratedInterval(Interval(-0.0, Inf), trv)) --> -0.0 - @fact infimum(DecoratedInterval(Interval(-0.0, 0.0), dac)) --> -0.0 - @fact infimum(DecoratedInterval(Interval(0.0, -0.0), trv)) --> -0.0 - @fact infimum(DecoratedInterval(Interval(0.0, 0.0), trv)) --> -0.0 - @fact infimum(DecoratedInterval(Interval(-0.0, -0.0), trv)) --> -0.0 +@testset "minimal_inf_dec_test" begin + @test infimum(DecoratedInterval(∅, trv)) == Inf + @test infimum(DecoratedInterval(Interval(-Inf, Inf), def)) == -Inf + @test infimum(DecoratedInterval(Interval(1.0, 2.0), com)) == 1.0 + @test infimum(DecoratedInterval(Interval(-3.0, -2.0), trv)) == -3.0 + @test infimum(DecoratedInterval(Interval(-Inf, 2.0), dac)) == -Inf + @test infimum(DecoratedInterval(Interval(-Inf, 0.0), def)) == -Inf + @test infimum(DecoratedInterval(Interval(-Inf, -0.0), trv)) == -Inf + @test infimum(DecoratedInterval(Interval(-2.0, Inf), trv)) == -2.0 + @test infimum(DecoratedInterval(Interval(0.0, Inf), def)) == -0.0 + @test infimum(DecoratedInterval(Interval(-0.0, Inf), trv)) == -0.0 + @test infimum(DecoratedInterval(Interval(-0.0, 0.0), dac)) == -0.0 + @test infimum(DecoratedInterval(Interval(0.0, -0.0), trv)) == -0.0 + @test infimum(DecoratedInterval(Interval(0.0, 0.0), trv)) == -0.0 + @test infimum(DecoratedInterval(Interval(-0.0, -0.0), trv)) == -0.0 end -facts("minimal_sup_test") do - @fact supremum(∅) --> -Inf - @fact supremum(Interval(-Inf, Inf)) --> Inf - @fact supremum(Interval(1.0, 2.0)) --> 2.0 - @fact supremum(Interval(-3.0, -2.0)) --> -2.0 - @fact supremum(Interval(-Inf, 2.0)) --> 2.0 - @fact supremum(Interval(-Inf, 0.0)) --> 0.0 - @fact supremum(Interval(-Inf, -0.0)) --> 0.0 - @fact supremum(Interval(-2.0, Inf)) --> Inf - @fact supremum(Interval(0.0, Inf)) --> Inf - @fact supremum(Interval(-0.0, Inf)) --> Inf - @fact supremum(Interval(-0.0, 0.0)) --> 0.0 - @fact supremum(Interval(0.0, -0.0)) --> 0.0 - @fact supremum(Interval(0.0, 0.0)) --> 0.0 - @fact supremum(Interval(-0.0, -0.0)) --> 0.0 +@testset "minimal_sup_test" begin + @test supremum(∅) == -Inf + @test supremum(Interval(-Inf, Inf)) == Inf + @test supremum(Interval(1.0, 2.0)) == 2.0 + @test supremum(Interval(-3.0, -2.0)) == -2.0 + @test supremum(Interval(-Inf, 2.0)) == 2.0 + @test supremum(Interval(-Inf, 0.0)) == 0.0 + @test supremum(Interval(-Inf, -0.0)) == 0.0 + @test supremum(Interval(-2.0, Inf)) == Inf + @test supremum(Interval(0.0, Inf)) == Inf + @test supremum(Interval(-0.0, Inf)) == Inf + @test supremum(Interval(-0.0, 0.0)) == 0.0 + @test supremum(Interval(0.0, -0.0)) == 0.0 + @test supremum(Interval(0.0, 0.0)) == 0.0 + @test supremum(Interval(-0.0, -0.0)) == 0.0 end -facts("minimal_sup_dec_test") do - @fact supremum(DecoratedInterval(∅, trv)) --> -Inf - @fact supremum(DecoratedInterval(Interval(-Inf, Inf), def)) --> Inf - @fact supremum(DecoratedInterval(Interval(1.0, 2.0), com)) --> 2.0 - @fact supremum(DecoratedInterval(Interval(-3.0, -2.0), trv)) --> -2.0 - @fact supremum(DecoratedInterval(Interval(-Inf, 2.0), dac)) --> 2.0 - @fact supremum(DecoratedInterval(Interval(-Inf, 0.0), def)) --> 0.0 - @fact supremum(DecoratedInterval(Interval(-Inf, -0.0), trv)) --> 0.0 - @fact supremum(DecoratedInterval(Interval(-2.0, Inf), trv)) --> Inf - @fact supremum(DecoratedInterval(Interval(0.0, Inf), def)) --> Inf - @fact supremum(DecoratedInterval(Interval(-0.0, Inf), trv)) --> Inf - @fact supremum(DecoratedInterval(Interval(-0.0, 0.0), dac)) --> +0.0 - @fact supremum(DecoratedInterval(Interval(0.0, -0.0), trv)) --> +0.0 - @fact supremum(DecoratedInterval(Interval(0.0, 0.0), trv)) --> +0.0 - @fact supremum(DecoratedInterval(Interval(-0.0, -0.0), trv)) --> +0.0 +@testset "minimal_sup_dec_test" begin + @test supremum(DecoratedInterval(∅, trv)) == -Inf + @test supremum(DecoratedInterval(Interval(-Inf, Inf), def)) == Inf + @test supremum(DecoratedInterval(Interval(1.0, 2.0), com)) == 2.0 + @test supremum(DecoratedInterval(Interval(-3.0, -2.0), trv)) == -2.0 + @test supremum(DecoratedInterval(Interval(-Inf, 2.0), dac)) == 2.0 + @test supremum(DecoratedInterval(Interval(-Inf, 0.0), def)) == 0.0 + @test supremum(DecoratedInterval(Interval(-Inf, -0.0), trv)) == 0.0 + @test supremum(DecoratedInterval(Interval(-2.0, Inf), trv)) == Inf + @test supremum(DecoratedInterval(Interval(0.0, Inf), def)) == Inf + @test supremum(DecoratedInterval(Interval(-0.0, Inf), trv)) == Inf + @test supremum(DecoratedInterval(Interval(-0.0, 0.0), dac)) == +0.0 + @test supremum(DecoratedInterval(Interval(0.0, -0.0), trv)) == +0.0 + @test supremum(DecoratedInterval(Interval(0.0, 0.0), trv)) == +0.0 + @test supremum(DecoratedInterval(Interval(-0.0, -0.0), trv)) == +0.0 end -facts("minimal_mid_test") do - @fact mid(Interval(-Inf, Inf)) --> 0.0 - @fact mid(Interval(-0x1.fffffffffffffp1023, +0x1.fffffffffffffp1023)) --> 0.0 - @fact mid(Interval(0.0, 2.0)) --> 1.0 - @fact mid(Interval(2.0, 2.0)) --> 2.0 - @fact mid(Interval(-2.0, 2.0)) --> 0.0 - @fact mid(Interval(-0x0.0000000000002p-1022, 0x0.0000000000001p-1022)) --> 0.0 - @fact mid(Interval(-0x0.0000000000001p-1022, 0x0.0000000000002p-1022)) --> 0.0 +@testset "minimal_mid_test" begin + @test mid(Interval(-Inf, Inf)) == 0.0 + @test mid(Interval(-0x1.fffffffffffffp1023, +0x1.fffffffffffffp1023)) == 0.0 + @test mid(Interval(0.0, 2.0)) == 1.0 + @test mid(Interval(2.0, 2.0)) == 2.0 + @test mid(Interval(-2.0, 2.0)) == 0.0 + @test mid(Interval(-0x0.0000000000002p-1022, 0x0.0000000000001p-1022)) == 0.0 + @test mid(Interval(-0x0.0000000000001p-1022, 0x0.0000000000002p-1022)) == 0.0 end -facts("minimal_mid_dec_test") do - @fact mid(DecoratedInterval(Interval(-Inf, Inf), def)) --> 0.0 - @fact mid(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, +0x1.fffffffffffffp1023), trv)) --> 0.0 - @fact mid(DecoratedInterval(Interval(0.0, 2.0), com)) --> 1.0 - @fact mid(DecoratedInterval(Interval(2.0, 2.0), dac)) --> 2.0 - @fact mid(DecoratedInterval(Interval(-2.0, 2.0), trv)) --> 0.0 - @fact mid(DecoratedInterval(Interval(-0x0.0000000000002p-1022, 0x0.0000000000001p-1022), trv)) --> 0.0 - @fact mid(DecoratedInterval(Interval(-0x0.0000000000001p-1022, 0x0.0000000000002p-1022), trv)) --> 0.0 +@testset "minimal_mid_dec_test" begin + @test mid(DecoratedInterval(Interval(-Inf, Inf), def)) == 0.0 + @test mid(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, +0x1.fffffffffffffp1023), trv)) == 0.0 + @test mid(DecoratedInterval(Interval(0.0, 2.0), com)) == 1.0 + @test mid(DecoratedInterval(Interval(2.0, 2.0), dac)) == 2.0 + @test mid(DecoratedInterval(Interval(-2.0, 2.0), trv)) == 0.0 + @test mid(DecoratedInterval(Interval(-0x0.0000000000002p-1022, 0x0.0000000000001p-1022), trv)) == 0.0 + @test mid(DecoratedInterval(Interval(-0x0.0000000000001p-1022, 0x0.0000000000002p-1022), trv)) == 0.0 end -facts("minimal_rad_test") do - @fact radius(Interval(0.0, 2.0)) --> 1.0 - @fact radius(Interval(2.0, 2.0)) --> 0.0 - @fact radius(Interval(-Inf, Inf)) --> Inf - @fact radius(Interval(0.0, Inf)) --> Inf - @fact radius(Interval(-Inf, 1.2)) --> Inf +@testset "minimal_rad_test" begin + @test radius(Interval(0.0, 2.0)) == 1.0 + @test radius(Interval(2.0, 2.0)) == 0.0 + @test radius(Interval(-Inf, Inf)) == Inf + @test radius(Interval(0.0, Inf)) == Inf + @test radius(Interval(-Inf, 1.2)) == Inf end -facts("minimal_rad_dec_test") do - @fact radius(DecoratedInterval(Interval(0.0, 2.0), trv)) --> 1.0 - @fact radius(DecoratedInterval(Interval(2.0, 2.0), com)) --> 0.0 - @fact radius(DecoratedInterval(Interval(-Inf, Inf), trv)) --> Inf - @fact radius(DecoratedInterval(Interval(0.0, Inf), def)) --> Inf - @fact radius(DecoratedInterval(Interval(-Inf, 1.2), trv)) --> Inf +@testset "minimal_rad_dec_test" begin + @test radius(DecoratedInterval(Interval(0.0, 2.0), trv)) == 1.0 + @test radius(DecoratedInterval(Interval(2.0, 2.0), com)) == 0.0 + @test radius(DecoratedInterval(Interval(-Inf, Inf), trv)) == Inf + @test radius(DecoratedInterval(Interval(0.0, Inf), def)) == Inf + @test radius(DecoratedInterval(Interval(-Inf, 1.2), trv)) == Inf end -facts("minimal_wid_test") do - @fact diam(Interval(2.0, 2.0)) --> 0.0 - @fact diam(Interval(1.0, 2.0)) --> 1.0 - @fact diam(Interval(1.0, Inf)) --> Inf - @fact diam(Interval(-Inf, 2.0)) --> Inf - @fact diam(Interval(-Inf, Inf)) --> Inf +@testset "minimal_wid_test" begin + @test diam(Interval(2.0, 2.0)) == 0.0 + @test diam(Interval(1.0, 2.0)) == 1.0 + @test diam(Interval(1.0, Inf)) == Inf + @test diam(Interval(-Inf, 2.0)) == Inf + @test diam(Interval(-Inf, Inf)) == Inf end -facts("minimal_wid_dec_test") do - @fact diam(DecoratedInterval(Interval(2.0, 2.0), com)) --> 0.0 - @fact diam(DecoratedInterval(Interval(1.0, 2.0), trv)) --> 1.0 - @fact diam(DecoratedInterval(Interval(1.0, Inf), trv)) --> Inf - @fact diam(DecoratedInterval(Interval(-Inf, 2.0), def)) --> Inf - @fact diam(DecoratedInterval(Interval(-Inf, Inf), trv)) --> Inf +@testset "minimal_wid_dec_test" begin + @test diam(DecoratedInterval(Interval(2.0, 2.0), com)) == 0.0 + @test diam(DecoratedInterval(Interval(1.0, 2.0), trv)) == 1.0 + @test diam(DecoratedInterval(Interval(1.0, Inf), trv)) == Inf + @test diam(DecoratedInterval(Interval(-Inf, 2.0), def)) == Inf + @test diam(DecoratedInterval(Interval(-Inf, Inf), trv)) == Inf end -facts("minimal_mag_test") do - @fact mag(Interval(1.0, 2.0)) --> 2.0 - @fact mag(Interval(-4.0, 2.0)) --> 4.0 - @fact mag(Interval(-Inf, 2.0)) --> Inf - @fact mag(Interval(1.0, Inf)) --> Inf - @fact mag(Interval(-Inf, Inf)) --> Inf - @fact mag(Interval(-0.0, 0.0)) --> 0.0 - @fact mag(Interval(-0.0, -0.0)) --> 0.0 +@testset "minimal_mag_test" begin + @test mag(Interval(1.0, 2.0)) == 2.0 + @test mag(Interval(-4.0, 2.0)) == 4.0 + @test mag(Interval(-Inf, 2.0)) == Inf + @test mag(Interval(1.0, Inf)) == Inf + @test mag(Interval(-Inf, Inf)) == Inf + @test mag(Interval(-0.0, 0.0)) == 0.0 + @test mag(Interval(-0.0, -0.0)) == 0.0 end -facts("minimal_mag_dec_test") do - @fact mag(DecoratedInterval(Interval(1.0, 2.0), com)) --> 2.0 - @fact mag(DecoratedInterval(Interval(-4.0, 2.0), trv)) --> 4.0 - @fact mag(DecoratedInterval(Interval(-Inf, 2.0), trv)) --> Inf - @fact mag(DecoratedInterval(Interval(1.0, Inf), def)) --> Inf - @fact mag(DecoratedInterval(Interval(-Inf, Inf), trv)) --> Inf - @fact mag(DecoratedInterval(Interval(-0.0, 0.0), trv)) --> 0.0 - @fact mag(DecoratedInterval(Interval(-0.0, -0.0), trv)) --> 0.0 +@testset "minimal_mag_dec_test" begin + @test mag(DecoratedInterval(Interval(1.0, 2.0), com)) == 2.0 + @test mag(DecoratedInterval(Interval(-4.0, 2.0), trv)) == 4.0 + @test mag(DecoratedInterval(Interval(-Inf, 2.0), trv)) == Inf + @test mag(DecoratedInterval(Interval(1.0, Inf), def)) == Inf + @test mag(DecoratedInterval(Interval(-Inf, Inf), trv)) == Inf + @test mag(DecoratedInterval(Interval(-0.0, 0.0), trv)) == 0.0 + @test mag(DecoratedInterval(Interval(-0.0, -0.0), trv)) == 0.0 end -facts("minimal_mig_test") do - @fact mig(Interval(1.0, 2.0)) --> 1.0 - @fact mig(Interval(-4.0, 2.0)) --> 0.0 - @fact mig(Interval(-4.0, -2.0)) --> 2.0 - @fact mig(Interval(-Inf, 2.0)) --> 0.0 - @fact mig(Interval(-Inf, -2.0)) --> 2.0 - @fact mig(Interval(-1.0, Inf)) --> 0.0 - @fact mig(Interval(1.0, Inf)) --> 1.0 - @fact mig(Interval(-Inf, Inf)) --> 0.0 - @fact mig(Interval(-0.0, 0.0)) --> 0.0 - @fact mig(Interval(-0.0, -0.0)) --> 0.0 +@testset "minimal_mig_test" begin + @test mig(Interval(1.0, 2.0)) == 1.0 + @test mig(Interval(-4.0, 2.0)) == 0.0 + @test mig(Interval(-4.0, -2.0)) == 2.0 + @test mig(Interval(-Inf, 2.0)) == 0.0 + @test mig(Interval(-Inf, -2.0)) == 2.0 + @test mig(Interval(-1.0, Inf)) == 0.0 + @test mig(Interval(1.0, Inf)) == 1.0 + @test mig(Interval(-Inf, Inf)) == 0.0 + @test mig(Interval(-0.0, 0.0)) == 0.0 + @test mig(Interval(-0.0, -0.0)) == 0.0 end -facts("minimal_mig_dec_test") do - @fact mig(DecoratedInterval(Interval(1.0, 2.0), com)) --> 1.0 - @fact mig(DecoratedInterval(Interval(-4.0, 2.0), trv)) --> 0.0 - @fact mig(DecoratedInterval(Interval(-4.0, -2.0), trv)) --> 2.0 - @fact mig(DecoratedInterval(Interval(-Inf, 2.0), def)) --> 0.0 - @fact mig(DecoratedInterval(Interval(-Inf, -2.0), trv)) --> 2.0 - @fact mig(DecoratedInterval(Interval(-1.0, Inf), trv)) --> 0.0 - @fact mig(DecoratedInterval(Interval(1.0, Inf), trv)) --> 1.0 - @fact mig(DecoratedInterval(Interval(-Inf, Inf), trv)) --> 0.0 - @fact mig(DecoratedInterval(Interval(-0.0, 0.0), trv)) --> 0.0 - @fact mig(DecoratedInterval(Interval(-0.0, -0.0), trv)) --> 0.0 +@testset "minimal_mig_dec_test" begin + @test mig(DecoratedInterval(Interval(1.0, 2.0), com)) == 1.0 + @test mig(DecoratedInterval(Interval(-4.0, 2.0), trv)) == 0.0 + @test mig(DecoratedInterval(Interval(-4.0, -2.0), trv)) == 2.0 + @test mig(DecoratedInterval(Interval(-Inf, 2.0), def)) == 0.0 + @test mig(DecoratedInterval(Interval(-Inf, -2.0), trv)) == 2.0 + @test mig(DecoratedInterval(Interval(-1.0, Inf), trv)) == 0.0 + @test mig(DecoratedInterval(Interval(1.0, Inf), trv)) == 1.0 + @test mig(DecoratedInterval(Interval(-Inf, Inf), trv)) == 0.0 + @test mig(DecoratedInterval(Interval(-0.0, 0.0), trv)) == 0.0 + @test mig(DecoratedInterval(Interval(-0.0, -0.0), trv)) == 0.0 end -# FactCheck.exitstatus() diff --git a/test/ITF1788_tests/libieeep1788_tests_overlap.jl b/test/ITF1788_tests/libieeep1788_tests_overlap.jl index 95e170b..9168aac 100644 --- a/test/ITF1788_tests/libieeep1788_tests_overlap.jl +++ b/test/ITF1788_tests/libieeep1788_tests_overlap.jl @@ -1,26 +1,31 @@ -# -# Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) -# Copyright 2015 Oliver Heimlich (oheim@posteo.de) -# -# Original author: Marco Nehmeier (unit tests in libieeep1788) -# Converted into portable ITL format by Oliver Heimlich with minor corrections. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# +#= + Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) + Copyright 2015 Oliver Heimlich (oheim@posteo.de) + + Original author: Marco Nehmeier (unit tests in libieeep1788) + Converted into portable ITL format by Oliver Heimlich with minor corrections. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +=# #Language imports #Test library imports -using FactCheck +if VERSION >= v"0.5.0-dev+7720" + using Base.Test +else + using BaseTestNext + const Test = BaseTestNext +end #Arithmetic library imports using ValidatedNumerics @@ -30,11 +35,10 @@ setprecision(53) setprecision(Interval, Float64) setrounding(Interval, :narrow) -facts("minimal_overlap_test") do +@testset "minimal_overlap_test" begin end -facts("minimal_overlap_dec_test") do +@testset "minimal_overlap_dec_test" begin end -# FactCheck.exitstatus() diff --git a/test/ITF1788_tests/libieeep1788_tests_rec_bool.jl b/test/ITF1788_tests/libieeep1788_tests_rec_bool.jl index 6f13034..918355e 100644 --- a/test/ITF1788_tests/libieeep1788_tests_rec_bool.jl +++ b/test/ITF1788_tests/libieeep1788_tests_rec_bool.jl @@ -1,26 +1,31 @@ -# -# Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) -# Copyright 2015 Oliver Heimlich (oheim@posteo.de) -# -# Original author: Marco Nehmeier (unit tests in libieeep1788) -# Converted into portable ITL format by Oliver Heimlich with minor corrections. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# +#= + Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) + Copyright 2015 Oliver Heimlich (oheim@posteo.de) + + Original author: Marco Nehmeier (unit tests in libieeep1788) + Converted into portable ITL format by Oliver Heimlich with minor corrections. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +=# #Language imports #Test library imports -using FactCheck +if VERSION >= v"0.5.0-dev+7720" + using Base.Test +else + using BaseTestNext + const Test = BaseTestNext +end #Arithmetic library imports using ValidatedNumerics @@ -30,209 +35,208 @@ setprecision(53) setprecision(Interval, Float64) setrounding(Interval, :narrow) -facts("minimal_isCommonInterval_test") do - @fact iscommon(Interval(-27.0, -27.0)) --> true - @fact iscommon(Interval(-27.0, 0.0)) --> true - @fact iscommon(Interval(0.0, 0.0)) --> true - @fact iscommon(Interval(-0.0, -0.0)) --> true - @fact iscommon(Interval(-0.0, 0.0)) --> true - @fact iscommon(Interval(0.0, -0.0)) --> true - @fact iscommon(Interval(5.0, 12.4)) --> true - @fact iscommon(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) --> true - @fact iscommon(entireinterval(Float64)) --> false - @fact iscommon(∅) --> false - @fact iscommon(Interval(-Inf, 0.0)) --> false - @fact iscommon(Interval(0.0, Inf)) --> false +@testset "minimal_isCommonInterval_test" begin + @test iscommon(Interval(-27.0, -27.0)) + @test iscommon(Interval(-27.0, 0.0)) + @test iscommon(Interval(0.0, 0.0)) + @test iscommon(Interval(-0.0, -0.0)) + @test iscommon(Interval(-0.0, 0.0)) + @test iscommon(Interval(0.0, -0.0)) + @test iscommon(Interval(5.0, 12.4)) + @test iscommon(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023)) + @test iscommon(entireinterval(Float64)) == false + @test iscommon(∅) == false + @test iscommon(Interval(-Inf, 0.0)) == false + @test iscommon(Interval(0.0, Inf)) == false end -facts("minimal_isCommonInterval_dec_test") do - @fact iscommon(DecoratedInterval(Interval(-27.0, -27.0), com)) --> true - @fact iscommon(DecoratedInterval(Interval(-27.0, 0.0), com)) --> true - @fact iscommon(DecoratedInterval(Interval(0.0, 0.0), com)) --> true - @fact iscommon(DecoratedInterval(Interval(-0.0, -0.0), com)) --> true - @fact iscommon(DecoratedInterval(Interval(-0.0, 0.0), com)) --> true - @fact iscommon(DecoratedInterval(Interval(0.0, -0.0), com)) --> true - @fact iscommon(DecoratedInterval(Interval(5.0, 12.4), com)) --> true - @fact iscommon(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) --> true - @fact iscommon(DecoratedInterval(Interval(-27.0, -27.0), trv)) --> true - @fact iscommon(DecoratedInterval(Interval(-27.0, 0.0), def)) --> true - @fact iscommon(DecoratedInterval(Interval(0.0, 0.0), dac)) --> true - @fact iscommon(DecoratedInterval(Interval(-0.0, -0.0), trv)) --> true - @fact iscommon(DecoratedInterval(Interval(-0.0, 0.0), def)) --> true - @fact iscommon(DecoratedInterval(Interval(0.0, -0.0), dac)) --> true - @fact iscommon(DecoratedInterval(Interval(5.0, 12.4), def)) --> true - @fact iscommon(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), trv)) --> true - @fact iscommon(DecoratedInterval(entireinterval(Float64), dac)) --> false - @fact iscommon(DecoratedInterval(∅, trv)) --> false - @fact iscommon(DecoratedInterval(∅, trv)) --> false - @fact iscommon(DecoratedInterval(Interval(-Inf, 0.0), trv)) --> false - @fact iscommon(DecoratedInterval(Interval(0.0, Inf), def)) --> false +@testset "minimal_isCommonInterval_dec_test" begin + @test iscommon(DecoratedInterval(Interval(-27.0, -27.0), com)) + @test iscommon(DecoratedInterval(Interval(-27.0, 0.0), com)) + @test iscommon(DecoratedInterval(Interval(0.0, 0.0), com)) + @test iscommon(DecoratedInterval(Interval(-0.0, -0.0), com)) + @test iscommon(DecoratedInterval(Interval(-0.0, 0.0), com)) + @test iscommon(DecoratedInterval(Interval(0.0, -0.0), com)) + @test iscommon(DecoratedInterval(Interval(5.0, 12.4), com)) + @test iscommon(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), com)) + @test iscommon(DecoratedInterval(Interval(-27.0, -27.0), trv)) + @test iscommon(DecoratedInterval(Interval(-27.0, 0.0), def)) + @test iscommon(DecoratedInterval(Interval(0.0, 0.0), dac)) + @test iscommon(DecoratedInterval(Interval(-0.0, -0.0), trv)) + @test iscommon(DecoratedInterval(Interval(-0.0, 0.0), def)) + @test iscommon(DecoratedInterval(Interval(0.0, -0.0), dac)) + @test iscommon(DecoratedInterval(Interval(5.0, 12.4), def)) + @test iscommon(DecoratedInterval(Interval(-0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023), trv)) + @test iscommon(DecoratedInterval(entireinterval(Float64), dac)) == false + @test iscommon(DecoratedInterval(∅, trv)) == false + @test iscommon(DecoratedInterval(∅, trv)) == false + @test iscommon(DecoratedInterval(Interval(-Inf, 0.0), trv)) == false + @test iscommon(DecoratedInterval(Interval(0.0, Inf), def)) == false end -facts("minimal_isSingleton_test") do - @fact isthin(Interval(-27.0, -27.0)) --> true - @fact isthin(Interval(-2.0, -2.0)) --> true - @fact isthin(Interval(12.0, 12.0)) --> true - @fact isthin(Interval(17.1, 17.1)) --> true - @fact isthin(Interval(-0.0, -0.0)) --> true - @fact isthin(Interval(0.0, 0.0)) --> true - @fact isthin(Interval(-0.0, 0.0)) --> true - @fact isthin(Interval(0.0, -0.0)) --> true - @fact isthin(∅) --> false - @fact isthin(entireinterval(Float64)) --> false - @fact isthin(Interval(-1.0, 0.0)) --> false - @fact isthin(Interval(-1.0, -0.5)) --> false - @fact isthin(Interval(1.0, 2.0)) --> false - @fact isthin(Interval(-Inf, -0x1.fffffffffffffp1023)) --> false - @fact isthin(Interval(-1.0, Inf)) --> false +@testset "minimal_isSingleton_test" begin + @test isthin(Interval(-27.0, -27.0)) + @test isthin(Interval(-2.0, -2.0)) + @test isthin(Interval(12.0, 12.0)) + @test isthin(Interval(17.1, 17.1)) + @test isthin(Interval(-0.0, -0.0)) + @test isthin(Interval(0.0, 0.0)) + @test isthin(Interval(-0.0, 0.0)) + @test isthin(Interval(0.0, -0.0)) + @test isthin(∅) == false + @test isthin(entireinterval(Float64)) == false + @test isthin(Interval(-1.0, 0.0)) == false + @test isthin(Interval(-1.0, -0.5)) == false + @test isthin(Interval(1.0, 2.0)) == false + @test isthin(Interval(-Inf, -0x1.fffffffffffffp1023)) == false + @test isthin(Interval(-1.0, Inf)) == false end -facts("minimal_isSingleton_dec_test") do - @fact isthin(DecoratedInterval(Interval(-27.0, -27.0), def)) --> true - @fact isthin(DecoratedInterval(Interval(-2.0, -2.0), trv)) --> true - @fact isthin(DecoratedInterval(Interval(12.0, 12.0), dac)) --> true - @fact isthin(DecoratedInterval(Interval(17.1, 17.1), com)) --> true - @fact isthin(DecoratedInterval(Interval(-0.0, -0.0), def)) --> true - @fact isthin(DecoratedInterval(Interval(0.0, 0.0), com)) --> true - @fact isthin(DecoratedInterval(Interval(-0.0, 0.0), def)) --> true - @fact isthin(DecoratedInterval(Interval(0.0, -0.0), dac)) --> true - @fact isthin(DecoratedInterval(∅, trv)) --> false - @fact isthin(DecoratedInterval(∅, trv)) --> false - @fact isthin(DecoratedInterval(entireinterval(Float64), def)) --> false - @fact isthin(DecoratedInterval(Interval(-1.0, 0.0), dac)) --> false - @fact isthin(DecoratedInterval(Interval(-1.0, -0.5), com)) --> false - @fact isthin(DecoratedInterval(Interval(1.0, 2.0), def)) --> false - @fact isthin(DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), dac)) --> false - @fact isthin(DecoratedInterval(Interval(-1.0, Inf), trv)) --> false +@testset "minimal_isSingleton_dec_test" begin + @test isthin(DecoratedInterval(Interval(-27.0, -27.0), def)) + @test isthin(DecoratedInterval(Interval(-2.0, -2.0), trv)) + @test isthin(DecoratedInterval(Interval(12.0, 12.0), dac)) + @test isthin(DecoratedInterval(Interval(17.1, 17.1), com)) + @test isthin(DecoratedInterval(Interval(-0.0, -0.0), def)) + @test isthin(DecoratedInterval(Interval(0.0, 0.0), com)) + @test isthin(DecoratedInterval(Interval(-0.0, 0.0), def)) + @test isthin(DecoratedInterval(Interval(0.0, -0.0), dac)) + @test isthin(DecoratedInterval(∅, trv)) == false + @test isthin(DecoratedInterval(∅, trv)) == false + @test isthin(DecoratedInterval(entireinterval(Float64), def)) == false + @test isthin(DecoratedInterval(Interval(-1.0, 0.0), dac)) == false + @test isthin(DecoratedInterval(Interval(-1.0, -0.5), com)) == false + @test isthin(DecoratedInterval(Interval(1.0, 2.0), def)) == false + @test isthin(DecoratedInterval(Interval(-Inf, -0x1.fffffffffffffp1023), dac)) == false + @test isthin(DecoratedInterval(Interval(-1.0, Inf), trv)) == false end -facts("minimal_isMember_test") do - @fact -27.0 ∈ Interval(-27.0, -27.0) --> true - @fact in(-27.0, Interval(-27.0, -27.0)) --> true - @fact -27.0 ∈ Interval(-27.0, 0.0) --> true - @fact in(-27.0, Interval(-27.0, 0.0)) --> true - @fact -7.0 ∈ Interval(-27.0, 0.0) --> true - @fact in(-7.0, Interval(-27.0, 0.0)) --> true - @fact 0.0 ∈ Interval(-27.0, 0.0) --> true - @fact in(0.0, Interval(-27.0, 0.0)) --> true - @fact -0.0 ∈ Interval(0.0, 0.0) --> true - @fact in(-0.0, Interval(0.0, 0.0)) --> true - @fact 0.0 ∈ Interval(0.0, 0.0) --> true - @fact in(0.0, Interval(0.0, 0.0)) --> true - @fact 0.0 ∈ Interval(-0.0, -0.0) --> true - @fact in(0.0, Interval(-0.0, -0.0)) --> true - @fact 0.0 ∈ Interval(-0.0, 0.0) --> true - @fact in(0.0, Interval(-0.0, 0.0)) --> true - @fact 0.0 ∈ Interval(0.0, -0.0) --> true - @fact in(0.0, Interval(0.0, -0.0)) --> true - @fact 5.0 ∈ Interval(5.0, 12.4) --> true - @fact in(5.0, Interval(5.0, 12.4)) --> true - @fact 6.3 ∈ Interval(5.0, 12.4) --> true - @fact in(6.3, Interval(5.0, 12.4)) --> true - @fact 12.4 ∈ Interval(5.0, 12.4) --> true - @fact in(12.4, Interval(5.0, 12.4)) --> true - @fact 0.0 ∈ entireinterval(Float64) --> true - @fact in(0.0, entireinterval(Float64)) --> true - @fact 5.0 ∈ entireinterval(Float64) --> true - @fact in(5.0, entireinterval(Float64)) --> true - @fact 6.3 ∈ entireinterval(Float64) --> true - @fact in(6.3, entireinterval(Float64)) --> true - @fact 12.4 ∈ entireinterval(Float64) --> true - @fact in(12.4, entireinterval(Float64)) --> true - @fact -71.0 ∈ Interval(-27.0, 0.0) --> false - @fact in(-71.0, Interval(-27.0, 0.0)) --> false - @fact 0.1 ∈ Interval(-27.0, 0.0) --> false - @fact in(0.1, Interval(-27.0, 0.0)) --> false - @fact -0.01 ∈ Interval(0.0, 0.0) --> false - @fact in(-0.01, Interval(0.0, 0.0)) --> false - @fact 0.000001 ∈ Interval(0.0, 0.0) --> false - @fact in(0.000001, Interval(0.0, 0.0)) --> false - @fact 111110.0 ∈ Interval(-0.0, -0.0) --> false - @fact in(111110.0, Interval(-0.0, -0.0)) --> false - @fact 4.9 ∈ Interval(5.0, 12.4) --> false - @fact in(4.9, Interval(5.0, 12.4)) --> false - @fact -6.3 ∈ Interval(5.0, 12.4) --> false - @fact in(-6.3, Interval(5.0, 12.4)) --> false - @fact 0.0 ∈ ∅ --> false - @fact in(0.0, ∅) --> false - @fact -4535.3 ∈ ∅ --> false - @fact in(-4535.3, ∅) --> false - @fact -Inf ∈ ∅ --> false - @fact in(-Inf, ∅) --> false - @fact Inf ∈ ∅ --> false - @fact in(Inf, ∅) --> false - @fact -Inf ∈ entireinterval(Float64) --> false - @fact in(-Inf, entireinterval(Float64)) --> false - @fact Inf ∈ entireinterval(Float64) --> false - @fact in(Inf, entireinterval(Float64)) --> false +@testset "minimal_isMember_test" begin + @test ∈(-27.0, Interval(-27.0, -27.0)) + @test in(-27.0, Interval(-27.0, -27.0)) + @test ∈(-27.0, Interval(-27.0, 0.0)) + @test in(-27.0, Interval(-27.0, 0.0)) + @test ∈(-7.0, Interval(-27.0, 0.0)) + @test in(-7.0, Interval(-27.0, 0.0)) + @test ∈(0.0, Interval(-27.0, 0.0)) + @test in(0.0, Interval(-27.0, 0.0)) + @test ∈(-0.0, Interval(0.0, 0.0)) + @test in(-0.0, Interval(0.0, 0.0)) + @test ∈(0.0, Interval(0.0, 0.0)) + @test in(0.0, Interval(0.0, 0.0)) + @test ∈(0.0, Interval(-0.0, -0.0)) + @test in(0.0, Interval(-0.0, -0.0)) + @test ∈(0.0, Interval(-0.0, 0.0)) + @test in(0.0, Interval(-0.0, 0.0)) + @test ∈(0.0, Interval(0.0, -0.0)) + @test in(0.0, Interval(0.0, -0.0)) + @test ∈(5.0, Interval(5.0, 12.4)) + @test in(5.0, Interval(5.0, 12.4)) + @test ∈(6.3, Interval(5.0, 12.4)) + @test in(6.3, Interval(5.0, 12.4)) + @test ∈(12.4, Interval(5.0, 12.4)) + @test in(12.4, Interval(5.0, 12.4)) + @test ∈(0.0, entireinterval(Float64)) + @test in(0.0, entireinterval(Float64)) + @test ∈(5.0, entireinterval(Float64)) + @test in(5.0, entireinterval(Float64)) + @test ∈(6.3, entireinterval(Float64)) + @test in(6.3, entireinterval(Float64)) + @test ∈(12.4, entireinterval(Float64)) + @test in(12.4, entireinterval(Float64)) + @test ∈(-71.0, Interval(-27.0, 0.0)) == false + @test in(-71.0, Interval(-27.0, 0.0)) == false + @test ∈(0.1, Interval(-27.0, 0.0)) == false + @test in(0.1, Interval(-27.0, 0.0)) == false + @test ∈(-0.01, Interval(0.0, 0.0)) == false + @test in(-0.01, Interval(0.0, 0.0)) == false + @test ∈(0.000001, Interval(0.0, 0.0)) == false + @test in(0.000001, Interval(0.0, 0.0)) == false + @test ∈(111110.0, Interval(-0.0, -0.0)) == false + @test in(111110.0, Interval(-0.0, -0.0)) == false + @test ∈(4.9, Interval(5.0, 12.4)) == false + @test in(4.9, Interval(5.0, 12.4)) == false + @test ∈(-6.3, Interval(5.0, 12.4)) == false + @test in(-6.3, Interval(5.0, 12.4)) == false + @test ∈(0.0, ∅) == false + @test in(0.0, ∅) == false + @test ∈(-4535.3, ∅) == false + @test in(-4535.3, ∅) == false + @test ∈(-Inf, ∅) == false + @test in(-Inf, ∅) == false + @test ∈(Inf, ∅) == false + @test in(Inf, ∅) == false + @test ∈(-Inf, entireinterval(Float64)) == false + @test in(-Inf, entireinterval(Float64)) == false + @test ∈(Inf, entireinterval(Float64)) == false + @test in(Inf, entireinterval(Float64)) == false end -facts("minimal_isMember_dec_test") do - @fact -27.0 ∈ DecoratedInterval(Interval(-27.0, -27.0), trv) --> true - @fact in(-27.0, DecoratedInterval(Interval(-27.0, -27.0), trv)) --> true - @fact -27.0 ∈ DecoratedInterval(Interval(-27.0, 0.0), def) --> true - @fact in(-27.0, DecoratedInterval(Interval(-27.0, 0.0), def)) --> true - @fact -7.0 ∈ DecoratedInterval(Interval(-27.0, 0.0), dac) --> true - @fact in(-7.0, DecoratedInterval(Interval(-27.0, 0.0), dac)) --> true - @fact 0.0 ∈ DecoratedInterval(Interval(-27.0, 0.0), com) --> true - @fact in(0.0, DecoratedInterval(Interval(-27.0, 0.0), com)) --> true - @fact -0.0 ∈ DecoratedInterval(Interval(0.0, 0.0), trv) --> true - @fact in(-0.0, DecoratedInterval(Interval(0.0, 0.0), trv)) --> true - @fact 0.0 ∈ DecoratedInterval(Interval(0.0, 0.0), def) --> true - @fact in(0.0, DecoratedInterval(Interval(0.0, 0.0), def)) --> true - @fact 0.0 ∈ DecoratedInterval(Interval(-0.0, -0.0), dac) --> true - @fact in(0.0, DecoratedInterval(Interval(-0.0, -0.0), dac)) --> true - @fact 0.0 ∈ DecoratedInterval(Interval(-0.0, 0.0), com) --> true - @fact in(0.0, DecoratedInterval(Interval(-0.0, 0.0), com)) --> true - @fact 0.0 ∈ DecoratedInterval(Interval(0.0, -0.0), trv) --> true - @fact in(0.0, DecoratedInterval(Interval(0.0, -0.0), trv)) --> true - @fact 5.0 ∈ DecoratedInterval(Interval(5.0, 12.4), def) --> true - @fact in(5.0, DecoratedInterval(Interval(5.0, 12.4), def)) --> true - @fact 6.3 ∈ DecoratedInterval(Interval(5.0, 12.4), dac) --> true - @fact in(6.3, DecoratedInterval(Interval(5.0, 12.4), dac)) --> true - @fact 12.4 ∈ DecoratedInterval(Interval(5.0, 12.4), com) --> true - @fact in(12.4, DecoratedInterval(Interval(5.0, 12.4), com)) --> true - @fact 0.0 ∈ DecoratedInterval(entireinterval(Float64), trv) --> true - @fact in(0.0, DecoratedInterval(entireinterval(Float64), trv)) --> true - @fact 5.0 ∈ DecoratedInterval(entireinterval(Float64), def) --> true - @fact in(5.0, DecoratedInterval(entireinterval(Float64), def)) --> true - @fact 6.3 ∈ DecoratedInterval(entireinterval(Float64), dac) --> true - @fact in(6.3, DecoratedInterval(entireinterval(Float64), dac)) --> true - @fact 12.4 ∈ DecoratedInterval(entireinterval(Float64), trv) --> true - @fact in(12.4, DecoratedInterval(entireinterval(Float64), trv)) --> true - @fact -71.0 ∈ DecoratedInterval(Interval(-27.0, 0.0), trv) --> false - @fact in(-71.0, DecoratedInterval(Interval(-27.0, 0.0), trv)) --> false - @fact 0.1 ∈ DecoratedInterval(Interval(-27.0, 0.0), def) --> false - @fact in(0.1, DecoratedInterval(Interval(-27.0, 0.0), def)) --> false - @fact -0.01 ∈ DecoratedInterval(Interval(0.0, 0.0), dac) --> false - @fact in(-0.01, DecoratedInterval(Interval(0.0, 0.0), dac)) --> false - @fact 0.000001 ∈ DecoratedInterval(Interval(0.0, 0.0), com) --> false - @fact in(0.000001, DecoratedInterval(Interval(0.0, 0.0), com)) --> false - @fact 111110.0 ∈ DecoratedInterval(Interval(-0.0, -0.0), trv) --> false - @fact in(111110.0, DecoratedInterval(Interval(-0.0, -0.0), trv)) --> false - @fact 4.9 ∈ DecoratedInterval(Interval(5.0, 12.4), def) --> false - @fact in(4.9, DecoratedInterval(Interval(5.0, 12.4), def)) --> false - @fact -6.3 ∈ DecoratedInterval(Interval(5.0, 12.4), dac) --> false - @fact in(-6.3, DecoratedInterval(Interval(5.0, 12.4), dac)) --> false - @fact 0.0 ∈ DecoratedInterval(∅, trv) --> false - @fact in(0.0, DecoratedInterval(∅, trv)) --> false - @fact 0.0 ∈ DecoratedInterval(∅, trv) --> false - @fact in(0.0, DecoratedInterval(∅, trv)) --> false - @fact -4535.3 ∈ DecoratedInterval(∅, trv) --> false - @fact in(-4535.3, DecoratedInterval(∅, trv)) --> false - @fact -4535.3 ∈ DecoratedInterval(∅, trv) --> false - @fact in(-4535.3, DecoratedInterval(∅, trv)) --> false - @fact -Inf ∈ DecoratedInterval(∅, trv) --> false - @fact in(-Inf, DecoratedInterval(∅, trv)) --> false - @fact -Inf ∈ DecoratedInterval(∅, trv) --> false - @fact in(-Inf, DecoratedInterval(∅, trv)) --> false - @fact Inf ∈ DecoratedInterval(∅, trv) --> false - @fact in(Inf, DecoratedInterval(∅, trv)) --> false - @fact Inf ∈ DecoratedInterval(∅, trv) --> false - @fact in(Inf, DecoratedInterval(∅, trv)) --> false - @fact -Inf ∈ DecoratedInterval(entireinterval(Float64), trv) --> false - @fact in(-Inf, DecoratedInterval(entireinterval(Float64), trv)) --> false - @fact Inf ∈ DecoratedInterval(entireinterval(Float64), def) --> false - @fact in(Inf, DecoratedInterval(entireinterval(Float64), def)) --> false +@testset "minimal_isMember_dec_test" begin + @test ∈(-27.0, DecoratedInterval(Interval(-27.0, -27.0), trv)) + @test in(-27.0, DecoratedInterval(Interval(-27.0, -27.0), trv)) + @test ∈(-27.0, DecoratedInterval(Interval(-27.0, 0.0), def)) + @test in(-27.0, DecoratedInterval(Interval(-27.0, 0.0), def)) + @test ∈(-7.0, DecoratedInterval(Interval(-27.0, 0.0), dac)) + @test in(-7.0, DecoratedInterval(Interval(-27.0, 0.0), dac)) + @test ∈(0.0, DecoratedInterval(Interval(-27.0, 0.0), com)) + @test in(0.0, DecoratedInterval(Interval(-27.0, 0.0), com)) + @test ∈(-0.0, DecoratedInterval(Interval(0.0, 0.0), trv)) + @test in(-0.0, DecoratedInterval(Interval(0.0, 0.0), trv)) + @test ∈(0.0, DecoratedInterval(Interval(0.0, 0.0), def)) + @test in(0.0, DecoratedInterval(Interval(0.0, 0.0), def)) + @test ∈(0.0, DecoratedInterval(Interval(-0.0, -0.0), dac)) + @test in(0.0, DecoratedInterval(Interval(-0.0, -0.0), dac)) + @test ∈(0.0, DecoratedInterval(Interval(-0.0, 0.0), com)) + @test in(0.0, DecoratedInterval(Interval(-0.0, 0.0), com)) + @test ∈(0.0, DecoratedInterval(Interval(0.0, -0.0), trv)) + @test in(0.0, DecoratedInterval(Interval(0.0, -0.0), trv)) + @test ∈(5.0, DecoratedInterval(Interval(5.0, 12.4), def)) + @test in(5.0, DecoratedInterval(Interval(5.0, 12.4), def)) + @test ∈(6.3, DecoratedInterval(Interval(5.0, 12.4), dac)) + @test in(6.3, DecoratedInterval(Interval(5.0, 12.4), dac)) + @test ∈(12.4, DecoratedInterval(Interval(5.0, 12.4), com)) + @test in(12.4, DecoratedInterval(Interval(5.0, 12.4), com)) + @test ∈(0.0, DecoratedInterval(entireinterval(Float64), trv)) + @test in(0.0, DecoratedInterval(entireinterval(Float64), trv)) + @test ∈(5.0, DecoratedInterval(entireinterval(Float64), def)) + @test in(5.0, DecoratedInterval(entireinterval(Float64), def)) + @test ∈(6.3, DecoratedInterval(entireinterval(Float64), dac)) + @test in(6.3, DecoratedInterval(entireinterval(Float64), dac)) + @test ∈(12.4, DecoratedInterval(entireinterval(Float64), trv)) + @test in(12.4, DecoratedInterval(entireinterval(Float64), trv)) + @test ∈(-71.0, DecoratedInterval(Interval(-27.0, 0.0), trv)) == false + @test in(-71.0, DecoratedInterval(Interval(-27.0, 0.0), trv)) == false + @test ∈(0.1, DecoratedInterval(Interval(-27.0, 0.0), def)) == false + @test in(0.1, DecoratedInterval(Interval(-27.0, 0.0), def)) == false + @test ∈(-0.01, DecoratedInterval(Interval(0.0, 0.0), dac)) == false + @test in(-0.01, DecoratedInterval(Interval(0.0, 0.0), dac)) == false + @test ∈(0.000001, DecoratedInterval(Interval(0.0, 0.0), com)) == false + @test in(0.000001, DecoratedInterval(Interval(0.0, 0.0), com)) == false + @test ∈(111110.0, DecoratedInterval(Interval(-0.0, -0.0), trv)) == false + @test in(111110.0, DecoratedInterval(Interval(-0.0, -0.0), trv)) == false + @test ∈(4.9, DecoratedInterval(Interval(5.0, 12.4), def)) == false + @test in(4.9, DecoratedInterval(Interval(5.0, 12.4), def)) == false + @test ∈(-6.3, DecoratedInterval(Interval(5.0, 12.4), dac)) == false + @test in(-6.3, DecoratedInterval(Interval(5.0, 12.4), dac)) == false + @test ∈(0.0, DecoratedInterval(∅, trv)) == false + @test in(0.0, DecoratedInterval(∅, trv)) == false + @test ∈(0.0, DecoratedInterval(∅, trv)) == false + @test in(0.0, DecoratedInterval(∅, trv)) == false + @test ∈(-4535.3, DecoratedInterval(∅, trv)) == false + @test in(-4535.3, DecoratedInterval(∅, trv)) == false + @test ∈(-4535.3, DecoratedInterval(∅, trv)) == false + @test in(-4535.3, DecoratedInterval(∅, trv)) == false + @test ∈(-Inf, DecoratedInterval(∅, trv)) == false + @test in(-Inf, DecoratedInterval(∅, trv)) == false + @test ∈(-Inf, DecoratedInterval(∅, trv)) == false + @test in(-Inf, DecoratedInterval(∅, trv)) == false + @test ∈(Inf, DecoratedInterval(∅, trv)) == false + @test in(Inf, DecoratedInterval(∅, trv)) == false + @test ∈(Inf, DecoratedInterval(∅, trv)) == false + @test in(Inf, DecoratedInterval(∅, trv)) == false + @test ∈(-Inf, DecoratedInterval(entireinterval(Float64), trv)) == false + @test in(-Inf, DecoratedInterval(entireinterval(Float64), trv)) == false + @test ∈(Inf, DecoratedInterval(entireinterval(Float64), def)) == false + @test in(Inf, DecoratedInterval(entireinterval(Float64), def)) == false end -# FactCheck.exitstatus() diff --git a/test/ITF1788_tests/libieeep1788_tests_rev.jl b/test/ITF1788_tests/libieeep1788_tests_rev.jl index 237829c..1fde612 100644 --- a/test/ITF1788_tests/libieeep1788_tests_rev.jl +++ b/test/ITF1788_tests/libieeep1788_tests_rev.jl @@ -1,26 +1,31 @@ -# -# Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) -# Copyright 2015 Oliver Heimlich (oheim@posteo.de) -# -# Original author: Marco Nehmeier (unit tests in libieeep1788) -# Converted into portable ITL format by Oliver Heimlich with minor corrections. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# +#= + Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) + Copyright 2015 Oliver Heimlich (oheim@posteo.de) + + Original author: Marco Nehmeier (unit tests in libieeep1788) + Converted into portable ITL format by Oliver Heimlich with minor corrections. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +=# #Language imports #Test library imports -using FactCheck +if VERSION >= v"0.5.0-dev+7720" + using Base.Test +else + using BaseTestNext + const Test = BaseTestNext +end #Arithmetic library imports using ValidatedNumerics @@ -30,131 +35,130 @@ setprecision(53) setprecision(Interval, Float64) setrounding(Interval, :narrow) -facts("minimal_sqrRev_test") do +@testset "minimal_sqrRev_test" begin end -facts("minimal_sqrRevBin_test") do +@testset "minimal_sqrRevBin_test" begin end -facts("minimal_sqrRev_dec_test") do +@testset "minimal_sqrRev_dec_test" begin end -facts("minimal_sqrRev_dec_bin_test") do +@testset "minimal_sqrRev_dec_bin_test" begin end -facts("minimal_absRev_test") do +@testset "minimal_absRev_test" begin end -facts("minimal_absRevBin_test") do +@testset "minimal_absRevBin_test" begin end -facts("minimal_absRev_dec_test") do +@testset "minimal_absRev_dec_test" begin end -facts("minimal_absRev_dec_bin_test") do +@testset "minimal_absRev_dec_bin_test" begin end -facts("minimal_pownRev_test") do +@testset "minimal_pownRev_test" begin end -facts("minimal_pownRevBin_test") do +@testset "minimal_pownRevBin_test" begin end -facts("minimal_pownRev_dec_test") do +@testset "minimal_pownRev_dec_test" begin end -facts("minimal_pownRev_dec_bin_test") do +@testset "minimal_pownRev_dec_bin_test" begin end -facts("minimal_sinRev_test") do +@testset "minimal_sinRev_test" begin end -facts("minimal_sinRevBin_test") do +@testset "minimal_sinRevBin_test" begin end -facts("minimal_sinRev_dec_test") do +@testset "minimal_sinRev_dec_test" begin end -facts("minimal_sinRev_dec_bin_test") do +@testset "minimal_sinRev_dec_bin_test" begin end -facts("minimal_cosRev_test") do +@testset "minimal_cosRev_test" begin end -facts("minimal_cosRevBin_test") do +@testset "minimal_cosRevBin_test" begin end -facts("minimal_cosRev_dec_test") do +@testset "minimal_cosRev_dec_test" begin end -facts("minimal_cosRev_dec_bin_test") do +@testset "minimal_cosRev_dec_bin_test" begin end -facts("minimal_tanRev_test") do +@testset "minimal_tanRev_test" begin end -facts("minimal_tanRevBin_test") do +@testset "minimal_tanRevBin_test" begin end -facts("minimal_tanRev_dec_test") do +@testset "minimal_tanRev_dec_test" begin end -facts("minimal_tanRev_dec_bin_test") do +@testset "minimal_tanRev_dec_bin_test" begin end -facts("minimal_coshRev_test") do +@testset "minimal_coshRev_test" begin end -facts("minimal_coshRevBin_test") do +@testset "minimal_coshRevBin_test" begin end -facts("minimal_coshRev_dec_test") do +@testset "minimal_coshRev_dec_test" begin end -facts("minimal_coshRev_dec_bin_test") do +@testset "minimal_coshRev_dec_bin_test" begin end -facts("minimal_mulRev_test") do +@testset "minimal_mulRev_test" begin end -facts("minimal_mulRevTen_test") do +@testset "minimal_mulRevTen_test" begin end -facts("minimal_mulRev_dec_test") do +@testset "minimal_mulRev_dec_test" begin end -facts("minimal_mulRev_dec_ten_test") do +@testset "minimal_mulRev_dec_ten_test" begin end -# FactCheck.exitstatus() diff --git a/test/ITF1788_tests/libieeep1788_tests_set.jl b/test/ITF1788_tests/libieeep1788_tests_set.jl index 4a9dbcd..8b8985b 100644 --- a/test/ITF1788_tests/libieeep1788_tests_set.jl +++ b/test/ITF1788_tests/libieeep1788_tests_set.jl @@ -1,26 +1,31 @@ -# -# Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) -# Copyright 2015 Oliver Heimlich (oheim@posteo.de) -# -# Original author: Marco Nehmeier (unit tests in libieeep1788) -# Converted into portable ITL format by Oliver Heimlich with minor corrections. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# +#= + Copyright 2013 - 2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) + Copyright 2015 Oliver Heimlich (oheim@posteo.de) + + Original author: Marco Nehmeier (unit tests in libieeep1788) + Converted into portable ITL format by Oliver Heimlich with minor corrections. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +=# #Language imports #Test library imports -using FactCheck +if VERSION >= v"0.5.0-dev+7720" + using Base.Test +else + using BaseTestNext + const Test = BaseTestNext +end #Arithmetic library imports using ValidatedNumerics @@ -30,75 +35,74 @@ setprecision(53) setprecision(Interval, Float64) setrounding(Interval, :narrow) -facts("minimal_intersection_test") do - @fact Interval(1.0, 3.0) ∩ Interval(2.1, 4.0) --> Interval(2.1, 3.0) - @fact intersect(Interval(1.0, 3.0), Interval(2.1, 4.0)) --> Interval(2.1, 3.0) - @fact Interval(1.0, 3.0) ∩ Interval(3.0, 4.0) --> Interval(3.0, 3.0) - @fact intersect(Interval(1.0, 3.0), Interval(3.0, 4.0)) --> Interval(3.0, 3.0) - @fact Interval(1.0, 3.0) ∩ ∅ --> ∅ - @fact intersect(Interval(1.0, 3.0), ∅) --> ∅ - @fact entireinterval(Float64) ∩ ∅ --> ∅ - @fact intersect(entireinterval(Float64), ∅) --> ∅ - @fact Interval(1.0, 3.0) ∩ entireinterval(Float64) --> Interval(1.0, 3.0) - @fact intersect(Interval(1.0, 3.0), entireinterval(Float64)) --> Interval(1.0, 3.0) +@testset "minimal_intersection_test" begin + @test intersect(Interval(1.0, 3.0), Interval(2.1, 4.0)) == Interval(2.1, 3.0) + @test ∩(Interval(1.0, 3.0), Interval(2.1, 4.0)) == Interval(2.1, 3.0) + @test intersect(Interval(1.0, 3.0), Interval(3.0, 4.0)) == Interval(3.0, 3.0) + @test ∩(Interval(1.0, 3.0), Interval(3.0, 4.0)) == Interval(3.0, 3.0) + @test intersect(Interval(1.0, 3.0), ∅) == ∅ + @test ∩(Interval(1.0, 3.0), ∅) == ∅ + @test intersect(entireinterval(Float64), ∅) == ∅ + @test ∩(entireinterval(Float64), ∅) == ∅ + @test intersect(Interval(1.0, 3.0), entireinterval(Float64)) == Interval(1.0, 3.0) + @test ∩(Interval(1.0, 3.0), entireinterval(Float64)) == Interval(1.0, 3.0) end -facts("minimal_intersection_dec_test") do - @fact DecoratedInterval(Interval(1.0, 3.0), com) ∩ DecoratedInterval(Interval(2.1, 4.0), com) --> DecoratedInterval(Interval(2.1, 3.0), trv) - @fact decoration(DecoratedInterval(Interval(1.0, 3.0), com) ∩ DecoratedInterval(Interval(2.1, 4.0), com)) --> decoration(DecoratedInterval(Interval(2.1, 3.0), trv)) - @fact intersect(DecoratedInterval(Interval(1.0, 3.0), com), DecoratedInterval(Interval(2.1, 4.0), com)) --> DecoratedInterval(Interval(2.1, 3.0), trv) - @fact decoration(intersect(DecoratedInterval(Interval(1.0, 3.0), com), DecoratedInterval(Interval(2.1, 4.0), com))) --> decoration(DecoratedInterval(Interval(2.1, 3.0), trv)) - @fact DecoratedInterval(Interval(1.0, 3.0), dac) ∩ DecoratedInterval(Interval(3.0, 4.0), def) --> DecoratedInterval(Interval(3.0, 3.0), trv) - @fact decoration(DecoratedInterval(Interval(1.0, 3.0), dac) ∩ DecoratedInterval(Interval(3.0, 4.0), def)) --> decoration(DecoratedInterval(Interval(3.0, 3.0), trv)) - @fact intersect(DecoratedInterval(Interval(1.0, 3.0), dac), DecoratedInterval(Interval(3.0, 4.0), def)) --> DecoratedInterval(Interval(3.0, 3.0), trv) - @fact decoration(intersect(DecoratedInterval(Interval(1.0, 3.0), dac), DecoratedInterval(Interval(3.0, 4.0), def))) --> decoration(DecoratedInterval(Interval(3.0, 3.0), trv)) - @fact DecoratedInterval(Interval(1.0, 3.0), def) ∩ DecoratedInterval(∅, trv) --> DecoratedInterval(∅, trv) - @fact decoration(DecoratedInterval(Interval(1.0, 3.0), def) ∩ DecoratedInterval(∅, trv)) --> decoration(DecoratedInterval(∅, trv)) - @fact intersect(DecoratedInterval(Interval(1.0, 3.0), def), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(intersect(DecoratedInterval(Interval(1.0, 3.0), def), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact DecoratedInterval(entireinterval(Float64), def) ∩ DecoratedInterval(∅, trv) --> DecoratedInterval(∅, trv) - @fact decoration(DecoratedInterval(entireinterval(Float64), def) ∩ DecoratedInterval(∅, trv)) --> decoration(DecoratedInterval(∅, trv)) - @fact intersect(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(intersect(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact DecoratedInterval(Interval(1.0, 3.0), dac) ∩ DecoratedInterval(entireinterval(Float64), def) --> DecoratedInterval(Interval(1.0, 3.0), trv) - @fact decoration(DecoratedInterval(Interval(1.0, 3.0), dac) ∩ DecoratedInterval(entireinterval(Float64), def)) --> decoration(DecoratedInterval(Interval(1.0, 3.0), trv)) - @fact intersect(DecoratedInterval(Interval(1.0, 3.0), dac), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(Interval(1.0, 3.0), trv) - @fact decoration(intersect(DecoratedInterval(Interval(1.0, 3.0), dac), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(Interval(1.0, 3.0), trv)) +@testset "minimal_intersection_dec_test" begin + @test intersect(DecoratedInterval(Interval(1.0, 3.0), com), DecoratedInterval(Interval(2.1, 4.0), com)) == DecoratedInterval(Interval(2.1, 3.0), trv) + @test decoration(intersect(DecoratedInterval(Interval(1.0, 3.0), com), DecoratedInterval(Interval(2.1, 4.0), com))) == decoration(DecoratedInterval(Interval(2.1, 3.0), trv)) + @test ∩(DecoratedInterval(Interval(1.0, 3.0), com), DecoratedInterval(Interval(2.1, 4.0), com)) == DecoratedInterval(Interval(2.1, 3.0), trv) + @test decoration(∩(DecoratedInterval(Interval(1.0, 3.0), com), DecoratedInterval(Interval(2.1, 4.0), com))) == decoration(DecoratedInterval(Interval(2.1, 3.0), trv)) + @test intersect(DecoratedInterval(Interval(1.0, 3.0), dac), DecoratedInterval(Interval(3.0, 4.0), def)) == DecoratedInterval(Interval(3.0, 3.0), trv) + @test decoration(intersect(DecoratedInterval(Interval(1.0, 3.0), dac), DecoratedInterval(Interval(3.0, 4.0), def))) == decoration(DecoratedInterval(Interval(3.0, 3.0), trv)) + @test ∩(DecoratedInterval(Interval(1.0, 3.0), dac), DecoratedInterval(Interval(3.0, 4.0), def)) == DecoratedInterval(Interval(3.0, 3.0), trv) + @test decoration(∩(DecoratedInterval(Interval(1.0, 3.0), dac), DecoratedInterval(Interval(3.0, 4.0), def))) == decoration(DecoratedInterval(Interval(3.0, 3.0), trv)) + @test intersect(DecoratedInterval(Interval(1.0, 3.0), def), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(intersect(DecoratedInterval(Interval(1.0, 3.0), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test ∩(DecoratedInterval(Interval(1.0, 3.0), def), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(∩(DecoratedInterval(Interval(1.0, 3.0), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test intersect(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(intersect(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test ∩(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(∩(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test intersect(DecoratedInterval(Interval(1.0, 3.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(1.0, 3.0), trv) + @test decoration(intersect(DecoratedInterval(Interval(1.0, 3.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(1.0, 3.0), trv)) + @test ∩(DecoratedInterval(Interval(1.0, 3.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(1.0, 3.0), trv) + @test decoration(∩(DecoratedInterval(Interval(1.0, 3.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(1.0, 3.0), trv)) end -facts("minimal_convexHull_test") do - @fact Interval(1.0, 3.0) ∪ Interval(2.1, 4.0) --> Interval(1.0, 4.0) - @fact hull(Interval(1.0, 3.0), Interval(2.1, 4.0)) --> Interval(1.0, 4.0) - @fact Interval(1.0, 1.0) ∪ Interval(2.1, 4.0) --> Interval(1.0, 4.0) - @fact hull(Interval(1.0, 1.0), Interval(2.1, 4.0)) --> Interval(1.0, 4.0) - @fact Interval(1.0, 3.0) ∪ ∅ --> Interval(1.0, 3.0) - @fact hull(Interval(1.0, 3.0), ∅) --> Interval(1.0, 3.0) - @fact ∅ ∪ ∅ --> ∅ - @fact hull(∅, ∅) --> ∅ - @fact Interval(1.0, 3.0) ∪ entireinterval(Float64) --> entireinterval(Float64) - @fact hull(Interval(1.0, 3.0), entireinterval(Float64)) --> entireinterval(Float64) +@testset "minimal_convexHull_test" begin + @test hull(Interval(1.0, 3.0), Interval(2.1, 4.0)) == Interval(1.0, 4.0) + @test ∪(Interval(1.0, 3.0), Interval(2.1, 4.0)) == Interval(1.0, 4.0) + @test hull(Interval(1.0, 1.0), Interval(2.1, 4.0)) == Interval(1.0, 4.0) + @test ∪(Interval(1.0, 1.0), Interval(2.1, 4.0)) == Interval(1.0, 4.0) + @test hull(Interval(1.0, 3.0), ∅) == Interval(1.0, 3.0) + @test ∪(Interval(1.0, 3.0), ∅) == Interval(1.0, 3.0) + @test hull(∅, ∅) == ∅ + @test ∪(∅, ∅) == ∅ + @test hull(Interval(1.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) + @test ∪(Interval(1.0, 3.0), entireinterval(Float64)) == entireinterval(Float64) end -facts("minimal_convexHull_dec_test") do - @fact DecoratedInterval(Interval(1.0, 3.0), trv) ∪ DecoratedInterval(Interval(2.1, 4.0), trv) --> DecoratedInterval(Interval(1.0, 4.0), trv) - @fact decoration(DecoratedInterval(Interval(1.0, 3.0), trv) ∪ DecoratedInterval(Interval(2.1, 4.0), trv)) --> decoration(DecoratedInterval(Interval(1.0, 4.0), trv)) - @fact hull(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(Interval(2.1, 4.0), trv)) --> DecoratedInterval(Interval(1.0, 4.0), trv) - @fact decoration(hull(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(Interval(2.1, 4.0), trv))) --> decoration(DecoratedInterval(Interval(1.0, 4.0), trv)) - @fact DecoratedInterval(Interval(1.0, 1.0), trv) ∪ DecoratedInterval(Interval(2.1, 4.0), trv) --> DecoratedInterval(Interval(1.0, 4.0), trv) - @fact decoration(DecoratedInterval(Interval(1.0, 1.0), trv) ∪ DecoratedInterval(Interval(2.1, 4.0), trv)) --> decoration(DecoratedInterval(Interval(1.0, 4.0), trv)) - @fact hull(DecoratedInterval(Interval(1.0, 1.0), trv), DecoratedInterval(Interval(2.1, 4.0), trv)) --> DecoratedInterval(Interval(1.0, 4.0), trv) - @fact decoration(hull(DecoratedInterval(Interval(1.0, 1.0), trv), DecoratedInterval(Interval(2.1, 4.0), trv))) --> decoration(DecoratedInterval(Interval(1.0, 4.0), trv)) - @fact DecoratedInterval(Interval(1.0, 3.0), trv) ∪ DecoratedInterval(∅, trv) --> DecoratedInterval(Interval(1.0, 3.0), trv) - @fact decoration(DecoratedInterval(Interval(1.0, 3.0), trv) ∪ DecoratedInterval(∅, trv)) --> decoration(DecoratedInterval(Interval(1.0, 3.0), trv)) - @fact hull(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(∅, trv)) --> DecoratedInterval(Interval(1.0, 3.0), trv) - @fact decoration(hull(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(Interval(1.0, 3.0), trv)) - @fact DecoratedInterval(∅, trv) ∪ DecoratedInterval(∅, trv) --> DecoratedInterval(∅, trv) - @fact decoration(DecoratedInterval(∅, trv) ∪ DecoratedInterval(∅, trv)) --> decoration(DecoratedInterval(∅, trv)) - @fact hull(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv)) --> DecoratedInterval(∅, trv) - @fact decoration(hull(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv))) --> decoration(DecoratedInterval(∅, trv)) - @fact DecoratedInterval(Interval(1.0, 3.0), trv) ∪ DecoratedInterval(entireinterval(Float64), def) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(DecoratedInterval(Interval(1.0, 3.0), trv) ∪ DecoratedInterval(entireinterval(Float64), def)) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) - @fact hull(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(entireinterval(Float64), def)) --> DecoratedInterval(entireinterval(Float64), trv) - @fact decoration(hull(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(entireinterval(Float64), def))) --> decoration(DecoratedInterval(entireinterval(Float64), trv)) +@testset "minimal_convexHull_dec_test" begin + @test hull(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(Interval(2.1, 4.0), trv)) == DecoratedInterval(Interval(1.0, 4.0), trv) + @test decoration(hull(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(Interval(2.1, 4.0), trv))) == decoration(DecoratedInterval(Interval(1.0, 4.0), trv)) + @test ∪(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(Interval(2.1, 4.0), trv)) == DecoratedInterval(Interval(1.0, 4.0), trv) + @test decoration(∪(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(Interval(2.1, 4.0), trv))) == decoration(DecoratedInterval(Interval(1.0, 4.0), trv)) + @test hull(DecoratedInterval(Interval(1.0, 1.0), trv), DecoratedInterval(Interval(2.1, 4.0), trv)) == DecoratedInterval(Interval(1.0, 4.0), trv) + @test decoration(hull(DecoratedInterval(Interval(1.0, 1.0), trv), DecoratedInterval(Interval(2.1, 4.0), trv))) == decoration(DecoratedInterval(Interval(1.0, 4.0), trv)) + @test ∪(DecoratedInterval(Interval(1.0, 1.0), trv), DecoratedInterval(Interval(2.1, 4.0), trv)) == DecoratedInterval(Interval(1.0, 4.0), trv) + @test decoration(∪(DecoratedInterval(Interval(1.0, 1.0), trv), DecoratedInterval(Interval(2.1, 4.0), trv))) == decoration(DecoratedInterval(Interval(1.0, 4.0), trv)) + @test hull(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(∅, trv)) == DecoratedInterval(Interval(1.0, 3.0), trv) + @test decoration(hull(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(Interval(1.0, 3.0), trv)) + @test ∪(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(∅, trv)) == DecoratedInterval(Interval(1.0, 3.0), trv) + @test decoration(∪(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(Interval(1.0, 3.0), trv)) + @test hull(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(hull(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test ∪(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) + @test decoration(∪(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) + @test hull(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(hull(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) + @test ∪(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(entireinterval(Float64), trv) + @test decoration(∪(DecoratedInterval(Interval(1.0, 3.0), trv), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(entireinterval(Float64), trv)) end -# FactCheck.exitstatus() diff --git a/test/REQUIRE b/test/REQUIRE index 2097a5e..9c44ba0 100644 --- a/test/REQUIRE +++ b/test/REQUIRE @@ -1,3 +1,2 @@ -FactCheck 0.3 Polynomials 0.0.5 BaseTestNext From 029783d204854c96ea53a468c7b0327583ae43dc Mon Sep 17 00:00:00 2001 From: Luis Benet Date: Sun, 5 Mar 2017 13:50:03 -0600 Subject: [PATCH 2/4] Include path to find the ITF1788 test files --- test/ITF1788_tests/ITF1788_tests.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/ITF1788_tests/ITF1788_tests.jl b/test/ITF1788_tests/ITF1788_tests.jl index 550ec68..6e1e1e6 100644 --- a/test/ITF1788_tests/ITF1788_tests.jl +++ b/test/ITF1788_tests/ITF1788_tests.jl @@ -15,6 +15,6 @@ testfiles = ( addprocs() @sync @parallel for tf in testfiles - include(tf) + include("test/ITF1788_tests/" * tf) end rmprocs() From 8a8a45ea9c2b4c5e9887080f98467f5a8b69b0c9 Mon Sep 17 00:00:00 2001 From: Luis Benet Date: Sun, 5 Mar 2017 14:09:31 -0600 Subject: [PATCH 3/4] Ammend dir for ITF1788 tests --- test/ITF1788_tests/ITF1788_tests.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/ITF1788_tests/ITF1788_tests.jl b/test/ITF1788_tests/ITF1788_tests.jl index 6e1e1e6..1a05265 100644 --- a/test/ITF1788_tests/ITF1788_tests.jl +++ b/test/ITF1788_tests/ITF1788_tests.jl @@ -15,6 +15,6 @@ testfiles = ( addprocs() @sync @parallel for tf in testfiles - include("test/ITF1788_tests/" * tf) + include("ITF1788_tests/" * tf) end rmprocs() From 5799e78780a8f730ad4f3fe2d45a49fed13b98fb Mon Sep 17 00:00:00 2001 From: Luis Benet Date: Sun, 5 Mar 2017 15:12:12 -0600 Subject: [PATCH 4/4] Parallelize tests Master ruuns a first (short test) to precompile, and the remaining are parallelized. This is built on top of [#235]. --- test/ITF1788_tests/ITF1788_tests.jl | 2 -- test/root_finding_tests/root_finding.jl | 1 + test/runtests.jl | 33 ++++++++++++++----------- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/test/ITF1788_tests/ITF1788_tests.jl b/test/ITF1788_tests/ITF1788_tests.jl index 1a05265..47b0aa5 100644 --- a/test/ITF1788_tests/ITF1788_tests.jl +++ b/test/ITF1788_tests/ITF1788_tests.jl @@ -13,8 +13,6 @@ testfiles = ( "libieeep1788_tests_set.jl" ) -addprocs() @sync @parallel for tf in testfiles include("ITF1788_tests/" * tf) end -rmprocs() diff --git a/test/root_finding_tests/root_finding.jl b/test/root_finding_tests/root_finding.jl index cf2597e..2d15ce4 100644 --- a/test/root_finding_tests/root_finding.jl +++ b/test/root_finding_tests/root_finding.jl @@ -1,3 +1,4 @@ +using ValidatedNumerics.RootFinding include("bisect.jl") include("findroots.jl") diff --git a/test/runtests.jl b/test/runtests.jl index b965663..762219f 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -11,19 +11,24 @@ using ValidatedNumerics setdisplay(:full) -include("interval_tests/intervals.jl") -include("multidim_tests/multidim.jl") -include("decoration_tests/decoration_tests.jl") - -# Display tests: -include("display_tests/display.jl") - -# Root-finding tests: - -using ValidatedNumerics.RootFinding -include("root_finding_tests/root_finding.jl") - - -# ITF1788 tests +# This is done like this so the master worker precompiles +cd("test") +include("display_tests/display.jl") # display tests + +info("Parallelizing tests") +testfiles = ( + "interval_tests/intervals.jl", + "multidim_tests/multidim.jl", + "decoration_tests/decoration_tests.jl", + "root_finding_tests/root_finding.jl", # root finding tests + ) + +addprocs() +@sync @parallel for tfile in testfiles + include(tfile) +end +# ITF1788 tests; parallelized separately to have more processors +info("Test ITF1788 suite") include("ITF1788_tests/ITF1788_tests.jl") +rmprocs()