diff --git a/Project.toml b/Project.toml index 864dd177b..1c98f2cbd 100644 --- a/Project.toml +++ b/Project.toml @@ -16,6 +16,7 @@ StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" [compat] CRlibm = "0.7, 0.8, 1" +IntervalContractors = "0.4" FastRounding = "0.2" Polynomials = "0.7" RecipesBase = "1.0" @@ -25,9 +26,10 @@ StaticArrays = "0.8, 0.9, 0.10, 0.11, 0.12, 1.0" julia = "1.5" [extras] +IntervalContractors = "15111844-de3b-5229-b4ba-526f2f385dc9" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" Polynomials = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["LinearAlgebra", "Test", "Polynomials"] +test = ["IntervalContractors", "LinearAlgebra", "Test", "Polynomials"] diff --git a/test/ITF1788_tests/ITF1788_test_generation_instructions.md b/test/ITF1788_tests/ITF1788_test_generation_instructions.md deleted file mode 100644 index b6c409a4f..000000000 --- a/test/ITF1788_tests/ITF1788_test_generation_instructions.md +++ /dev/null @@ -1,20 +0,0 @@ -This folder contains Julia output files from the ITF1788 test suite, which tests conformance with the document IEEE Std 1788-2015, IEEE Standard on Interval Arithmetic (https://standards.ieee.org/findstds/standard/1788-2015.html) - -The complete test suite is available at - -https://github.com/oheim/ITF1788 - -See `NOTICE` for the copyright notice and `LICENSE` for the license for the `ITF1788` package. - -To generate the tests, clone the ITF1788 package and change to the directory. - -To use the package, Python 3 must be installed, and the following Python packages: - - pip install ply - pip install pyyaml - -To generate the tests, run - - python3 -m itf1788 -c "(julia, *, *)" - -The resulting test files are generated in the `output/julia/Test/IntervalArithmetic` subdirectory of the ITF1788 directory. diff --git a/test/ITF1788_tests/ITF1788_tests.jl b/test/ITF1788_tests/ITF1788_tests.jl deleted file mode 100644 index da02e6263..000000000 --- a/test/ITF1788_tests/ITF1788_tests.jl +++ /dev/null @@ -1,14 +0,0 @@ -include("ieee1788-constructors.jl") -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") -include("mpfi.jl") -include("fi_lib.jl") -include("atan.jl") -include("c-xsc.jl") diff --git a/test/ITF1788_tests/atan.jl b/test/ITF1788_tests/atan.jl deleted file mode 100644 index 2e6673a48..000000000 --- a/test/ITF1788_tests/atan.jl +++ /dev/null @@ -1,68 +0,0 @@ -#= - - Test cases for interval inverse tangent function with two arguments. - - Copyright 2015-2016 Oliver Heimlich (oheim@posteo.de) - - 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 -using Test - -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) -# Set full format, and show decorations -@format full - -@testset "minimal.atan_test" begin - @test atan(∅, ∅) == ∅ - @test atan(∅, entireinterval(Float64)) == ∅ - @test atan(entireinterval(Float64), ∅) == ∅ - @test atan(Interval(0.0, 0.0), Interval(0.0, 0.0)) == ∅ - @test atan(entireinterval(Float64), entireinterval(Float64)) == Interval(-0x1.921fb54442d19p1, +0x1.921fb54442d19p1) - @test atan(Interval(0.0, 0.0), Interval(-Inf, 0.0)) == Interval(0x1.921fb54442d18p1, 0x1.921fb54442d19p1) - @test atan(Interval(0.0, 0.0), Interval(0.0, Inf)) == Interval(0.0, 0.0) - @test atan(Interval(0.0, Inf), Interval(0.0, 0.0)) == Interval(0x1.921fb54442d18p0, 0x1.921fb54442d19p0) - @test atan(Interval(-Inf, 0.0), Interval(0.0, 0.0)) == Interval(-0x1.921fb54442d19p0, -0x1.921fb54442d18p0) - @test atan(Interval(-0x1p-1022, 0.0), Interval(-0x1p-1022, -0x1p-1022)) == Interval(-0x1.921fb54442d19p1, +0x1.921fb54442d19p1) - @test atan(Interval(1.0, 1.0), Interval(-1.0, -1.0)) == Interval(0x1.2d97c7f3321d2p1, 0x1.2d97c7f3321d3p1) - @test atan(Interval(1.0, 1.0), Interval(1.0, 1.0)) == Interval(0x1.921fb54442d18p-1, 0x1.921fb54442d19p-1) - @test atan(Interval(-1.0, -1.0), Interval(1.0, 1.0)) == Interval(-0x1.921fb54442d19p-1, -0x1.921fb54442d18p-1) - @test atan(Interval(-1.0, -1.0), Interval(-1.0, -1.0)) == Interval(-0x1.2d97c7f3321d3p1, -0x1.2d97c7f3321d2p1) - @test atan(Interval(-0x1p-1022, 0x1p-1022), Interval(-0x1p-1022, -0x1p-1022)) == Interval(-0x1.921fb54442d19p1, +0x1.921fb54442d19p1) - @test atan(Interval(-0x1p-1022, 0x1p-1022), Interval(0x1p-1022, 0x1p-1022)) == Interval(-0x1.921fb54442d19p-1, +0x1.921fb54442d19p-1) - @test atan(Interval(-0x1p-1022, -0x1p-1022), Interval(-0x1p-1022, 0x1p-1022)) == Interval(-0x1.2d97c7f3321d3p1, -0x1.921fb54442d18p-1) - @test atan(Interval(0x1p-1022, 0x1p-1022), Interval(-0x1p-1022, 0x1p-1022)) == Interval(0x1.921fb54442d18p-1, 0x1.2d97c7f3321d3p1) - @test atan(Interval(-2.0, 2.0), Interval(-3.0, -1.0)) == Interval(-0x1.921fb54442d19p1, +0x1.921fb54442d19p1) - @test atan(Interval(0.0, 2.0), Interval(-3.0, -1.0)) == Interval(0x1.0468a8ace4df6p1, 0x1.921fb54442d19p1) - @test atan(Interval(1.0, 3.0), Interval(-3.0, -1.0)) == Interval(0x1.e47df3d0dd4dp0, 0x1.68f095fdf593dp1) - @test atan(Interval(1.0, 3.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p0, 0x1.56c6e7397f5afp1) - @test atan(Interval(1.0, 3.0), Interval(-2.0, 2.0)) == Interval(0x1.dac670561bb4fp-2, 0x1.56c6e7397f5afp1) - @test atan(Interval(1.0, 3.0), Interval(0.0, 2.0)) == Interval(0x1.dac670561bb4fp-2, 0x1.921fb54442d19p0) - @test atan(Interval(1.0, 3.0), Interval(1.0, 3.0)) == Interval(0x1.4978fa3269ee1p-2, 0x1.3fc176b7a856p0) - @test atan(Interval(0.0, 2.0), Interval(1.0, 3.0)) == Interval(0x0p0, 0x1.1b6e192ebbe45p0) - @test atan(Interval(-2.0, 2.0), Interval(1.0, 3.0)) == Interval(-0x1.1b6e192ebbe45p0, +0x1.1b6e192ebbe45p0) - @test atan(Interval(-2.0, 0.0), Interval(1.0, 3.0)) == Interval(-0x1.1b6e192ebbe45p0, 0x0p0) - @test atan(Interval(-3.0, -1.0), Interval(1.0, 3.0)) == Interval(-0x1.3fc176b7a856p0, -0x1.4978fa3269ee1p-2) - @test atan(Interval(-3.0, -1.0), Interval(0.0, 2.0)) == Interval(-0x1.921fb54442d19p0, -0x1.dac670561bb4fp-2) - @test atan(Interval(-3.0, -1.0), Interval(-2.0, 2.0)) == Interval(-0x1.56c6e7397f5afp1, -0x1.dac670561bb4fp-2) - @test atan(Interval(-3.0, -1.0), Interval(-2.0, 0.0)) == Interval(-0x1.56c6e7397f5afp1, -0x1.921fb54442d18p0) - @test atan(Interval(-3.0, -1.0), Interval(-3.0, -1.0)) == Interval(-0x1.68f095fdf593dp1, -0x1.e47df3d0dd4dp0) - @test atan(Interval(-2.0, 0.0), Interval(-3.0, -1.0)) == Interval(-0x1.921fb54442d19p1, +0x1.921fb54442d19p1) - @test atan(Interval(-5.0, 0.0), Interval(-5.0, 0.0)) == Interval(-0x1.921fb54442d19p1, +0x1.921fb54442d19p1) - @test atan(Interval(0.0, 5.0), Interval(-5.0, 0.0)) == Interval(0x1.921fb54442d18p0, 0x1.921fb54442d19p1) - @test atan(Interval(0.0, 5.0), Interval(0.0, 5.0)) == Interval(0x0p0, 0x1.921fb54442d19p0) - @test atan(Interval(-5.0, 0.0), Interval(0.0, 5.0)) == Interval(-0x1.921fb54442d19p0, 0x0p0) -end -# FactCheck.exitstatus() diff --git a/test/ITF1788_tests/c-xsc.jl b/test/ITF1788_tests/c-xsc.jl deleted file mode 100644 index 1b9d9a8e5..000000000 --- a/test/ITF1788_tests/c-xsc.jl +++ /dev/null @@ -1,388 +0,0 @@ -#= - - Unit tests from C-XSC version 2.5.4 - converted into portable ITL format by Oliver Heimlich. - - Copyright 1990-2000 Institut fuer Angewandte Mathematik, - Universitaet Karlsruhe, Germany - Copyright 2000-2014 Wiss. Rechnen/Softwaretechnologie - Universitaet Wuppertal, Germany - Copyright 2015-2016 Oliver Heimlich (oheim@posteo.de) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -=# -#Language imports - -#Test library imports -using Test - -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) -# Set full format, and show decorations -@format full - -# Tests A+B, B+A, A-B, B-A, -A, +A -@testset "cxsc.intervaladdsub" begin - @test Interval(10.0, 20.0) + Interval(13.0, 17.0) == Interval(23.0, 37.0) - @test Interval(13.0, 17.0) + Interval(10.0, 20.0) == Interval(23.0, 37.0) - @test Interval(10.0, 20.0) - Interval(13.0, 16.0) == Interval(-6.0, 7.0) - @test Interval(13.0, 16.0) - Interval(10.0, 20.0) == Interval(-7.0, 6.0) - @test -(Interval(10.0, 20.0)) == Interval(-20.0, -10.0) - @test +Interval(10.0, 20.0) == Interval(10.0, 20.0) -end - -# Tests A*B, B*A, A/B, B/A -@testset "cxsc.intervalmuldiv" begin - @test Interval(1.0, 2.0) * Interval(3.0, 4.0) == Interval(3.0, 8.0) - @test Interval(-1.0, 2.0) * Interval(3.0, 4.0) == Interval(-4.0, 8.0) - @test Interval(-2.0, 1.0) * Interval(3.0, 4.0) == Interval(-8.0, 4.0) - @test Interval(-2.0, -1.0) * Interval(3.0, 4.0) == Interval(-8.0, -3.0) - @test Interval(1.0, 2.0) * Interval(-3.0, 4.0) == Interval(-6.0, 8.0) - @test Interval(-1.0, 2.0) * Interval(-3.0, 4.0) == Interval(-6.0, 8.0) - @test Interval(-2.0, 1.0) * Interval(-3.0, 4.0) == Interval(-8.0, 6.0) - @test Interval(-2.0, -1.0) * Interval(-3.0, 4.0) == Interval(-8.0, 6.0) - @test Interval(1.0, 2.0) * Interval(-4.0, 3.0) == Interval(-8.0, 6.0) - @test Interval(-1.0, 2.0) * Interval(-4.0, 3.0) == Interval(-8.0, 6.0) - @test Interval(-2.0, 1.0) * Interval(-4.0, 3.0) == Interval(-6.0, 8.0) - @test Interval(-2.0, -1.0) * Interval(-4.0, 3.0) == Interval(-6.0, 8.0) - @test Interval(1.0, 2.0) * Interval(-4.0, -3.0) == Interval(-8.0, -3.0) - @test Interval(-1.0, 2.0) * Interval(-4.0, -3.0) == Interval(-8.0, 4.0) - @test Interval(-2.0, -1.0) * Interval(-4.0, -3.0) == Interval(3.0, 8.0) - @test Interval(1.0, 2.0) / Interval(4.0, 8.0) == Interval(0.125, 0.5) - @test Interval(-1.0, 2.0) / Interval(4.0, 8.0) == Interval(-0.25, 0.5) - @test Interval(-2.0, 1.0) / Interval(4.0, 8.0) == Interval(-0.5, 0.25) - @test Interval(-2.0, -1.0) / Interval(4.0, 8.0) == Interval(-0.5, -0.125) - @test Interval(1.0, 2.0) / Interval(-4.0, 8.0) == entireinterval(Float64) - @test Interval(-1.0, 2.0) / Interval(-4.0, 8.0) == entireinterval(Float64) - @test Interval(-2.0, 1.0) / Interval(-4.0, 8.0) == entireinterval(Float64) - @test Interval(-2.0, -1.0) / Interval(-4.0, 8.0) == entireinterval(Float64) - @test Interval(1.0, 2.0) / Interval(-8.0, 4.0) == entireinterval(Float64) - @test Interval(-1.0, 2.0) / Interval(-8.0, 4.0) == entireinterval(Float64) - @test Interval(-2.0, 1.0) / Interval(-8.0, 4.0) == entireinterval(Float64) - @test Interval(-2.0, -1.0) / Interval(-8.0, 4.0) == entireinterval(Float64) - @test Interval(1.0, 2.0) / Interval(-8.0, -4.0) == Interval(-0.5, -0.125) - @test Interval(-1.0, 2.0) / Interval(-8.0, -4.0) == Interval(-0.5, 0.25) - @test Interval(-2.0, 1.0) / Interval(-8.0, -4.0) == Interval(-0.25, 0.5) - @test Interval(-2.0, -1.0) / Interval(-8.0, -4.0) == Interval(0.125, 0.5) -end - -# Tests A|B, B|A, A&B, B&A -@testset "cxsc.intervalsetops" begin - @test hull(Interval(-2.0, 2.0), Interval(-4.0, -3.0)) == Interval(-4.0, 2.0) - @test ∪(Interval(-2.0, 2.0), Interval(-4.0, -3.0)) == Interval(-4.0, 2.0) - @test (Interval(-2.0, 2.0) ∪ Interval(-4.0, -3.0)) == Interval(-4.0, 2.0) - @test hull(Interval(-2.0, 2.0), Interval(-4.0, -1.0)) == Interval(-4.0, 2.0) - @test ∪(Interval(-2.0, 2.0), Interval(-4.0, -1.0)) == Interval(-4.0, 2.0) - @test (Interval(-2.0, 2.0) ∪ Interval(-4.0, -1.0)) == Interval(-4.0, 2.0) - @test hull(Interval(-2.0, 2.0), Interval(-4.0, 4.0)) == Interval(-4.0, 4.0) - @test ∪(Interval(-2.0, 2.0), Interval(-4.0, 4.0)) == Interval(-4.0, 4.0) - @test (Interval(-2.0, 2.0) ∪ Interval(-4.0, 4.0)) == Interval(-4.0, 4.0) - @test hull(Interval(-2.0, 2.0), Interval(-1.0, 1.0)) == Interval(-2.0, 2.0) - @test ∪(Interval(-2.0, 2.0), Interval(-1.0, 1.0)) == Interval(-2.0, 2.0) - @test (Interval(-2.0, 2.0) ∪ Interval(-1.0, 1.0)) == Interval(-2.0, 2.0) - @test hull(Interval(-2.0, 2.0), Interval(1.0, 4.0)) == Interval(-2.0, 4.0) - @test ∪(Interval(-2.0, 2.0), Interval(1.0, 4.0)) == Interval(-2.0, 4.0) - @test (Interval(-2.0, 2.0) ∪ Interval(1.0, 4.0)) == Interval(-2.0, 4.0) - @test hull(Interval(-2.0, 2.0), Interval(3.0, 4.0)) == Interval(-2.0, 4.0) - @test ∪(Interval(-2.0, 2.0), Interval(3.0, 4.0)) == Interval(-2.0, 4.0) - @test (Interval(-2.0, 2.0) ∪ Interval(3.0, 4.0)) == Interval(-2.0, 4.0) - @test hull(Interval(-4.0, -3.0), Interval(-2.0, 2.0)) == Interval(-4.0, 2.0) - @test ∪(Interval(-4.0, -3.0), Interval(-2.0, 2.0)) == Interval(-4.0, 2.0) - @test (Interval(-4.0, -3.0) ∪ Interval(-2.0, 2.0)) == Interval(-4.0, 2.0) - @test hull(Interval(-4.0, -1.0), Interval(-2.0, 2.0)) == Interval(-4.0, 2.0) - @test ∪(Interval(-4.0, -1.0), Interval(-2.0, 2.0)) == Interval(-4.0, 2.0) - @test (Interval(-4.0, -1.0) ∪ Interval(-2.0, 2.0)) == Interval(-4.0, 2.0) - @test hull(Interval(-4.0, 4.0), Interval(-2.0, 2.0)) == Interval(-4.0, 4.0) - @test ∪(Interval(-4.0, 4.0), Interval(-2.0, 2.0)) == Interval(-4.0, 4.0) - @test (Interval(-4.0, 4.0) ∪ Interval(-2.0, 2.0)) == Interval(-4.0, 4.0) - @test hull(Interval(-1.0, 1.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) - @test ∪(Interval(-1.0, 1.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) - @test (Interval(-1.0, 1.0) ∪ Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) - @test hull(Interval(1.0, 4.0), Interval(-2.0, 2.0)) == Interval(-2.0, 4.0) - @test ∪(Interval(1.0, 4.0), Interval(-2.0, 2.0)) == Interval(-2.0, 4.0) - @test (Interval(1.0, 4.0) ∪ Interval(-2.0, 2.0)) == Interval(-2.0, 4.0) - @test hull(Interval(3.0, 4.0), Interval(-2.0, 2.0)) == Interval(-2.0, 4.0) - @test ∪(Interval(3.0, 4.0), Interval(-2.0, 2.0)) == Interval(-2.0, 4.0) - @test (Interval(3.0, 4.0) ∪ Interval(-2.0, 2.0)) == Interval(-2.0, 4.0) - @test intersect(Interval(-2.0, 2.0), Interval(-4.0, -3.0)) == ∅ - @test ∩(Interval(-2.0, 2.0), Interval(-4.0, -3.0)) == ∅ - @test (Interval(-2.0, 2.0) ∩ Interval(-4.0, -3.0)) == ∅ - @test intersect(Interval(-2.0, 2.0), Interval(-4.0, -1.0)) == Interval(-2.0, -1.0) - @test ∩(Interval(-2.0, 2.0), Interval(-4.0, -1.0)) == Interval(-2.0, -1.0) - @test (Interval(-2.0, 2.0) ∩ Interval(-4.0, -1.0)) == Interval(-2.0, -1.0) - @test intersect(Interval(-2.0, 2.0), Interval(-4.0, 4.0)) == Interval(-2.0, 2.0) - @test ∩(Interval(-2.0, 2.0), Interval(-4.0, 4.0)) == Interval(-2.0, 2.0) - @test (Interval(-2.0, 2.0) ∩ Interval(-4.0, 4.0)) == Interval(-2.0, 2.0) - @test intersect(Interval(-2.0, 2.0), Interval(-1.0, 1.0)) == Interval(-1.0, 1.0) - @test ∩(Interval(-2.0, 2.0), Interval(-1.0, 1.0)) == Interval(-1.0, 1.0) - @test (Interval(-2.0, 2.0) ∩ Interval(-1.0, 1.0)) == Interval(-1.0, 1.0) - @test intersect(Interval(-2.0, 2.0), Interval(1.0, 4.0)) == Interval(1.0, 2.0) - @test ∩(Interval(-2.0, 2.0), Interval(1.0, 4.0)) == Interval(1.0, 2.0) - @test (Interval(-2.0, 2.0) ∩ Interval(1.0, 4.0)) == Interval(1.0, 2.0) - @test intersect(Interval(-2.0, 2.0), Interval(3.0, 4.0)) == ∅ - @test ∩(Interval(-2.0, 2.0), Interval(3.0, 4.0)) == ∅ - @test (Interval(-2.0, 2.0) ∩ Interval(3.0, 4.0)) == ∅ - @test intersect(Interval(-4.0, -3.0), Interval(-2.0, 2.0)) == ∅ - @test ∩(Interval(-4.0, -3.0), Interval(-2.0, 2.0)) == ∅ - @test (Interval(-4.0, -3.0) ∩ Interval(-2.0, 2.0)) == ∅ - @test intersect(Interval(-4.0, -1.0), Interval(-2.0, 2.0)) == Interval(-2.0, -1.0) - @test ∩(Interval(-4.0, -1.0), Interval(-2.0, 2.0)) == Interval(-2.0, -1.0) - @test (Interval(-4.0, -1.0) ∩ Interval(-2.0, 2.0)) == Interval(-2.0, -1.0) - @test intersect(Interval(-4.0, 4.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) - @test ∩(Interval(-4.0, 4.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) - @test (Interval(-4.0, 4.0) ∩ Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) - @test intersect(Interval(-1.0, 1.0), Interval(-2.0, 2.0)) == Interval(-1.0, 1.0) - @test ∩(Interval(-1.0, 1.0), Interval(-2.0, 2.0)) == Interval(-1.0, 1.0) - @test (Interval(-1.0, 1.0) ∩ Interval(-2.0, 2.0)) == Interval(-1.0, 1.0) - @test intersect(Interval(1.0, 4.0), Interval(-2.0, 2.0)) == Interval(1.0, 2.0) - @test ∩(Interval(1.0, 4.0), Interval(-2.0, 2.0)) == Interval(1.0, 2.0) - @test (Interval(1.0, 4.0) ∩ Interval(-2.0, 2.0)) == Interval(1.0, 2.0) - @test intersect(Interval(3.0, 4.0), Interval(-2.0, 2.0)) == ∅ - @test ∩(Interval(3.0, 4.0), Interval(-2.0, 2.0)) == ∅ - @test (Interval(3.0, 4.0) ∩ Interval(-2.0, 2.0)) == ∅ -end - -# Tests A|B, B|A, A&B, B&A, B is scalar-type -@testset "cxsc.intervalmixsetops" begin - @test hull(Interval(-2.0, 2.0), Interval(-4.0, -4.0)) == Interval(-4.0, 2.0) - @test ∪(Interval(-2.0, 2.0), Interval(-4.0, -4.0)) == Interval(-4.0, 2.0) - @test (Interval(-2.0, 2.0) ∪ Interval(-4.0, -4.0)) == Interval(-4.0, 2.0) - @test hull(Interval(-2.0, 2.0), Interval(1.0, 1.0)) == Interval(-2.0, 2.0) - @test ∪(Interval(-2.0, 2.0), Interval(1.0, 1.0)) == Interval(-2.0, 2.0) - @test (Interval(-2.0, 2.0) ∪ Interval(1.0, 1.0)) == Interval(-2.0, 2.0) - @test hull(Interval(-2.0, 2.0), Interval(4.0, 4.0)) == Interval(-2.0, 4.0) - @test ∪(Interval(-2.0, 2.0), Interval(4.0, 4.0)) == Interval(-2.0, 4.0) - @test (Interval(-2.0, 2.0) ∪ Interval(4.0, 4.0)) == Interval(-2.0, 4.0) - @test hull(Interval(-4.0, -4.0), Interval(-2.0, 2.0)) == Interval(-4.0, 2.0) - @test ∪(Interval(-4.0, -4.0), Interval(-2.0, 2.0)) == Interval(-4.0, 2.0) - @test (Interval(-4.0, -4.0) ∪ Interval(-2.0, 2.0)) == Interval(-4.0, 2.0) - @test hull(Interval(1.0, 1.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) - @test ∪(Interval(1.0, 1.0), Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) - @test (Interval(1.0, 1.0) ∪ Interval(-2.0, 2.0)) == Interval(-2.0, 2.0) - @test hull(Interval(4.0, 4.0), Interval(-2.0, 2.0)) == Interval(-2.0, 4.0) - @test ∪(Interval(4.0, 4.0), Interval(-2.0, 2.0)) == Interval(-2.0, 4.0) - @test (Interval(4.0, 4.0) ∪ Interval(-2.0, 2.0)) == Interval(-2.0, 4.0) - @test intersect(Interval(-2.0, 2.0), Interval(-4.0, -4.0)) == ∅ - @test ∩(Interval(-2.0, 2.0), Interval(-4.0, -4.0)) == ∅ - @test (Interval(-2.0, 2.0) ∩ Interval(-4.0, -4.0)) == ∅ - @test intersect(Interval(-2.0, 2.0), Interval(1.0, 1.0)) == Interval(1.0, 1.0) - @test ∩(Interval(-2.0, 2.0), Interval(1.0, 1.0)) == Interval(1.0, 1.0) - @test (Interval(-2.0, 2.0) ∩ Interval(1.0, 1.0)) == Interval(1.0, 1.0) - @test intersect(Interval(-2.0, 2.0), Interval(4.0, 4.0)) == ∅ - @test ∩(Interval(-2.0, 2.0), Interval(4.0, 4.0)) == ∅ - @test (Interval(-2.0, 2.0) ∩ Interval(4.0, 4.0)) == ∅ - @test intersect(Interval(-4.0, -4.0), Interval(-2.0, 2.0)) == ∅ - @test ∩(Interval(-4.0, -4.0), Interval(-2.0, 2.0)) == ∅ - @test (Interval(-4.0, -4.0) ∩ Interval(-2.0, 2.0)) == ∅ - @test intersect(Interval(1.0, 1.0), Interval(-2.0, 2.0)) == Interval(1.0, 1.0) - @test ∩(Interval(1.0, 1.0), Interval(-2.0, 2.0)) == Interval(1.0, 1.0) - @test (Interval(1.0, 1.0) ∩ Interval(-2.0, 2.0)) == Interval(1.0, 1.0) - @test intersect(Interval(4.0, 4.0), Interval(-2.0, 2.0)) == ∅ - @test ∩(Interval(4.0, 4.0), Interval(-2.0, 2.0)) == ∅ - @test (Interval(4.0, 4.0) ∩ Interval(-2.0, 2.0)) == ∅ -end - -# Tests A|B, B|A, A and B are scalar-type -@testset "cxsc.scalarmixsetops" begin - @test hull(Interval(-2.0, -2.0), Interval(-4.0, -4.0)) == Interval(-4.0, -2.0) - @test ∪(Interval(-2.0, -2.0), Interval(-4.0, -4.0)) == Interval(-4.0, -2.0) - @test (Interval(-2.0, -2.0) ∪ Interval(-4.0, -4.0)) == Interval(-4.0, -2.0) - @test hull(Interval(-2.0, -2.0), Interval(-2.0, -2.0)) == Interval(-2.0, -2.0) - @test ∪(Interval(-2.0, -2.0), Interval(-2.0, -2.0)) == Interval(-2.0, -2.0) - @test (Interval(-2.0, -2.0) ∪ Interval(-2.0, -2.0)) == Interval(-2.0, -2.0) - @test hull(Interval(-2.0, -2.0), Interval(2.0, 2.0)) == Interval(-2.0, 2.0) - @test ∪(Interval(-2.0, -2.0), Interval(2.0, 2.0)) == Interval(-2.0, 2.0) - @test (Interval(-2.0, -2.0) ∪ Interval(2.0, 2.0)) == Interval(-2.0, 2.0) - @test hull(Interval(-4.0, -4.0), Interval(-2.0, -2.0)) == Interval(-4.0, -2.0) - @test ∪(Interval(-4.0, -4.0), Interval(-2.0, -2.0)) == Interval(-4.0, -2.0) - @test (Interval(-4.0, -4.0) ∪ Interval(-2.0, -2.0)) == Interval(-4.0, -2.0) - @test hull(Interval(-2.0, -2.0), Interval(-2.0, -2.0)) == Interval(-2.0, -2.0) - @test ∪(Interval(-2.0, -2.0), Interval(-2.0, -2.0)) == Interval(-2.0, -2.0) - @test (Interval(-2.0, -2.0) ∪ Interval(-2.0, -2.0)) == Interval(-2.0, -2.0) - @test hull(Interval(2.0, 2.0), Interval(-2.0, -2.0)) == Interval(-2.0, 2.0) - @test ∪(Interval(2.0, 2.0), Interval(-2.0, -2.0)) == Interval(-2.0, 2.0) - @test (Interval(2.0, 2.0) ∪ Interval(-2.0, -2.0)) == Interval(-2.0, 2.0) -end - -# Tests AB, A<=B, A>=B, A==B -@testset "cxsc.intervalsetcompops" begin - @test ⪽(Interval(-1.0, 2.0), Interval(-1.0, 2.0)) == false - @test isinterior(Interval(-1.0, 2.0), Interval(-1.0, 2.0)) == false - @test (Interval(-1.0, 2.0) ⪽ Interval(-1.0, 2.0)) == false - @test ⪽(Interval(-2.0, 1.0), Interval(-3.0, 2.0)) - @test isinterior(Interval(-2.0, 1.0), Interval(-3.0, 2.0)) - @test (Interval(-2.0, 1.0) ⪽ Interval(-3.0, 2.0)) - @test ⪽(Interval(-2.0, 2.0), Interval(-1.0, 1.0)) == false - @test isinterior(Interval(-2.0, 2.0), Interval(-1.0, 1.0)) == false - @test (Interval(-2.0, 2.0) ⪽ Interval(-1.0, 1.0)) == false - @test ⪽(Interval(-2.0, 2.0), Interval(-1.0, 2.0)) == false - @test isinterior(Interval(-2.0, 2.0), Interval(-1.0, 2.0)) == false - @test (Interval(-2.0, 2.0) ⪽ Interval(-1.0, 2.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 - @test (Interval(-2.0, 2.0) ⪽ Interval(-2.0, 1.0)) == false - @test ⪽(Interval(-2.0, 2.0), Interval(-2.0, 3.0)) == false - @test isinterior(Interval(-2.0, 2.0), Interval(-2.0, 3.0)) == false - @test (Interval(-2.0, 2.0) ⪽ Interval(-2.0, 3.0)) == false - @test ⪽(Interval(-2.0, 2.0), Interval(-3.0, 2.0)) == false - @test isinterior(Interval(-2.0, 2.0), Interval(-3.0, 2.0)) == false - @test (Interval(-2.0, 2.0) ⪽ Interval(-3.0, 2.0)) == false - @test ⪽(Interval(-1.0, 2.0), Interval(-1.0, 2.0)) == false - @test isinterior(Interval(-1.0, 2.0), Interval(-1.0, 2.0)) == false - @test (Interval(-1.0, 2.0) ⪽ Interval(-1.0, 2.0)) == false - @test ⪽(Interval(-3.0, 2.0), Interval(-2.0, 1.0)) == false - @test isinterior(Interval(-3.0, 2.0), Interval(-2.0, 1.0)) == false - @test (Interval(-3.0, 2.0) ⪽ Interval(-2.0, 1.0)) == false - @test ⪽(Interval(-1.0, 1.0), Interval(-2.0, 2.0)) - @test isinterior(Interval(-1.0, 1.0), Interval(-2.0, 2.0)) - @test (Interval(-1.0, 1.0) ⪽ Interval(-2.0, 2.0)) - @test ⪽(Interval(-1.0, 2.0), Interval(-2.0, 2.0)) == false - @test isinterior(Interval(-1.0, 2.0), Interval(-2.0, 2.0)) == false - @test (Interval(-1.0, 2.0) ⪽ Interval(-2.0, 2.0)) == false - @test ⪽(Interval(-2.0, 1.0), Interval(-2.0, 2.0)) == false - @test isinterior(Interval(-2.0, 1.0), Interval(-2.0, 2.0)) == false - @test (Interval(-2.0, 1.0) ⪽ Interval(-2.0, 2.0)) == false - @test ⪽(Interval(-2.0, 3.0), Interval(-2.0, 2.0)) == false - @test isinterior(Interval(-2.0, 3.0), Interval(-2.0, 2.0)) == false - @test (Interval(-2.0, 3.0) ⪽ Interval(-2.0, 2.0)) == false - @test ⪽(Interval(-3.0, 2.0), Interval(-2.0, 2.0)) == false - @test isinterior(Interval(-3.0, 2.0), Interval(-2.0, 2.0)) == false - @test (Interval(-3.0, 2.0) ⪽ Interval(-2.0, 2.0)) == false - @test ⊆(Interval(-1.0, 2.0), Interval(-1.0, 2.0)) - @test ⊆(Interval(-2.0, 1.0), Interval(-3.0, 2.0)) - @test ⊆(Interval(-2.0, 2.0), Interval(-1.0, 1.0)) == false - @test ⊆(Interval(-2.0, 2.0), Interval(-1.0, 2.0)) == false - @test ⊆(Interval(-2.0, 2.0), Interval(-2.0, 1.0)) == false - @test ⊆(Interval(-2.0, 2.0), Interval(-2.0, 3.0)) - @test ⊆(Interval(-2.0, 2.0), Interval(-3.0, 2.0)) - @test ⊆(Interval(-3.0, 2.0), Interval(-2.0, 1.0)) == false - @test ⊆(Interval(-1.0, 1.0), Interval(-2.0, 2.0)) - @test ⊆(Interval(-1.0, 2.0), Interval(-2.0, 2.0)) - @test ⊆(Interval(-2.0, 1.0), Interval(-2.0, 2.0)) - @test ⊆(Interval(-2.0, 3.0), Interval(-2.0, 2.0)) == false - @test ⊆(Interval(-3.0, 2.0), Interval(-2.0, 2.0)) == false - @test ==(Interval(-1.0, 2.0), Interval(-1.0, 2.0)) - @test ==(Interval(-2.0, 1.0), Interval(-3.0, 2.0)) == false - @test ==(Interval(-2.0, 2.0), Interval(-1.0, 1.0)) == false - @test ==(Interval(-2.0, 2.0), Interval(-1.0, 2.0)) == false - @test ==(Interval(-2.0, 2.0), Interval(-2.0, 1.0)) == false - @test ==(Interval(-2.0, 2.0), Interval(-2.0, 3.0)) == false - @test ==(Interval(-2.0, 2.0), Interval(-3.0, 2.0)) == false -end - -# Tests AB, A<=B, A>=B, A==B, BA, B<=A, B>=A, B==A, where B is scalar -@testset "cxsc.intervalscalarsetcompops" begin - @test ⪽(Interval(-1.0, 2.0), Interval(-2.0, -2.0)) == false - @test isinterior(Interval(-1.0, 2.0), Interval(-2.0, -2.0)) == false - @test (Interval(-1.0, 2.0) ⪽ Interval(-2.0, -2.0)) == false - @test ⪽(Interval(-2.0, 2.0), Interval(-2.0, -2.0)) == false - @test isinterior(Interval(-2.0, 2.0), Interval(-2.0, -2.0)) == false - @test (Interval(-2.0, 2.0) ⪽ Interval(-2.0, -2.0)) == false - @test ⪽(Interval(-2.0, 2.0), Interval(0.0, 0.0)) == false - @test isinterior(Interval(-2.0, 2.0), Interval(0.0, 0.0)) == false - @test (Interval(-2.0, 2.0) ⪽ Interval(0.0, 0.0)) == false - @test ⪽(Interval(-2.0, 2.0), Interval(2.0, 2.0)) == false - @test isinterior(Interval(-2.0, 2.0), Interval(2.0, 2.0)) == false - @test (Interval(-2.0, 2.0) ⪽ Interval(2.0, 2.0)) == false - @test ⪽(Interval(-2.0, 2.0), Interval(3.0, 3.0)) == false - @test isinterior(Interval(-2.0, 2.0), Interval(3.0, 3.0)) == false - @test (Interval(-2.0, 2.0) ⪽ Interval(3.0, 3.0)) == false - @test ⪽(Interval(-1.0, -1.0), Interval(1.0, 1.0)) == false - @test isinterior(Interval(-1.0, -1.0), Interval(1.0, 1.0)) == false - @test (Interval(-1.0, -1.0) ⪽ Interval(1.0, 1.0)) == false - @test ⪽(Interval(-1.0, -1.0), Interval(-1.0, -1.0)) == false - @test isinterior(Interval(-1.0, -1.0), Interval(-1.0, -1.0)) == false - @test (Interval(-1.0, -1.0) ⪽ Interval(-1.0, -1.0)) == false - @test ⪽(Interval(-2.0, -2.0), Interval(-1.0, 2.0)) == false - @test isinterior(Interval(-2.0, -2.0), Interval(-1.0, 2.0)) == false - @test (Interval(-2.0, -2.0) ⪽ Interval(-1.0, 2.0)) == false - @test ⪽(Interval(-2.0, -2.0), Interval(-2.0, 2.0)) == false - @test isinterior(Interval(-2.0, -2.0), Interval(-2.0, 2.0)) == false - @test (Interval(-2.0, -2.0) ⪽ Interval(-2.0, 2.0)) == false - @test ⪽(Interval(0.0, 0.0), Interval(-2.0, 2.0)) - @test isinterior(Interval(0.0, 0.0), Interval(-2.0, 2.0)) - @test (Interval(0.0, 0.0) ⪽ Interval(-2.0, 2.0)) - @test ⪽(Interval(2.0, 2.0), Interval(-2.0, 2.0)) == false - @test isinterior(Interval(2.0, 2.0), Interval(-2.0, 2.0)) == false - @test (Interval(2.0, 2.0) ⪽ Interval(-2.0, 2.0)) == false - @test ⪽(Interval(3.0, 3.0), Interval(-2.0, 2.0)) == false - @test isinterior(Interval(3.0, 3.0), Interval(-2.0, 2.0)) == false - @test (Interval(3.0, 3.0) ⪽ Interval(-2.0, 2.0)) == false - @test ⪽(Interval(1.0, 1.0), Interval(-1.0, -1.0)) == false - @test isinterior(Interval(1.0, 1.0), Interval(-1.0, -1.0)) == false - @test (Interval(1.0, 1.0) ⪽ Interval(-1.0, -1.0)) == false - @test ⪽(Interval(-1.0, -1.0), Interval(-1.0, -1.0)) == false - @test isinterior(Interval(-1.0, -1.0), Interval(-1.0, -1.0)) == false - @test (Interval(-1.0, -1.0) ⪽ Interval(-1.0, -1.0)) == false - @test ⊆(Interval(-1.0, 2.0), Interval(-2.0, -2.0)) == false - @test ⊆(Interval(-2.0, 2.0), Interval(-2.0, -2.0)) == false - @test ⊆(Interval(-2.0, 2.0), Interval(0.0, 0.0)) == false - @test ⊆(Interval(-2.0, 2.0), Interval(2.0, 2.0)) == false - @test ⊆(Interval(-2.0, 2.0), Interval(3.0, 3.0)) == false - @test ⊆(Interval(-1.0, -1.0), Interval(1.0, 1.0)) == false - @test ⊆(Interval(-1.0, -1.0), Interval(-1.0, -1.0)) - @test ⊆(Interval(-2.0, -2.0), Interval(-1.0, 2.0)) == false - @test ⊆(Interval(-2.0, -2.0), Interval(-2.0, 2.0)) - @test ⊆(Interval(0.0, 0.0), Interval(-2.0, 2.0)) - @test ⊆(Interval(2.0, 2.0), Interval(-2.0, 2.0)) - @test ⊆(Interval(3.0, 3.0), Interval(-2.0, 2.0)) == false - @test ⊆(Interval(1.0, 1.0), Interval(-1.0, -1.0)) == false - @test ⊆(Interval(-1.0, -1.0), Interval(-1.0, -1.0)) - @test ==(Interval(-1.0, 2.0), Interval(-2.0, -2.0)) == false - @test ==(Interval(-2.0, 2.0), Interval(-2.0, -2.0)) == false - @test ==(Interval(-2.0, 2.0), Interval(0.0, 0.0)) == false - @test ==(Interval(-2.0, 2.0), Interval(2.0, 2.0)) == false - @test ==(Interval(-2.0, 2.0), Interval(3.0, 3.0)) == false - @test ==(Interval(-1.0, -1.0), Interval(1.0, 1.0)) == false - @test ==(Interval(-1.0, -1.0), Interval(-1.0, -1.0)) -end - -@testset "cxsc.intervalstdfunc" begin - @test Interval(11.0, 11.0) ^2 == Interval(121.0, 121.0) - @test Interval(11.0, 11.0) ^(2//1) == Interval(121.0, 121.0) - @test Interval(11.0, 11.0) ^(2.0) == Interval(121.0, 121.0) - @test Interval(0.0, 0.0) ^2 == Interval(0.0, 0.0) - @test Interval(0.0, 0.0) ^(2//1) == Interval(0.0, 0.0) - @test Interval(0.0, 0.0) ^(2.0) == Interval(0.0, 0.0) - @test Interval(-9.0, -9.0) ^2 == Interval(81.0, 81.0) - @test Interval(-9.0, -9.0) ^(2//1) == Interval(81.0, 81.0) - @test Interval(-9.0, -9.0) ^(2.0) == Interval(81.0, 81.0) - @test sqrt(Interval(121.0, 121.0)) == Interval(11.0, 11.0) - @test (Interval(121.0, 121.0))^(1/2) == Interval(11.0, 11.0) - @test (Interval(121.0, 121.0))^(0.5) == Interval(11.0, 11.0) - @test (Interval(121.0, 121.0))^(1//2) == Interval(11.0, 11.0) - @test sqrt(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test (Interval(0.0, 0.0))^(1/2) == Interval(0.0, 0.0) - @test (Interval(0.0, 0.0))^(0.5) == Interval(0.0, 0.0) - @test (Interval(0.0, 0.0))^(1//2) == Interval(0.0, 0.0) - @test sqrt(Interval(81.0, 81.0)) == Interval(9.0, 9.0) - @test (Interval(81.0, 81.0))^(1/2) == Interval(9.0, 9.0) - @test (Interval(81.0, 81.0))^(0.5) == Interval(9.0, 9.0) - @test (Interval(81.0, 81.0))^(1//2) == Interval(9.0, 9.0) - @test nthroot(Interval(27.0, 27.0), 3) == Interval(3.0, 3.0) - @test nthroot(Interval(0.0, 0.0), 4) == Interval(0.0, 0.0) - @test nthroot(Interval(1024.0, 1024.0), 10) == Interval(2.0, 2.0) - @test Interval(2.0, 2.0) ^ Interval(2.0, 2.0) == Interval(4.0, 4.0) - @test Interval(4.0, 4.0) ^ Interval(5.0, 5.0) == Interval(1024.0, 1024.0) - # Negativ geht noch nicht - @test Interval(2.0, 2.0) ^ Interval(3.0, 3.0) == Interval(8.0, 8.0) -end -# FactCheck.exitstatus() diff --git a/test/ITF1788_tests/fi_lib.jl b/test/ITF1788_tests/fi_lib.jl deleted file mode 100644 index 8e30ea7e8..000000000 --- a/test/ITF1788_tests/fi_lib.jl +++ /dev/null @@ -1,1035 +0,0 @@ -#= - - Unit tests from FI_LIB version 1.2 - (Original authors: Werner Hofschuster and Walter Kraemer) - converted into portable ITL format by Oliver Heimlich. - - Copyright 1997-2000 Institut fuer Wissenschaftliches Rechnen - und Mathematische Modellbildung (IWRMM) - and - Institut fuer Angewandte Mathematik - Universitaet Karlsruhe, Germany - Copyright 2000-2005 Wiss. Rechnen/Softwaretechnologie - Universitaet Wuppertal, Germany - Copyright 2015-2016 Oliver Heimlich (oheim@posteo.de) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -=# -#Language imports - -#Test library imports -using Test - -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) -# Set full format, and show decorations -@format full - -@testset "FI_LIB.addii" begin - @test Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) + Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) + Interval(0x2.0000000000000p+0, 0x2.0000000000000p+0) == Interval(0x3.0000000000000p+0, 0x3.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) + Interval(-0x2.0000000000000p+0, -0x2.0000000000000p+0) == Interval(-0x3.0000000000000p+0, -0x3.0000000000000p+0) - @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) + Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) + Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) + Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) == Interval(0x3.f400000000000p-1064, 0x3.f400000000000p-1064) - @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) + Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) + Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) == Interval(-0x3.f400000000000p-1064, -0x3.f400000000000p-1064) - @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) + Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test Interval(0xf.ffffffffffff8p+1020, 0xf.ffffffffffff8p+1020) + Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0xf.ffffffffffff0p+1020, 0xf.ffffffffffff8p+1020) - @test Interval(-0xf.ffffffffffff8p+1020, -0xf.ffffffffffff8p+1020) + Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(-0xf.ffffffffffff8p+1020, -0xf.ffffffffffff0p+1020) - @test Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) + Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x3.0000000000000p+0) - @test Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) + Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x3.0000000000000p+0) - @test Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) + Interval(0x3.0000000000000p+0, 0x4.0000000000000p+0) == Interval(0x4.0000000000000p+0, 0x6.0000000000000p+0) - @test Interval(0x3.0000000000000p+0, 0x4.0000000000000p+0) + Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) == Interval(0x4.0000000000000p+0, 0x6.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, 0x0.0000000000000p+0) + Interval(-0x4.0000000000000p+0, -0x3.0000000000000p+0) == Interval(-0x5.0000000000000p+0, -0x3.0000000000000p+0) - @test Interval(-0x4.0000000000000p+0, -0x3.0000000000000p+0) + Interval(-0x1.0000000000000p+0, 0x0.0000000000000p+0) == Interval(-0x5.0000000000000p+0, -0x3.0000000000000p+0) - @test Interval(-0x5.0000000000000p+0, -0x4.0000000000000p+0) + Interval(0x4.0000000000000p+0, 0x5.0000000000000p+0) == Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) - @test Interval(0x4.0000000000000p+0, 0x5.0000000000000p+0) + Interval(-0x5.0000000000000p+0, -0x4.0000000000000p+0) == Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) -end - -@testset "FI_LIB.subii" begin - @test Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) - Interval(0x2.0000000000000p+0, 0x2.0000000000000p+0) == Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) - Interval(-0x2.0000000000000p+0, -0x2.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) - @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) - Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0x2.0000000000000p+0, 0x2.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) - Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(-0x2.0000000000000p+0, -0x2.0000000000000p+0) - @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) - Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) - Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(-0x1.0000000000000p+0, -0xf.ffffffffffff8p-4) - @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) - Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) - Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(-0x1.0000000000001p+0, -0x1.0000000000000p+0) - @test Interval(0xf.ffffffffffff8p+1020, 0xf.ffffffffffff8p+1020) - Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0xf.ffffffffffff0p+1020, 0xf.ffffffffffff8p+1020) - @test Interval(-0xf.ffffffffffff8p+1020, -0xf.ffffffffffff8p+1020) - Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(-0xf.ffffffffffff8p+1020, -0xf.ffffffffffff0p+1020) - @test Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) == Interval(-0x2.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) - Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x2.0000000000000p+0) - @test Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) - Interval(0x3.0000000000000p+0, 0x4.0000000000000p+0) == Interval(-0x3.0000000000000p+0, -0x1.0000000000000p+0) - @test Interval(0x3.0000000000000p+0, 0x4.0000000000000p+0) - Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x3.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, 0x0.0000000000000p+0) - Interval(-0x4.0000000000000p+0, -0x3.0000000000000p+0) == Interval(0x2.0000000000000p+0, 0x4.0000000000000p+0) - @test Interval(-0x4.0000000000000p+0, -0x3.0000000000000p+0) - Interval(-0x1.0000000000000p+0, 0x0.0000000000000p+0) == Interval(-0x4.0000000000000p+0, -0x2.0000000000000p+0) - @test Interval(-0x5.0000000000000p+0, -0x4.0000000000000p+0) - Interval(0x4.0000000000000p+0, 0x5.0000000000000p+0) == Interval(-0xa.0000000000000p+0, -0x8.0000000000000p+0) - @test Interval(0x4.0000000000000p+0, 0x5.0000000000000p+0) - Interval(-0x5.0000000000000p+0, -0x4.0000000000000p+0) == Interval(0x8.0000000000000p+0, 0xa.0000000000000p+0) -end - -@testset "FI_LIB.mulii" begin - @test Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) * Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) * Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) * Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) * Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) - @test Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) * Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) * Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) * Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) - @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) * Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) * Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) - @test Interval(0xf.ffffffffffff8p+1020, 0xf.ffffffffffff8p+1020) * Interval(0x8.0000000000000p-4, 0x8.0000000000000p-4) == Interval(0x7.ffffffffffffcp+1020, 0x7.ffffffffffffcp+1020) - @test Interval(-0xf.ffffffffffff8p+1020, -0xf.ffffffffffff8p+1020) * Interval(0x8.0000000000000p-4, 0x8.0000000000000p-4) == Interval(-0x7.ffffffffffffcp+1020, -0x7.ffffffffffffcp+1020) - @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) * Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) * Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) - @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) * Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) - @test Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) * Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(0x4.0000000000000p+0, 0x9.0000000000000p+0) - @test Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) * Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0) - @test Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) * Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x9.0000000000000p+0, -0x4.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) * Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) * Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) == Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) * Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0) - @test Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) * Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(-0x9.0000000000000p+0, -0x4.0000000000000p+0) - @test Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) * Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0) - @test Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) * Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(0x4.0000000000000p+0, 0x9.0000000000000p+0) - @test Interval(-0x5.0000000000000p+0, +0x2.0000000000000p+0) * Interval(-0x4.0000000000000p+0, +0x3.0000000000000p+0) == Interval(-0xf.0000000000000p+0, +0x1.4000000000000p+4) - @test Interval(-0x5.0000000000000p+0, +0x2.0000000000000p+0) * Interval(-0x3.0000000000000p+0, +0x8.0000000000000p+0) == Interval(-0x2.8000000000000p+4, +0x1.0000000000000p+4) - @test Interval(-0x2.0000000000000p+0, +0x5.0000000000000p+0) * Interval(-0x4.0000000000000p+0, +0x3.0000000000000p+0) == Interval(-0x1.4000000000000p+4, +0xf.0000000000000p+0) - @test Interval(-0x4.0000000000000p+0, +0x5.0000000000000p+0) * Interval(-0x4.0000000000000p+0, +0x3.0000000000000p+0) == Interval(-0x1.4000000000000p+4, +0x1.0000000000000p+4) - @test Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) * Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x9.0000000000000p+0) - @test Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) * Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0) - @test Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) * Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x9.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) * Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x9.0000000000000p+0) - @test Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) * Interval(0x0.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x9.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) * Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) * Interval(0x0.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0) - @test Interval(0x0.0000000000000p+0, 0x3.0000000000000p+0) * Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(-0x9.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x0.0000000000000p+0, 0x3.0000000000000p+0) * Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) == Interval(-0x3.0000000000000p+0, +0x3.0000000000000p+0) - @test Interval(0x0.0000000000000p+0, 0x3.0000000000000p+0) * Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x9.0000000000000p+0) - @test Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) * Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) == Interval(-0x9.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) * Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) == Interval(-0x9.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x0.0000000000000p+0, 0x2.0000000000000p+0) * Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) == Interval(-0x6.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) * Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) * Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) - @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) * Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) - @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) * Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) == Interval(-0x4.0000000000000p-1076, 0x0.0000000000000p+0) - @test Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) * Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) * Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) -end - -@testset "FI_LIB.divii" begin - @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) / Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) - @test Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) / Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) - @test Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) / Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) / Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) / Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) - @test Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) / Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) - @test Interval(0xf.ffffffffffff8p+1020, 0xf.ffffffffffff8p+1020) / Interval(0x2.0000000000000p+0, 0x2.0000000000000p+0) == Interval(0x7.ffffffffffffcp+1020, 0x7.ffffffffffffcp+1020) - @test Interval(-0xf.ffffffffffff8p+1020, -0xf.ffffffffffff8p+1020) / Interval(0x2.0000000000000p+0, 0x2.0000000000000p+0) == Interval(-0x7.ffffffffffffcp+1020, -0x7.ffffffffffffcp+1020) - @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) / Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) == Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) - @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) / Interval(0x1.0000000000000p+0, 0x1.0000000000000p+0) == Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) - @test Interval(0x1.fa00000000000p-1064, 0x1.fa00000000000p-1064) / Interval(-0x1.0000000000000p+0, -0x1.0000000000000p+0) == Interval(-0x1.fa00000000000p-1064, -0x1.fa00000000000p-1064) - @test Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) / Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(0xa.aaaaaaaaaaaa8p-4, 0x1.8000000000000p+0) - @test Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) / Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x1.8000000000000p+0, -0xa.aaaaaaaaaaaa8p-4) - @test Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) / Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(-0x8.0000000000000p-4, +0x8.0000000000000p-4) - @test Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) / Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x8.0000000000000p-4, +0x8.0000000000000p-4) - @test Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) / Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(-0x1.8000000000000p+0, -0xa.aaaaaaaaaaaa8p-4) - @test Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) / Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(0xa.aaaaaaaaaaaa8p-4, 0x1.8000000000000p+0) - @test Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) / Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x1.8000000000000p+0) - @test Interval(-0x3.0000000000000p+0, 0x0.0000000000000p+0) / Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(-0x1.8000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x0.0000000000000p+0, 0x3.0000000000000p+0) / Interval(-0x3.0000000000000p+0, -0x2.0000000000000p+0) == Interval(-0x1.8000000000000p+0, 0x0.0000000000000p+0) - @test Interval(0x0.0000000000000p+0, 0x3.0000000000000p+0) / Interval(0x2.0000000000000p+0, 0x3.0000000000000p+0) == Interval(0x0.0000000000000p+0, 0x1.8000000000000p+0) -end - -@testset "FI_LIB.unary_functions" begin - @test exp(Interval(-0x1.16cc0df1540f5p+112, -0x1.b3e4076622f04p-232)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp(Interval(-0x2.42042b9a88438p-220, -0x2.a213429db0508p-508)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test exp(Interval(-0x2.0e2e40b15d814p+272, -0x1.5d74cfda6b292p-200)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp(Interval(-0x2.0ea791886f712p-416, -0x3.fe66a8d1a3472p-456)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - #exp [-0X6.FF424CB26239CP+292, -0X2.89F6682121BA8P+252] = [0X0.0000000000000P+0, 0X0.0000000000000P+0]; - @test exp(Interval(-0x8.80eefdf700148p+332, -0x1.c4e85e50a626dp+0)) == Interval(0x0.0000000000000p+0, 0x2.ba43457b11d98p-4) - @test exp(Interval(-0x6.ca83546563a5cp+236, -0x4.f0f28370909fcp-440)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp(Interval(-0x4.e60572d4fcfd0p+172, -0x1.eb095183538c8p-344)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp(Interval(-0x2.7ed8954764b12p-288, -0x8.71dc22117be90p-756)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test exp(Interval(-0xd.cf39b8dd68b98p-76, -0x8.0205c5b1357b0p-564)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - #exp [-0X1.582D3AFB2C63DP+312, -0X5.08DC843E57ED4P+180] = [0X0.0000000000000P+0, 0X0.0000000000000P+0]; - @test exp(Interval(-0x4.af296dd37fd74p+256, -0x5.cbe2bd423b02cp-48)) == Interval(0x0.0000000000000p+0, 0xf.ffffffffffa38p-4) - @test exp(Interval(-0x1.1fba2d1252d2bp+656, -0x2.4b7a4095c91b4p+8)) == Interval(0x0.0000000000000p+0, 0x1.5d7a2f6655dfcp-848) - #exp [-0X3.2FD3FDE325402P+688, -0X2.738623C238270P+48] = [0X0.0000000000000P+0, 0X0.0000000000000P+0]; - @test exp(Interval(-0x1.44f2134e1901ep+8, -0x2.581dad9afe6dcp-172)) == Interval(0x9.34c0766401b20p-472, 0x1.0000000000000p+0) - @test exp(Interval(-0x2.9529e333f2abap+988, -0x7.19390f862f49cp-544)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp(Interval(-0x1.58391fd92c387p-148, -0x4.0c12426a57194p-440)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test exp(Interval(-0xb.fadc4fb83e140p+348, -0xf.13e388b2165f0p-512)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - #exp [-0XD.F2552B8F60978P+236, -0X7.FBDBC320979A4P+188] = [0X0.0000000000000P+0, 0X0.0000000000000P+0]; - @test exp(Interval(-0x8.86826ce1ab700p-240, -0x4.fea8d3a3ed018p-316)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test exp(Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0)) == Interval(0x2.b7e151628aed2p+0, 0x7.63992e35376b8p+0) - @test exp(Interval(-0x1.0000000000000p+0, +0x2.0000000000000p+0)) == Interval(0x5.e2d58d8b3bcdcp-4, 0x7.63992e35376b8p+0) - @test exp(Interval(-0x5.0000000000000p+0, -0x3.0000000000000p+0)) == Interval(0x1.b993fe00d5376p-8, 0xc.bed8666758578p-8) - @test exp(Interval(-0x2.0000000000000p+0, +0x9.9999999999998p-4)) == Interval(0x2.2a555477f0396p-4, 0x1.d27660b11a9f0p+0) - @test exp(Interval(0x4.0000000000000p-1076, 0x4.4444400000000p-1056)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test exp(Interval(0x4.4440000000000p-1064, 0x1.0000000000000p+0)) == Interval(0x1.0000000000000p+0, 0x2.b7e151628aed4p+0) - @test exp(Interval(-0x4.4444000000000p-1060, +0x4.4444000000000p-1060)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000001p+0) - @test exp(Interval(-0x4.4400000000000p-1068, +0x1.fff0000000000p+0)) == Interval(0xf.ffffffffffff8p-4, 0x7.6322f8540cfb4p+0) - @test exp(Interval(-0x1.ffff000000000p+0, -0x8.8888880000000p-1052)) == Interval(0x2.2a577ece59dc6p-4, 0x1.0000000000000p+0) - @test exp(Interval(-0x1.fffffff000000p+0, +0x8.cd11555400000p-1044)) == Interval(0x2.2a55549a958eap-4, 0x1.0000000000001p+0) - @test exp2(Interval(-0x1.16cc0df1540f5p+112, -0x1.b3e4076622f04p-232)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp2(Interval(-0x2.42042b9a88438p-220, -0x2.a213429db0508p-508)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test exp2(Interval(-0x2.0e2e40b15d814p+272, -0x1.5d74cfda6b292p-200)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp2(Interval(-0x2.0ea791886f712p-416, -0x3.fe66a8d1a3472p-456)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - #exp2 [-0X6.FF424CB26239CP+292, -0X2.89F6682121BA8P+252] = [0X0.0000000000000P+0, 0X0.0000000000000P+0]; - @test exp2(Interval(-0x8.80eefdf700148p+332, -0x1.c4e85e50a626dp+0)) == Interval(0x0.0000000000000p+0, 0x4.b1ac6f8470484p-4) - @test exp2(Interval(-0x6.ca83546563a5cp+236, -0x4.f0f28370909fcp-440)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp2(Interval(-0x4.e60572d4fcfd0p+172, -0x1.eb095183538c8p-344)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp2(Interval(-0x2.7ed8954764b12p-288, -0x8.71dc22117be90p-756)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test exp2(Interval(-0xd.cf39b8dd68b98p-76, -0x8.0205c5b1357b0p-564)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - #exp2 [-0X1.582D3AFB2C63DP+312, -0X5.08DC843E57ED4P+180] = [0X0.0000000000000P+0, 0X0.0000000000000P+0]; - @test exp2(Interval(-0x4.af296dd37fd74p+256, -0x5.cbe2bd423b02cp-48)) == Interval(0x0.0000000000000p+0, 0xf.ffffffffffc00p-4) - @test exp2(Interval(-0x1.1fba2d1252d2bp+656, -0x2.4b7a4095c91b4p+8)) == Interval(0x0.0000000000000p+0, 0x1.6fb78c613e5ecp-588) - #exp2 [-0X3.2FD3FDE325402P+688, -0X2.738623C238270P+48] = [0X0.0000000000000P+0, 0X0.0000000000000P+0]; - @test exp2(Interval(-0x1.44f2134e1901ep+8, -0x2.581dad9afe6dcp-172)) == Interval(0x8.4eb038b9b8508p-328, 0x1.0000000000000p+0) - @test exp2(Interval(-0x2.9529e333f2abap+988, -0x7.19390f862f49cp-544)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp2(Interval(-0x1.58391fd92c387p-148, -0x4.0c12426a57194p-440)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test exp2(Interval(-0xb.fadc4fb83e140p+348, -0xf.13e388b2165f0p-512)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - #exp2 [-0XD.F2552B8F60978P+236, -0X7.FBDBC320979A4P+188] = [0X0.0000000000000P+0, 0X0.0000000000000P+0]; - @test exp2(Interval(-0x8.86826ce1ab700p-240, -0x4.fea8d3a3ed018p-316)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test exp2(Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0)) == Interval(0x2.0000000000000p+0, 0x4.0000000000000p+0) - @test exp2(Interval(-0x1.0000000000000p+0, +0x2.0000000000000p+0)) == Interval(0x8.0000000000000p-4, 0x4.0000000000000p+0) - @test exp2(Interval(-0x5.0000000000000p+0, -0x3.0000000000000p+0)) == Interval(0x8.0000000000000p-8, 0x2.0000000000000p-4) - @test exp2(Interval(-0x2.0000000000000p+0, +0x9.9999999999998p-4)) == Interval(0x4.0000000000000p-4, 0x1.8406003b2ae5dp+0) - @test exp2(Interval(0x4.4400000000000p-1068, 0x4.48cd100000000p-1052)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test exp2(Interval(-0x4.8d15088880000p-1040, +0x4.8d11554000000p-1048)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000001p+0) - @test exp2(Interval(0xd.0888d11000000p-1044, 0x1.000003443aaaap+0)) == Interval(0x1.0000000000000p+0, 0x2.0000048742860p+0) - @test exp2(Interval(-0xd.15550cc880000p-1040, +0x4.8d150cc000000p-1048)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000001p+0) - @test exp2(Interval(-0x4.8d159e0000000p-1048, +0x1.ffffff0999999p+0)) == Interval(0xf.ffffffffffff8p-4, 0x3.fffffd54d58b0p+0) - @test exp2(Interval(-0x1.fffffffffffffp+0, +0x1.14c8911540000p-1040)) == Interval(0x4.0000000000000p-4, 0x1.0000000000001p+0) - @test exp10(Interval(-0x2.8457bc029986ep+112, -0x1.7a77bfccf5a9ep-232)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp10(Interval(-0x6.05c0bb1bcb730p-220, -0x3.c5ec30fbb68c8p-508)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test exp10(Interval(-0x2.9b09919bf9d9ep+272, -0xe.20ff41bd18058p-204)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp10(Interval(-0x1.1503444763fc5p-416, -0x2.075df98b2478cp-456)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - #exp10 [-0X2.7C064F6929234P+292, -0X1.5444E676976F1P+252] = [0X0.0000000000000P+0, 0X0.0000000000000P+0]; - @test exp10(Interval(-0x4.ecbc855871080p+332, -0x1.3a01905e36f84p+0)) == Interval(0x0.0000000000000p+0, 0xf.317f8555628f0p-8) - @test exp10(Interval(-0x7.32edab7f60a50p+236, -0x2.404e44c49c644p-440)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp10(Interval(-0x6.5263cf84ef388p+172, -0x1.63a15e999eb64p-344)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp10(Interval(-0x1.4171976a1ca54p-288, -0x6.941f470a70074p-756)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test exp10(Interval(-0x4.69bb1d34b9570p-76, -0x7.78a1f475a306cp-564)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - #exp10 [-0X1.F0D19ADCB5D74P+312, -0X1.BA04D452BBB35P+180] = [0X0.0000000000000P+0, 0X0.0000000000000P+0]; - @test exp10(Interval(-0x2.e046db554037cp+256, -0x2.6abc15579b2b2p-48)) == Interval(0x0.0000000000000p+0, 0xf.ffffffffffa70p-4) - @test exp10(Interval(-0xe.33c49cf5b8790p+652, -0x8.297a99ed9ed08p+8)) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - #exp10 [-0X2.A69A969772FDEP+688, -0X3.436DFE8F08194P+48] = [0X0.0000000000000P+0, 0X0.0000000000000P+0]; - @test exp10(Interval(-0x1.7aaa15ebbd3f2p+8, -0x6.3e590e626451cp-172)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp10(Interval(-0x2.8f9204bc4041ep+988, -0x6.acfa418d8f92cp-544)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp10(Interval(-0x2.b00450a48d586p-148, -0x2.bb570b356c6cap-440)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test exp10(Interval(-0x1.9e7ddbbe00f75p+352, -0xc.41329461a0c30p-512)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - #exp10 [-0XD.5E2045CEE9720P+236, -0X6.6978492A3064CP+188] = [0X0.0000000000000P+0, 0X0.0000000000000P+0]; - @test exp10(Interval(-0x1.5bd629b25aa23p-236, -0x7.dea605dec97ccp-316)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - #exp10 [-0XB.A944253373080P+564, -0XD.05E9CCF66CF58P+424] = [0X0.0000000000000P+0, 0X0.0000000000000P+0]; - @test exp10(Interval(-0x3.ae1dc13a652cap+168, -0x6.65d7e0a247778p-56)) == Interval(0x0.0000000000000p+0, 0xf.ffffffffffff8p-4) - @test exp10(Interval(-0xa.27b4555158148p-68, -0x5.2b55801231ec8p-344)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test exp10(Interval(-0x1.d68a6ba7e617fp+12, -0x6.36b661dce2688p-236)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp10(Interval(-0x1.98ef0c6a8bd66p+132, -0x1.eb0e1ab78f314p-480)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp10(Interval(-0x1.c08152cc09416p+220, -0x7.4cf193131fa64p-192)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp10(Interval(-0x6.f70e0da4d2ba0p-140, -0x1.7036c237d5b00p-672)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - #exp10 [-0XB.24D19E00C8460P+324, -0X1.D283CF8F05665P+252] = [0X0.0000000000000P+0, 0X0.0000000000000P+0]; - @test exp10(Interval(-0xf.cc937fa330e40p+648, -0x3.a0ee84451c92cp-324)) == Interval(0x0.0000000000000p+0, 0x1.0000000000000p+0) - @test exp10(Interval(-0x5.f775993940188p-120, -0x1.8bca641025a83p-124)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test log(Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92)) == Interval(-0xb.47b530a1054d8p+4, +0x4.227ad8183fb70p+4) - @test log(Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224)) == Interval(-0x1.64cba844fc0eap+8, -0x9.968ad8b569fe0p+4) - @test log(Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236)) == Interval(-0xa.426b5145a44a0p+4, +0xa.40b346f454218p+4) - @test log(Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452)) == Interval(-0x1.52d81024e4c23p+8, -0x1.3813c01acd25cp+8) - @test log(Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224)) == Interval(0x8.80f0717a1dc40p+4, 0x9.d6130f01f8b78p+4) - @test log(Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276)) == Interval(-0x1.c9b8d4127e3dap+4, +0xc.091aad1207058p+4) - @test log(Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196)) == Interval(-0x1.49b9d16b7e46ap+8, +0x8.a1137bde55cf8p+4) - @test log(Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140)) == Interval(-0x1.028323b4d95b4p+8, +0x6.21d80d9193ab8p+4) - @test log(Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328)) == Interval(-0x2.142d983d15a28p+8, -0xe.2c8fa3f896a50p+4) - @test log(Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132)) == Interval(-0x1.907255d3994fep+8, -0x5.a87fcf5fbd800p+4) - @test log(Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276)) == Interval(0x5.15d8b410e0a5cp+4, 0xc.0a13dc536cd58p+4) - @test log(Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204)) == Interval(-0x4.425a8474e3980p+4, +0x8.dff506fe0d9f8p+4) - @test log(Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592)) == Interval(0x4.54169a4297548p+0, 0x1.9d179ea5204d0p+8) - @test log(Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628)) == Interval(0xe.cd14bebe2cd68p+0, 0x1.b46dc0d02b874p+8) - @test log(Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24)) == Interval(-0x7.9346bab839b58p+4, -0xe.e33f2c933b990p+0) - @test log(Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920)) == Interval(-0x1.83044f26aaa2bp+8, +0x2.805ce2dc91036p+8) - @test log(Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160)) == Interval(-0x1.4359ecd75cb6cp+8, -0x6.e715e1ba0e35cp+4) - @test log(Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324)) == Interval(-0x1.6f438ee9f6020p+8, +0xe.1a4a3523f2658p+4) - @test log(Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196)) == Interval(0x6.564d09ad1d214p+4, 0x8.914a9531fd118p+4) - @test log(Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240)) == Interval(-0xe.1d2336a5be1a8p+4, -0xa.649d44362a2f0p+4) - @test log(Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524)) == Interval(0xf.bd7308ed73ff0p+4, 0x1.6df4da39dc5ddp+8) - @test log(Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136)) == Interval(-0x4.8fbaef1169c24p+4, +0x5.f718bbf0ce2f8p+4) - @test log(Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76)) == Interval(-0xf.4cd3094a3b4b8p+4, -0x3.439bfd719bae8p+4) - @test log(Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36)) == Interval(-0xa.cdc41aee74318p+4, -0x1.681aff89e9c89p+4) - @test log(Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72)) == Interval(-0x1.5add53379ef4dp+8, +0x3.36d2b121508a8p+4) - @test log(Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192)) == Interval(-0x9.341d196ad2d58p+4, +0x8.5adc069f618a8p+4) - @test log(Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148)) == Interval(-0x1.dc410cbc8e1c8p+8, -0x6.4027b79d2eaa8p+4) - @test log(Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260)) == Interval(0x8.6243148f46208p+4, 0xb.519b6e544f898p+4) - @test log(Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588)) == Interval(-0xe.9f20674285418p+4, +0x1.990c99b6124fep+8) - @test log(Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152)) == Interval(-0x7.a02728d7d3790p+4, -0x6.70dba893a16e0p+4) - @test log2(Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92)) == Interval(-0x1.04614e93ea794p+8, +0x5.f7104b04804e4p+4) - @test log2(Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224)) == Interval(-0x2.02bf4547cf74ap+8, -0xd.d527f669b7aa0p+4) - @test log2(Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236)) == Interval(-0xe.cd1f394a2c268p+4, +0xe.caa4613c31fd0p+4) - @test log2(Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452)) == Interval(-0x1.e8d93ac78e47cp+8, -0x1.c23b6e9f9be73p+8) - @test log2(Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224)) == Interval(0xc.44a8d0a480900p+4, 0xe.30d042bd32e08p+4) - @test log2(Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276)) == Interval(-0x2.945a6de3564f2p+4, +0x1.15d18004da527p+8) - @test log2(Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196)) == Interval(-0x1.dbb1a03ad9911p+8, +0xc.7305ecf8e75d8p+4) - @test log2(Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140)) == Interval(-0x1.74f450fb5f194p+8, +0x8.d8ce5c08208d0p+4) - @test log2(Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328)) == Interval(-0x2.ffc54d5ef9e5ap+8, -0x1.472e83799ccfap+8) - @test log2(Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132)) == Interval(-0x2.41b8ec5041b68p+8, -0x8.29be215800410p+4) - @test log2(Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276)) == Interval(0x7.562ae05df4698p+4, 0x1.15e7f7fa196aap+8) - @test log2(Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204)) == Interval(-0x6.250c3695fcf20p+4, +0xc.cdbdc5938d560p+4) - @test log2(Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592)) == Interval(0x6.3ea22bed11920p+0, 0x2.53f7565a6fa4cp+8) - @test log2(Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628)) == Interval(0x1.55a7d090e9bc4p+4, 0x2.75a230a6ef148p+8) - @test log2(Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24)) == Interval(-0xa.edc8c6ae09a00p+4, -0x1.57a778189781ep+4) - @test log2(Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920)) == Interval(-0x2.2e58e661bef52p+8, +0x3.9bd9297418726p+8) - @test log2(Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160)) == Interval(-0x1.d27f4d5811ec0p+8, -0x9.f55d8e4a51f88p+4) - @test log2(Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324)) == Interval(-0x2.11d98ce9f01e8p+8, +0x1.4588c1b9f05fcp+8) - @test log2(Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196)) == Interval(0x9.247c4a0d6a240p+4, 0xc.5c40234316de0p+4) - @test log2(Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240)) == Interval(-0x1.45ca7d7508d73p+8, -0xe.fe7480a8a6a70p+4) - @test log2(Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524)) == Interval(0x1.6b54440063a2fp+8, 0x2.0ff6ac0a1df08p+8) - @test log2(Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136)) == Interval(-0x6.94adb7a807630p+4, +0x8.9b227cd69b7b0p+4) - @test log2(Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76)) == Interval(-0x1.612c877fdefc9p+8, -0x4.b58789b7d2ab8p+4) - @test log2(Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36)) == Interval(-0xf.96282d809ede0p+4, -0x2.0785b9a270c10p+4) - @test log2(Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72)) == Interval(-0x1.f46b75e4932f4p+8, +0x4.a3152ac221298p+4) - @test log2(Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192)) == Interval(-0xd.47274c2e0b298p+4, +0xc.0db8d252704a8p+4) - @test log2(Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148)) == Interval(-0x2.af16e4d3d6128p+8, -0x9.048930492a7a0p+4) - @test log2(Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260)) == Interval(0xc.1866cea5b0408p+4, 0x1.0545d0c4da7bap+8) - @test log2(Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588)) == Interval(-0x1.51830ad8b30fcp+8, +0x2.4e221ec1db53ep+8) - @test log2(Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152)) == Interval(-0xb.005c8501548a8p+4, -0x9.4acca02a24828p+4) - @test log10(Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92)) == Interval(-0x4.e61d94c4c8d58p+4, +0x1.cbb1247192ae0p+4) - @test log10(Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224)) == Interval(-0x9.af44f24283358p+4, -0x4.29fe8451f9e24p+4) - @test log10(Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236)) == Interval(-0x4.74a3adb971c48p+4, +0x4.73e4925024c64p+4) - @test log10(Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452)) == Interval(-0x9.32877ca0160b8p+4, -0x8.7888bddbce5d0p+4) - @test log10(Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224)) == Interval(0x3.b16ec52507df2p+4, 0x4.4595f97548968p+4) - @test log10(Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276)) == Interval(-0xc.6c93ffef64f78p+0, +0x5.3a1b471a21ff4p+4) - @test log10(Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196)) == Interval(-0x8.f32b7dbb21008p+4, +0x3.bf63ba7a3c658p+4) - @test log10(Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140)) == Interval(-0x7.0453c2f061648p+4, +0x2.a9c64a16830fcp+4) - @test log10(Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328)) == Interval(-0xe.71f3c5029d848p+4, -0x6.27dd331c437f0p+4) - @test log10(Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132)) == Interval(-0xa.de968fd95abe0p+4, -0x2.7513429684674p+4) - @test log10(Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276)) == Interval(0x2.35627efd00a60p+4, 0x5.3a877f4ad58e8p+4) - @test log10(Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204)) == Interval(-0x1.d988d7ebc5ae3p+4, +0x3.dab2cd7f2625ep+4) - @test log10(Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592)) == Interval(0x1.e13c93cf0c5d8p+0, 0xb.367584ac914d0p+4) - @test log10(Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628)) == Interval(0x6.6d93b54d66420p+0, 0xb.d89e0ca927598p+4) - @test log10(Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24)) == Interval(-0x3.4a378caad54dap+4, -0x6.773414d886c14p+0) - @test log10(Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920)) == Interval(-0xa.8144b5b8f5dd8p+4, +0x1.161b25dac86ecp+8) - @test log10(Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160)) == Interval(-0x8.c6dff01c76970p+4, -0x2.ff6f7b088b0ccp+4) - @test log10(Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324)) == Interval(-0x9.f802ce339e840p+4, +0x6.1fedd0fb88d78p+4) - @test log10(Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196)) == Interval(0x2.c08e6c63f32e4p+4, 0x3.b888c99289754p+4) - @test log10(Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240)) == Interval(-0x6.212a6b69124f0p+4, -0x4.837d7868c93bcp+4) - @test log10(Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524)) == Interval(0x6.d5f7b5f14dd48p+4, 0x9.eeed0801ea480p+4) - @test log10(Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136)) == Interval(-0x1.fb238786d64f9p+4, +0x2.9735aa99f42aap+4) - @test log10(Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76)) == Interval(-0x6.a50e2200dff14p+4, -0x1.6ae688b7c8203p+4) - @test log10(Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36)) == Interval(-0x4.b1282c68fe4f8p+4, -0x9.c644dfb9ee3e0p+0) - @test log10(Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72)) == Interval(-0x9.6a430336ad680p+4, +0x1.6558f570c1420p+4) - @test log10(Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192)) == Interval(-0x3.ff3f46384e0e2p+4, +0x3.a0e51611ff75ep+4) - @test log10(Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148)) == Interval(-0xc.ed5a39e5d4878p+4, -0x2.b6f044cde4a0cp+4) - @test log10(Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260)) == Interval(0x3.a41c190fe9e7ap+4, 0x4.ea6a3021e4fb8p+4) - @test log10(Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588)) == Interval(-0x6.599e84fef71bcp+4, +0xb.1a5d77bc55f98p+4) - @test log10(Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152)) == Interval(-0x3.4fcf2bc10b840p+4, -0x2.cc1706e0167d2p+4) - @test sin(Interval(-0xa.644c9d88ea8c8p-152, -0xd.8ec7927926f18p-944)) == Interval(-0xa.644c9d88ea8c8p-152, -0xd.8ec7927926f10p-944) - @test sin(Interval(-0x1.9ee1a9db994f5p-436, -0x6.d914701c82fecp-624)) == Interval(-0x1.9ee1a9db994f5p-436, -0x6.d914701c82fe8p-624) - @test sin(Interval(-0x5.65057f3effc60p+4, -0x2.3617cf5815ecap-960)) == Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) - @test sin(Interval(-0x1.975299ccb0e08p-372, +0xb.bec7d35b45b00p-588)) == Interval(-0x1.975299ccb0e08p-372, +0xb.bec7d35b45b00p-588) - @test sin(Interval(-0x3.51d388d47aed2p-356, -0x1.c3a9cd7025105p-564)) == Interval(-0x3.51d388d47aed2p-356, -0x1.c3a9cd7025104p-564) - @test sin(Interval(-0xc.db363268cf708p-332, -0x2.171b7d7bfe4e0p-412)) == Interval(-0xc.db363268cf708p-332, -0x2.171b7d7bfe4dep-412) - @test sin(Interval(-0x1.32690aac2472dp-40, -0x8.706ebdcf39c88p-792)) == Interval(-0x1.32690aac2472dp-40, -0x8.706ebdcf39c80p-792) - @test sin(Interval(-0x5.0145af0c53324p-200, -0x2.f5a0cb3301856p-204)) == Interval(-0x5.0145af0c53324p-200, -0x2.f5a0cb3301854p-204) - @test sin(Interval(0xf.4077c7e8cd6a0p-268, 0x3.753426098ac5ap-80)) == Interval(0xf.4077c7e8cd698p-268, 0x3.753426098ac5ap-80) - @test sin(Interval(-0xb.b25f8d8bb7fb8p-376, -0x2.017a332f9b05cp-916)) == Interval(-0xb.b25f8d8bb7fb8p-376, -0x2.017a332f9b05ap-916) - @test sin(Interval(-0xd.947ca427fdfe0p-592, +0xe.3be493b5bc8e8p-16)) == Interval(-0xd.947ca427fdfe0p-592, +0xe.3be491d517170p-16) - @test sin(Interval(-0x9.c46198b2471f0p-336, -0x1.65ed85df2d4b7p-576)) == Interval(-0x9.c46198b2471f0p-336, -0x1.65ed85df2d4b6p-576) - @test sin(Interval(-0x3.2c867c027db44p-936, +0x6.1883ea827ab6cp-388)) == Interval(-0x3.2c867c027db44p-936, +0x6.1883ea827ab6cp-388) - @test sin(Interval(-0x3.560ef91c47deap-492, +0x5.413664dd17abcp-20)) == Interval(-0x3.560ef91c47deap-492, +0x5.413664dcff7d4p-20) - @test sin(Interval(-0x8.36bfcd74a6d68p-304, -0x3.2c20eb130d510p-836)) == Interval(-0x8.36bfcd74a6d68p-304, -0x3.2c20eb130d50ep-836) - @test sin(Interval(-0x6.bcec84603958cp-500, -0x1.068b13da99666p-760)) == Interval(-0x6.bcec84603958cp-500, -0x1.068b13da99665p-760) - @test sin(Interval(-0x1.2789c2d583bcdp-568, -0x1.f2bd89dad0665p-780)) == Interval(-0x1.2789c2d583bcdp-568, -0x1.f2bd89dad0664p-780) - @test sin(Interval(-0xc.fe4e8d857e3e0p-548, +0x1.580844b9dc45cp-780)) == Interval(-0xc.fe4e8d857e3e0p-548, +0x1.580844b9dc45cp-780) - @test sin(Interval(-0xc.508d29acb01b8p-52, +0x1.b1e6b793078ddp-664)) == Interval(-0xc.508d29acb01b8p-52, +0x1.b1e6b793078ddp-664) - @test sin(Interval(-0xa.12f7783880a78p-124, -0x3.765df69ee106ep-548)) == Interval(-0xa.12f7783880a78p-124, -0x3.765df69ee106cp-548) - @test sin(Interval(-0x6.3a58d52fdf844p-896, -0x1.039e2518cf503p-1008)) == Interval(-0x6.3a58d52fdf844p-896, -0x1.039e2518cf502p-1008) - @test sin(Interval(-0xb.dd3171fdeec18p-168, +0x1.069e434ee9e0fp-740)) == Interval(-0xb.dd3171fdeec18p-168, +0x1.069e434ee9e0fp-740) - @test sin(Interval(-0x3.cf0053257533ap-776, -0x1.7883a587654e5p-928)) == Interval(-0x3.cf0053257533ap-776, -0x1.7883a587654e4p-928) - @test sin(Interval(0x1.455801d3d2b63p-704, 0x3.a4c915783d07ap-28)) == Interval(0x1.455801d3d2b62p-704, 0x3.a4c915783d07ap-28) - @test sin(Interval(-0x2.097d06f4de3e2p-376, +0x2.2e7561fd9255ep-772)) == Interval(-0x2.097d06f4de3e2p-376, +0x2.2e7561fd9255ep-772) - @test sin(Interval(-0x1.7e13dbb66e5a3p-84, -0x6.bc8f45d6a8f48p-540)) == Interval(-0x1.7e13dbb66e5a3p-84, -0x6.bc8f45d6a8f44p-540) - @test sin(Interval(-0x4.1f50c5f2cda54p-276, -0x3.df16f79756422p-496)) == Interval(-0x4.1f50c5f2cda54p-276, -0x3.df16f79756420p-496) - @test sin(Interval(-0x7.ecc4c5eec4cacp-328, -0x2.e02e1db7a08f6p-876)) == Interval(-0x7.ecc4c5eec4cacp-328, -0x2.e02e1db7a08f4p-876) - @test sin(Interval(-0xc.1bc7a4c89d440p-256, +0x2.a7f56252d1d34p-608)) == Interval(-0xc.1bc7a4c89d440p-256, +0x2.a7f56252d1d34p-608) - @test sin(Interval(-0xb.ce50d7b2f2868p-236, -0xe.6b08988339b80p-432)) == Interval(-0xb.ce50d7b2f2868p-236, -0xe.6b08988339b78p-432) - @test cos(Interval(-0xa.644c9d88ea8c8p-152, -0xd.8ec7927926f18p-944)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x1.9ee1a9db994f5p-436, -0x6.d914701c82fecp-624)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x5.65057f3effc60p+4, -0x2.3617cf5815ecap-960)) == Interval(-0x1.0000000000000p+0, +0x1.0000000000000p+0) - @test cos(Interval(-0x1.975299ccb0e08p-372, +0xb.bec7d35b45b00p-588)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x3.51d388d47aed2p-356, -0x1.c3a9cd7025105p-564)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0xc.db363268cf708p-332, -0x2.171b7d7bfe4e0p-412)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x1.32690aac2472dp-40, -0x8.706ebdcf39c88p-792)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x5.0145af0c53324p-200, -0x2.f5a0cb3301856p-204)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(0xf.4077c7e8cd6a0p-268, 0x3.753426098ac5ap-80)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0xb.b25f8d8bb7fb8p-376, -0x2.017a332f9b05cp-916)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0xd.947ca427fdfe0p-592, +0xe.3be493b5bc8e8p-16)) == Interval(0xf.fffff9ab27e58p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x9.c46198b2471f0p-336, -0x1.65ed85df2d4b7p-576)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x3.2c867c027db44p-936, +0x6.1883ea827ab6cp-388)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x3.560ef91c47deap-492, +0x5.413664dd17abcp-20)) == Interval(0xf.ffffffff231a0p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x8.36bfcd74a6d68p-304, -0x3.2c20eb130d510p-836)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x6.bcec84603958cp-500, -0x1.068b13da99666p-760)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x1.2789c2d583bcdp-568, -0x1.f2bd89dad0665p-780)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0xc.fe4e8d857e3e0p-548, +0x1.580844b9dc45cp-780)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0xc.508d29acb01b8p-52, +0x1.b1e6b793078ddp-664)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0xa.12f7783880a78p-124, -0x3.765df69ee106ep-548)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x6.3a58d52fdf844p-896, -0x1.039e2518cf503p-1008)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0xb.dd3171fdeec18p-168, +0x1.069e434ee9e0fp-740)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x3.cf0053257533ap-776, -0x1.7883a587654e5p-928)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(0x1.455801d3d2b63p-704, 0x3.a4c915783d07ap-28)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x2.097d06f4de3e2p-376, +0x2.2e7561fd9255ep-772)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x1.7e13dbb66e5a3p-84, -0x6.bc8f45d6a8f48p-540)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x4.1f50c5f2cda54p-276, -0x3.df16f79756422p-496)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0x7.ecc4c5eec4cacp-328, -0x2.e02e1db7a08f6p-876)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0xc.1bc7a4c89d440p-256, +0x2.a7f56252d1d34p-608)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test cos(Interval(-0xb.ce50d7b2f2868p-236, -0xe.6b08988339b80p-432)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test tan(Interval(0x4.6af931a62eb70p+4, 0x4.6c0d89acf83f0p+4)) == Interval(-0x4.2b94a5b864748p+16, -0xe.cc7effc39bbe8p+0) - @test tan(Interval(0x9.b824319678e98p+4, 0x9.b8365416b3188p+4)) == Interval(-0x9.517610c9ff4f0p+28, -0xe.1dcebd0aba128p+4) - @test tan(Interval(0xe.231d6de6b2910p+0, 0xe.232155989fd58p+0)) == Interval(-0x1.1a74cc770ca81p+20, -0x4.09e5fc000b430p+12) - @test tan(Interval(0x3.a1e994576af38p+4, 0x3.a1f62cb3d8b0cp+4)) == Interval(-0x3.edbbe63a85a20p+12, -0x1.3ec2e09b0b82dp+8) - @test tan(Interval(0x4.504512c674c88p+8, 0x4.5045147df4570p+8)) == Interval(-0xc.5e819f2bca708p+28, -0x9.51d20751384c0p+12) - @test tan(Interval(0x7.da9e8c267b000p+0, 0xa.ccc7028a13e50p+0)) == Interval(-0x8.ce26da7b8cca8p+20, +0x5.0ba299c8f763cp+0) - @test tan(Interval(0xc.ca9e956e09870p+12, 0xc.ca9feb35e8d28p+12)) == Interval(-0x9.40d68d3420248p+16, -0xb.f4cb43c962b98p+0) - @test tan(Interval(0x2.f6b1d30e1ac2cp+8, 0x2.f6b1ead90ed6ep+8)) == Interval(-0x1.1e211833a60a2p+20, -0xa.bbfd5c235e8e8p+8) - @test tan(Interval(0xb.c33774ac8c510p+8, 0xb.c3378f9640b80p+8)) == Interval(-0x3.b8e9a3359ea76p+12, -0x8.33c065b080f78p+8) - @test tan(Interval(0x4.b65f2027400ecp+0, 0x4.b65f690a4503cp+0)) == Interval(-0x2.d46ad27ddb548p+24, -0x3.7ecf31f99adc4p+16) - @test tan(Interval(0x3.c60a2c774d8a6p+8, 0x3.c60a76b28e42cp+8)) == Interval(-0x3.28e3c44c11b44p+24, -0x3.72d85b31bd660p+8) - @test tan(Interval(0x7.da9e8a5df3b7cp+0, 0x7.daa9cfe45466cp+0)) == Interval(-0x1.d9b11082e8fc3p+28, -0x1.6b6333e88c1dfp+12) - @test tan(Interval(0x3.a1e953315b022p+4, 0x3.a3624fc9b84c0p+4)) == Interval(-0x4.91a5298a762fcp+24, -0xa.d59baca695f48p+0) - @test tan(Interval(0x7.da9e8ab1b7b7cp+0, 0x8.e4a2bcbb988b0p+0)) == Interval(-0x2.c52ad8545ac54p+24, -0x9.691ccdb9751e8p-4) - @test tan(Interval(0x5.48783c12b018cp+8, 0x5.487863a8a0c78p+8)) == Interval(-0x4.7465d978ff1e8p+4, -0x4.455187267b294p+4) - @test tan(Interval(0x1.ab41b772619c2p+4, 0x1.ab96c295e1a23p+4)) == Interval(-0x2.55de9f429f276p+16, -0x3.02439c1296068p+4) - @test tan(Interval(0x1.87e20c8b7ccc1p+16, 0x1.87e20e060934fp+16)) == Interval(-0x7.5f7bb0c55311cp+28, -0xa.d1f5d5f3730e8p+4) - @test tan(Interval(0x2.5ba5629043048p+16, 0x2.5ba5a6106ddf4p+16)) == Interval(-0x4.bde3c915168d8p+4, -0x3.84ed584601b4cp+0) - @test tan(Interval(0x1.a9af913ee27cfp+8, 0x1.a9afa6d06e549p+8)) == Interval(-0x2.cb455269cb954p+16, -0xb.ace6e2eaa9098p+8) - @test tan(Interval(0x7.64cf403a51948p+8, 0x7.64d139f1912e4p+8)) == Interval(-0x5.38f704820a47cp+28, -0x8.19686283b81e8p+4) - @test tan(Interval(0x4.1437b08f8ba70p+16, 0x4.1439a27e86d50p+16)) == Interval(-0x1.3adb30f7a9b56p+24, +0x6.48c7464a8f9a0p-4) - @test tan(Interval(0x2.74518b3bafb7cp+4, 0x2.74518de5a60c0p+4)) == Interval(-0xf.8e3a10db36640p+24, -0x5.ff456443fd8b8p+16) - @test tan(Interval(0x1.dd85a7816a0ffp+4, 0x1.dd89849dfdf09p+4)) == Interval(-0x3.fa5c8bd1a67ecp+20, -0x4.23d96b0387510p+8) - @test tan(Interval(0x1.ab41b29964887p+4, 0x1.b5cbd4ed0d1ddp+4)) == Interval(-0x7.fc8b577b97310p+16, -0x1.4ab8a7bb81552p+0) - @test tan(Interval(0x1.19454e95bc804p+12, 0x1.194551e9ad95ap+12)) == Interval(-0x1.2a53ecf4c9b1ap+12, -0x3.d27f074c2da94p+8) - @test tan(Interval(0x4.c4823d2c30d00p+8, 0x4.c482deae395ccp+8)) == Interval(-0x7.f7b434a3f3544p+28, -0x1.95c659f53b09bp+8) - @test tan(Interval(0x1.dd85baab9baf9p+4, 0x1.dd8660423baacp+4)) == Interval(-0xd.2f5338751c9c8p+12, -0x1.623d682415be0p+12) - @test tan(Interval(0x2.f798bb3536690p+16, 0x2.f79a363308c32p+16)) == Interval(-0x2.f8c1ac15a9ccep+16, -0x1.731b7acf94603p-4) - @test tan(Interval(0x1.78fdb9f143616p+4, 0x1.78fdb9f143616p+4)) == Interval(-0xc.9cfd638fe0a18p+24, -0xc.9cfd638fe0a10p+24) - @test tan(Interval(0x1.78fdb9f143616p+4, 0x1.79367e02d4eaap+4)) == Interval(-0xc.9cfd638fe0a18p+24, -0x4.826bf805c4e68p+4) - @test cot(Interval(0x4.51d73651ea89cp+4, 0x4.52eb8e58b411cp+4)) == Interval(0xe.cc7effc39de08p+0, 0x4.2b94a5e391e20p+16) - @test cot(Interval(0x9.9f02364234bc8p+4, 0x9.9f1458c26eeb8p+4)) == Interval(0xe.1dcebd0aa72d0p+4, 0x9.516dd4fa21cf0p+28) - @test cot(Interval(0xc.90fdb8a26fbf8p+0, 0xc.9101a0545d040p+0)) == Interval(0x4.09e5fc0006c38p+12, 0x1.1a74cc76b6b71p+20) - @test cot(Interval(0x3.88c7990326c68p+4, 0x3.88d4315f9483cp+4)) == Interval(0x1.3ec2e09b0928ap+8, 0x3.edbbe6390ef44p+12) - @test cot(Interval(0x4.4eb2f3113085cp+8, 0x4.4eb2f4c8b0144p+8)) == Interval(0x9.51d206f220e70p+12, 0xc.5dda26e3680b8p+28) - @test cot(Interval(0x6.487ed6e2382ecp+0, 0x9.3aa74d45d1138p+0)) == Interval(-0x5.0ba299c8f7644p+0, +0x8.ce26d93009840p+20) - @test cot(Interval(0xc.ca857372b5428p+12, 0xc.ca86c93a948e0p+12)) == Interval(0xb.f4cb43cc4c9e8p+0, 0x9.40d848ddfc130p+16) - @test cot(Interval(0x2.f51fb358d6800p+8, 0x2.f51fcb23ca942p+8)) == Interval(0xa.bbfd5c1b7c1d8p+8, 0x1.1e2116d584957p+20) - @test cot(Interval(0xb.c1a554f7480e0p+8, 0xb.c1a56fe0fc750p+8)) == Interval(0x8.33c065bcb81c8p+8, 0x3.b8e9a35ddf6bcp+12) - @test cot(Interval(0x3.243f6ae2fd3d8p+0, 0x3.243fb3c602324p+0)) == Interval(0x3.7ecf31f964f42p+16, 0x2.d46ad05a0b746p+24) - @test cot(Interval(0x3.c4780cc209478p+8, 0x3.c47856fd49ffep+8)) == Interval(0x3.72d85b3269a44p+8, 0x3.28e454e439a90p+24) - @test cot(Interval(0x6.487ed519b0e68p+0, 0x6.488a1aa011958p+0)) == Interval(0x1.6b6333e883806p+12, 0x1.d9b101df34e20p+28) - @test cot(Interval(0x3.88c757dd16d52p+4, 0x3.8a405475741f0p+4)) == Interval(0xa.d59baca695410p+0, 0x4.91a509de53224p+24) - @test cot(Interval(0x6.487ed56d74e68p+0, 0x7.5283077755b9cp+0)) == Interval(0x9.691ccdb975190p-4, 0x2.c52ad6475d346p+24) - @test cot(Interval(0x5.46e61c5d6bd60p+8, 0x5.46e643f35c84cp+8)) == Interval(0x4.4551872667304p+4, 0x4.7465d978e9638p+4) - @test cot(Interval(0x1.921fbc1e1d6f1p+4, 0x1.9274c7419d752p+4)) == Interval(0x3.02439c1295bb8p+4, 0x2.55de9f3fccf28p+16) - @test cot(Interval(0x1.87e07a6bc787dp+16, 0x1.87e07be653f0bp+16)) == Interval(0xa.d1f5d5ded35e0p+4, 0x7.55f4abd4357c8p+28) - @test cot(Interval(0x2.5ba3d0708dc04p+16, 0x2.5ba413f0b89b0p+16)) == Interval(0x3.84ed5845dbfb2p+0, 0x4.bde3c91120740p+4) - @test cot(Interval(0x1.a81d71899e3a2p+8, 0x1.a81d871b2a11cp+8)) == Interval(0xb.ace6e2e9da370p+8, 0x2.cb45525df368ep+16) - @test cot(Interval(0x7.633d20850d51cp+8, 0x7.633f1a3c4ceb8p+8)) == Interval(0x8.19686283704c0p+4, 0x5.38d928bc4d11cp+28) - @test cot(Interval(0x4.14361e6fd662cp+16, 0x4.1438105ed190cp+16)) == Interval(-0x6.48c7464ac3a74p-4, +0x1.3ad6ed9b4c193p+24) - @test cot(Interval(0x2.5b2f8fe76b8acp+4, 0x2.5b2f929161df0p+4)) == Interval(0x5.ff45640d6bf8cp+16, 0xf.8e38a1b8f3ce0p+24) - @test cot(Interval(0x1.c463ac2d25e2ep+4, 0x1.c4678949b9c38p+4)) == Interval(0x4.23d96b037e734p+8, 0x3.fa5c8b4eb13bap+20) - @test cot(Interval(0x1.921fb745205b6p+4, 0x1.9ca9d998c8f0cp+4)) == Interval(0x1.4ab8a7bb8153cp+0, 0x7.fc8b575a99618p+16) - @test cot(Interval(0x1.192c2c9a683c1p+12, 0x1.192c2fee59517p+12)) == Interval(0x3.d27f074ed4c1ap+8, 0x1.2a53ecf8bbb09p+12) - @test cot(Interval(0x4.c2f01d76ec8d4p+8, 0x4.c2f0bef8f51a0p+8)) == Interval(0x1.95c659f50f06fp+8, 0x7.f76eb663a7898p+28) - @test cot(Interval(0x1.c463bf5757828p+4, 0x1.c46464edf77dbp+4)) == Interval(0x1.623d682405e56p+12, 0xd.2f53386f7df28p+12) - @test cot(Interval(0x2.f79729158124cp+16, 0x2.f798a413537eep+16)) == Interval(0x1.731b7acf66e92p-4, 0x2.f8c19331ecbfcp+16) - @test cot(Interval(0x3.371943e536e9ep+8, 0x3.371d0784693fap+8)) == Interval(0x3.e06d09fc7ddc2p+4, 0x2.c1b5e6f32fdeep+8) - @test cot(Interval(0x1.5fdbbe9cff344p+4, 0x1.601482ae90bd8p+4)) == Interval(0x4.826bf805c583cp+4, 0xc.9cfdb05def930p+24) - @test asin(Interval(-0x3.11a309475e762p-164, -0xc.3784302e15500p-680)) == Interval(-0x3.11a309475e764p-164, -0xc.3784302e15500p-680) - @test asin(Interval(-0x5.7dd17a4248d38p-280, -0x2.898fc0f386f74p-640)) == Interval(-0x5.7dd17a4248d3cp-280, -0x2.898fc0f386f74p-640) - @test asin(Interval(-0xe.d83dcd7f564a0p-296, -0x1.62f61fba0f40fp-764)) == Interval(-0xe.d83dcd7f564a8p-296, -0x1.62f61fba0f40fp-764) - @test asin(Interval(-0x1.67712a1e64c2cp-944, -0x1.c0102c4d258efp-976)) == Interval(-0x1.67712a1e64c2dp-944, -0x1.c0102c4d258efp-976) - @test asin(Interval(0x2.e3d991ae84668p-728, 0x1.92c3c728ccf4ap-612)) == Interval(0x2.e3d991ae84668p-728, 0x1.92c3c728ccf4bp-612) - @test asin(Interval(-0x1.bcd3feb3b0175p-640, +0x1.bebe69e3bf3c2p-536)) == Interval(-0x1.bcd3feb3b0176p-640, +0x1.bebe69e3bf3c3p-536) - @test asin(Interval(-0x1.2469575189327p-372, -0x7.51c0c39f58a4cp-1008)) == Interval(-0x1.2469575189328p-372, -0x7.51c0c39f58a4cp-1008) - @test asin(Interval(-0x1.c4d163a6cccd9p-336, -0x1.3bee6dab70397p-796)) == Interval(-0x1.c4d163a6cccdap-336, -0x1.3bee6dab70397p-796) - @test asin(Interval(-0x2.0fae5de90c98cp-896, -0x2.2079777ec2418p-976)) == Interval(-0x2.0fae5de90c98ep-896, -0x2.2079777ec2418p-976) - @test asin(Interval(-0x1.08c248c37e53bp-816, +0x2.8c9f04ee5de84p-948)) == Interval(-0x1.08c248c37e53cp-816, +0x2.8c9f04ee5de86p-948) - @test asin(Interval(-0x2.0002542b01474p-228, +0x2.4d59f217bf74cp-796)) == Interval(-0x2.0002542b01476p-228, +0x2.4d59f217bf74ep-796) - @test asin(Interval(0xd.d4033889729a0p-844, 0x7.44451bf919d78p-556)) == Interval(0xd.d4033889729a0p-844, 0x7.44451bf919d7cp-556) - @test asin(Interval(-0x2.08918b016995cp-64, +0x3.3fc26450c6e4ap-268)) == Interval(-0x2.08918b016995ep-64, +0x3.3fc26450c6e4cp-268) - @test asin(Interval(-0x2.66c95bd8d7716p-388, +0x1.7e16b310f878ap-232)) == Interval(-0x2.66c95bd8d7718p-388, +0x1.7e16b310f878bp-232) - @test asin(Interval(-0x3.d9c66bd30b774p-256, -0x4.a8c30f678cb68p-456)) == Interval(-0x3.d9c66bd30b776p-256, -0x4.a8c30f678cb68p-456) - @test asin(Interval(-0x1.aa045ccb15aedp-804, +0xd.450c473265610p-24)) == Interval(-0x1.aa045ccb15aeep-804, +0xd.450c473266e68p-24) - @test asin(Interval(-0x2.23adfa571fc3cp-344, -0x1.30d1074dc059ep-868)) == Interval(-0x2.23adfa571fc3ep-344, -0x1.30d1074dc059ep-868) - @test asin(Interval(-0x3.dfbc1a4bf3888p-68, -0x4.a89e39b247c84p-840)) == Interval(-0x3.dfbc1a4bf388ap-68, -0x4.a89e39b247c84p-840) - @test asin(Interval(0x9.583064525d370p-496, 0x2.c67652f06a55ep-408)) == Interval(0x9.583064525d370p-496, 0x2.c67652f06a560p-408) - @test asin(Interval(-0x3.38bf880ec3082p-304, -0x7.7b19877e536acp-512)) == Interval(-0x3.38bf880ec3084p-304, -0x7.7b19877e536acp-512) - @test asin(Interval(-0x2.adbf037238702p-44, +0x1.98dc940c3ae1ep-564)) == Interval(-0x2.adbf037238704p-44, +0x1.98dc940c3ae1fp-564) - @test asin(Interval(-0x4.e4a79c48b3a58p-328, +0xa.28b02e59d39d8p-856)) == Interval(-0x4.e4a79c48b3a5cp-328, +0xa.28b02e59d39e0p-856) - @test asin(Interval(-0x6.80d3e87b911d8p-232, -0x2.3df54212c46e4p-520)) == Interval(-0x6.80d3e87b911dcp-232, -0x2.3df54212c46e4p-520) - @test asin(Interval(-0x1.4e54c309c46f8p-480, +0x9.47e982ac83f98p-688)) == Interval(-0x1.4e54c309c46f9p-480, +0x9.47e982ac83fa0p-688) - @test asin(Interval(-0x2.276202227a6dep-808, +0x1.c53e9ba64fadfp-768)) == Interval(-0x2.276202227a6e0p-808, +0x1.c53e9ba64fae0p-768) - @test asin(Interval(-0x4.8e4b4d7ba6dd0p-212, -0x1.4b35284c1064bp-548)) == Interval(-0x4.8e4b4d7ba6dd4p-212, -0x1.4b35284c1064bp-548) - @test asin(Interval(-0x3.5c52b8d9ff582p-248, -0x2.af868d652b866p-912)) == Interval(-0x3.5c52b8d9ff584p-248, -0x2.af868d652b866p-912) - @test asin(Interval(0x1.6938cc5ee183ap-692, 0xb.f7a583ac38168p-664)) == Interval(0x1.6938cc5ee183ap-692, 0xb.f7a583ac38170p-664) - @test asin(Interval(-0x3.68b35f23b2506p-560, +0x9.f9c9246d05138p-304)) == Interval(-0x3.68b35f23b2508p-560, +0x9.f9c9246d05140p-304) - @test asin(Interval(-0xa.bde70b6850ea0p-516, +0x2.bb76d5bf703fap-1020)) == Interval(-0xa.bde70b6850ea8p-516, +0x2.bb76d5bf703fcp-1020) - @test acos(Interval(-0x3.11a309475e762p-164, -0xc.3784302e15500p-680)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x5.7dd17a4248d38p-280, -0x2.898fc0f386f74p-640)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0xe.d83dcd7f564a0p-296, -0x1.62f61fba0f40fp-764)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x1.67712a1e64c2cp-944, -0x1.c0102c4d258efp-976)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(0x2.e3d991ae84668p-728, 0x1.92c3c728ccf4ap-612)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x1.bcd3feb3b0175p-640, +0x1.bebe69e3bf3c2p-536)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x1.2469575189327p-372, -0x7.51c0c39f58a4cp-1008)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x1.c4d163a6cccd9p-336, -0x1.3bee6dab70397p-796)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x2.0fae5de90c98cp-896, -0x2.2079777ec2418p-976)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x1.08c248c37e53bp-816, +0x2.8c9f04ee5de84p-948)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x2.0002542b01474p-228, +0x2.4d59f217bf74cp-796)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(0xd.d4033889729a0p-844, 0x7.44451bf919d78p-556)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x2.08918b016995cp-64, +0x3.3fc26450c6e4ap-268)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x2.66c95bd8d7716p-388, +0x1.7e16b310f878ap-232)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x3.d9c66bd30b774p-256, -0x4.a8c30f678cb68p-456)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x1.aa045ccb15aedp-804, +0xd.450c473265610p-24)) == Interval(0x1.921fa7ff368a5p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x2.23adfa571fc3cp-344, -0x1.30d1074dc059ep-868)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x3.dfbc1a4bf3888p-68, -0x4.a89e39b247c84p-840)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(0x9.583064525d370p-496, 0x2.c67652f06a55ep-408)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x3.38bf880ec3082p-304, -0x7.7b19877e536acp-512)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x2.adbf037238702p-44, +0x1.98dc940c3ae1ep-564)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442fc7p+0) - @test acos(Interval(-0x4.e4a79c48b3a58p-328, +0xa.28b02e59d39d8p-856)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x6.80d3e87b911d8p-232, -0x2.3df54212c46e4p-520)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x1.4e54c309c46f8p-480, +0x9.47e982ac83f98p-688)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x2.276202227a6dep-808, +0x1.c53e9ba64fadfp-768)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x4.8e4b4d7ba6dd0p-212, -0x1.4b35284c1064bp-548)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x3.5c52b8d9ff582p-248, -0x2.af868d652b866p-912)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(0x1.6938cc5ee183ap-692, 0xb.f7a583ac38168p-664)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0x3.68b35f23b2506p-560, +0x9.f9c9246d05138p-304)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test acos(Interval(-0xa.bde70b6850ea0p-516, +0x2.bb76d5bf703fap-1020)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0x1.7a77bfccf5a9ep-232, 0x2.8457bc029986ep+112)) == Interval(0x1.7a77bfccf5a9dp-232, 0x1.921fb54442d19p+0) - @test atan(Interval(0x3.c5ec30fbb68c8p-508, 0x6.05c0bb1bcb730p-220)) == Interval(0x3.c5ec30fbb68c6p-508, 0x6.05c0bb1bcb730p-220) - @test atan(Interval(0xe.20ff41bd18058p-204, 0x2.9b09919bf9d9ep+272)) == Interval(0xe.20ff41bd18050p-204, 0x1.921fb54442d19p+0) - @test atan(Interval(0x2.075df98b2478cp-456, 0x1.1503444763fc5p-416)) == Interval(0x2.075df98b2478ap-456, 0x1.1503444763fc5p-416) - @test atan(Interval(0x1.5444e676976f1p+252, 0x2.7c064f6929234p+292)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0x1.3a01905e36f84p+0, 0x4.ecbc855871080p+332)) == Interval(0xe.3062e34353278p-4, 0x1.921fb54442d19p+0) - @test atan(Interval(0x2.404e44c49c644p-440, 0x7.32edab7f60a50p+236)) == Interval(0x2.404e44c49c642p-440, 0x1.921fb54442d19p+0) - @test atan(Interval(0x1.63a15e999eb64p-344, 0x6.5263cf84ef388p+172)) == Interval(0x1.63a15e999eb63p-344, 0x1.921fb54442d19p+0) - @test atan(Interval(0x6.941f470a70074p-756, 0x1.4171976a1ca54p-288)) == Interval(0x6.941f470a70070p-756, 0x1.4171976a1ca54p-288) - @test atan(Interval(0x7.78a1f475a306cp-564, 0x4.69bb1d34b9570p-76)) == Interval(0x7.78a1f475a3068p-564, 0x4.69bb1d34b9570p-76) - @test atan(Interval(0x1.ba04d452bbb35p+180, 0x1.f0d19adcb5d74p+312)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0x2.6abc15579b2b2p-48, 0x2.e046db554037cp+256)) == Interval(0x2.6abc15579b2b0p-48, 0x1.921fb54442d19p+0) - @test atan(Interval(0x8.297a99ed9ed08p+8, 0xe.33c49cf5b8790p+652)) == Interval(0x1.920057e3a66f1p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0x3.436dfe8f08194p+48, 0x2.a69a969772fdep+688)) == Interval(0x1.921fb54442d13p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0x6.3e590e626451cp-172, 0x1.7aaa15ebbd3f2p+8)) == Interval(0x6.3e590e6264518p-172, 0x1.9172a3136eb8dp+0) - @test atan(Interval(0x6.acfa418d8f92cp-544, 0x2.8f9204bc4041ep+988)) == Interval(0x6.acfa418d8f928p-544, 0x1.921fb54442d19p+0) - @test atan(Interval(0x2.bb570b356c6cap-440, 0x2.b00450a48d586p-148)) == Interval(0x2.bb570b356c6c8p-440, 0x2.b00450a48d586p-148) - @test atan(Interval(0xc.41329461a0c30p-512, 0x1.9e7ddbbe00f75p+352)) == Interval(0xc.41329461a0c28p-512, 0x1.921fb54442d19p+0) - @test atan(Interval(0x6.6978492a3064cp+188, 0xd.5e2045cee9720p+236)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0x7.dea605dec97ccp-316, 0x1.5bd629b25aa23p-236)) == Interval(0x7.dea605dec97c8p-316, 0x1.5bd629b25aa23p-236) - @test atan(Interval(0xd.05e9ccf66cf58p+424, 0xb.a944253373080p+564)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0x6.65d7e0a247778p-56, 0x3.ae1dc13a652cap+168)) == Interval(0x6.65d7e0a247774p-56, 0x1.921fb54442d19p+0) - @test atan(Interval(0x5.2b55801231ec8p-344, 0xa.27b4555158148p-68)) == Interval(0x5.2b55801231ec4p-344, 0xa.27b4555158148p-68) - @test atan(Interval(0x6.36b661dce2688p-236, 0x1.d68a6ba7e617fp+12)) == Interval(0x6.36b661dce2684p-236, 0x1.921700d14cfe5p+0) - @test atan(Interval(0x1.eb0e1ab78f314p-480, 0x1.98ef0c6a8bd66p+132)) == Interval(0x1.eb0e1ab78f313p-480, 0x1.921fb54442d19p+0) - @test atan(Interval(0x7.4cf193131fa64p-192, 0x1.c08152cc09416p+220)) == Interval(0x7.4cf193131fa60p-192, 0x1.921fb54442d19p+0) - @test atan(Interval(0x1.7036c237d5b00p-672, 0x6.f70e0da4d2ba0p-140)) == Interval(0x1.7036c237d5affp-672, 0x6.f70e0da4d2ba0p-140) - @test atan(Interval(0x1.d283cf8f05665p+252, 0xb.24d19e00c8460p+324)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0x3.a0ee84451c92cp-324, 0xf.cc937fa330e40p+648)) == Interval(0x3.a0ee84451c92ap-324, 0x1.921fb54442d19p+0) - @test atan(Interval(0x1.8bca641025a83p-124, 0x5.f775993940188p-120)) == Interval(0x1.8bca641025a82p-124, 0x5.f775993940188p-120) - @test sinh(Interval(-0x3.53dc9496de0a0p-160, -0xc.287e0e10ec1b8p-960)) == Interval(-0x3.53dc9496de0a2p-160, -0xc.287e0e10ec1b8p-960) - @test sinh(Interval(-0x1.cf3637dcbcc9ap-452, -0x5.e4846462ff33cp-636)) == Interval(-0x1.cf3637dcbcc9bp-452, -0x5.e4846462ff33cp-636) - @test sinh(Interval(-0x1.0362421843787p+0, -0x3.3d2ccef698a5ap-972)) == Interval(-0x1.32197576f3697p+0, -0x3.3d2ccef698a5ap-972) - @test sinh(Interval(-0x1.494a24a7585d1p-380, +0x1.a0790a9e3013ep-604)) == Interval(-0x1.494a24a7585d2p-380, +0x1.a0790a9e3013fp-604) - @test sinh(Interval(-0x2.b64bc5e999866p-368, -0xf.0633041110c28p-572)) == Interval(-0x2.b64bc5e999868p-368, -0xf.0633041110c28p-572) - @test sinh(Interval(-0x7.56f52f4fed854p-336, -0x4.f40a3934b3354p-416)) == Interval(-0x7.56f52f4fed858p-336, -0x4.f40a3934b3354p-416) - @test sinh(Interval(-0xa.0e33c2ba95c88p-48, -0x1.1927ca3847669p-808)) == Interval(-0xa.0e33c2ba95c90p-48, -0x1.1927ca3847669p-808) - @test sinh(Interval(-0x1.1bbbd6fe8b950p-208, -0x1.463a32dba649dp-220)) == Interval(-0x1.1bbbd6fe8b951p-208, -0x1.463a32dba649dp-220) - @test sinh(Interval(0x5.290fe84915530p-268, 0x1.8c9af520c22c3p-96)) == Interval(0x5.290fe84915530p-268, 0x1.8c9af520c22c4p-96) - @test sinh(Interval(-0x2.e7332c654abb6p-384, -0x1.4363967367f55p-932)) == Interval(-0x2.e7332c654abb8p-384, -0x1.4363967367f55p-932) - @test sinh(Interval(-0x1.55ebb1d70a46ep-592, +0x4.733fa51468530p-20)) == Interval(-0x1.55ebb1d70a46fp-592, +0x4.733fa51477038p-20) - @test sinh(Interval(-0x1.1b4b8388a3d92p-340, -0xd.51d4a3ce4c490p-600)) == Interval(-0x1.1b4b8388a3d93p-340, -0xd.51d4a3ce4c490p-600) - @test sinh(Interval(-0x4.21b73745bc4c0p-952, +0xd.e40d83923c3e0p-404)) == Interval(-0x4.21b73745bc4c4p-952, +0xd.e40d83923c3e8p-404) - @test sinh(Interval(-0x1.73d14fa7da1cbp-504, +0x1.5b3afeeb17a85p-28)) == Interval(-0x1.73d14fa7da1ccp-504, +0x1.5b3afeeb17a86p-28) - @test sinh(Interval(-0x3.3cd34997df066p-320, -0x1.606c7bce75819p-852)) == Interval(-0x3.3cd34997df068p-320, -0x1.606c7bce75819p-852) - @test sinh(Interval(-0xc.5356a56e59748p-516, -0x1.33b9a95c55513p-772)) == Interval(-0xc.5356a56e59750p-516, -0x1.33b9a95c55513p-772) - @test sinh(Interval(-0x5.fa887950a63ccp-588, -0x2.b707741b15478p-800)) == Interval(-0x5.fa887950a63d0p-588, -0x2.b707741b15478p-800) - @test sinh(Interval(-0x2.9476464aae5bap-548, +0x4.0734e17c026d4p-784)) == Interval(-0x2.9476464aae5bcp-548, +0x4.0734e17c026d8p-784) - @test sinh(Interval(-0xf.a46ac05b0eaa8p-68, +0x1.efa89f34f4188p-684)) == Interval(-0xf.a46ac05b0eab0p-68, +0x1.efa89f34f4189p-684) - @test sinh(Interval(-0x9.9488cb205afa8p-124, -0x2.940180d1aa2aep-556)) == Interval(-0x9.9488cb205afb0p-124, -0x2.940180d1aa2aep-556) - @test sinh(Interval(-0x3.f9d9fe5792ce0p-912, -0x3.f00fc8ce24adcp-1016)) == Interval(-0x3.f9d9fe5792ce2p-912, -0x3.f00fc8ce24adcp-1016) - @test sinh(Interval(-0x7.d5a28ef80d6b0p-176, +0xc.5d2b8ffcb2ad8p-756)) == Interval(-0x7.d5a28ef80d6b4p-176, +0xc.5d2b8ffcb2ae0p-756) - @test sinh(Interval(-0x5.b5dcaa821a628p-784, -0x1.48532232c10fdp-940)) == Interval(-0x5.b5dcaa821a62cp-784, -0x1.48532232c10fdp-940) - @test sinh(Interval(0x3.8110d13ab0378p-720, 0x2.77422e18981c2p-44)) == Interval(0x3.8110d13ab0378p-720, 0x2.77422e18981c4p-44) - @test sinh(Interval(-0x1.4ad562c0b5178p-380, +0x3.ceb34f40ea9bap-792)) == Interval(-0x1.4ad562c0b5179p-380, +0x3.ceb34f40ea9bcp-792) - @test sinh(Interval(-0x7.ed02ef56e40b0p-92, -0x1.8c80275a696b0p-552)) == Interval(-0x7.ed02ef56e40b4p-92, -0x1.8c80275a696b0p-552) - @test sinh(Interval(-0x1.56fbe834fc822p-296, -0x3.66041558baca8p-516)) == Interval(-0x1.56fbe834fc823p-296, -0x3.66041558baca8p-516) - @test sinh(Interval(-0x6.44524f6fccf8cp-340, -0x5.3e8ed576a1334p-896)) == Interval(-0x6.44524f6fccf90p-340, -0x5.3e8ed576a1334p-896) - @test sinh(Interval(-0x8.92f5beda59c78p-268, +0x2.51b11c2ec76bap-612)) == Interval(-0x8.92f5beda59c80p-268, +0x2.51b11c2ec76bcp-612) - @test sinh(Interval(-0x4.785c46bdc2a50p-244, -0x1.ba5c062de8f00p-432)) == Interval(-0x4.785c46bdc2a54p-244, -0x1.ba5c062de8f00p-432) - @test cosh(Interval(-0x3.53dc9496de0a0p-160, -0xc.287e0e10ec1b8p-960)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x1.cf3637dcbcc9ap-452, -0x5.e4846462ff33cp-636)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x1.0362421843787p+0, -0x3.3d2ccef698a5ap-972)) == Interval(0x1.0000000000000p+0, 0x1.8f0a39674b193p+0) - @test cosh(Interval(-0x1.494a24a7585d1p-380, +0x1.a0790a9e3013ep-604)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x2.b64bc5e999866p-368, -0xf.0633041110c28p-572)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x7.56f52f4fed854p-336, -0x4.f40a3934b3354p-416)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0xa.0e33c2ba95c88p-48, -0x1.1927ca3847669p-808)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x1.1bbbd6fe8b950p-208, -0x1.463a32dba649dp-220)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(0x5.290fe84915530p-268, 0x1.8c9af520c22c3p-96)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x2.e7332c654abb6p-384, -0x1.4363967367f55p-932)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x1.55ebb1d70a46ep-592, +0x4.733fa51468530p-20)) == Interval(0x1.0000000000000p+0, 0x1.0000000009e6fp+0) - @test cosh(Interval(-0x1.1b4b8388a3d92p-340, -0xd.51d4a3ce4c490p-600)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x4.21b73745bc4c0p-952, +0xd.e40d83923c3e0p-404)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x1.73d14fa7da1cbp-504, +0x1.5b3afeeb17a85p-28)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x3.3cd34997df066p-320, -0x1.606c7bce75819p-852)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0xc.5356a56e59748p-516, -0x1.33b9a95c55513p-772)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x5.fa887950a63ccp-588, -0x2.b707741b15478p-800)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x2.9476464aae5bap-548, +0x4.0734e17c026d4p-784)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0xf.a46ac05b0eaa8p-68, +0x1.efa89f34f4188p-684)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x9.9488cb205afa8p-124, -0x2.940180d1aa2aep-556)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x3.f9d9fe5792ce0p-912, -0x3.f00fc8ce24adcp-1016)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x7.d5a28ef80d6b0p-176, +0xc.5d2b8ffcb2ad8p-756)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x5.b5dcaa821a628p-784, -0x1.48532232c10fdp-940)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(0x3.8110d13ab0378p-720, 0x2.77422e18981c2p-44)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x1.4ad562c0b5178p-380, +0x3.ceb34f40ea9bap-792)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x7.ed02ef56e40b0p-92, -0x1.8c80275a696b0p-552)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x1.56fbe834fc822p-296, -0x3.66041558baca8p-516)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x6.44524f6fccf8cp-340, -0x5.3e8ed576a1334p-896)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x8.92f5beda59c78p-268, +0x2.51b11c2ec76bap-612)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test cosh(Interval(-0x4.785c46bdc2a50p-244, -0x1.ba5c062de8f00p-432)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test tanh(Interval(0x1.7a77bfccf5a9ep-232, 0x2.8457bc029986ep+112)) == Interval(0x1.7a77bfccf5a9dp-232, 0x1.0000000000000p+0) - @test tanh(Interval(0x3.c5ec30fbb68c8p-508, 0x6.05c0bb1bcb730p-220)) == Interval(0x3.c5ec30fbb68c6p-508, 0x6.05c0bb1bcb730p-220) - @test tanh(Interval(0xe.20ff41bd18058p-204, 0x2.9b09919bf9d9ep+272)) == Interval(0xe.20ff41bd18050p-204, 0x1.0000000000000p+0) - @test tanh(Interval(0x2.075df98b2478cp-456, 0x1.1503444763fc5p-416)) == Interval(0x2.075df98b2478ap-456, 0x1.1503444763fc5p-416) - @test tanh(Interval(0x1.5444e676976f1p+252, 0x2.7c064f6929234p+292)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test tanh(Interval(0x1.3a01905e36f84p+0, 0x4.ecbc855871080p+332)) == Interval(0xd.772335e624b98p-4, 0x1.0000000000000p+0) - @test tanh(Interval(0x2.404e44c49c644p-440, 0x7.32edab7f60a50p+236)) == Interval(0x2.404e44c49c642p-440, 0x1.0000000000000p+0) - @test tanh(Interval(0x1.63a15e999eb64p-344, 0x6.5263cf84ef388p+172)) == Interval(0x1.63a15e999eb63p-344, 0x1.0000000000000p+0) - @test tanh(Interval(0x6.941f470a70074p-756, 0x1.4171976a1ca54p-288)) == Interval(0x6.941f470a70070p-756, 0x1.4171976a1ca54p-288) - @test tanh(Interval(0x7.78a1f475a306cp-564, 0x4.69bb1d34b9570p-76)) == Interval(0x7.78a1f475a3068p-564, 0x4.69bb1d34b9570p-76) - @test tanh(Interval(0x1.ba04d452bbb35p+180, 0x1.f0d19adcb5d74p+312)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test tanh(Interval(0x2.6abc15579b2b2p-48, 0x2.e046db554037cp+256)) == Interval(0x2.6abc15579b2b0p-48, 0x1.0000000000000p+0) - @test tanh(Interval(0x8.297a99ed9ed08p+8, 0xe.33c49cf5b8790p+652)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test tanh(Interval(0x3.436dfe8f08194p+48, 0x2.a69a969772fdep+688)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test tanh(Interval(0x6.3e590e626451cp-172, 0x1.7aaa15ebbd3f2p+8)) == Interval(0x6.3e590e6264518p-172, 0x1.0000000000000p+0) - @test tanh(Interval(0x6.acfa418d8f92cp-544, 0x2.8f9204bc4041ep+988)) == Interval(0x6.acfa418d8f928p-544, 0x1.0000000000000p+0) - @test tanh(Interval(0x2.bb570b356c6cap-440, 0x2.b00450a48d586p-148)) == Interval(0x2.bb570b356c6c8p-440, 0x2.b00450a48d586p-148) - @test tanh(Interval(0xc.41329461a0c30p-512, 0x1.9e7ddbbe00f75p+352)) == Interval(0xc.41329461a0c28p-512, 0x1.0000000000000p+0) - @test tanh(Interval(0x6.6978492a3064cp+188, 0xd.5e2045cee9720p+236)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test tanh(Interval(0x7.dea605dec97ccp-316, 0x1.5bd629b25aa23p-236)) == Interval(0x7.dea605dec97c8p-316, 0x1.5bd629b25aa23p-236) - @test tanh(Interval(0xd.05e9ccf66cf58p+424, 0xb.a944253373080p+564)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test tanh(Interval(0x6.65d7e0a247778p-56, 0x3.ae1dc13a652cap+168)) == Interval(0x6.65d7e0a247774p-56, 0x1.0000000000000p+0) - @test tanh(Interval(0x5.2b55801231ec8p-344, 0xa.27b4555158148p-68)) == Interval(0x5.2b55801231ec4p-344, 0xa.27b4555158148p-68) - @test tanh(Interval(0x6.36b661dce2688p-236, 0x1.d68a6ba7e617fp+12)) == Interval(0x6.36b661dce2684p-236, 0x1.0000000000000p+0) - @test tanh(Interval(0x1.eb0e1ab78f314p-480, 0x1.98ef0c6a8bd66p+132)) == Interval(0x1.eb0e1ab78f313p-480, 0x1.0000000000000p+0) - @test tanh(Interval(0x7.4cf193131fa64p-192, 0x1.c08152cc09416p+220)) == Interval(0x7.4cf193131fa60p-192, 0x1.0000000000000p+0) - @test tanh(Interval(0x1.7036c237d5b00p-672, 0x6.f70e0da4d2ba0p-140)) == Interval(0x1.7036c237d5affp-672, 0x6.f70e0da4d2ba0p-140) - @test tanh(Interval(0x1.d283cf8f05665p+252, 0xb.24d19e00c8460p+324)) == Interval(0xf.ffffffffffff8p-4, 0x1.0000000000000p+0) - @test tanh(Interval(0x3.a0ee84451c92cp-324, 0xf.cc937fa330e40p+648)) == Interval(0x3.a0ee84451c92ap-324, 0x1.0000000000000p+0) - @test tanh(Interval(0x1.8bca641025a83p-124, 0x5.f775993940188p-120)) == Interval(0x1.8bca641025a82p-124, 0x5.f775993940188p-120) - @test coth(Interval(0x5.9d7eeea9b9ee0p-264, 0x3.f03d06503caa2p+92)) == Interval(0x1.0000000000000p+0, 0x2.d97240157d2c8p+260) - @test coth(Interval(-0x3.f03d06503caa2p+92, -0x5.9d7eeea9b9ee0p-264)) == Interval(-0x2.d97240157d2c8p+260, -0x1.0000000000000p+0) - @test coth(Interval(0xb.6600f238fe060p-520, 0x1.bb63631b595b0p-224)) == Interval(0x9.3cea8a8c76fc0p+220, 0x1.6758d7d180f69p+516) - @test coth(Interval(-0x1.bb63631b595b0p-224, -0xb.6600f238fe060p-520)) == Interval(-0x1.6758d7d180f69p+516, -0x9.3cea8a8c76fc0p+220) - @test coth(Interval(0x4.dc89ed0034c6cp-240, 0xd.a1d118a3891e8p+232)) == Interval(0x1.0000000000000p+0, 0x3.4a8ab6b06359ap+236) - @test coth(Interval(-0xd.a1d118a3891e8p+232, -0x4.dc89ed0034c6cp-240)) == Interval(-0x3.4a8ab6b06359ap+236, -0x1.0000000000000p+0) - @test coth(Interval(0x4.7f93f879a61a4p-492, 0x1.bdc6388153882p-452)) == Interval(0x9.3041f45fa3d78p+448, 0x3.8e8e46d77a03ep+488) - @test coth(Interval(-0x1.bdc6388153882p-452, -0x4.7f93f879a61a4p-492)) == Interval(-0x3.8e8e46d77a03ep+488, -0x9.3041f45fa3d78p+448) - @test coth(Interval(0xf.c7c928d9bb718p+192, 0x8.41a7954605a98p+224)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test coth(Interval(-0x8.41a7954605a98p+224, -0xf.c7c928d9bb718p+192)) == Interval(-0x1.0000000000001p+0, -0x1.0000000000000p+0) - @test coth(Interval(0x3.f07c0b8005270p-44, 0x2.dd3c8580fcbe0p+276)) == Interval(0x1.0000000000000p+0, 0x4.0fc1103283a70p+40) - @test coth(Interval(-0x2.dd3c8580fcbe0p+276, -0x3.f07c0b8005270p-44)) == Interval(-0x4.0fc1103283a70p+40, -0x1.0000000000000p+0) - @test coth(Interval(0xa.a97ded29fff30p-480, 0x5.35eea9c504860p+196)) == Interval(0x1.0000000000000p+0, 0x1.802a4f4efe3b2p+476) - @test coth(Interval(-0x5.35eea9c504860p+196, -0xa.a97ded29fff30p-480)) == Interval(-0x1.802a4f4efe3b2p+476, -0x1.0000000000000p+0) - @test coth(Interval(0x3.cf4b727451402p-376, 0x1.759f6c21daf9ap+140)) == Interval(0x1.0000000000000p+0, 0x4.33233873998c8p+372) - @test coth(Interval(-0x1.759f6c21daf9ap+140, -0x3.cf4b727451402p-376)) == Interval(-0x4.33233873998c8p+372, -0x1.0000000000000p+0) - @test coth(Interval(0x6.55376f4c1c50cp-772, 0x1.0120dd4ebc019p-328)) == Interval(0xf.ee06735c6d910p+324, 0x2.86c88f09a2cbep+768) - @test coth(Interval(-0x1.0120dd4ebc019p-328, -0x6.55376f4c1c50cp-772)) == Interval(-0x2.86c88f09a2cbep+768, -0xf.ee06735c6d910p+324) - @test coth(Interval(0x1.b63f1f7aed49ep-580, 0x2.245af5bcb3356p-132)) == Interval(0x7.7838528478bf8p+128, 0x9.58a984202b8e8p+576) - @test coth(Interval(-0x2.245af5bcb3356p-132, -0x1.b63f1f7aed49ep-580)) == Interval(-0x9.58a984202b8e8p+576, -0x7.7838528478bf8p+128) - @test coth(Interval(0x2.73b23cc8d8f76p+116, 0x1.f1e4f59403fc3p+276)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test coth(Interval(-0x1.f1e4f59403fc3p+276, -0x2.73b23cc8d8f76p+116)) == Interval(-0x1.0000000000001p+0, -0x1.0000000000000p+0) - @test coth(Interval(0x2.5b4f5f71ca5fcp-100, 0x1.5c244ce1ac6b3p+204)) == Interval(0x1.0000000000000p+0, 0x6.ca09d0ddc330cp+96) - @test coth(Interval(-0x1.5c244ce1ac6b3p+204, -0x2.5b4f5f71ca5fcp-100)) == Interval(-0x6.ca09d0ddc330cp+96, -0x1.0000000000000p+0) - @test coth(Interval(0x1.4e7212dd5abb9p+4, 0xd.9f35e61fdf7e8p+592)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test coth(Interval(-0xd.9f35e61fdf7e8p+592, -0x1.4e7212dd5abb9p+4)) == Interval(-0x1.0000000000001p+0, -0x1.0000000000000p+0) - @test coth(Interval(0x1.271b33491e515p+20, 0x2.b3031cf3af4ecp+628)) == Interval(0x1.0000000000000p+0, 0x1.0000000000001p+0) - @test coth(Interval(-0x2.b3031cf3af4ecp+628, -0x1.271b33491e515p+20)) == Interval(-0x1.0000000000001p+0, -0x1.0000000000000p+0) - @test coth(Interval(0x9.db635e2ff52b0p-180, 0x2.af04176524d06p-24)) == Interval(0x5.f646a7779f114p+20, 0x1.9f8afaa8dbff9p+176) - @test coth(Interval(-0x2.af04176524d06p-24, -0x9.db635e2ff52b0p-180)) == Interval(-0x1.9f8afaa8dbff9p+176, -0x5.f646a7779f114p+20) - @test asinh(Interval(0x1.7a77bfccf5a9ep-232, 0x2.8457bc029986ep+112)) == Interval(0x1.7a77bfccf5a9dp-232, 0x4.f3fa9cd060658p+4) - @test asinh(Interval(0x3.c5ec30fbb68c8p-508, 0x6.05c0bb1bcb730p-220)) == Interval(0x3.c5ec30fbb68c6p-508, 0x6.05c0bb1bcb730p-220) - @test asinh(Interval(0xe.20ff41bd18058p-204, 0x2.9b09919bf9d9ep+272)) == Interval(0xe.20ff41bd18050p-204, 0xb.e2fd554e373e0p+4) - @test asinh(Interval(0x2.075df98b2478cp-456, 0x1.1503444763fc5p-416)) == Interval(0x2.075df98b2478ap-456, 0x1.1503444763fc5p-416) - @test asinh(Interval(0x1.5444e676976f1p+252, 0x2.7c064f6929234p+292)) == Interval(0xa.fa69a93525138p+4, 0xc.c008f1dba8390p+4) - @test asinh(Interval(0x1.3a01905e36f84p+0, 0x4.ecbc855871080p+332)) == Interval(0x1.086affae230b6p+0, 0xe.8698b81e22ab0p+4) - @test asinh(Interval(0x2.404e44c49c644p-440, 0x7.32edab7f60a50p+236)) == Interval(0x2.404e44c49c642p-440, 0xa.63ff3e7d6b730p+4) - @test asinh(Interval(0x1.63a15e999eb64p-344, 0x6.5263cf84ef388p+172)) == Interval(0x1.63a15e999eb63p-344, 0x7.9c22b35b1cee0p+4) - @test asinh(Interval(0x6.941f470a70074p-756, 0x1.4171976a1ca54p-288)) == Interval(0x6.941f470a70070p-756, 0x1.4171976a1ca54p-288) - @test asinh(Interval(0x7.78a1f475a306cp-564, 0x4.69bb1d34b9570p-76)) == Interval(0x7.78a1f475a3068p-564, 0x4.69bb1d34b9570p-76) - @test asinh(Interval(0x1.ba04d452bbb35p+180, 0x1.f0d19adcb5d74p+312)) == Interval(0x7.e017d1421aed4p+4, 0xd.99e3ccf428d70p+4) - @test asinh(Interval(0x2.6abc15579b2b2p-48, 0x2.e046db554037cp+256)) == Interval(0x2.6abc15579b2b0p-48, 0xb.331fc2bc20e70p+4) - #asinh [0X8.297A99ED9ED08P+8, 0XE.33C49CF5B8790P+652] = [0X8.567B3095B8380P+0, 0X1.C7474C3E00682P+8]; - #asinh [0X3.436DFE8F08194P+48, 0X2.A69A969772FDEP+688] = [0X2.325A084AF897EP+4, 0X1.DE8DA2F064858P+8]; - @test asinh(Interval(0x6.3e590e626451cp-172, 0x1.7aaa15ebbd3f2p+8)) == Interval(0x6.3e590e6264518p-172, 0x6.a13a85e654788p+0) - @test asinh(Interval(0x6.acfa418d8f92cp-544, 0x2.8f9204bc4041ep+988)) == Interval(0x6.acfa418d8f928p-544, 0x2.ae767ff2330e0p+8) - @test asinh(Interval(0x2.bb570b356c6cap-440, 0x2.b00450a48d586p-148)) == Interval(0x2.bb570b356c6c8p-440, 0x2.b00450a48d586p-148) - @test asinh(Interval(0xc.41329461a0c30p-512, 0x1.9e7ddbbe00f75p+352)) == Interval(0xc.41329461a0c28p-512, 0xf.529af3b8107e0p+4) - @test asinh(Interval(0x6.6978492a3064cp+188, 0xd.5e2045cee9720p+236)) == Interval(0x8.4dcecb852e1e8p+4, 0xa.6de648aa01a20p+4) - @test asinh(Interval(0x7.dea605dec97ccp-316, 0x1.5bd629b25aa23p-236)) == Interval(0x7.dea605dec97c8p-316, 0x1.5bd629b25aa23p-236) - #asinh [0XD.05E9CCF66CF58P+424, 0XB.A944253373080P+564] = [0X1.29277EA798036P+8, 0X1.8A159CCBD552AP+8]; - @test asinh(Interval(0x6.65d7e0a247778p-56, 0x3.ae1dc13a652cap+168)) == Interval(0x6.65d7e0a247774p-56, 0x7.671e008768830p+4) - @test asinh(Interval(0x5.2b55801231ec8p-344, 0xa.27b4555158148p-68)) == Interval(0x5.2b55801231ec4p-344, 0xa.27b4555158148p-68) - @test asinh(Interval(0x6.36b661dce2688p-236, 0x1.d68a6ba7e617fp+12)) == Interval(0x6.36b661dce2684p-236, 0x9.9e9f4f5a56088p+0) - @test asinh(Interval(0x1.eb0e1ab78f314p-480, 0x1.98ef0c6a8bd66p+132)) == Interval(0x1.eb0e1ab78f313p-480, 0x5.ca82dedb3d320p+4) - @test asinh(Interval(0x7.4cf193131fa64p-192, 0x1.c08152cc09416p+220)) == Interval(0x7.4cf193131fa60p-192, 0x9.9bf0b87669850p+4) - @test asinh(Interval(0x1.7036c237d5b00p-672, 0x6.f70e0da4d2ba0p-140)) == Interval(0x1.7036c237d5affp-672, 0x6.f70e0da4d2ba0p-140) - @test asinh(Interval(0x1.d283cf8f05665p+252, 0xb.24d19e00c8460p+324)) == Interval(0xa.ff762a8b30ea0p+4, 0xe.3af0836b2f5b0p+4) - #asinh [0X3.A0EE84451C92CP-324, 0XF.CC937FA330E40P+648] = [0X3.A0EE84451C92AP-324, 0X1.C49CCB25BBD50P+8]; - @test asinh(Interval(0x1.8bca641025a83p-124, 0x5.f775993940188p-120)) == Interval(0x1.8bca641025a82p-124, 0x5.f775993940188p-120) - @test acosh(Interval(0x5.ad89ad14ddc74p+272, 0x2.6ec5d31670a5ep+860)) == Interval(0xb.ef73bf42c19d8p+4, 0x2.55b05064b6c2ap+8) - @test acosh(Interval(0x4.a457c35864940p+344, 0x2.3adefb54bc048p+444)) == Interval(0xf.0abc113db1af0p+4, 0x1.3540a29bc6b5ep+8) - @test acosh(Interval(0x6.941c8b9506d90p+56, 0x3.b11d8083ae958p+744)) == Interval(0x2.964a9197bf832p+4, 0x2.05b3663fae652p+8) - @test acosh(Interval(0x1.09a940a083ee3p+132, 0x1.047fd514adf08p+384)) == Interval(0x5.c39c22d7aa908p+4, 0x1.0ae10bdf7fe81p+8) - @test acosh(Interval(0x7.710740b71a0d4p+256, 0xf.c0798d156bfa0p+560)) == Interval(0xb.42559b5cf34e8p+4, 0x1.879cce87ee3a1p+8) - @test acosh(Interval(0x2.3721a01f70456p+564, 0x9.c62bbf31fd290p+728)) == Interval(0x1.886c6f1dddff7p+8, 0x1.fb958311209bfp+8) - @test acosh(Interval(0x6.f06d452bdcef0p+44, 0x2.4825931366bbcp+520)) == Interval(0x2.120f95bd1f706p+4, 0x1.69f464545899ap+8) - @test acosh(Interval(0x5.d326d4b0883d8p+76, 0x1.77175c5a113adp+528)) == Interval(0x3.7226bf0157930p+4, 0x1.6f0e8dbf98710p+8) - @test acosh(Interval(0x1.05adfe119d4c2p+296, 0x2.6bcdf50e05e34p+1020)) == Interval(0xc.de2fbe78fec28p+4, 0x2.c49666459e1a4p+8) - @test acosh(Interval(0xa.7f5d255b81268p+408, 0x1.9d1eddc132b36p+864)) == Interval(0x1.1dd92c82827a1p+8, 0x2.580d06072bf20p+8) - @test acosh(Interval(0xc.fbe4e2c6d0a80p+484, 0x4.df75bdc17c330p+868)) == Interval(0x1.52bd770642386p+8, 0x2.5bedb7e376e18p+8) - @test acosh(Interval(0xb.241032f9700a0p+380, 0x1.04a65b06b2920p+640)) == Interval(0x1.0a7fec190cceep+8, 0x1.bc5349b021815p+8) - @test acosh(Interval(0x5.f207eaf5f8bb4p+608, 0xa.bc87c6f90aee0p+648)) == Interval(0x1.a7e8c5069ea32p+8, 0x1.c439e5e8a511cp+8) - @test acosh(Interval(0x1.bcd62c46adfd7p+16, 0xa.cd289b35ecd00p+564)) == Interval(0xc.56062c0c41518p+0, 0x1.8a0201556d85ap+8) - @test acosh(Interval(0x6.534bba40a0b44p+224, 0x1.8de35856e91fbp+452)) == Interval(0x9.dcd7cc0c7ffb8p+4, 0x1.3a6fc95911674p+8) - @test acosh(Interval(0x2.c4f59012f4e48p+508, 0x1.1854765a9a205p+688)) == Interval(0x1.61d49df92ab79p+8, 0x1.ddab5081e5a0ep+8) - @test acosh(Interval(0x8.6f890522c18b0p+44, 0x3.f87592d71e06cp+220)) == Interval(0x2.152f7d2dbf2bcp+4, 0x9.a907e7c701690p+4) - @test acosh(Interval(0x9.2a9035a578970p+124, 0x1.35ee42dca8b75p+608)) == Interval(0x5.8dbe2a7e96990p+4, 0x1.a6515b9ecf2f1p+8) - @test acosh(Interval(0x5.2641115f86d38p+204, 0x7.be33d080e6584p+252)) == Interval(0x8.fbbeb3b84c708p+4, 0xb.169bbe1313f68p+4) - @test acosh(Interval(0xa.8746f72a1bd90p+72, 0x5.6abe29a315520p+872)) == Interval(0x3.4f42dbfc0e4b4p+4, 0x2.5ece9922c7894p+8) - @test acosh(Interval(0xb.d0973ff704000p+224, 0x2.2fd9abbd09d34p+976)) == Interval(0x9.e6d6ea0633070p+4, 0x2.a5fcbedd15f2cp+8) - @test acosh(Interval(0xa.c15d51db7d9f0p+536, 0x1.7207a70831d7ap+796)) == Interval(0x1.76986e964982dp+8, 0x2.28ce847f69dcap+8) - @test acosh(Interval(0x4.280bec7911e7cp+180, 0x6.b4f11e86eca38p+792)) == Interval(0x7.ee261446dd5f8p+4, 0x2.27919f48f2c20p+8) - @test acosh(Interval(0x3.4b22674960b0ep+468, 0xa.505a061df4cd8p+808)) == Interval(0x1.4647297977e4ep+8, 0x2.3316ed57009d4p+8) - @test acosh(Interval(0x2.383fc27d5e4e4p+756, 0x5.88e9c96565e54p+920)) == Interval(0x2.0d82822002358p+8, 0x2.801980299550cp+8) - @test acosh(Interval(0x1.20e762c8aab55p+72, 0x1.dbb7b8fe35847p+960)) == Interval(0x3.2b87d37c9eafap+4, 0x2.9abbed2a77e62p+8) - @test acosh(Interval(0x1.1265074e9e3dfp+792, 0x2.229b285a709c0p+920)) == Interval(0x2.25bc2fc876ebcp+8, 0x2.7f25a89fe16e6p+8) - @test acosh(Interval(0x1.054dcdef21349p+436, 0x1.618994d07d9a7p+636)) == Interval(0x1.2eed02d819a15p+8, 0x1.b9db8970cc5ecp+8) - @test acosh(Interval(0x4.5be0d9a7ff0ccp+460, 0x2.6f2c55f16354ap+568)) == Interval(0x1.4103588c86ab6p+8, 0x1.8b4a572e180d4p+8) - @test acosh(Interval(0x9.bd8b9a7fb6630p+80, 0x2.ad5f8458c8722p+768)) == Interval(0x3.a6bd416fccf70p+4, 0x2.1603d4edcb36ap+8) - @test atanh(Interval(-0x3.11a309475e762p-164, -0xc.3784302e15500p-680)) == Interval(-0x3.11a309475e764p-164, -0xc.3784302e15500p-680) - @test atanh(Interval(-0x5.7dd17a4248d38p-280, -0x2.898fc0f386f74p-640)) == Interval(-0x5.7dd17a4248d3cp-280, -0x2.898fc0f386f74p-640) - @test atanh(Interval(-0xe.d83dcd7f564a0p-296, -0x1.62f61fba0f40fp-764)) == Interval(-0xe.d83dcd7f564a8p-296, -0x1.62f61fba0f40fp-764) - @test atanh(Interval(-0x1.67712a1e64c2cp-944, -0x1.c0102c4d258efp-976)) == Interval(-0x1.67712a1e64c2dp-944, -0x1.c0102c4d258efp-976) - @test atanh(Interval(0x2.e3d991ae84668p-728, 0x1.92c3c728ccf4ap-612)) == Interval(0x2.e3d991ae84668p-728, 0x1.92c3c728ccf4bp-612) - @test atanh(Interval(-0x1.bcd3feb3b0175p-640, +0x1.bebe69e3bf3c2p-536)) == Interval(-0x1.bcd3feb3b0176p-640, +0x1.bebe69e3bf3c3p-536) - @test atanh(Interval(-0x1.2469575189327p-372, -0x7.51c0c39f58a4cp-1008)) == Interval(-0x1.2469575189328p-372, -0x7.51c0c39f58a4cp-1008) - @test atanh(Interval(-0x1.c4d163a6cccd9p-336, -0x1.3bee6dab70397p-796)) == Interval(-0x1.c4d163a6cccdap-336, -0x1.3bee6dab70397p-796) - @test atanh(Interval(-0x2.0fae5de90c98cp-896, -0x2.2079777ec2418p-976)) == Interval(-0x2.0fae5de90c98ep-896, -0x2.2079777ec2418p-976) - @test atanh(Interval(-0x1.08c248c37e53bp-816, +0x2.8c9f04ee5de84p-948)) == Interval(-0x1.08c248c37e53cp-816, +0x2.8c9f04ee5de86p-948) - @test atanh(Interval(-0x2.0002542b01474p-228, +0x2.4d59f217bf74cp-796)) == Interval(-0x2.0002542b01476p-228, +0x2.4d59f217bf74ep-796) - @test atanh(Interval(0xd.d4033889729a0p-844, 0x7.44451bf919d78p-556)) == Interval(0xd.d4033889729a0p-844, 0x7.44451bf919d7cp-556) - @test atanh(Interval(-0x2.08918b016995cp-64, +0x3.3fc26450c6e4ap-268)) == Interval(-0x2.08918b016995ep-64, +0x3.3fc26450c6e4cp-268) - @test atanh(Interval(-0x2.66c95bd8d7716p-388, +0x1.7e16b310f878ap-232)) == Interval(-0x2.66c95bd8d7718p-388, +0x1.7e16b310f878bp-232) - @test atanh(Interval(-0x3.d9c66bd30b774p-256, -0x4.a8c30f678cb68p-456)) == Interval(-0x3.d9c66bd30b776p-256, -0x4.a8c30f678cb68p-456) - @test atanh(Interval(-0x1.aa045ccb15aedp-804, +0xd.450c473265610p-24)) == Interval(-0x1.aa045ccb15aeep-804, +0xd.450c4732686c0p-24) - @test atanh(Interval(-0x2.23adfa571fc3cp-344, -0x1.30d1074dc059ep-868)) == Interval(-0x2.23adfa571fc3ep-344, -0x1.30d1074dc059ep-868) - @test atanh(Interval(-0x3.dfbc1a4bf3888p-68, -0x4.a89e39b247c84p-840)) == Interval(-0x3.dfbc1a4bf388ap-68, -0x4.a89e39b247c84p-840) - @test atanh(Interval(0x9.583064525d370p-496, 0x2.c67652f06a55ep-408)) == Interval(0x9.583064525d370p-496, 0x2.c67652f06a560p-408) - @test atanh(Interval(-0x3.38bf880ec3082p-304, -0x7.7b19877e536acp-512)) == Interval(-0x3.38bf880ec3084p-304, -0x7.7b19877e536acp-512) - @test atanh(Interval(-0x2.adbf037238702p-44, +0x1.98dc940c3ae1ep-564)) == Interval(-0x2.adbf037238704p-44, +0x1.98dc940c3ae1fp-564) - @test atanh(Interval(-0x4.e4a79c48b3a58p-328, +0xa.28b02e59d39d8p-856)) == Interval(-0x4.e4a79c48b3a5cp-328, +0xa.28b02e59d39e0p-856) - @test atanh(Interval(-0x6.80d3e87b911d8p-232, -0x2.3df54212c46e4p-520)) == Interval(-0x6.80d3e87b911dcp-232, -0x2.3df54212c46e4p-520) - @test atanh(Interval(-0x1.4e54c309c46f8p-480, +0x9.47e982ac83f98p-688)) == Interval(-0x1.4e54c309c46f9p-480, +0x9.47e982ac83fa0p-688) - @test atanh(Interval(-0x2.276202227a6dep-808, +0x1.c53e9ba64fadfp-768)) == Interval(-0x2.276202227a6e0p-808, +0x1.c53e9ba64fae0p-768) - @test atanh(Interval(-0x4.8e4b4d7ba6dd0p-212, -0x1.4b35284c1064bp-548)) == Interval(-0x4.8e4b4d7ba6dd4p-212, -0x1.4b35284c1064bp-548) - @test atanh(Interval(-0x3.5c52b8d9ff582p-248, -0x2.af868d652b866p-912)) == Interval(-0x3.5c52b8d9ff584p-248, -0x2.af868d652b866p-912) - @test atanh(Interval(0x1.6938cc5ee183ap-692, 0xb.f7a583ac38168p-664)) == Interval(0x1.6938cc5ee183ap-692, 0xb.f7a583ac38170p-664) - @test atanh(Interval(-0x3.68b35f23b2506p-560, +0x9.f9c9246d05138p-304)) == Interval(-0x3.68b35f23b2508p-560, +0x9.f9c9246d05140p-304) - @test atanh(Interval(-0xa.bde70b6850ea0p-516, +0x2.bb76d5bf703fap-1020)) == Interval(-0xa.bde70b6850ea8p-516, +0x2.bb76d5bf703fcp-1020) - @test expm1(Interval(-0x1.16cc0df1540f5p+112, -0x1.b3e4076622f04p-232)) == Interval(-0x1.0000000000000p+0, -0x1.b3e4076622f03p-232) - @test expm1(Interval(-0x2.42042b9a88438p-220, -0x2.a213429db0508p-508)) == Interval(-0x2.42042b9a88438p-220, -0x2.a213429db0506p-508) - @test expm1(Interval(-0x2.0e2e40b15d814p+272, -0x1.5d74cfda6b292p-200)) == Interval(-0x1.0000000000000p+0, -0x1.5d74cfda6b291p-200) - @test expm1(Interval(-0x2.0ea791886f712p-416, -0x3.fe66a8d1a3472p-456)) == Interval(-0x2.0ea791886f712p-416, -0x3.fe66a8d1a3470p-456) - #expm1 [-0X6.FF424CB26239CP+292, -0X2.89F6682121BA8P+252] = [-0X1.0000000000000P+0, -0X1.0000000000000P+0]; - @test expm1(Interval(-0x8.80eefdf700148p+332, -0x1.c4e85e50a626dp+0)) == Interval(-0x1.0000000000000p+0, -0xd.45bcba84ee268p-4) - @test expm1(Interval(-0x6.ca83546563a5cp+236, -0x4.f0f28370909fcp-440)) == Interval(-0x1.0000000000000p+0, -0x4.f0f28370909f8p-440) - @test expm1(Interval(-0x4.e60572d4fcfd0p+172, -0x1.eb095183538c8p-344)) == Interval(-0x1.0000000000000p+0, -0x1.eb095183538c7p-344) - @test expm1(Interval(-0x2.7ed8954764b12p-288, -0x8.71dc22117be90p-756)) == Interval(-0x2.7ed8954764b12p-288, -0x8.71dc22117be88p-756) - @test expm1(Interval(-0xd.cf39b8dd68b98p-76, -0x8.0205c5b1357b0p-564)) == Interval(-0xd.cf39b8dd68b98p-76, -0x8.0205c5b1357a8p-564) - #expm1 [-0X1.582D3AFB2C63DP+312, -0X5.08DC843E57ED4P+180] = [-0X1.0000000000000P+0, -0X1.0000000000000P+0]; - @test expm1(Interval(-0x4.af296dd37fd74p+256, -0x5.cbe2bd423b02cp-48)) == Interval(-0x1.0000000000000p+0, -0x5.cbe2bd423af1cp-48) - @test expm1(Interval(-0x1.1fba2d1252d2bp+656, -0x2.4b7a4095c91b4p+8)) == Interval(-0x1.0000000000000p+0, -0xf.ffffffffffff8p-4) - #expm1 [-0X3.2FD3FDE325402P+688, -0X2.738623C238270P+48] = [-0X1.0000000000000P+0, -0X1.0000000000000P+0]; - @test expm1(Interval(-0x1.44f2134e1901ep+8, -0x2.581dad9afe6dcp-172)) == Interval(-0x1.0000000000000p+0, -0x2.581dad9afe6dap-172) - @test expm1(Interval(-0x2.9529e333f2abap+988, -0x7.19390f862f49cp-544)) == Interval(-0x1.0000000000000p+0, -0x7.19390f862f498p-544) - @test expm1(Interval(-0x1.58391fd92c387p-148, -0x4.0c12426a57194p-440)) == Interval(-0x1.58391fd92c387p-148, -0x4.0c12426a57190p-440) - @test expm1(Interval(-0xb.fadc4fb83e140p+348, -0xf.13e388b2165f0p-512)) == Interval(-0x1.0000000000000p+0, -0xf.13e388b2165e8p-512) - #expm1 [-0XD.F2552B8F60978P+236, -0X7.FBDBC320979A4P+188] = [-0X1.0000000000000P+0, -0X1.0000000000000P+0]; - @test expm1(Interval(-0x8.86826ce1ab700p-240, -0x4.fea8d3a3ed018p-316)) == Interval(-0x8.86826ce1ab700p-240, -0x4.fea8d3a3ed014p-316) - @test expm1(Interval(0x1.0000000000000p+0, 0x2.0000000000000p+0)) == Interval(0x1.b7e151628aed2p+0, 0x6.63992e35376b8p+0) - @test expm1(Interval(-0x1.0000000000000p+0, +0x2.0000000000000p+0)) == Interval(-0xa.1d2a7274c4328p-4, +0x6.63992e35376b8p+0) - @test expm1(Interval(-0x5.0000000000000p+0, -0x3.0000000000000p+0)) == Interval(-0xf.e466c01ff2ad0p-4, -0xf.341279998a7a8p-4) - @test expm1(Interval(-0x2.0000000000000p+0, +0x9.9999999999998p-4)) == Interval(-0xd.d5aaab880fc70p-4, +0xd.27660b11a9ef8p-4) - @test expm1(Interval(0x4.0000000000000p-1076, 0x4.4444400000000p-1056)) == Interval(0x4.0000000000000p-1076, 0x4.4444800000000p-1056) - @test expm1(Interval(0x4.4440000000000p-1064, 0x1.0000000000000p+0)) == Interval(0x4.4440000000000p-1064, 0x1.b7e151628aed3p+0) - @test expm1(Interval(-0x4.4444000000000p-1060, +0x4.4444000000000p-1060)) == Interval(-0x4.4444000000000p-1060, +0x4.4448000000000p-1060) - @test expm1(Interval(-0x4.4400000000000p-1068, +0x1.fff0000000000p+0)) == Interval(-0x4.4400000000000p-1068, +0x6.6322f8540cfb4p+0) - @test expm1(Interval(-0x1.ffff000000000p+0, -0x8.8888880000000p-1052)) == Interval(-0xd.d5a88131a6240p-4, -0x8.8888840000000p-1052) - @test expm1(Interval(-0x1.fffffff000000p+0, +0x8.cd11555400000p-1044)) == Interval(-0xd.d5aaab656a718p-4, +0x8.cd11555800000p-1044) - @test log1p(Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92)) == Interval(0xc.4b4a6eb6b3ae8p-264, 0x4.227ad8183fb70p+4) - @test log1p(Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224)) == Interval(0x2.6213e21b14892p-516, 0x6.6606f0995e5f4p-224) - @test log1p(Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236)) == Interval(0x9.0ff2caa1b3040p-240, 0xa.40b346f454218p+4) - @test log1p(Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452)) == Interval(0x8.e2ada8dfbe930p-492, 0x3.67cb3be0bb146p-452) - @test log1p(Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224)) == Interval(0x8.80f0717a1dc40p+4, 0x9.d6130f01f8b78p+4) - @test log1p(Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276)) == Interval(0x6.a000a1283845cp-44, 0xc.091aad1207058p+4) - @test log1p(Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196)) == Interval(0x1.3c84e4f9c80cdp-476, 0x8.a1137bde55cf8p+4) - @test log1p(Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140)) == Interval(0x8.41d2db6d93540p-376, 0x6.21d80d9193ab8p+4) - @test log1p(Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328)) == Interval(0x1.2c18feebcaeadp-768, 0x1.c369e759df5e3p-328) - @test log1p(Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132)) == Interval(0x4.d94e91619d3ecp-580, 0x2.9f6caf6b5513ep-132) - @test log1p(Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276)) == Interval(0x5.15d8b410e0a5cp+4, 0xc.0a13dc536cd58p+4) - @test log1p(Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204)) == Interval(0x3.36de5c55594ecp-100, 0x8.dff506fe0d9f8p+4) - @test log1p(Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592)) == Interval(0x4.5771391f308d8p+0, 0x1.9d179ea5204d0p+8) - @test log1p(Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628)) == Interval(0xe.cd14c501247c0p+0, 0x1.b46dc0d02b874p+8) - @test log1p(Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24)) == Interval(0x2.33950f38f830cp-176, 0x5.be0377e504f78p-24) - @test log1p(Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920)) == Interval(0x3.24f03df33568ap-560, 0x2.805ce2dc91036p+8) - @test log1p(Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160)) == Interval(0x2.d572639dc5fa6p-468, 0x1.95cf42aa171cdp-160) - @test log1p(Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324)) == Interval(0x4.705a028302dacp-532, 0xe.1a4a3523f2658p+4) - @test log1p(Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196)) == Interval(0x6.564d09ad1d214p+4, 0x8.914a9531fd118p+4) - @test log1p(Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240)) == Interval(0x4.9fa5a1e4df73cp-328, 0x1.11b85141b78f6p-240) - @test log1p(Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524)) == Interval(0xf.bd7308ed73ff0p+4, 0x1.6df4da39dc5ddp+8) - @test log1p(Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136)) == Interval(0x6.88441038d56b4p-108, 0x5.f718bbf0ce2f8p+4) - @test log1p(Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76)) == Interval(0x7.1761cab055130p-356, 0x1.92efd09488689p-76) - @test log1p(Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36)) == Interval(0x6.2085e427413c4p-252, 0xb.8cdd3afe235d0p-36) - @test log1p(Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72)) == Interval(0xb.f5f1c0fa33970p-504, 0x3.36d2b121508a8p+4) - @test log1p(Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192)) == Interval(0xb.bc7e37eb2d380p-216, 0x8.5adc069f618a8p+4) - @test log1p(Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148)) == Interval(0x1.e139dd116f867p-688, 0xd.2545346d68fd0p-148) - @test log1p(Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260)) == Interval(0x8.6243148f46208p+4, 0xb.519b6e544f898p+4) - @test log1p(Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588)) == Interval(0x5.9c4642ed78bc4p-340, 0x1.990c99b6124fep+8) - @test log1p(Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152)) == Interval(0xf.c05ea810dfe80p-180, 0xa.05884fbed5f48p-152) - @test sqrt(Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92)) == Interval(0x3.819c8c44fcae8p-132, 0xd.2f2830fa93228p+44) - @test (Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92))^(1/2) == Interval(0x3.819c8c44fcae8p-132, 0xd.2f2830fa93228p+44) - @test (Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92))^(0.5) == Interval(0x3.819c8c44fcae8p-132, 0xd.2f2830fa93228p+44) - @test (Interval(0xc.4b4a6eb6b3af0p-264, 0xa.dd2c4c1be4b30p+92))^(1//2) == Interval(0x3.819c8c44fcae8p-132, 0xd.2f2830fa93228p+44) - @test sqrt(Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224)) == Interval(0x6.2cc8b5d1b7648p-260, 0x2.878f8e10e2752p-112) - @test (Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224))^(1/2) == Interval(0x6.2cc8b5d1b7648p-260, 0x2.878f8e10e2752p-112) - @test (Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224))^(0.5) == Interval(0x6.2cc8b5d1b7648p-260, 0x2.878f8e10e2752p-112) - @test (Interval(0x2.6213e21b14894p-516, 0x6.6606f0995e5f4p-224))^(1//2) == Interval(0x6.2cc8b5d1b7648p-260, 0x2.878f8e10e2752p-112) - @test sqrt(Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236)) == Interval(0x3.02a74ab0bbf36p-120, 0x5.0979194446a10p+116) - @test (Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236))^(1/2) == Interval(0x3.02a74ab0bbf36p-120, 0x5.0979194446a10p+116) - @test (Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236))^(0.5) == Interval(0x3.02a74ab0bbf36p-120, 0x5.0979194446a10p+116) - @test (Interval(0x9.0ff2caa1b3048p-240, 0x1.95f14b9ba7449p+236))^(1//2) == Interval(0x3.02a74ab0bbf36p-120, 0x5.0979194446a10p+116) - @test sqrt(Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452)) == Interval(0xb.ec63bfe10bcc8p-248, 0x7.61ac89cf17804p-228) - @test (Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452))^(1/2) == Interval(0xb.ec63bfe10bcc8p-248, 0x7.61ac89cf17804p-228) - @test (Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452))^(0.5) == Interval(0xb.ec63bfe10bcc8p-248, 0x7.61ac89cf17804p-228) - @test (Interval(0x8.e2ada8dfbe938p-492, 0x3.67cb3be0bb146p-452))^(1//2) == Interval(0xb.ec63bfe10bcc8p-248, 0x7.61ac89cf17804p-228) - @test sqrt(Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224)) == Interval(0x4.6cbeb2d8f6718p+96, 0x2.e0f32319ac30ap+112) - @test (Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224))^(1/2) == Interval(0x4.6cbeb2d8f6718p+96, 0x2.e0f32319ac30ap+112) - @test (Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224))^(0.5) == Interval(0x4.6cbeb2d8f6718p+96, 0x2.e0f32319ac30ap+112) - @test (Interval(0x1.394270bbcba7ep+196, 0x8.4976f0bf45a40p+224))^(1//2) == Interval(0x4.6cbeb2d8f6718p+96, 0x2.e0f32319ac30ap+112) - @test sqrt(Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276)) == Interval(0xa.4baee7f482900p-24, 0x7.830c8d5a5f3d8p+136) - @test (Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276))^(1/2) == Interval(0xa.4baee7f482900p-24, 0x7.830c8d5a5f3d8p+136) - @test (Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276))^(0.5) == Interval(0xa.4baee7f482900p-24, 0x7.830c8d5a5f3d8p+136) - @test (Interval(0x6.a000a12839a50p-44, 0x3.86dc59439415ap+276))^(1//2) == Interval(0xa.4baee7f482900p-24, 0x7.830c8d5a5f3d8p+136) - @test sqrt(Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196)) == Interval(0x4.729f7c344ce30p-240, 0xc.14519d6697ff0p+96) - @test (Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196))^(1/2) == Interval(0x4.729f7c344ce30p-240, 0xc.14519d6697ff0p+96) - @test (Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196))^(0.5) == Interval(0x4.729f7c344ce30p-240, 0xc.14519d6697ff0p+96) - @test (Interval(0x1.3c84e4f9c80cep-476, 0x9.1e9439c3b4358p+196))^(1//2) == Interval(0x4.729f7c344ce30p-240, 0xc.14519d6697ff0p+96) - @test sqrt(Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140)) == Interval(0x2.df9f14a64c77ap-188, 0x6.d87d667089bd8p+68) - @test (Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140))^(1/2) == Interval(0x2.df9f14a64c77ap-188, 0x6.d87d667089bd8p+68) - @test (Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140))^(0.5) == Interval(0x2.df9f14a64c77ap-188, 0x6.d87d667089bd8p+68) - @test (Interval(0x8.41d2db6d93548p-376, 0x2.edcf4a7919034p+140))^(1//2) == Interval(0x2.df9f14a64c77ap-188, 0x6.d87d667089bd8p+68) - @test sqrt(Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328)) == Interval(0x1.152c585eddb6ap-384, 0x1.53f1a81caa4a0p-164) - @test (Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328))^(1/2) == Interval(0x1.152c585eddb6ap-384, 0x1.53f1a81caa4a0p-164) - @test (Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328))^(0.5) == Interval(0x1.152c585eddb6ap-384, 0x1.53f1a81caa4a0p-164) - @test (Interval(0x1.2c18feebcaeaep-768, 0x1.c369e759df5e3p-328))^(1//2) == Interval(0x1.152c585eddb6ap-384, 0x1.53f1a81caa4a0p-164) - @test sqrt(Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132)) == Interval(0x8.cedc2135e05e8p-292, 0x6.7a5bef2579c34p-68) - @test (Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132))^(1/2) == Interval(0x8.cedc2135e05e8p-292, 0x6.7a5bef2579c34p-68) - @test (Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132))^(0.5) == Interval(0x8.cedc2135e05e8p-292, 0x6.7a5bef2579c34p-68) - @test (Interval(0x4.d94e91619d3f0p-580, 0x2.9f6caf6b5513ep-132))^(1//2) == Interval(0x8.cedc2135e05e8p-292, 0x6.7a5bef2579c34p-68) - @test sqrt(Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276)) == Interval(0x6.7722c88d985d8p+56, 0x7.be7173245a668p+136) - @test (Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276))^(1/2) == Interval(0x6.7722c88d985d8p+56, 0x7.be7173245a668p+136) - @test (Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276))^(0.5) == Interval(0x6.7722c88d985d8p+56, 0x7.be7173245a668p+136) - @test (Interval(0x2.9cd12c1d0aac4p+116, 0x3.bf7e0e52dc1aap+276))^(1//2) == Interval(0x6.7722c88d985d8p+56, 0x7.be7173245a668p+136) - @test sqrt(Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204)) == Interval(0x7.2be248a308d24p-52, 0x5.630224b50bcf8p+100) - @test (Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204))^(1/2) == Interval(0x7.2be248a308d24p-52, 0x5.630224b50bcf8p+100) - @test (Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204))^(0.5) == Interval(0x7.2be248a308d24p-52, 0x5.630224b50bcf8p+100) - @test (Interval(0x3.36de5c55594eep-100, 0x1.d0460177b1553p+204))^(1//2) == Interval(0x7.2be248a308d24p-52, 0x5.630224b50bcf8p+100) - @test sqrt(Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592)) == Interval(0x8.b53b61217b4f8p+0, 0x3.f40fa54a699e2p+296) - @test (Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592))^(1/2) == Interval(0x8.b53b61217b4f8p+0, 0x3.f40fa54a699e2p+296) - @test (Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592))^(0.5) == Interval(0x8.b53b61217b4f8p+0, 0x3.f40fa54a699e2p+296) - @test (Interval(0x4.bd4031736f7a8p+4, 0xf.a10bb3c91c7b0p+592))^(1//2) == Interval(0x8.b53b61217b4f8p+0, 0x3.f40fa54a699e2p+296) - @test sqrt(Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628)) == Interval(0x6.64e1f64817930p+8, 0x7.0bbe006e8934cp+312) - @test (Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628))^(1/2) == Interval(0x6.64e1f64817930p+8, 0x7.0bbe006e8934cp+312) - @test (Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628))^(0.5) == Interval(0x6.64e1f64817930p+8, 0x7.0bbe006e8934cp+312) - @test (Interval(0x2.8e258db3c44f8p+20, 0x3.1a4ede719a4c0p+628))^(1//2) == Interval(0x6.64e1f64817930p+8, 0x7.0bbe006e8934cp+312) - @test sqrt(Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24)) == Interval(0x1.7bd69462cdad2p-88, 0x2.6573bfb248ef0p-12) - @test (Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24))^(1/2) == Interval(0x1.7bd69462cdad2p-88, 0x2.6573bfb248ef0p-12) - @test (Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24))^(0.5) == Interval(0x1.7bd69462cdad2p-88, 0x2.6573bfb248ef0p-12) - @test (Interval(0x2.33950f38f830ep-176, 0x5.be0388619b018p-24))^(1//2) == Interval(0x1.7bd69462cdad2p-88, 0x2.6573bfb248ef0p-12) - @test sqrt(Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920)) == Interval(0x1.c5f168118c2b1p-280, 0x3.cb8ccad62ed10p+460) - @test (Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920))^(1/2) == Interval(0x1.c5f168118c2b1p-280, 0x3.cb8ccad62ed10p+460) - @test (Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920))^(0.5) == Interval(0x1.c5f168118c2b1p-280, 0x3.cb8ccad62ed10p+460) - @test (Interval(0x3.24f03df33568cp-560, 0xe.67255823421e8p+920))^(1//2) == Interval(0x1.c5f168118c2b1p-280, 0x3.cb8ccad62ed10p+460) - @test sqrt(Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160)) == Interval(0x6.bbc8a036cc930p-236, 0x1.4250c275a7b2bp-80) - @test (Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160))^(1/2) == Interval(0x6.bbc8a036cc930p-236, 0x1.4250c275a7b2bp-80) - @test (Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160))^(0.5) == Interval(0x6.bbc8a036cc930p-236, 0x1.4250c275a7b2bp-80) - @test (Interval(0x2.d572639dc5fa8p-468, 0x1.95cf42aa171cdp-160))^(1//2) == Interval(0x6.bbc8a036cc930p-236, 0x1.4250c275a7b2bp-80) - @test sqrt(Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324)) == Interval(0x8.6d6d9a3ea2160p-268, 0x6.ceb17f56f1b50p+160) - @test (Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324))^(1/2) == Interval(0x8.6d6d9a3ea2160p-268, 0x6.ceb17f56f1b50p+160) - @test (Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324))^(0.5) == Interval(0x8.6d6d9a3ea2160p-268, 0x6.ceb17f56f1b50p+160) - @test (Interval(0x4.705a028302db0p-532, 0x2.e57341c14970cp+324))^(1//2) == Interval(0x8.6d6d9a3ea2160p-268, 0x6.ceb17f56f1b50p+160) - @test sqrt(Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196)) == Interval(0x2.343e215eb2264p+72, 0x7.603e67f0e1dd0p+96) - @test (Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196))^(1/2) == Interval(0x2.343e215eb2264p+72, 0x7.603e67f0e1dd0p+96) - @test (Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196))^(0.5) == Interval(0x2.343e215eb2264p+72, 0x7.603e67f0e1dd0p+96) - @test (Interval(0x4.dba1d21d6f308p+144, 0x3.667988c57865ap+196))^(1//2) == Interval(0x2.343e215eb2264p+72, 0x7.603e67f0e1dd0p+96) - @test sqrt(Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240)) == Interval(0x2.26777c4e368bep-164, 0x1.08b63617a4210p-120) - @test (Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240))^(1/2) == Interval(0x2.26777c4e368bep-164, 0x1.08b63617a4210p-120) - @test (Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240))^(0.5) == Interval(0x2.26777c4e368bep-164, 0x1.08b63617a4210p-120) - @test (Interval(0x4.9fa5a1e4df740p-328, 0x1.11b85141b78f6p-240))^(1//2) == Interval(0x2.26777c4e368bep-164, 0x1.08b63617a4210p-120) - @test sqrt(Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524)) == Interval(0x3.2b934cdcc29e0p+180, 0xf.cc99981010ad0p+260) - @test (Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524))^(1/2) == Interval(0x3.2b934cdcc29e0p+180, 0xf.cc99981010ad0p+260) - @test (Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524))^(0.5) == Interval(0x3.2b934cdcc29e0p+180, 0xf.cc99981010ad0p+260) - @test (Interval(0xa.0cde9dc015b08p+360, 0xf.99d84f862ac58p+524))^(1//2) == Interval(0x3.2b934cdcc29e0p+180, 0xf.cc99981010ad0p+260) - @test sqrt(Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136)) == Interval(0xa.392c9b2283838p-56, 0x1.ccc9c68e6b873p+68) - @test (Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136))^(1/2) == Interval(0xa.392c9b2283838p-56, 0x1.ccc9c68e6b873p+68) - @test (Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136))^(0.5) == Interval(0xa.392c9b2283838p-56, 0x1.ccc9c68e6b873p+68) - @test (Interval(0x6.88441038d56b8p-108, 0x3.3d65c09938132p+136))^(1//2) == Interval(0xa.392c9b2283838p-56, 0x1.ccc9c68e6b873p+68) - @test sqrt(Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76)) == Interval(0xa.a6de001e1a878p-180, 0x5.04b0b42b185f4p-40) - @test (Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76))^(1/2) == Interval(0xa.a6de001e1a878p-180, 0x5.04b0b42b185f4p-40) - @test (Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76))^(0.5) == Interval(0xa.a6de001e1a878p-180, 0x5.04b0b42b185f4p-40) - @test (Interval(0x7.1761cab055134p-356, 0x1.92efd09488689p-76))^(1//2) == Interval(0xa.a6de001e1a878p-180, 0x5.04b0b42b185f4p-40) - @test sqrt(Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36)) == Interval(0x9.e6b17dd90b818p-128, 0xd.9821ae0a3f288p-20) - @test (Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36))^(1/2) == Interval(0x9.e6b17dd90b818p-128, 0xd.9821ae0a3f288p-20) - @test (Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36))^(0.5) == Interval(0x9.e6b17dd90b818p-128, 0xd.9821ae0a3f288p-20) - @test (Interval(0x6.2085e427413c8p-252, 0xb.8cdd3b024ea10p-36))^(1//2) == Interval(0x9.e6b17dd90b818p-128, 0xd.9821ae0a3f288p-20) - @test sqrt(Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72)) == Interval(0x3.755b7f9b147fcp-252, 0x2.235af64aa2532p+36) - @test (Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72))^(1/2) == Interval(0x3.755b7f9b147fcp-252, 0x2.235af64aa2532p+36) - @test (Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72))^(0.5) == Interval(0x3.755b7f9b147fcp-252, 0x2.235af64aa2532p+36) - @test (Interval(0xb.f5f1c0fa33978p-504, 0x4.924dd8d50b1ccp+72))^(1//2) == Interval(0x3.755b7f9b147fcp-252, 0x2.235af64aa2532p+36) - @test sqrt(Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192)) == Interval(0x3.6d0318cb65970p-108, 0x1.589b93c7cc280p+96) - @test (Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192))^(1/2) == Interval(0x3.6d0318cb65970p-108, 0x1.589b93c7cc280p+96) - @test (Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192))^(0.5) == Interval(0x3.6d0318cb65970p-108, 0x1.589b93c7cc280p+96) - @test (Interval(0xb.bc7e37eb2d388p-216, 0x1.cfe27bb53debbp+192))^(1//2) == Interval(0x3.6d0318cb65970p-108, 0x1.589b93c7cc280p+96) - @test sqrt(Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148)) == Interval(0x1.5efd65c23f515p-344, 0xe.80b36809ca340p-76) - @test (Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148))^(1/2) == Interval(0x1.5efd65c23f515p-344, 0xe.80b36809ca340p-76) - @test (Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148))^(0.5) == Interval(0x1.5efd65c23f515p-344, 0xe.80b36809ca340p-76) - @test (Interval(0x1.e139dd116f868p-688, 0xd.2545346d68fd0p-148))^(1//2) == Interval(0x1.5efd65c23f515p-344, 0xe.80b36809ca340p-76) - @test sqrt(Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260)) == Interval(0x1.b24cebb3d4b84p+96, 0x6.37b4cd9068634p+128) - @test (Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260))^(1/2) == Interval(0x1.b24cebb3d4b84p+96, 0x6.37b4cd9068634p+128) - @test (Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260))^(0.5) == Interval(0x1.b24cebb3d4b84p+96, 0x6.37b4cd9068634p+128) - @test (Interval(0x2.e0c8e64a890acp+192, 0x2.6a898d2caa9a4p+260))^(1//2) == Interval(0x1.b24cebb3d4b84p+96, 0x6.37b4cd9068634p+128) - @test sqrt(Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588)) == Interval(0x9.797c4d6802170p-172, 0x8.60d1f01f1a8d8p+292) - @test (Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588))^(1/2) == Interval(0x9.797c4d6802170p-172, 0x8.60d1f01f1a8d8p+292) - @test (Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588))^(0.5) == Interval(0x9.797c4d6802170p-172, 0x8.60d1f01f1a8d8p+292) - @test (Interval(0x5.9c4642ed78bc8p-340, 0x4.631bd2232f0c0p+588))^(1//2) == Interval(0x9.797c4d6802170p-172, 0x8.60d1f01f1a8d8p+292) - @test sqrt(Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152)) == Interval(0xf.e00f72e6c82f8p-92, 0x3.2a6ad8acfcbb0p-76) - @test (Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152))^(1/2) == Interval(0xf.e00f72e6c82f8p-92, 0x3.2a6ad8acfcbb0p-76) - @test (Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152))^(0.5) == Interval(0xf.e00f72e6c82f8p-92, 0x3.2a6ad8acfcbb0p-76) - @test (Interval(0xf.c05ea810dfe88p-180, 0xa.05884fbed5f48p-152))^(1//2) == Interval(0xf.e00f72e6c82f8p-92, 0x3.2a6ad8acfcbb0p-76) - @test Interval(-0xa.644c9d88ea8c8p-152, -0xd.8ec7927926f18p-944) ^2 == Interval(0x0.0000000000000p+0, 0x6.bfd4840b33478p-300) - @test Interval(-0xa.644c9d88ea8c8p-152, -0xd.8ec7927926f18p-944) ^(2//1) == Interval(0x0.0000000000000p+0, 0x6.bfd4840b33478p-300) - @test Interval(-0xa.644c9d88ea8c8p-152, -0xd.8ec7927926f18p-944) ^(2.0) == Interval(0x0.0000000000000p+0, 0x6.bfd4840b33478p-300) - @test Interval(-0x1.9ee1a9db994f5p-436, -0x6.d914701c82fecp-624) ^2 == Interval(0x0.0000000000000p+0, 0x2.a05ea84e4893cp-872) - @test Interval(-0x1.9ee1a9db994f5p-436, -0x6.d914701c82fecp-624) ^(2//1) == Interval(0x0.0000000000000p+0, 0x2.a05ea84e4893cp-872) - @test Interval(-0x1.9ee1a9db994f5p-436, -0x6.d914701c82fecp-624) ^(2.0) == Interval(0x0.0000000000000p+0, 0x2.a05ea84e4893cp-872) - @test Interval(-0x5.65057f3effc60p+4, -0x2.3617cf5815ecap-960) ^2 == Interval(0x0.0000000000000p+0, 0x1.d1a144efbeb44p+12) - @test Interval(-0x5.65057f3effc60p+4, -0x2.3617cf5815ecap-960) ^(2//1) == Interval(0x0.0000000000000p+0, 0x1.d1a144efbeb44p+12) - @test Interval(-0x5.65057f3effc60p+4, -0x2.3617cf5815ecap-960) ^(2.0) == Interval(0x0.0000000000000p+0, 0x1.d1a144efbeb44p+12) - @test Interval(-0x1.975299ccb0e08p-372, +0xb.bec7d35b45b00p-588) ^2 == Interval(0x0.0000000000000p+0, 0x2.8817bfafbdf18p-744) - @test Interval(-0x1.975299ccb0e08p-372, +0xb.bec7d35b45b00p-588) ^(2//1) == Interval(0x0.0000000000000p+0, 0x2.8817bfafbdf18p-744) - @test Interval(-0x1.975299ccb0e08p-372, +0xb.bec7d35b45b00p-588) ^(2.0) == Interval(0x0.0000000000000p+0, 0x2.8817bfafbdf18p-744) - @test Interval(-0x3.51d388d47aed2p-356, -0x1.c3a9cd7025105p-564) ^2 == Interval(0x0.0000000000000p+0, 0xb.051cc05c2ebe0p-712) - @test Interval(-0x3.51d388d47aed2p-356, -0x1.c3a9cd7025105p-564) ^(2//1) == Interval(0x0.0000000000000p+0, 0xb.051cc05c2ebe0p-712) - @test Interval(-0x3.51d388d47aed2p-356, -0x1.c3a9cd7025105p-564) ^(2.0) == Interval(0x0.0000000000000p+0, 0xb.051cc05c2ebe0p-712) - @test Interval(-0xc.db363268cf708p-332, -0x2.171b7d7bfe4e0p-412) ^2 == Interval(0x4.5e83e96ff693cp-824, 0xa.548ca7f8c13a0p-660) - @test Interval(-0xc.db363268cf708p-332, -0x2.171b7d7bfe4e0p-412) ^(2//1) == Interval(0x4.5e83e96ff693cp-824, 0xa.548ca7f8c13a0p-660) - @test Interval(-0xc.db363268cf708p-332, -0x2.171b7d7bfe4e0p-412) ^(2.0) == Interval(0x4.5e83e96ff693cp-824, 0xa.548ca7f8c13a0p-660) - @test Interval(-0x1.32690aac2472dp-40, -0x8.706ebdcf39c88p-792) ^2 == Interval(0x0.0000000000000p+0, 0x1.6ebf489d48ca5p-80) - @test Interval(-0x1.32690aac2472dp-40, -0x8.706ebdcf39c88p-792) ^(2//1) == Interval(0x0.0000000000000p+0, 0x1.6ebf489d48ca5p-80) - @test Interval(-0x1.32690aac2472dp-40, -0x8.706ebdcf39c88p-792) ^(2.0) == Interval(0x0.0000000000000p+0, 0x1.6ebf489d48ca5p-80) - @test Interval(-0x5.0145af0c53324p-200, -0x2.f5a0cb3301856p-204) ^2 == Interval(0x8.c23056ba480a8p-408, 0x1.90cba74d12cf4p-396) - @test Interval(-0x5.0145af0c53324p-200, -0x2.f5a0cb3301856p-204) ^(2//1) == Interval(0x8.c23056ba480a8p-408, 0x1.90cba74d12cf4p-396) - @test Interval(-0x5.0145af0c53324p-200, -0x2.f5a0cb3301856p-204) ^(2.0) == Interval(0x8.c23056ba480a8p-408, 0x1.90cba74d12cf4p-396) - @test Interval(0xf.4077c7e8cd6a0p-268, 0x3.753426098ac5ap-80) ^2 == Interval(0xe.89e458947efa8p-532, 0xb.f4e1999d73020p-160) - @test Interval(0xf.4077c7e8cd6a0p-268, 0x3.753426098ac5ap-80) ^(2//1) == Interval(0xe.89e458947efa8p-532, 0xb.f4e1999d73020p-160) - @test Interval(0xf.4077c7e8cd6a0p-268, 0x3.753426098ac5ap-80) ^(2.0) == Interval(0xe.89e458947efa8p-532, 0xb.f4e1999d73020p-160) - @test Interval(-0xb.b25f8d8bb7fb8p-376, -0x2.017a332f9b05cp-916) ^2 == Interval(0x0.0000000000000p+0, 0x8.8d07f2e827770p-748) - @test Interval(-0xb.b25f8d8bb7fb8p-376, -0x2.017a332f9b05cp-916) ^(2//1) == Interval(0x0.0000000000000p+0, 0x8.8d07f2e827770p-748) - @test Interval(-0xb.b25f8d8bb7fb8p-376, -0x2.017a332f9b05cp-916) ^(2.0) == Interval(0x0.0000000000000p+0, 0x8.8d07f2e827770p-748) - @test Interval(-0xd.947ca427fdfe0p-592, +0xe.3be493b5bc8e8p-16) ^2 == Interval(0x0.0000000000000p+0, 0xc.a9b03500dd578p-28) - @test Interval(-0xd.947ca427fdfe0p-592, +0xe.3be493b5bc8e8p-16) ^(2//1) == Interval(0x0.0000000000000p+0, 0xc.a9b03500dd578p-28) - @test Interval(-0xd.947ca427fdfe0p-592, +0xe.3be493b5bc8e8p-16) ^(2.0) == Interval(0x0.0000000000000p+0, 0xc.a9b03500dd578p-28) - @test Interval(-0x9.c46198b2471f0p-336, -0x1.65ed85df2d4b7p-576) ^2 == Interval(0x0.0000000000000p+0, 0x5.f6582538f0f44p-668) - @test Interval(-0x9.c46198b2471f0p-336, -0x1.65ed85df2d4b7p-576) ^(2//1) == Interval(0x0.0000000000000p+0, 0x5.f6582538f0f44p-668) - @test Interval(-0x9.c46198b2471f0p-336, -0x1.65ed85df2d4b7p-576) ^(2.0) == Interval(0x0.0000000000000p+0, 0x5.f6582538f0f44p-668) - @test Interval(-0x3.2c867c027db44p-936, +0x6.1883ea827ab6cp-388) ^2 == Interval(0x0.0000000000000p+0, 0x2.52887fe100ff0p-772) - @test Interval(-0x3.2c867c027db44p-936, +0x6.1883ea827ab6cp-388) ^(2//1) == Interval(0x0.0000000000000p+0, 0x2.52887fe100ff0p-772) - @test Interval(-0x3.2c867c027db44p-936, +0x6.1883ea827ab6cp-388) ^(2.0) == Interval(0x0.0000000000000p+0, 0x2.52887fe100ff0p-772) - @test Interval(-0x3.560ef91c47deap-492, +0x5.413664dd17abcp-20) ^2 == Interval(0x0.0000000000000p+0, 0x1.b9cbc9b69e7bfp-36) - @test Interval(-0x3.560ef91c47deap-492, +0x5.413664dd17abcp-20) ^(2//1) == Interval(0x0.0000000000000p+0, 0x1.b9cbc9b69e7bfp-36) - @test Interval(-0x3.560ef91c47deap-492, +0x5.413664dd17abcp-20) ^(2.0) == Interval(0x0.0000000000000p+0, 0x1.b9cbc9b69e7bfp-36) - @test Interval(-0x8.36bfcd74a6d68p-304, -0x3.2c20eb130d510p-836) ^2 == Interval(0x0.0000000000000p+0, 0x4.377b251abdcc0p-604) - @test Interval(-0x8.36bfcd74a6d68p-304, -0x3.2c20eb130d510p-836) ^(2//1) == Interval(0x0.0000000000000p+0, 0x4.377b251abdcc0p-604) - @test Interval(-0x8.36bfcd74a6d68p-304, -0x3.2c20eb130d510p-836) ^(2.0) == Interval(0x0.0000000000000p+0, 0x4.377b251abdcc0p-604) - @test Interval(-0x6.bcec84603958cp-500, -0x1.068b13da99666p-760) ^2 == Interval(0x0.0000000000000p+0, 0x2.d668271745a42p-996) - @test Interval(-0x6.bcec84603958cp-500, -0x1.068b13da99666p-760) ^(2//1) == Interval(0x0.0000000000000p+0, 0x2.d668271745a42p-996) - @test Interval(-0x6.bcec84603958cp-500, -0x1.068b13da99666p-760) ^(2.0) == Interval(0x0.0000000000000p+0, 0x2.d668271745a42p-996) - @test Interval(-0x1.2789c2d583bcdp-568, -0x1.f2bd89dad0665p-780) ^2 == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - @test Interval(-0x1.2789c2d583bcdp-568, -0x1.f2bd89dad0665p-780) ^(2//1) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - @test Interval(-0x1.2789c2d583bcdp-568, -0x1.f2bd89dad0665p-780) ^(2.0) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - @test Interval(-0xc.fe4e8d857e3e0p-548, +0x1.580844b9dc45cp-780) ^2 == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - @test Interval(-0xc.fe4e8d857e3e0p-548, +0x1.580844b9dc45cp-780) ^(2//1) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - @test Interval(-0xc.fe4e8d857e3e0p-548, +0x1.580844b9dc45cp-780) ^(2.0) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - @test Interval(-0xc.508d29acb01b8p-52, +0x1.b1e6b793078ddp-664) ^2 == Interval(0x0.0000000000000p+0, 0x9.7a69470135fa8p-100) - @test Interval(-0xc.508d29acb01b8p-52, +0x1.b1e6b793078ddp-664) ^(2//1) == Interval(0x0.0000000000000p+0, 0x9.7a69470135fa8p-100) - @test Interval(-0xc.508d29acb01b8p-52, +0x1.b1e6b793078ddp-664) ^(2.0) == Interval(0x0.0000000000000p+0, 0x9.7a69470135fa8p-100) - @test Interval(-0xa.12f7783880a78p-124, -0x3.765df69ee106ep-548) ^2 == Interval(0x0.0000000000000p+0, 0x6.57cbd208b34acp-244) - @test Interval(-0xa.12f7783880a78p-124, -0x3.765df69ee106ep-548) ^(2//1) == Interval(0x0.0000000000000p+0, 0x6.57cbd208b34acp-244) - @test Interval(-0xa.12f7783880a78p-124, -0x3.765df69ee106ep-548) ^(2.0) == Interval(0x0.0000000000000p+0, 0x6.57cbd208b34acp-244) - @test Interval(-0x6.3a58d52fdf844p-896, -0x1.039e2518cf503p-1008) ^2 == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - @test Interval(-0x6.3a58d52fdf844p-896, -0x1.039e2518cf503p-1008) ^(2//1) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - @test Interval(-0x6.3a58d52fdf844p-896, -0x1.039e2518cf503p-1008) ^(2.0) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - @test Interval(-0xb.dd3171fdeec18p-168, +0x1.069e434ee9e0fp-740) ^2 == Interval(0x0.0000000000000p+0, 0x8.cc15e342fc8d8p-332) - @test Interval(-0xb.dd3171fdeec18p-168, +0x1.069e434ee9e0fp-740) ^(2//1) == Interval(0x0.0000000000000p+0, 0x8.cc15e342fc8d8p-332) - @test Interval(-0xb.dd3171fdeec18p-168, +0x1.069e434ee9e0fp-740) ^(2.0) == Interval(0x0.0000000000000p+0, 0x8.cc15e342fc8d8p-332) - @test Interval(-0x3.cf0053257533ap-776, -0x1.7883a587654e5p-928) ^2 == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - @test Interval(-0x3.cf0053257533ap-776, -0x1.7883a587654e5p-928) ^(2//1) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - @test Interval(-0x3.cf0053257533ap-776, -0x1.7883a587654e5p-928) ^(2.0) == Interval(0x0.0000000000000p+0, 0x4.0000000000000p-1076) - @test Interval(0x1.455801d3d2b63p-704, 0x3.a4c915783d07ap-28) ^2 == Interval(0x0.0000000000000p+0, 0xd.46c8c24634fc8p-56) - @test Interval(0x1.455801d3d2b63p-704, 0x3.a4c915783d07ap-28) ^(2//1) == Interval(0x0.0000000000000p+0, 0xd.46c8c24634fc8p-56) - @test Interval(0x1.455801d3d2b63p-704, 0x3.a4c915783d07ap-28) ^(2.0) == Interval(0x0.0000000000000p+0, 0xd.46c8c24634fc8p-56) - @test Interval(-0x2.097d06f4de3e2p-376, +0x2.2e7561fd9255ep-772) ^2 == Interval(0x0.0000000000000p+0, 0x4.264e23607bea8p-752) - @test Interval(-0x2.097d06f4de3e2p-376, +0x2.2e7561fd9255ep-772) ^(2//1) == Interval(0x0.0000000000000p+0, 0x4.264e23607bea8p-752) - @test Interval(-0x2.097d06f4de3e2p-376, +0x2.2e7561fd9255ep-772) ^(2.0) == Interval(0x0.0000000000000p+0, 0x4.264e23607bea8p-752) - @test Interval(-0x1.7e13dbb66e5a3p-84, -0x6.bc8f45d6a8f48p-540) ^2 == Interval(0x0.0000000000000p+0, 0x2.3a3f453ecafb4p-168) - @test Interval(-0x1.7e13dbb66e5a3p-84, -0x6.bc8f45d6a8f48p-540) ^(2//1) == Interval(0x0.0000000000000p+0, 0x2.3a3f453ecafb4p-168) - @test Interval(-0x1.7e13dbb66e5a3p-84, -0x6.bc8f45d6a8f48p-540) ^(2.0) == Interval(0x0.0000000000000p+0, 0x2.3a3f453ecafb4p-168) - @test Interval(-0x4.1f50c5f2cda54p-276, -0x3.df16f79756422p-496) ^2 == Interval(0xe.fcf2d2f52b4c0p-992, 0x1.0fe5ad9038bc9p-548) - @test Interval(-0x4.1f50c5f2cda54p-276, -0x3.df16f79756422p-496) ^(2//1) == Interval(0xe.fcf2d2f52b4c0p-992, 0x1.0fe5ad9038bc9p-548) - @test Interval(-0x4.1f50c5f2cda54p-276, -0x3.df16f79756422p-496) ^(2.0) == Interval(0xe.fcf2d2f52b4c0p-992, 0x1.0fe5ad9038bc9p-548) - @test Interval(-0x7.ecc4c5eec4cacp-328, -0x2.e02e1db7a08f6p-876) ^2 == Interval(0x0.0000000000000p+0, 0x3.ecdbe373eac94p-652) - @test Interval(-0x7.ecc4c5eec4cacp-328, -0x2.e02e1db7a08f6p-876) ^(2//1) == Interval(0x0.0000000000000p+0, 0x3.ecdbe373eac94p-652) - @test Interval(-0x7.ecc4c5eec4cacp-328, -0x2.e02e1db7a08f6p-876) ^(2.0) == Interval(0x0.0000000000000p+0, 0x3.ecdbe373eac94p-652) - @test Interval(-0xc.1bc7a4c89d440p-256, +0x2.a7f56252d1d34p-608) ^2 == Interval(0x0.0000000000000p+0, 0x9.29dbb2b42a988p-508) - @test Interval(-0xc.1bc7a4c89d440p-256, +0x2.a7f56252d1d34p-608) ^(2//1) == Interval(0x0.0000000000000p+0, 0x9.29dbb2b42a988p-508) - @test Interval(-0xc.1bc7a4c89d440p-256, +0x2.a7f56252d1d34p-608) ^(2.0) == Interval(0x0.0000000000000p+0, 0x9.29dbb2b42a988p-508) - @test Interval(-0xb.ce50d7b2f2868p-236, -0xe.6b08988339b80p-432) ^2 == Interval(0xc.fe1b0de21e568p-860, 0x8.b6138be0c5b78p-468) - @test Interval(-0xb.ce50d7b2f2868p-236, -0xe.6b08988339b80p-432) ^(2//1) == Interval(0xc.fe1b0de21e568p-860, 0x8.b6138be0c5b78p-468) - @test Interval(-0xb.ce50d7b2f2868p-236, -0xe.6b08988339b80p-432) ^(2.0) == Interval(0xc.fe1b0de21e568p-860, 0x8.b6138be0c5b78p-468) -end -# FactCheck.exitstatus() diff --git a/test/ITF1788_tests/ieee1788-constructors.jl b/test/ITF1788_tests/ieee1788-constructors.jl deleted file mode 100644 index aedb8bc61..000000000 --- a/test/ITF1788_tests/ieee1788-constructors.jl +++ /dev/null @@ -1,115 +0,0 @@ -#= - - 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 -using Test - -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) - -# 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 isnai(DecoratedInterval(2, 1)) -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 isnai(@decorated("[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 -# FactCheck.exitstatus() diff --git a/test/ITF1788_tests/libieeep1788_bool.jl b/test/ITF1788_tests/libieeep1788_bool.jl deleted file mode 100644 index 4d8e63c7a..000000000 --- a/test/ITF1788_tests/libieeep1788_bool.jl +++ /dev/null @@ -1,620 +0,0 @@ -#= - - Unit tests from libieeep1788 for interval boolean operations - (Original author: Marco Nehmeier) - converted into portable ITL format by Oliver Heimlich. - - Copyright 2013-2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) - Copyright 2015-2017 Oliver Heimlich (oheim@posteo.de) - - 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 i s 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 Test - -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) -# Set full format, and show decorations -@format full - -@testset "minimal_is_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 - -@testset "minimal_is_empty_dec_test" begin - @test isempty(nai()) == false - @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 - -@testset "minimal_is_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 - -@testset "minimal_is_entire_dec_test" begin - @test isentire(nai()) == false - @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 - -@testset "minimal_is_nai_dec_test" begin - @test isnai(nai()) - @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 - -@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 - -@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), nai()) == false - @test ==(nai(), DecoratedInterval(∅, trv)) == false - @test ==(nai(), nai()) == false - @test ==(DecoratedInterval(∅, trv), DecoratedInterval(Interval(1.0, 2.0), trv)) == false - @test ==(nai(), 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 - -@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 - -@testset "minimal_subset_dec_test" begin - @test ⊆(nai(), nai()) == false - @test ⊆(nai(), DecoratedInterval(∅, trv)) == false - @test ⊆(nai(), DecoratedInterval(Interval(0.0, 4.0), trv)) == false - @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 - -@testset "minimal_less_test" begin - @test ≤(∅, ∅) - @test (∅ ≤ ∅) - @test ≤(Interval(1.0, 2.0), ∅) == false - @test (Interval(1.0, 2.0) ≤ ∅) == false - @test ≤(∅, Interval(1.0, 2.0)) == false - @test (∅ ≤ Interval(1.0, 2.0)) == false - @test ≤(Interval(-Inf, Inf), Interval(-Inf, Inf)) - @test (Interval(-Inf, Inf) ≤ Interval(-Inf, Inf)) - @test ≤(Interval(1.0, 2.0), Interval(-Inf, Inf)) == false - @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(-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(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(-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(-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(-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(1.0, 2.0)) - @test ≤(Interval(1.0, 2.0), Interval(3.0, 4.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, 3.5) ≤ Interval(3.0, 4.0)) - @test ≤(Interval(1.0, 4.0), 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(-2.0, -1.0) ≤ Interval(-2.0, -1.0)) - @test ≤(Interval(-3.0, -1.5), 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)) - @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 - -@testset "minimal_less_dec_test" begin - @test ≤(nai(), nai()) == false - @test (nai() ≤ nai()) == false - @test ≤(DecoratedInterval(∅, trv), nai()) == false - @test (DecoratedInterval(∅, trv) ≤ nai()) == false - @test ≤(DecoratedInterval(Interval(1.0, 2.0), trv), nai()) == false - @test (DecoratedInterval(Interval(1.0, 2.0), trv) ≤ nai()) == false - @test ≤(nai(), DecoratedInterval(Interval(1.0, 2.0), def)) == false - @test (nai() ≤ DecoratedInterval(Interval(1.0, 2.0), def)) == false - @test ≤(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv)) - @test (DecoratedInterval(∅, trv) ≤ DecoratedInterval(∅, trv)) - @test ≤(DecoratedInterval(Interval(1.0, 2.0), trv), DecoratedInterval(∅, trv)) == 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(∅, trv) ≤ DecoratedInterval(Interval(1.0, 2.0), trv)) == false - @test ≤(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-Inf, Inf), trv)) - @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(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(-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(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), def)) == false - @test ≤(DecoratedInterval(Interval(-Inf, Inf), trv), DecoratedInterval(Interval(-0.0, 2.0), trv)) == 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), 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), 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(-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(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, 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, 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(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(-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(-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), 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), 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), 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), def) ≤ 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), trv) ≤ DecoratedInterval(Interval(-0.0, 0.0), trv)) -end - -@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 - -@testset "minimal_precedes_dec_test" begin - @test precedes(nai(), DecoratedInterval(Interval(3.0, 4.0), def)) == false - @test precedes(DecoratedInterval(Interval(3.0, 4.0), trv), nai()) == false - @test precedes(nai(), DecoratedInterval(∅, trv)) == false - @test precedes(nai(), nai()) == false - @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(∅, 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 - -@testset "minimal_interior_test" begin - @test ⪽(∅, ∅) - @test isinterior(∅, ∅) - @test (∅ ⪽ ∅) - @test ⪽(∅, Interval(0.0, 4.0)) - @test isinterior(∅, Interval(0.0, 4.0)) - @test (∅ ⪽ Interval(0.0, 4.0)) - @test ⪽(Interval(0.0, 4.0), ∅) == false - @test isinterior(Interval(0.0, 4.0), ∅) == false - @test (Interval(0.0, 4.0) ⪽ ∅) == false - @test ⪽(Interval(-Inf, Inf), Interval(-Inf, Inf)) - @test isinterior(Interval(-Inf, Inf), Interval(-Inf, Inf)) - @test (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(0.0, 4.0) ⪽ Interval(-Inf, Inf)) - @test ⪽(∅, Interval(-Inf, Inf)) - @test isinterior(∅, Interval(-Inf, Inf)) - @test (∅ ⪽ 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(-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(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(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(-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 ⪽(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 ⪽(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, 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(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(-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 - @test (Interval(2.0, 2.0) ⪽ Interval(-2.0, -1.0)) == false -end - -@testset "minimal_interior_dec_test" begin - @test ⪽(nai(), nai()) == false - @test isinterior(nai(), nai()) == false - @test (nai() ⪽ nai()) == false - @test ⪽(nai(), DecoratedInterval(∅, trv)) == false - @test isinterior(nai(), DecoratedInterval(∅, trv)) == false - @test (nai() ⪽ DecoratedInterval(∅, trv)) == false - @test ⪽(nai(), DecoratedInterval(Interval(0.0, 4.0), trv)) == false - @test isinterior(nai(), DecoratedInterval(Interval(0.0, 4.0), trv)) == false - @test (nai() ⪽ DecoratedInterval(Interval(0.0, 4.0), trv)) == false - @test ⪽(DecoratedInterval(Interval(0.0, 4.0), def), nai()) == false - @test isinterior(DecoratedInterval(Interval(0.0, 4.0), def), nai()) == false - @test (DecoratedInterval(Interval(0.0, 4.0), def) ⪽ nai()) == false - @test ⪽(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv)) - @test isinterior(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv)) - @test (DecoratedInterval(∅, trv) ⪽ DecoratedInterval(∅, trv)) - @test ⪽(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 4.0), trv)) - @test isinterior(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 4.0), trv)) - @test (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), def) ⪽ 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(-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(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(∅, 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(-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(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(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(-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), 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), 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, 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(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(-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 - @test (DecoratedInterval(Interval(2.0, 2.0), def) ⪽ DecoratedInterval(Interval(-2.0, -1.0), trv)) == false -end - -@testset "minimal_strictly_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(-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 - -@testset "minimal_strictly_less_dec_test" begin - @test <(nai(), nai()) == false - @test <(DecoratedInterval(∅, trv), nai()) == false - @test <(DecoratedInterval(Interval(1.0, 2.0), trv), nai()) == false - @test <(nai(), DecoratedInterval(Interval(1.0, 2.0), def)) == false - @test <(DecoratedInterval(∅, trv), DecoratedInterval(∅, trv)) - @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(-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 - -@testset "minimal_strictly_precedes_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 - -@testset "minimal_strictly_precedes_dec_test" begin - @test strictprecedes(nai(), DecoratedInterval(Interval(3.0, 4.0), trv)) == false - @test strictprecedes(DecoratedInterval(Interval(3.0, 4.0), def), nai()) == false - @test strictprecedes(nai(), DecoratedInterval(∅, trv)) == false - @test strictprecedes(nai(), nai()) == false - @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(∅, 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 - -@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 - -@testset "minimal_disjoint_dec_test" begin - @test isdisjoint(nai(), DecoratedInterval(Interval(3.0, 4.0), def)) == false - @test isdisjoint(DecoratedInterval(Interval(3.0, 4.0), trv), nai()) == false - @test isdisjoint(DecoratedInterval(∅, trv), nai()) == false - @test isdisjoint(nai(), nai()) == false - @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(∅, 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_bool.jl b/test/ITF1788_tests/libieeep1788_tests_bool.jl deleted file mode 100644 index 7a172981e..000000000 --- a/test/ITF1788_tests/libieeep1788_tests_bool.jl +++ /dev/null @@ -1,493 +0,0 @@ -#= - 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 Test - -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) -# Set full format, and show decorations -@format full - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 deleted file mode 100644 index 69fc67659..000000000 --- a/test/ITF1788_tests/libieeep1788_tests_cancel.jl +++ /dev/null @@ -1,409 +0,0 @@ -#= - 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 Test - -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) -# Set full format, and show decorations -@format full - -@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 - -@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 - -@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 - -@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 deleted file mode 100644 index e26df7722..000000000 --- a/test/ITF1788_tests/libieeep1788_tests_elem.jl +++ /dev/null @@ -1,5021 +0,0 @@ -#= - 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 Test - -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) -# Set full format, and show decorations -@format full - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - @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 - @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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - @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 - @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 - @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 - @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 - @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 - @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 - @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 - @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 - @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 - @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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@testset "minimal_atan_test" begin - @test atan(∅, ∅) == ∅ - @test atan(∅, entireinterval(Float64)) == ∅ - @test atan(∅, Interval(0.0, 0.0)) == ∅ - @test atan(∅, Interval(-0.0, 0.0)) == ∅ - @test atan(∅, Interval(0.0, -0.0)) == ∅ - @test atan(∅, Interval(-0.0, -0.0)) == ∅ - @test atan(∅, Interval(-2.0, -0.1)) == ∅ - @test atan(∅, Interval(-2.0, 0.0)) == ∅ - @test atan(∅, Interval(-2.0, -0.0)) == ∅ - @test atan(∅, Interval(-2.0, 1.0)) == ∅ - @test atan(∅, Interval(0.0, 1.0)) == ∅ - @test atan(∅, Interval(-0.0, 1.0)) == ∅ - @test atan(∅, Interval(0.1, 1.0)) == ∅ - @test atan(entireinterval(Float64), ∅) == ∅ - @test atan(entireinterval(Float64), entireinterval(Float64)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(entireinterval(Float64), Interval(0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @test atan(entireinterval(Float64), Interval(0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @test atan(entireinterval(Float64), Interval(-0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @test atan(entireinterval(Float64), Interval(-0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @test atan(entireinterval(Float64), Interval(-2.0, -0.1)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(entireinterval(Float64), Interval(-2.0, 0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(entireinterval(Float64), Interval(-2.0, -0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(entireinterval(Float64), Interval(-2.0, 1.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(entireinterval(Float64), Interval(0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @test atan(entireinterval(Float64), Interval(-0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @test atan(entireinterval(Float64), Interval(0.1, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0.0, 0.0), ∅) == ∅ - @test atan(Interval(0.0, 0.0), entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) - @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(0.0, 0.0), Interval(0.0, -0.0)) == ∅ - @test atan(Interval(0.0, 0.0), Interval(-0.0, -0.0)) == ∅ - @test atan(Interval(0.0, 0.0), Interval(-2.0, -0.1)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(0.0, 0.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(0.0, 0.0), Interval(-2.0, -0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(0.0, 0.0), Interval(-2.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+1) - @test atan(Interval(0.0, 0.0), Interval(0.0, 1.0)) == Interval(0.0, 0.0) - @test atan(Interval(0.0, 0.0), Interval(-0.0, 1.0)) == Interval(0.0, 0.0) - @test atan(Interval(0.0, 0.0), Interval(0.1, 1.0)) == Interval(0.0, 0.0) - @test atan(Interval(-0.0, 0.0), ∅) == ∅ - @test atan(Interval(-0.0, 0.0), entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) - @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(-0.0, 0.0), Interval(0.0, -0.0)) == ∅ - @test atan(Interval(-0.0, 0.0), Interval(-0.0, -0.0)) == ∅ - @test atan(Interval(-0.0, 0.0), Interval(-2.0, -0.1)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-0.0, 0.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-0.0, 0.0), Interval(-2.0, -0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-0.0, 0.0), Interval(-2.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+1) - @test atan(Interval(-0.0, 0.0), Interval(0.0, 1.0)) == Interval(0.0, 0.0) - @test atan(Interval(-0.0, 0.0), Interval(-0.0, 1.0)) == Interval(0.0, 0.0) - @test atan(Interval(-0.0, 0.0), Interval(0.1, 1.0)) == Interval(0.0, 0.0) - @test atan(Interval(0.0, -0.0), ∅) == ∅ - @test atan(Interval(0.0, -0.0), entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) - @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(0.0, -0.0), Interval(0.0, -0.0)) == ∅ - @test atan(Interval(0.0, -0.0), Interval(-0.0, -0.0)) == ∅ - @test atan(Interval(0.0, -0.0), Interval(-2.0, -0.1)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(0.0, -0.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(0.0, -0.0), Interval(-2.0, -0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(0.0, -0.0), Interval(-2.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+1) - @test atan(Interval(0.0, -0.0), Interval(0.0, 1.0)) == Interval(0.0, 0.0) - @test atan(Interval(0.0, -0.0), Interval(-0.0, 1.0)) == Interval(0.0, 0.0) - @test atan(Interval(0.0, -0.0), Interval(0.1, 1.0)) == Interval(0.0, 0.0) - @test atan(Interval(-0.0, -0.0), ∅) == ∅ - @test atan(Interval(-0.0, -0.0), entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) - @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(-0.0, -0.0), Interval(0.0, -0.0)) == ∅ - @test atan(Interval(-0.0, -0.0), Interval(-0.0, -0.0)) == ∅ - @test atan(Interval(-0.0, -0.0), Interval(-2.0, -0.1)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-0.0, -0.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-0.0, -0.0), Interval(-2.0, -0.0)) == Interval(0x1.921fb54442d18p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-0.0, -0.0), Interval(-2.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+1) - @test atan(Interval(-0.0, -0.0), Interval(0.0, 1.0)) == Interval(0.0, 0.0) - @test atan(Interval(-0.0, -0.0), Interval(-0.0, 1.0)) == Interval(0.0, 0.0) - @test atan(Interval(-0.0, -0.0), Interval(0.1, 1.0)) == Interval(0.0, 0.0) - @test atan(Interval(-2.0, -0.1), ∅) == ∅ - @test atan(Interval(-2.0, -0.1), entireinterval(Float64)) == Interval(-0x1.921fb54442d19p+1, 0.0) - @test atan(Interval(-2.0, -0.1), Interval(0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @test atan(Interval(-2.0, -0.1), Interval(0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @test atan(Interval(-2.0, -0.1), Interval(-0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @test atan(Interval(-2.0, -0.1), Interval(0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @test atan(Interval(-2.0, -0.1), Interval(-2.0, -0.1)) == Interval(-0x1.8bbaabde5e29cp+1, -0x1.9ee9c8100c211p+0) - @test atan(Interval(-2.0, -0.1), Interval(-2.0, 0.0)) == Interval(-0x1.8bbaabde5e29cp+1, -0x1.921fb54442d18p+0) - @test atan(Interval(-2.0, -0.1), Interval(-2.0, -0.0)) == Interval(-0x1.8bbaabde5e29cp+1, -0x1.921fb54442d18p+0) - @test atan(Interval(-2.0, -0.1), Interval(-2.0, 1.0)) == Interval(-0x1.8bbaabde5e29cp+1, -0x1.983e282e2cc4cp-4) - @test atan(Interval(-2.0, -0.1), Interval(0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.983e282e2cc4cp-4) - @test atan(Interval(-2.0, -0.1), Interval(-0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.983e282e2cc4cp-4) - @test atan(Interval(-2.0, -0.1), Interval(0.1, 1.0)) == Interval(-0x1.8555a2787982p+0, -0x1.983e282e2cc4cp-4) - @test atan(Interval(-2.0, 0.0), ∅) == ∅ - @test atan(Interval(-2.0, 0.0), entireinterval(Float64)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, 0.0), Interval(0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @test atan(Interval(-2.0, 0.0), Interval(-0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @test atan(Interval(-2.0, 0.0), Interval(0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @test atan(Interval(-2.0, 0.0), Interval(-0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @test atan(Interval(-2.0, 0.0), Interval(-2.0, -0.1)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, 0.0), Interval(-2.0, 0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, 0.0), Interval(-2.0, -0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, 0.0), Interval(-2.0, 1.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, 0.0), Interval(0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0.0) - @test atan(Interval(-2.0, 0.0), Interval(-0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0.0) - @test atan(Interval(-2.0, 0.0), Interval(0.1, 1.0)) == Interval(-0x1.8555a2787982p+0, 0.0) - @test atan(Interval(-2.0, -0.0), ∅) == ∅ - @test atan(Interval(-2.0, -0.0), entireinterval(Float64)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, -0.0), Interval(0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @test atan(Interval(-2.0, -0.0), Interval(-0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @test atan(Interval(-2.0, -0.0), Interval(0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @test atan(Interval(-2.0, -0.0), Interval(-0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, -0x1.921fb54442d18p+0) - @test atan(Interval(-2.0, -0.0), Interval(-2.0, -0.1)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, -0.0), Interval(-2.0, 0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, -0.0), Interval(-2.0, -0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, -0.0), Interval(-2.0, 1.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, -0.0), Interval(0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0.0) - @test atan(Interval(-2.0, -0.0), Interval(-0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0.0) - @test atan(Interval(-2.0, -0.0), Interval(0.1, 1.0)) == Interval(-0x1.8555a2787982p+0, 0.0) - @test atan(Interval(-2.0, 1.0), ∅) == ∅ - @test atan(Interval(-2.0, 1.0), entireinterval(Float64)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, 1.0), Interval(0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(-2.0, 1.0), Interval(-0.0, 0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(-2.0, 1.0), Interval(0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(-2.0, 1.0), Interval(-0.0, -0.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(-2.0, 1.0), Interval(-2.0, -0.1)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, 1.0), Interval(-2.0, 0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, 1.0), Interval(-2.0, -0.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, 1.0), Interval(-2.0, 1.0)) == Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1) - @test atan(Interval(-2.0, 1.0), Interval(0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(-2.0, 1.0), Interval(-0.0, 1.0)) == Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(-2.0, 1.0), Interval(0.1, 1.0)) == Interval(-0x1.8555a2787982p+0, 0x1.789bd2c160054p+0) - @test atan(Interval(-0.0, 1.0), ∅) == ∅ - @test atan(Interval(-0.0, 1.0), entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) - @test atan(Interval(-0.0, 1.0), Interval(0.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(-0.0, 1.0), Interval(-0.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(-0.0, 1.0), Interval(0.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(-0.0, 1.0), Interval(-0.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(-0.0, 1.0), Interval(-2.0, -0.1)) == Interval(0x1.aba397c7259ddp+0, 0x1.921fb54442d19p+1) - @test atan(Interval(-0.0, 1.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) - @test atan(Interval(-0.0, 1.0), Interval(-2.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) - @test atan(Interval(-0.0, 1.0), Interval(-2.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+1) - @test atan(Interval(-0.0, 1.0), Interval(0.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+0) - @test atan(Interval(-0.0, 1.0), Interval(-0.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+0) - @test atan(Interval(-0.0, 1.0), Interval(0.1, 1.0)) == Interval(0.0, 0x1.789bd2c160054p+0) - @test atan(Interval(0.0, 1.0), ∅) == ∅ - @test atan(Interval(0.0, 1.0), entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) - @test atan(Interval(0.0, 1.0), Interval(0.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0.0, 1.0), Interval(-0.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0.0, 1.0), Interval(0.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0.0, 1.0), Interval(-0.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0.0, 1.0), Interval(-2.0, -0.1)) == Interval(0x1.aba397c7259ddp+0, 0x1.921fb54442d19p+1) - @test atan(Interval(0.0, 1.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) - @test atan(Interval(0.0, 1.0), Interval(-2.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+1) - @test atan(Interval(0.0, 1.0), Interval(-2.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+1) - @test atan(Interval(0.0, 1.0), Interval(0.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+0) - @test atan(Interval(0.0, 1.0), Interval(-0.0, 1.0)) == Interval(0.0, 0x1.921fb54442d19p+0) - @test atan(Interval(0.0, 1.0), Interval(0.1, 1.0)) == Interval(0.0, 0x1.789bd2c160054p+0) - @test atan(Interval(0.1, 1.0), ∅) == ∅ - @test atan(Interval(0.1, 1.0), entireinterval(Float64)) == Interval(0.0, 0x1.921fb54442d19p+1) - @test atan(Interval(0.1, 1.0), Interval(0.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0.1, 1.0), Interval(-0.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0.1, 1.0), Interval(0.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0.1, 1.0), Interval(-0.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.921fb54442d19p+0) - @test atan(Interval(0.1, 1.0), Interval(-2.0, -0.1)) == Interval(0x1.aba397c7259ddp+0, 0x1.8bbaabde5e29cp+1) - @test atan(Interval(0.1, 1.0), Interval(-2.0, 0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.8bbaabde5e29cp+1) - @test atan(Interval(0.1, 1.0), Interval(-2.0, -0.0)) == Interval(0x1.921fb54442d18p+0, 0x1.8bbaabde5e29cp+1) - @test atan(Interval(0.1, 1.0), Interval(-2.0, 1.0)) == Interval(0x1.983e282e2cc4cp-4, 0x1.8bbaabde5e29cp+1) - @test atan(Interval(0.1, 1.0), Interval(0.0, 1.0)) == Interval(0x1.983e282e2cc4cp-4, 0x1.921fb54442d19p+0) - @test atan(Interval(0.1, 1.0), Interval(-0.0, 1.0)) == Interval(0x1.983e282e2cc4cp-4, 0x1.921fb54442d19p+0) - @test atan(Interval(0.1, 1.0), Interval(0.1, 1.0)) == Interval(0x1.983e282e2cc4cp-4, 0x1.789bd2c160054p+0) -end - -@testset "minimal_atan_dec_test" begin - @test atan(DecoratedInterval(∅, trv), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(∅, trv), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, 0.0), dac)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, 0.0), dac))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, -0.0), def)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, -0.0), def))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, -0.0), trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, -0.0), trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, -0.1), com)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, -0.1), com))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, 0.0), dac)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, 0.0), dac))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, -0.0), def)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, -0.0), def))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, 1.0), trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-2.0, 1.0), trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 1.0), com)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.0, 1.0), com))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, 1.0), dac)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(-0.0, 1.0), dac))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.1, 1.0), def)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(∅, trv), DecoratedInterval(Interval(0.1, 1.0), def))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @test atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @test decoration(atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @test atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, -0.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @test decoration(atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, -0.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @test atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, 0.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @test decoration(atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, 0.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @test atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, -0.0), trv)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @test decoration(atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, -0.0), trv))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @test atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, -0.1), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def) - @test decoration(atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, -0.1), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), def)) - @test atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, 0.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, 0.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @test atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, -0.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, -0.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @test atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, 1.0), trv)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-2.0, 1.0), trv))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @test atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, 1.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @test decoration(atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @test atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, 1.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv) - @test decoration(atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(-0.0, 1.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), trv)) - @test atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), def) - @test decoration(atan(DecoratedInterval(entireinterval(Float64), def), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0x1.921fb54442d19p+0), def)) - @test atan(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @test atan(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(0.0, 0.0), trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(0.0, 0.0), trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), dac)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), dac))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), def)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), def))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com))) == decoration(DecoratedInterval(∅, trv)) - @test atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @test atan(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(0.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, 0.0), def), DecoratedInterval(Interval(0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @test atan(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac)) == DecoratedInterval(Interval(0.0, 0.0), trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @test atan(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), com) - @test decoration(atan(DecoratedInterval(Interval(0.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), com)) - @test atan(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @test atan(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), def)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.0, -0.0), def))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com))) == decoration(DecoratedInterval(∅, trv)) - @test atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @test atan(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @test atan(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(-0.0, 1.0), dac)) == DecoratedInterval(Interval(0.0, 0.0), trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 0.0), def), DecoratedInterval(Interval(-0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @test atan(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), com) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), com)) - @test atan(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @test atan(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(0.0, 0.0), dac)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(0.0, 0.0), dac))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), com)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), com))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(Interval(0.0, -0.0), def)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(Interval(0.0, -0.0), def))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(-0.0, -0.0), trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(-0.0, -0.0), trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, -0.0), dac), DecoratedInterval(Interval(-2.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @test atan(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(0.0, 1.0), trv)) == DecoratedInterval(Interval(0.0, 0.0), trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(0.0, 1.0), trv))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @test atan(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(-0.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, -0.0), def), DecoratedInterval(Interval(-0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @test atan(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), def)) == DecoratedInterval(Interval(0.0, 0.0), def) - @test decoration(atan(DecoratedInterval(Interval(0.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0.0), def)) - @test atan(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @test atan(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(0.0, 0.0), com)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(0.0, 0.0), com))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), def)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 0.0), def))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.0, -0.0), trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.0, -0.0), trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, -0.0), dac), DecoratedInterval(Interval(-0.0, -0.0), com))) == decoration(DecoratedInterval(∅, trv)) - @test atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(Interval(-2.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, -0.0), def), DecoratedInterval(Interval(-2.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @test atan(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @test atan(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac)) == DecoratedInterval(Interval(0.0, 0.0), trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, -0.0), trv), DecoratedInterval(Interval(-0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0.0), trv)) - @test atan(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(0.0, 0.0), com) - @test decoration(atan(DecoratedInterval(Interval(-0.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0.0), com)) - @test atan(DecoratedInterval(Interval(-2.0, -0.1), dac), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-2.0, -0.1), dac), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(-2.0, -0.1), def), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0.0), def) - @test decoration(atan(DecoratedInterval(Interval(-2.0, -0.1), def), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0.0), def)) - @test atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @test atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(Interval(0.0, 1.0), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv) - @test decoration(atan(DecoratedInterval(Interval(-2.0, 0.0), def), DecoratedInterval(Interval(0.0, 1.0), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv)) - @test atan(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(-0.0, 1.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv) - @test decoration(atan(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(-0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv)) - @test atan(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0.0), com) - @test decoration(atan(DecoratedInterval(Interval(-2.0, 0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0.0), com)) - @test atan(DecoratedInterval(Interval(-2.0, -0.0), trv), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-2.0, -0.0), trv), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(-2.0, -0.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(-2.0, -0.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @test atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(DecoratedInterval(Interval(-2.0, -0.0), trv), DecoratedInterval(Interval(0.0, 1.0), dac)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv) - @test decoration(atan(DecoratedInterval(Interval(-2.0, -0.0), trv), DecoratedInterval(Interval(0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv)) - @test atan(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(-0.0, 1.0), com)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv) - @test decoration(atan(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(-0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+0, 0.0), trv)) - @test atan(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0.0), com) - @test decoration(atan(DecoratedInterval(Interval(-2.0, -0.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(-0x1.8555a2787982p+0, 0.0), com)) - @test atan(DecoratedInterval(Interval(-2.0, 1.0), def), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-2.0, 1.0), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(-2.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(-2.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(-0x1.921fb54442d19p+1, 0x1.921fb54442d19p+1), trv)) - @test atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(DecoratedInterval(Interval(-0.0, 1.0), com), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 1.0), com), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @test atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), dac)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @test atan(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 1.0), dac)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 1.0), dac))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) - @test atan(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 1.0), com)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(-0.0, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) - @test atan(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(0.0, 0x1.789bd2c160054p+0), trv) - @test decoration(atan(DecoratedInterval(Interval(-0.0, 1.0), trv), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1.789bd2c160054p+0), trv)) - @test atan(DecoratedInterval(Interval(0.0, 1.0), def), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, 1.0), def), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @test atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-2.0, 1.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), trv)) - @test atan(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 1.0), trv)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(0.0, 1.0), trv))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) - @test atan(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-0.0, 1.0), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv) - @test decoration(atan(DecoratedInterval(Interval(0.0, 1.0), dac), DecoratedInterval(Interval(-0.0, 1.0), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+0), trv)) - @test atan(DecoratedInterval(Interval(0.0, 1.0), com), DecoratedInterval(Interval(0.1, 1.0), com)) == DecoratedInterval(Interval(0.0, 0x1.789bd2c160054p+0), com) - @test decoration(atan(DecoratedInterval(Interval(0.0, 1.0), com), DecoratedInterval(Interval(0.1, 1.0), com))) == decoration(DecoratedInterval(Interval(0.0, 0x1.789bd2c160054p+0), com)) - @test atan(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(∅, trv)) == DecoratedInterval(∅, trv) - @test decoration(atan(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(∅, trv))) == decoration(DecoratedInterval(∅, trv)) - @test atan(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(entireinterval(Float64), def)) == DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), def) - @test decoration(atan(DecoratedInterval(Interval(0.1, 1.0), dac), DecoratedInterval(entireinterval(Float64), def))) == decoration(DecoratedInterval(Interval(0.0, 0x1.921fb54442d19p+1), def)) - @test atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 atan(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(atan(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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 deleted file mode 100644 index 916dd57f1..000000000 --- a/test/ITF1788_tests/libieeep1788_tests_mul_rev.jl +++ /dev/null @@ -1,42 +0,0 @@ -#= - 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 Test - -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) -# Set full format, and show decorations -@format full - -@testset "minimal_mulRevToPair_test" begin - -end - -@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 deleted file mode 100644 index cc7ecd4ad..000000000 --- a/test/ITF1788_tests/libieeep1788_tests_num.jl +++ /dev/null @@ -1,267 +0,0 @@ -#= - - Unit tests from libieeep1788 for interval numeric operations - (Original author: Marco Nehmeier) - converted into portable ITL format by Oliver Heimlich. - - Copyright 2013-2015 Marco Nehmeier (nehmeier@informatik.uni-wuerzburg.de) - Copyright 2015-2017 Oliver Heimlich (oheim@posteo.de) - - 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 Test - -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) -# Set full format, and show decorations -@format full - -@testset "minimal_inf_test" begin - @test inf(∅) == Inf - @test inf(Interval(-Inf, Inf)) == -Inf - @test inf(Interval(1.0, 2.0)) == 1.0 - @test inf(Interval(-3.0, -2.0)) == -3.0 - @test inf(Interval(-Inf, 2.0)) == -Inf - @test inf(Interval(-Inf, 0.0)) == -Inf - @test inf(Interval(-Inf, -0.0)) == -Inf - @test inf(Interval(-2.0, Inf)) == -2.0 - @test inf(Interval(0.0, Inf)) == -0.0 - @test inf(Interval(-0.0, Inf)) == -0.0 - @test inf(Interval(-0.0, 0.0)) == -0.0 - @test inf(Interval(0.0, -0.0)) == -0.0 - @test inf(Interval(0.0, 0.0)) == -0.0 - @test inf(Interval(-0.0, -0.0)) == -0.0 -end - -@testset "minimal_inf_dec_test" begin - @test isnan(inf(nai())) - @test inf(DecoratedInterval(∅, trv)) == Inf - @test inf(DecoratedInterval(Interval(-Inf, Inf), def)) == -Inf - @test inf(DecoratedInterval(Interval(1.0, 2.0), com)) == 1.0 - @test inf(DecoratedInterval(Interval(-3.0, -2.0), trv)) == -3.0 - @test inf(DecoratedInterval(Interval(-Inf, 2.0), dac)) == -Inf - @test inf(DecoratedInterval(Interval(-Inf, 0.0), def)) == -Inf - @test inf(DecoratedInterval(Interval(-Inf, -0.0), trv)) == -Inf - @test inf(DecoratedInterval(Interval(-2.0, Inf), trv)) == -2.0 - @test inf(DecoratedInterval(Interval(0.0, Inf), def)) == -0.0 - @test inf(DecoratedInterval(Interval(-0.0, Inf), trv)) == -0.0 - @test inf(DecoratedInterval(Interval(-0.0, 0.0), dac)) == -0.0 - @test inf(DecoratedInterval(Interval(0.0, -0.0), trv)) == -0.0 - @test inf(DecoratedInterval(Interval(0.0, 0.0), trv)) == -0.0 - @test inf(DecoratedInterval(Interval(-0.0, -0.0), trv)) == -0.0 -end - -@testset "minimal_sup_test" begin - @test sup(∅) == -Inf - @test sup(Interval(-Inf, Inf)) == Inf - @test sup(Interval(1.0, 2.0)) == 2.0 - @test sup(Interval(-3.0, -2.0)) == -2.0 - @test sup(Interval(-Inf, 2.0)) == 2.0 - @test sup(Interval(-Inf, 0.0)) == 0.0 - @test sup(Interval(-Inf, -0.0)) == 0.0 - @test sup(Interval(-2.0, Inf)) == Inf - @test sup(Interval(0.0, Inf)) == Inf - @test sup(Interval(-0.0, Inf)) == Inf - @test sup(Interval(-0.0, 0.0)) == 0.0 - @test sup(Interval(0.0, -0.0)) == 0.0 - @test sup(Interval(0.0, 0.0)) == 0.0 - @test sup(Interval(-0.0, -0.0)) == 0.0 -end - -@testset "minimal_sup_dec_test" begin - @test isnan(sup(nai())) - @test sup(DecoratedInterval(∅, trv)) == -Inf - @test sup(DecoratedInterval(Interval(-Inf, Inf), def)) == Inf - @test sup(DecoratedInterval(Interval(1.0, 2.0), com)) == 2.0 - @test sup(DecoratedInterval(Interval(-3.0, -2.0), trv)) == -2.0 - @test sup(DecoratedInterval(Interval(-Inf, 2.0), dac)) == 2.0 - @test sup(DecoratedInterval(Interval(-Inf, 0.0), def)) == 0.0 - @test sup(DecoratedInterval(Interval(-Inf, -0.0), trv)) == 0.0 - @test sup(DecoratedInterval(Interval(-2.0, Inf), trv)) == Inf - @test sup(DecoratedInterval(Interval(0.0, Inf), def)) == Inf - @test sup(DecoratedInterval(Interval(-0.0, Inf), trv)) == Inf - @test sup(DecoratedInterval(Interval(-0.0, 0.0), dac)) == +0.0 - @test sup(DecoratedInterval(Interval(0.0, -0.0), trv)) == +0.0 - @test sup(DecoratedInterval(Interval(0.0, 0.0), trv)) == +0.0 - @test sup(DecoratedInterval(Interval(-0.0, -0.0), trv)) == +0.0 -end - -@testset "minimal_mid_test" begin - @test isnan(mid(∅)) - @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(0.0, Inf)) == 0x1.fffffffffffffP1023 - @test mid(Interval(-Inf, 1.2)) == -0x1.fffffffffffffP1023 - @test mid(Interval(-0x0.0000000000002p-1022, 0x0.0000000000001p-1022)) == 0.0 - @test mid(Interval(-0x0.0000000000001p-1022, 0x0.0000000000002p-1022)) == 0.0 - @test mid(Interval(0x1.fffffffffffffP+1022, 0x1.fffffffffffffP+1023)) == 0x1.7ffffffffffffp+1023 - @test mid(Interval(0x0.0000000000001p-1022, 0x0.0000000000003p-1022)) == 0x0.0000000000002p-1022 -end - -@testset "minimal_mid_dec_test" begin - @test isnan(mid(DecoratedInterval(∅, trv))) - @test isnan(mid(nai())) - @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(0.0, Inf), trv)) == 0x1.fffffffffffffP1023 - @test mid(DecoratedInterval(Interval(-Inf, 1.2), trv)) == -0x1.fffffffffffffP1023 - @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 - @test mid(DecoratedInterval(Interval(0x1.fffffffffffffP+1022, 0x1.fffffffffffffP+1023), trv)) == 0x1.7ffffffffffffp+1023 - @test mid(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x0.0000000000003p-1022), trv)) == 0x0.0000000000002p-1022 -end - -@testset "minimal_rad_test" begin - @test radius(Interval(0.0, 2.0)) == 1.0 - @test radius(Interval(2.0, 2.0)) == 0.0 - @test isnan(radius(∅)) - @test radius(Interval(-Inf, Inf)) == Inf - @test radius(Interval(0.0, Inf)) == Inf - @test radius(Interval(-Inf, 1.2)) == Inf - @test radius(Interval(-0x0.0000000000002p-1022, 0x0.0000000000001p-1022)) == 0x0.0000000000002p-1022 - @test radius(Interval(0x0.0000000000001p-1022, 0x0.0000000000002p-1022)) == 0x0.0000000000001p-1022 - @test radius(Interval(0x1p+0, 0x1.0000000000003p+0)) == 0x1p-51 -end - -@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 isnan(radius(DecoratedInterval(∅, trv))) - @test isnan(radius(nai())) - @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 - @test radius(DecoratedInterval(Interval(-0x0.0000000000002p-1022, 0x0.0000000000001p-1022), trv)) == 0x0.0000000000002p-1022 - @test radius(DecoratedInterval(Interval(0x0.0000000000001p-1022, 0x0.0000000000002p-1022), trv)) == 0x0.0000000000001p-1022 - @test radius(DecoratedInterval(Interval(0x1p+0, 0x1.0000000000003p+0), trv)) == 0x1p-51 -end - -@testset "minimal_mid_rad_test" begin - @test midpoint_radius(∅) === (NaN, NaN) - @test midpoint_radius(Interval(-Inf, Inf)) == (0.0, Inf) - @test midpoint_radius(Interval(-0x1.fffffffffffffP1023, +0x1.fffffffffffffP1023)) == (0.0, 0x1.fffffffffffffP+1023) - @test midpoint_radius(Interval(0.0, 2.0)) == (1.0, 1.0) - @test midpoint_radius(Interval(2.0, 2.0)) == (2.0, 0.0) - @test midpoint_radius(Interval(-2.0, 2.0)) == (0.0, 2.0) - @test midpoint_radius(Interval(0, Inf)) == (0x1.fffffffffffffP+1023, Inf) - @test midpoint_radius(Interval(-Inf, 1.2)) == (-0x1.fffffffffffffP+1023, Inf) - @test midpoint_radius(Interval(-0x0.0000000000002p-1022, 0x0.0000000000001p-1022)) == (0.0, 0x0.0000000000002p-1022) - @test midpoint_radius(Interval(0x1.fffffffffffffP+1022, 0x1.fffffffffffffP+1023)) == (0x1.7FFFFFFFFFFFFP+1023, 0x1.0p+1022) - @test midpoint_radius(Interval(0x0.0000000000001p-1022, 0x0.0000000000003p-1022)) == (0x0.0000000000002P-1022, 0x0.0000000000001P-1022) -end - -@testset "minimal_mid_rad_dec_test" begin - @test midpoint_radius(DecoratedInterval(∅, trv)) === (NaN, NaN) - @test midpoint_radius(DecoratedInterval(Interval(-Inf, Inf), dac)) == (0.0, Inf) - @test midpoint_radius(DecoratedInterval(Interval(-0x1.fffffffffffffP+1023, 0x1.fffffffffffffP+1023), trv)) == (0.0, 0x1.fffffffffffffP+1023) - @test midpoint_radius(DecoratedInterval(Interval(0.0, 2.0), com)) == (1.0, 1.0) - @test midpoint_radius(DecoratedInterval(Interval(2.0, 2.0), dac)) == (2.0, 0.0) - @test midpoint_radius(DecoratedInterval(Interval(-2.0, 2.0), trv)) == (0.0, 2.0) - @test midpoint_radius(DecoratedInterval(Interval(0, Inf), trv)) == (0x1.fffffffffffffP+1023, Inf) - @test midpoint_radius(DecoratedInterval(Interval(-Inf, 1.2), trv)) == (-0x1.fffffffffffffP+1023, Inf) - @test midpoint_radius(DecoratedInterval(Interval(-0x0.0000000000002P-1022, 0x0.0000000000001P-1022), trv)) == (0.0, 0x0.0000000000002P-1022) - @test midpoint_radius(DecoratedInterval(Interval(-0x0.0000000000001P-1022, 0x0.0000000000002P-1022), trv)) == (0.0, 0x0.0000000000002P-1022) - @test midpoint_radius(DecoratedInterval(Interval(0x1.fffffffffffffP+1022, 0x1.fffffffffffffP+1023), trv)) == (0x1.7FFFFFFFFFFFFP+1023, 0x1.0p+1022) - @test midpoint_radius(DecoratedInterval(Interval(0x0.0000000000001P-1022, 0x0.0000000000003P-1022), trv)) == (0x0.0000000000002P-1022, 0x0.0000000000001P-1022) -end - -@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 - @test isnan(diam(∅)) - @test diam(Interval(0x1p+0, 0x1.0000000000001p+0)) == 0x1p-52 - @test diam(Interval(0x1p-1022, 0x1.0000000000001p-1022)) == 0x0.0000000000001p-1022 -end - -@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 - @test isnan(diam(DecoratedInterval(∅, trv))) - @test isnan(diam(nai())) - @test diam(DecoratedInterval(Interval(0x1p+0, 0x1.0000000000001p+0), trv)) == 0x1p-52 - @test diam(DecoratedInterval(Interval(0x1p-1022, 0x1.0000000000001p-1022), trv)) == 0x0.0000000000001p-1022 -end - -@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 isnan(mag(∅)) - @test mag(Interval(-0.0, 0.0)) == 0.0 - @test mag(Interval(-0.0, -0.0)) == 0.0 -end - -@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 isnan(mag(DecoratedInterval(∅, trv))) - @test isnan(mag(nai())) - @test mag(DecoratedInterval(Interval(-0.0, 0.0), trv)) == 0.0 - @test mag(DecoratedInterval(Interval(-0.0, -0.0), trv)) == 0.0 -end - -@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 isnan(mig(∅)) - @test mig(Interval(-0.0, 0.0)) == 0.0 - @test mig(Interval(-0.0, -0.0)) == 0.0 -end - -@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 isnan(mig(DecoratedInterval(∅, trv))) - @test isnan(mig(nai())) - @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 deleted file mode 100644 index e7f2faa4f..000000000 --- a/test/ITF1788_tests/libieeep1788_tests_overlap.jl +++ /dev/null @@ -1,42 +0,0 @@ -#= - 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 Test - -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) -# Set full format, and show decorations -@format full - -@testset "minimal_overlap_test" begin - -end - -@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 deleted file mode 100644 index 751433fe2..000000000 --- a/test/ITF1788_tests/libieeep1788_tests_rec_bool.jl +++ /dev/null @@ -1,239 +0,0 @@ -#= - 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 Test -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) -# Set full format, and show decorations -@format full - -@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 - -@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 - -@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 - -@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 - -@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 - -@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 deleted file mode 100644 index ca10e7f0a..000000000 --- a/test/ITF1788_tests/libieeep1788_tests_rev.jl +++ /dev/null @@ -1,162 +0,0 @@ -#= - 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 Test - -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) -# Set full format, and show decorations -@format full - -@testset "minimal_sqrRev_test" begin - -end - -@testset "minimal_sqrRevBin_test" begin - -end - -@testset "minimal_sqrRev_dec_test" begin - -end - -@testset "minimal_sqrRev_dec_bin_test" begin - -end - -@testset "minimal_absRev_test" begin - -end - -@testset "minimal_absRevBin_test" begin - -end - -@testset "minimal_absRev_dec_test" begin - -end - -@testset "minimal_absRev_dec_bin_test" begin - -end - -@testset "minimal_pownRev_test" begin - -end - -@testset "minimal_pownRevBin_test" begin - -end - -@testset "minimal_pownRev_dec_test" begin - -end - -@testset "minimal_pownRev_dec_bin_test" begin - -end - -@testset "minimal_sinRev_test" begin - -end - -@testset "minimal_sinRevBin_test" begin - -end - -@testset "minimal_sinRev_dec_test" begin - -end - -@testset "minimal_sinRev_dec_bin_test" begin - -end - -@testset "minimal_cosRev_test" begin - -end - -@testset "minimal_cosRevBin_test" begin - -end - -@testset "minimal_cosRev_dec_test" begin - -end - -@testset "minimal_cosRev_dec_bin_test" begin - -end - -@testset "minimal_tanRev_test" begin - -end - -@testset "minimal_tanRevBin_test" begin - -end - -@testset "minimal_tanRev_dec_test" begin - -end - -@testset "minimal_tanRev_dec_bin_test" begin - -end - -@testset "minimal_coshRev_test" begin - -end - -@testset "minimal_coshRevBin_test" begin - -end - -@testset "minimal_coshRev_dec_test" begin - -end - -@testset "minimal_coshRev_dec_bin_test" begin - -end - -@testset "minimal_mulRev_test" begin - -end - -@testset "minimal_mulRevTen_test" begin - -end - -@testset "minimal_mulRev_dec_test" begin - -end - -@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 deleted file mode 100644 index 4d5524034..000000000 --- a/test/ITF1788_tests/libieeep1788_tests_set.jl +++ /dev/null @@ -1,106 +0,0 @@ -#= - 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 Test - -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) -# Set full format, and show decorations -@format full - -@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 - -@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 - -@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 - -@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/ITF1788_tests/mpfi.jl b/test/ITF1788_tests/mpfi.jl deleted file mode 100644 index 28e2ba6f2..000000000 --- a/test/ITF1788_tests/mpfi.jl +++ /dev/null @@ -1,1890 +0,0 @@ -#= - - Unit tests from GNU MPFI - (Original authors: Philippe Theveny and Nathalie Revol ) - converted into portable ITL format by Oliver Heimlich. - - Copyright 2009–2012 Spaces project, Inria Lorraine - and Salsa project, INRIA Rocquencourt, - and Arenaire project, Inria Rhone-Alpes, France - and Lab. ANO, USTL (Univ. of Lille), France - Copyright 2015-2016 Oliver Heimlich - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -=# -#Language imports - -#Test library imports -using Test - -#Arithmetic library imports -using IntervalArithmetic - -#Preamble -setprecision(53) -setprecision(Interval, Float64) -setrounding(Interval, :tight) -# Set full format, and show decorations -@format full - -@testset "mpfi_abs" begin - # special values - @test abs(Interval(-Inf, -7.0)) == Interval(+7.0, Inf) - @test abs(Interval(-Inf, 0.0)) == Interval(0.0, Inf) - @test abs(Interval(-Inf, 0.0)) == Interval(0.0, Inf) - @test abs(Interval(-Inf, +8.0)) == Interval(0.0, Inf) - @test abs(entireinterval(Float64)) == Interval(0.0, Inf) - @test abs(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test abs(Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test abs(Interval(0.0, Inf)) == Interval(0.0, Inf) - @test abs(Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test abs(Interval(0.0, Inf)) == Interval(0.0, Inf) - # regular values - @test abs(Interval(0x123456789p-16, 0x123456799p-16)) == Interval(0x123456789p-16, 0x123456799p-16) - @test abs(Interval(-0x123456789p-16, 0x123456799p-16)) == Interval(0.0, 0x123456799p-16) -end - -@testset "mpfi_acos" begin - # special values - @test acos(Interval(-1.0, 0.0)) == Interval(0x3243f6a8885a3p-49, 0x1921fb54442d19p-51) - @test acos(Interval(0.0, 0.0)) == Interval(0x3243f6a8885a3p-49, 0x1921fb54442d19p-52) - @test acos(Interval(0.0, +1.0)) == Interval(0.0, 0x1921fb54442d19p-52) - # regular values - @test acos(Interval(-1.0, -0.5)) == Interval(0x10c152382d7365p-51, 0x1921fb54442d19p-51) - @test acos(Interval(-0.75, -0.25)) == Interval(0x1d2cf5c7c70f0bp-52, 0x4d6749be4edb1p-49) - @test acos(Interval(-0.5, 0.5)) == Interval(0x10c152382d7365p-52, 0x860a91c16b9b3p-50) - @test acos(Interval(0.25, 0.625)) == Interval(0x1ca94936b98a21p-53, 0x151700e0c14b25p-52) - @test acos(Interval(-1.0, 1.0)) == Interval(0.0, 0x1921fb54442d19p-51) -end - -@testset "mpfi_acosh" begin - # special values - @test acosh(Interval(+1.0, Inf)) == Interval(0.0, Inf) - @test acosh(Interval(+1.5, Inf)) == Interval(0x1ecc2caec51609p-53, Inf) - # regular values - @test acosh(Interval(1.0, 1.5)) == Interval(0.0, 0xf661657628b05p-52) - @test acosh(Interval(1.5, 1.5)) == Interval(0x1ecc2caec51609p-53, 0xf661657628b05p-52) - @test acosh(Interval(2.0, 1000.0)) == Interval(0x544909c66010dp-50, 0x799d4ba2a13b5p-48) -end - -@testset "mpfi_add" begin - # special values - @test Interval(-Inf, -7.0) + Interval(-1.0, +8.0) == Interval(-Inf, +1.0) - @test Interval(-Inf, 0.0) + Interval(+8.0, Inf) == entireinterval(Float64) - @test Interval(-Inf, +8.0) + Interval(0.0, +8.0) == Interval(-Inf, +16.0) - @test entireinterval(Float64) + Interval(0.0, +8.0) == entireinterval(Float64) - @test Interval(0.0, 0.0) + Interval(-Inf, -7.0) == Interval(-Inf, -7.0) - @test Interval(0.0, +8.0) + Interval(-7.0, 0.0) == Interval(-7.0, +8.0) - @test Interval(0.0, 0.0) + Interval(0.0, +8.0) == Interval(0.0, +8.0) - @test Interval(0.0, Inf) + Interval(0.0, +8.0) == Interval(0.0, Inf) - @test Interval(0.0, 0.0) + Interval(+8.0, Inf) == Interval(+8.0, Inf) - @test Interval(0.0, 0.0) + entireinterval(Float64) == entireinterval(Float64) - @test Interval(0.0, +8.0) + Interval(0.0, +8.0) == Interval(0.0, +16.0) - @test Interval(0.0, 0.0) + Interval(0.0, 0.0) == Interval(0.0, 0.0) - @test Interval(0.0, Inf) + Interval(-7.0, +8.0) == Interval(-7.0, Inf) - # regular values - @test Interval(-0.375, -0x10187p-256) + Interval(-0.125, 0x1p-240) == Interval(-0x1p-1, -0x187p-256) - @test Interval(-0x1p-300, 0x123456p+28) + Interval(-0x10000000000000p-93, 0x789abcdp0) == Interval(-0x10000000000001p-93, 0x123456789abcdp0) - @test Interval(-4.0, +7.0) + Interval(-0x123456789abcdp-17, 3e300) == Interval(-0x123456791abcdp-17, 0x8f596b3002c1bp+947) - @test Interval(0x1000100010001p+8, 0x1p+60) + Interval(0x1000100010001p0, 3.0e300) == Interval(+0x1010101010101p+8, 0x8f596b3002c1bp+947) - # signed zeros - @test Interval(+4.0, +8.0) + Interval(-4.0, -2.0) == Interval(0.0, +6.0) - @test Interval(+4.0, +8.0) + Interval(-9.0, -8.0) == Interval(-5.0, 0.0) -end - -@testset "mpfi_add_d" begin - # special values - @test Interval(-Inf, -7.0) + Interval(-0x170ef54646d497p-107, -0x170ef54646d497p-107) == Interval(-Inf, -7.0) - @test Interval(-Inf, -7.0) + Interval(0.0, 0.0) == Interval(-Inf, -7.0) - @test Interval(-Inf, -7.0) + Interval(0x170ef54646d497p-107, 0x170ef54646d497p-107) == Interval(-Inf, -0x1bffffffffffffp-50) - @test Interval(-Inf, 0.0) + Interval(-0x170ef54646d497p-106, -0x170ef54646d497p-106) == Interval(-Inf, -8.0e-17) - @test Interval(-Inf, 0.0) + Interval(0.0, 0.0) == Interval(-Inf, 0.0) - @test Interval(-Inf, 0.0) + Interval(0x170ef54646d497p-106, 0x170ef54646d497p-106) == Interval(-Inf, 0x170ef54646d497p-106) - @test Interval(-Inf, 8.0) + Interval(-0x16345785d8a00000p0, -0x16345785d8a00000p0) == Interval(-Inf, -0x16345785d89fff00p0) - @test Interval(-Inf, 8.0) + Interval(0.0, 0.0) == Interval(-Inf, 8.0) - @test Interval(-Inf, 8.0) + Interval(0x16345785d8a00000p0, 0x16345785d8a00000p0) == Interval(-Inf, 0x16345785d8a00100p0) - @test entireinterval(Float64) + Interval(-0x170ef54646d497p-105, -0x170ef54646d497p-105) == entireinterval(Float64) - @test entireinterval(Float64) + Interval(0.0e-17, 0.0e-17) == entireinterval(Float64) - @test entireinterval(Float64) + Interval(+0x170ef54646d497p-105, +0x170ef54646d497p-105) == entireinterval(Float64) - @test Interval(0.0, 0.0) + Interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109) == Interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109) - @test Interval(0.0, 0.0) + Interval(0.0, 0.0) == Interval(0.0, 0.0) - @test Interval(0.0, 0.0) + Interval(0x170ef54646d497p-109, 0x170ef54646d497p-109) == Interval(0x170ef54646d497p-109, 0x170ef54646d497p-109) - @test Interval(0.0, 8.0) + Interval(-0x114b37f4b51f71p-107, -0x114b37f4b51f71p-107) == Interval(-0x114b37f4b51f71p-107, 8.0) - @test Interval(0.0, 8.0) + Interval(0.0, 0.0) == Interval(0.0, 8.0) - @test Interval(0.0, 8.0) + Interval(0x114b37f4b51f7p-103, 0x114b37f4b51f7p-103) == Interval(0x114b37f4b51f7p-103, 0x10000000000001p-49) - @test Interval(0.0, Inf) + Interval(-0x50b45a75f7e81p-104, -0x50b45a75f7e81p-104) == Interval(-0x50b45a75f7e81p-104, Inf) - @test Interval(0.0, Inf) + Interval(0.0, 0.0) == Interval(0.0, Inf) - @test Interval(0.0, Inf) + Interval(0x142d169d7dfa03p-106, 0x142d169d7dfa03p-106) == Interval(0x142d169d7dfa03p-106, Inf) - # regular values - @test Interval(-32.0, -17.0) + Interval(-0xfb53d14aa9c2fp-47, -0xfb53d14aa9c2fp-47) == Interval(-0x1fb53d14aa9c2fp-47, -0x18353d14aa9c2fp-47) - @test Interval(-0xfb53d14aa9c2fp-47, -17.0) + Interval(0xfb53d14aa9c2fp-47, 0xfb53d14aa9c2fp-47) == Interval(0.0, 0x7353d14aa9c2fp-47) - @test Interval(-32.0, -0xfb53d14aa9c2fp-48) + Interval(0xfb53d14aa9c2fp-48, 0xfb53d14aa9c2fp-48) == Interval(-0x104ac2eb5563d1p-48, 0.0) - @test Interval(0x123456789abcdfp-48, 0x123456789abcdfp-4) + Interval(3.5, 3.5) == Interval(0x15b456789abcdfp-48, 0x123456789abd17p-4) - @test Interval(0x123456789abcdfp-56, 0x123456789abcdfp-4) + Interval(3.5, 3.5) == Interval(0x3923456789abcdp-52, 0x123456789abd17p-4) - @test Interval(-0xffp0, 0x123456789abcdfp-52) + Interval(256.5, 256.5) == Interval(0x18p-4, 0x101a3456789abdp-44) - @test Interval(-0x1fffffffffffffp-52, -0x1p-550) + Interval(4097.5, 4097.5) == Interval(0xfff8p-4, 0x10018p-4) - @test Interval(0x123456789abcdfp-48, 0x123456789abcdfp-4) + Interval(-3.5, -3.5) == Interval(0xeb456789abcdfp-48, 0x123456789abca7p-4) - @test Interval(0x123456789abcdfp-56, 0x123456789abcdfp-4) + Interval(-3.5, -3.5) == Interval(-0x36dcba98765434p-52, 0x123456789abca7p-4) - @test Interval(-0xffp0, 0x123456789abcdfp-52) + Interval(-256.5, -256.5) == Interval(-0x1ff8p-4, -0xff5cba9876543p-44) - @test Interval(-0x1fffffffffffffp-52, -0x1p-550) + Interval(-4097.5, -4097.5) == Interval(-0x10038p-4, -0x10018p-4) -end - -@testset "mpfi_asin" begin - # special values - @test asin(Interval(-1.0, 0.0)) == Interval(-0x1921fb54442d19p-52, 0.0) - @test asin(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test asin(Interval(0.0, +1.0)) == Interval(0.0, 0x1921fb54442d19p-52) - # regular values - @test asin(Interval(-1.0, -0.5)) == Interval(-0x1921fb54442d19p-52, -0x10c152382d7365p-53) - @test asin(Interval(-0.75, -0.25)) == Interval(-0x1b235315c680ddp-53, -0x102be9ce0b87cdp-54) - @test asin(Interval(-0.5, 0.5)) == Interval(-0x860a91c16b9b3p-52, 0x860a91c16b9b3p-52) - @test asin(Interval(0.25, 0.625)) == Interval(0x102be9ce0b87cdp-54, 0x159aad71ced00fp-53) - @test asin(Interval(-1.0, 1.0)) == Interval(-0x1921fb54442d19p-52, 0x1921fb54442d19p-52) -end - -@testset "mpfi_asinh" begin - # special values - @test asinh(Interval(-Inf, -7.0)) == Interval(-Inf, -0x152728c91b5f1dp-51) - @test asinh(Interval(-Inf, 0.0)) == Interval(-Inf, 0.0) - @test asinh(Interval(-Inf, +8.0)) == Interval(-Inf, 0x58d8dc657eaf5p-49) - @test asinh(entireinterval(Float64)) == entireinterval(Float64) - @test asinh(Interval(-1.0, 0.0)) == Interval(-0x1c34366179d427p-53, 0.0) - @test asinh(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test asinh(Interval(0.0, +1.0)) == Interval(0.0, 0x1c34366179d427p-53) - @test asinh(Interval(0.0, +8.0)) == Interval(0.0, 0x58d8dc657eaf5p-49) - @test asinh(Interval(0.0, Inf)) == Interval(0.0, Inf) - # regular values - @test asinh(Interval(-6.0, -4.0)) == Interval(-0x4fbca919fe219p-49, -0x10c1f8a6e80eebp-51) - @test asinh(Interval(-2.0, -0.5)) == Interval(-0x2e32430627a11p-49, -0x1ecc2caec51609p-54) - @test asinh(Interval(-1.0, -0.5)) == Interval(-0x1c34366179d427p-53, -0x1ecc2caec51609p-54) - @test asinh(Interval(-0.75, -0.25)) == Interval(-0x162e42fefa39fp-49, -0xfd67d91ccf31bp-54) - @test asinh(Interval(-0.5, 0.5)) == Interval(-0xf661657628b05p-53, 0xf661657628b05p-53) - @test asinh(Interval(0.25, 0.625)) == Interval(0xfd67d91ccf31bp-54, 0x4b89d40b2fecdp-51) - @test asinh(Interval(-1.0, 1.0)) == Interval(-0x1c34366179d427p-53, 0x1c34366179d427p-53) - @test asinh(Interval(0.125, 17.0)) == Interval(0xff5685b4cb4b9p-55, 0xe1be0ba541ef7p-50) - @test asinh(Interval(17.0, 42.0)) == Interval(0x1c37c174a83dedp-51, 0x8dca6976ad6bdp-49) - @test asinh(Interval(-42.0, 17.0)) == Interval(-0x8dca6976ad6bdp-49, 0xe1be0ba541ef7p-50) -end - -@testset "mpfi_atan" begin - # special values - @test atan(Interval(-Inf, -7.0)) == Interval(-0x1921fb54442d19p-52, -0x5b7315eed597fp-50) - @test atan(Interval(-Inf, 0.0)) == Interval(-0x1921fb54442d19p-52, 0.0) - @test atan(Interval(-Inf, +8.0)) == Interval(-0x1921fb54442d19p-52, 0xb924fd54cb511p-51) - @test atan(entireinterval(Float64)) == Interval(-0x1921fb54442d19p-52, 0x1921fb54442d19p-52) - @test atan(Interval(-1.0, 0.0)) == Interval(-0x1921fb54442d19p-53, 0.0) - @test atan(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test atan(Interval(0.0, +1.0)) == Interval(0.0, 0x1921fb54442d19p-53) - @test atan(Interval(0.0, +8.0)) == Interval(0.0, 0xb924fd54cb511p-51) - @test atan(Interval(0.0, Inf)) == Interval(0.0, 0x1921fb54442d19p-52) - # regular values - @test atan(Interval(-6.0, -4.0)) == Interval(-0x167d8863bc99bdp-52, -0x54da32547a73fp-50) - @test atan(Interval(-2.0, -0.5)) == Interval(-0x11b6e192ebbe45p-52, -0x1dac670561bb4fp-54) - @test atan(Interval(-1.0, -0.5)) == Interval(-0x1921fb54442d19p-53, -0x1dac670561bb4fp-54) - @test atan(Interval(-0.75, -0.25)) == Interval(-0xa4bc7d1934f71p-52, -0x1f5b75f92c80ddp-55) - @test atan(Interval(-0.5, 0.5)) == Interval(-0x1dac670561bb5p-50, 0x1dac670561bb5p-50) - @test atan(Interval(0.25, 0.625)) == Interval(0x1f5b75f92c80ddp-55, 0x47802eaf7bfadp-51) - @test atan(Interval(-1.0, 1.0)) == Interval(-0x1921fb54442d19p-53, 0x1921fb54442d19p-53) - @test atan(Interval(0.125, 17.0)) == Interval(0x1fd5ba9aac2f6dp-56, 0x1831516233f561p-52) - @test atan(Interval(17.0, 42.0)) == Interval(0xc18a8b119fabp-47, 0x18c079f3350d27p-52) - @test atan(Interval(-42.0, 17.0)) == Interval(-0x18c079f3350d27p-52, 0x1831516233f561p-52) -end - -@testset "mpfi_atan" begin - # special values - @test atan(Interval(-Inf, -7.0), Interval(-1.0, +8.0)) == Interval(-0x6d9cc4b34bd0dp-50, -0x1700a7c5784633p-53) - @test atan(Interval(-Inf, 0.0), Interval(+8.0, Inf)) == Interval(-0x1921fb54442d19p-52, 0.0) - @test atan(Interval(-Inf, +8.0), Interval(0.0, +8.0)) == Interval(-0x1921fb54442d19p-52, 0x1921fb54442d19p-52) - @test atan(entireinterval(Float64), Interval(0.0, +8.0)) == Interval(-0x1921fb54442d19p-52, 0x1921fb54442d19p-52) - @test atan(Interval(0.0, 0.0), Interval(-Inf, -7.0)) == Interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51) - @test atan(Interval(0.0, +8.0), Interval(-7.0, 0.0)) == Interval(0x3243f6a8885a3p-49, 0x1921fb54442d19p-51) - @test atan(Interval(0.0, 0.0), Interval(0.0, +8.0)) == Interval(0.0, 0.0) - @test atan(Interval(0.0, Inf), Interval(0.0, +8.0)) == Interval(0.0, 0x1921fb54442d19p-52) - @test atan(Interval(0.0, 0.0), Interval(+8.0, Inf)) == Interval(0.0, 0.0) - @test atan(Interval(0.0, 0.0), entireinterval(Float64)) == Interval(0.0, 0x1921fb54442d19p-51) - @test atan(Interval(0.0, +8.0), Interval(-7.0, +8.0)) == Interval(0.0, 0x1921fb54442d19p-51) - @test atan(Interval(0.0, 0.0), Interval(0.0, 0.0)) == ∅ - @test atan(Interval(0.0, Inf), Interval(0.0, +8.0)) == Interval(0.0, 0x1921fb54442d19p-52) - # regular values - @test atan(Interval(-17.0, -5.0), Interval(-4002.0, -1.0)) == Interval(-0x191f6c4c09a81bp-51, -0x1a12a5465464cfp-52) - @test atan(Interval(-17.0, -5.0), Interval(1.0, 4002.0)) == Interval(-0x1831516233f561p-52, -0xa3c20ea13f5e5p-61) - @test atan(Interval(5.0, 17.0), Interval(1.0, 4002.0)) == Interval(0xa3c20ea13f5e5p-61, 0x1831516233f561p-52) - @test atan(Interval(5.0, 17.0), Interval(-4002.0, -1.0)) == Interval(0x1a12a5465464cfp-52, 0x191f6c4c09a81bp-51) - @test atan(Interval(-17.0, 5.0), Interval(-4002.0, 1.0)) == Interval(-0x1921fb54442d19p-51, 0x1921fb54442d19p-51) -end - -@testset "mpfi_atanh" begin - # special values - @test atanh(Interval(-1.0, 0.0)) == Interval(-Inf, 0.0) - @test atanh(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test atanh(Interval(0.0, +1.0)) == Interval(0.0, Inf) - # regular values - @test atanh(Interval(-1.0, -0.5)) == Interval(-Inf, -0x8c9f53d568185p-52) - @test atanh(Interval(-0.75, -0.25)) == Interval(-0x3e44e55c64b4bp-50, -0x1058aefa811451p-54) - @test atanh(Interval(-0.5, 0.5)) == Interval(-0x1193ea7aad030bp-53, 0x1193ea7aad030bp-53) - @test atanh(Interval(0.25, 0.625)) == Interval(0x1058aefa811451p-54, 0x2eec3bb76c2b3p-50) - @test atanh(Interval(-1.0, 1.0)) == entireinterval(Float64) - @test atanh(Interval(0.125, 1.0)) == Interval(0x1015891c9eaef7p-55, Inf) -end - -@testset "mpfi_bounded_p" begin - # special values - @test iscommon(Interval(-Inf, -8.0)) == false - @test iscommon(Interval(-Inf, 0.0)) == false - @test iscommon(Interval(-Inf, 5.0)) == false - @test iscommon(entireinterval(Float64)) == false - @test iscommon(Interval(-8.0, 0.0)) - @test iscommon(Interval(0.0, 0.0)) - @test iscommon(Interval(0.0, 5.0)) - @test iscommon(Interval(0.0, Inf)) == false - @test iscommon(Interval(5.0, Inf)) == false - # regular values - @test iscommon(Interval(-34.0, -17.0)) - @test iscommon(Interval(-8.0, -1.0)) - @test iscommon(Interval(-34.0, 17.0)) - @test iscommon(Interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) - @test iscommon(Interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) - @test iscommon(Interval(+8.0, +0x7fffffffffffbp+51)) - @test iscommon(Interval(+0x1fffffffffffffp-53, 2.0)) -end - -@testset "mpfi_cbrt" begin - # special values - @test cbrt(Interval(-Inf, -125.0)) == Interval(-Inf, -5.0) - @test cbrt(Interval(-Inf, 0.0)) == Interval(-Inf, 0.0) - @test cbrt(Interval(-Inf, +64.0)) == Interval(-Inf, +4.0) - @test cbrt(entireinterval(Float64)) == entireinterval(Float64) - @test cbrt(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test cbrt(Interval(0.0, +27.0)) == Interval(0.0, +3.0) - @test cbrt(Interval(0.0, Inf)) == Interval(0.0, Inf) - # regular values - @test cbrt(Interval(0x40p0, 0x7dp0)) == Interval(4.0, 5.0) - @test cbrt(Interval(-0x1856e4be527197p-354, 0xd8p0)) == Interval(-0x2e5e58c0083b7bp-154, 6.0) - @test cbrt(Interval(0x141a9019a2184dp-1047, 0xc29c78c66ac0fp-678)) == Interval(0x2b8172e535d44dp-385, 0x24cbd1c55aaa1p-258) -end - -@testset "mpfi_cos" begin - # special values - @test cos(Interval(-Inf, -7.0)) == Interval(-1.0, 1.0) - @test cos(Interval(-Inf, 0.0)) == Interval(-1.0, 1.0) - @test cos(Interval(-Inf, +8.0)) == Interval(-1.0, 1.0) - @test cos(entireinterval(Float64)) == Interval(-1.0, 1.0) - @test cos(Interval(-1.0, 0.0)) == Interval(0x114a280fb5068bp-53, 1.0) - @test cos(Interval(0.0, 0.0)) == Interval(1.0, 1.0) - @test cos(Interval(0.0, +1.0)) == Interval(0x114a280fb5068bp-53, 1.0) - @test cos(Interval(0.0, +8.0)) == Interval(-1.0, 1.0) - @test cos(Interval(0.0, Inf)) == Interval(-1.0, 1.0) - # regular values - @test cos(Interval(-2.0, -0.5)) == Interval(-0x1aa22657537205p-54, 0x1c1528065b7d5p-49) - @test cos(Interval(-1.0, -0.25)) == Interval(0x114a280fb5068bp-53, 0xf80aa4fbef751p-52) - @test cos(Interval(-0.5, 0.5)) == Interval(0x1c1528065b7d4fp-53, 1.0) - @test cos(Interval(-4.5, 0.625)) == Interval(-1.0, 1.0) - @test cos(Interval(1.0, 0x3243f6a8885a3p-48)) == Interval(-1.0, 0x4528a03ed41a3p-51) - @test cos(Interval(0.125, 17.0)) == Interval(-1.0, 1.0) - @test cos(Interval(17.0, 42.0)) == Interval(-1.0, 1.0) - @test cos(Interval(-7.0, 1.0)) == Interval(-1.0, 1.0) - @test cos(Interval(-7.0, 0.0)) == Interval(-1.0, 1.0) - @test cos(Interval(-7.0, -1.0)) == Interval(-1.0, 1.0) - @test cos(Interval(-7.0, -2.0)) == Interval(-1.0, 1.0) - @test cos(Interval(-7.0, -3.0)) == Interval(-1.0, 1.0) - @test cos(Interval(-7.0, -4.0)) == Interval(-0x14eaa606db24c1p-53, 1.0) - @test cos(Interval(-7.0, -5.0)) == Interval(0x122785706b4ad9p-54, 1.0) - @test cos(Interval(-7.0, -6.0)) == Interval(0x181ff79ed92017p-53, 1.0) - @test cos(Interval(-7.0, -7.0)) == Interval(0x181ff79ed92017p-53, 0x181ff79ed92018p-53) - @test cos(Interval(-6.0, 1.0)) == Interval(-1.0, 1.0) - @test cos(Interval(-6.0, 0.0)) == Interval(-1.0, 1.0) - @test cos(Interval(-6.0, -1.0)) == Interval(-1.0, 0x1eb9b7097822f6p-53) - @test cos(Interval(-6.0, -2.0)) == Interval(-1.0, 0x1eb9b7097822f6p-53) - @test cos(Interval(-6.0, -3.0)) == Interval(-1.0, 0x1eb9b7097822f6p-53) - @test cos(Interval(-6.0, -4.0)) == Interval(-0x14eaa606db24c1p-53, 0x1eb9b7097822f6p-53) - @test cos(Interval(-6.0, -5.0)) == Interval(0x122785706b4ad9p-54, 0x1eb9b7097822f6p-53) - @test cos(Interval(-6.0, -6.0)) == Interval(0x1eb9b7097822f5p-53, 0x1eb9b7097822f6p-53) - @test cos(Interval(-5.0, 1.0)) == Interval(-1.0, 1.0) - @test cos(Interval(-5.0, 0.0)) == Interval(-1.0, 1.0) - @test cos(Interval(-5.0, -1.0)) == Interval(-1.0, 0x114a280fb5068cp-53) - @test cos(Interval(-5.0, -2.0)) == Interval(-1.0, 0x122785706b4adap-54) - @test cos(Interval(-5.0, -3.0)) == Interval(-1.0, 0x122785706b4adap-54) - @test cos(Interval(-5.0, -4.0)) == Interval(-0x14eaa606db24c1p-53, 0x122785706b4adap-54) - @test cos(Interval(-5.0, -5.0)) == Interval(0x122785706b4ad9p-54, 0x122785706b4adap-54) - @test cos(Interval(-4.0, 1.0)) == Interval(-1.0, 1.0) - @test cos(Interval(-4.0, 0.0)) == Interval(-1.0, 1.0) - @test cos(Interval(-4.0, -1.0)) == Interval(-1.0, 0x114a280fb5068cp-53) - @test cos(Interval(-4.0, -2.0)) == Interval(-1.0, -0x1aa22657537204p-54) - @test cos(Interval(-4.0, -3.0)) == Interval(-1.0, -0x14eaa606db24c0p-53) - @test cos(Interval(-4.0, -4.0)) == Interval(-0x14eaa606db24c1p-53, -0x14eaa606db24c0p-53) -end - -@testset "mpfi_cosh" begin - # special values - @test cosh(Interval(-Inf, -7.0)) == Interval(0x11228949ba3a8bp-43, Inf) - @test cosh(Interval(-Inf, 0.0)) == Interval(1.0, Inf) - @test cosh(Interval(-Inf, +8.0)) == Interval(1.0, Inf) - @test cosh(entireinterval(Float64)) == Interval(1.0, Inf) - @test cosh(Interval(-1.0, 0.0)) == Interval(1.0, 0x18b07551d9f551p-52) - @test cosh(Interval(0.0, 0.0)) == Interval(1.0, 1.0) - @test cosh(Interval(0.0, +1.0)) == Interval(1.0, 0x18b07551d9f551p-52) - @test cosh(Interval(0.0, +8.0)) == Interval(1.0, 0x1749eaa93f4e77p-42) - @test cosh(Interval(0.0, Inf)) == Interval(1.0, Inf) - # regular values - @test cosh(Interval(-0.125, 0.0)) == Interval(1.0, 0x10200aac16db6fp-52) - @test cosh(Interval(0.0, 0x10000000000001p-53)) == Interval(1.0, 0x120ac1862ae8d1p-52) - @test cosh(Interval(-4.5, -0.625)) == Interval(0x99d310a496b6dp-51, 0x1681ceb0641359p-47) - @test cosh(Interval(1.0, 3.0)) == Interval(0x18b07551d9f55p-48, 0x1422a497d6185fp-49) - @test cosh(Interval(17.0, 0xb145bb71d3dbp-38)) == Interval(0x1709348c0ea503p-29, 0x3ffffffffffa34p+968) -end - -@testset "mpfi_cot" begin - # special values - @test cot(Interval(-Inf, -7.0)) == entireinterval(Float64) - @test cot(Interval(-Inf, 0.0)) == entireinterval(Float64) - @test cot(Interval(-Inf, +8.0)) == entireinterval(Float64) - @test cot(entireinterval(Float64)) == entireinterval(Float64) - @test cot(Interval(-8.0, 0.0)) == entireinterval(Float64) - @test cot(Interval(-3.0, 0.0)) == Interval(-Inf, 0xe07cf2eb32f0bp-49) - @test cot(Interval(-1.0, 0.0)) == Interval(-Inf, -0x148c05d04e1cfdp-53) - @test cot(Interval(0.0, +1.0)) == Interval(0x148c05d04e1cfdp-53, Inf) - @test cot(Interval(0.0, +3.0)) == Interval(-0xe07cf2eb32f0bp-49, Inf) - @test cot(Interval(0.0, +8.0)) == entireinterval(Float64) - @test cot(Interval(0.0, Inf)) == entireinterval(Float64) - # regular values - @test cot(Interval(-3.0, -2.0)) == Interval(0x1d4a42e92faa4dp-54, 0xe07cf2eb32f0bp-49) - @test cot(Interval(-3.0, -0x1921fb54442d19p-52)) == Interval(0x5cb3b399d747fp-103, 0xe07cf2eb32f0bp-49) - @test cot(Interval(-2.0, 0x1921fb54442d19p-52)) == entireinterval(Float64) - @test cot(Interval(0.125, 0.5)) == Interval(0xea4d6bf23e051p-51, 0x1fd549f047f2bbp-50) - @test cot(Interval(0.125, 0x1921fb54442d19p-52)) == Interval(-0x172cece675d1fdp-105, 0x1fd549f047f2bbp-50) - @test cot(Interval(0x1921fb54442d19p-52, 4.0)) == entireinterval(Float64) - @test cot(Interval(4.0, 0x3243f6a8885a3p-47)) == Interval(-0x1d02967c31cdb5p-1, 0x1ba35ba1c6b75dp-53) - @test cot(Interval(0x13a28c59d5433bp-44, 0x9d9462ceaa19dp-43)) == Interval(0x148c05d04e1fb7p-53, 0x1cefdde7c84c27p-4) -end - -@testset "mpfi_coth" begin - # special values - @test coth(Interval(-Inf, -7.0)) == Interval(-0x100001be6c882fp-52, -1.0) - @test coth(Interval(-Inf, 0.0)) == Interval(-Inf, -1.0) - @test coth(Interval(-Inf, +8.0)) == entireinterval(Float64) - @test coth(entireinterval(Float64)) == entireinterval(Float64) - @test coth(Interval(-8.0, 0.0)) == Interval(-Inf, -0x1000003c6ab7e7p-52) - @test coth(Interval(-3.0, 0.0)) == Interval(-Inf, -0x10145b3cc9964bp-52) - @test coth(Interval(-1.0, 0.0)) == Interval(-Inf, -0x150231499b6b1dp-52) - @test coth(Interval(0.0, 0.0)) == ∅ - @test coth(Interval(0.0, +1.0)) == Interval(0x150231499b6b1dp-52, Inf) - @test coth(Interval(0.0, +3.0)) == Interval(0x10145b3cc9964bp-52, Inf) - @test coth(Interval(0.0, +8.0)) == Interval(0x1000003c6ab7e7p-52, Inf) - @test coth(Interval(0.0, Inf)) == Interval(1.0, Inf) - # regular values - @test coth(Interval(-3.0, 2.0)) == entireinterval(Float64) - @test coth(Interval(-10.0, -8.0)) == Interval(-0x1000003c6ab7e8p-52, -0x100000011b4865p-52) - @test coth(Interval(7.0, 17.0)) == Interval(0x1000000000000fp-52, 0x100001be6c882fp-52) - @test coth(Interval(0x10000000000001p-58, 0x10000000000001p-53)) == Interval(0x114fc6ceb099bdp-51, 0x10005554fa502fp-46) -end - -@testset "mpfi_csc" begin - # special values - @test csc(Interval(-Inf, -7.0)) == entireinterval(Float64) - @test csc(Interval(-Inf, 0.0)) == entireinterval(Float64) - @test csc(Interval(-Inf, 8.0)) == entireinterval(Float64) - @test csc(entireinterval(Float64)) == entireinterval(Float64) - @test csc(Interval(-8.0, 0.0)) == entireinterval(Float64) - @test csc(Interval(-3.0, 0.0)) == Interval(-Inf, -1.0) - @test csc(Interval(-1.0, 0.0)) == Interval(-Inf, -0x1303aa9620b223p-52) - @test csc(Interval(0.0, 0.0)) == ∅ - @test csc(Interval(0.0, +1.0)) == Interval(0x1303aa9620b223p-52, Inf) - @test csc(Interval(0.0, 3.0)) == Interval(1.0, Inf) - @test csc(Interval(0.0, 8.0)) == entireinterval(Float64) - @test csc(Interval(0.0, Inf)) == entireinterval(Float64) - # regular values - @test csc(Interval(-6.0, 7.0)) == entireinterval(Float64) - @test csc(Interval(-6.0, 6.0)) == entireinterval(Float64) - @test csc(Interval(-6.0, 5.0)) == entireinterval(Float64) - @test csc(Interval(-6.0, 4.0)) == entireinterval(Float64) - @test csc(Interval(-6.0, 3.0)) == entireinterval(Float64) - @test csc(Interval(-6.0, 2.0)) == entireinterval(Float64) - @test csc(Interval(-6.0, 1.0)) == entireinterval(Float64) - @test csc(Interval(-6.0, 0.0)) == entireinterval(Float64) - @test csc(Interval(-6.0, -1.0)) == entireinterval(Float64) - @test csc(Interval(-6.0, -2.0)) == entireinterval(Float64) - @test csc(Interval(-6.0, -3.0)) == entireinterval(Float64) - @test csc(Interval(-6.0, -4.0)) == Interval(1.0, 0x1ca19615f903dap-51) - @test csc(Interval(-6.0, -5.0)) == Interval(0x10af73f9df86b7p-52, 0x1ca19615f903dap-51) - @test csc(Interval(-6.0, -6.0)) == Interval(0x1ca19615f903d9p-51, 0x1ca19615f903dap-51) - @test csc(Interval(-5.0, 7.0)) == entireinterval(Float64) - @test csc(Interval(-5.0, 6.0)) == entireinterval(Float64) - @test csc(Interval(-5.0, 5.0)) == entireinterval(Float64) - @test csc(Interval(-5.0, 4.0)) == entireinterval(Float64) - @test csc(Interval(-5.0, 3.0)) == entireinterval(Float64) - @test csc(Interval(-5.0, 2.0)) == entireinterval(Float64) - @test csc(Interval(-5.0, 1.0)) == entireinterval(Float64) - @test csc(Interval(-5.0, 0.0)) == entireinterval(Float64) - @test csc(Interval(-5.0, -1.0)) == entireinterval(Float64) - @test csc(Interval(-5.0, -2.0)) == entireinterval(Float64) - @test csc(Interval(-5.0, -3.0)) == entireinterval(Float64) - @test csc(Interval(-5.0, -4.0)) == Interval(1.0, 0x15243e8b2f4642p-52) - @test csc(Interval(-5.0, -5.0)) == Interval(0x10af73f9df86b7p-52, 0x10af73f9df86b8p-52) - @test csc(Interval(-4.0, 7.0)) == entireinterval(Float64) - @test csc(Interval(-4.0, 6.0)) == entireinterval(Float64) - @test csc(Interval(-4.0, 5.0)) == entireinterval(Float64) - @test csc(Interval(-4.0, 4.0)) == entireinterval(Float64) - @test csc(Interval(-4.0, 3.0)) == entireinterval(Float64) - @test csc(Interval(-4.0, 2.0)) == entireinterval(Float64) - @test csc(Interval(-4.0, 1.0)) == entireinterval(Float64) - @test csc(Interval(-4.0, 0.0)) == entireinterval(Float64) - @test csc(Interval(-4.0, -1.0)) == entireinterval(Float64) - @test csc(Interval(-4.0, -2.0)) == entireinterval(Float64) - @test csc(Interval(-4.0, -3.0)) == entireinterval(Float64) - @test csc(Interval(-4.0, -4.0)) == Interval(0x15243e8b2f4641p-52, 0x15243e8b2f4642p-52) - @test csc(Interval(-3.0, 7.0)) == entireinterval(Float64) - @test csc(Interval(-3.0, 6.0)) == entireinterval(Float64) - @test csc(Interval(-3.0, 5.0)) == entireinterval(Float64) - @test csc(Interval(-3.0, 4.0)) == entireinterval(Float64) - @test csc(Interval(-3.0, 3.0)) == entireinterval(Float64) - @test csc(Interval(-3.0, 2.0)) == entireinterval(Float64) - @test csc(Interval(-3.0, 1.0)) == entireinterval(Float64) - @test csc(Interval(-3.0, 0.0)) == Interval(-Inf, -1.0) - @test csc(Interval(-3.0, -1.0)) == Interval(-0x1c583c440ab0dap-50, -1.0) - @test csc(Interval(-3.0, -2.0)) == Interval(-0x1c583c440ab0dap-50, -0x119893a272f912p-52) - @test csc(Interval(-3.0, -3.0)) == Interval(-0x1c583c440ab0dap-50, -0x1c583c440ab0d9p-50) - @test csc(Interval(-2.0, 7.0)) == entireinterval(Float64) - @test csc(Interval(-2.0, 6.0)) == entireinterval(Float64) - @test csc(Interval(-2.0, 5.0)) == entireinterval(Float64) - @test csc(Interval(-2.0, 4.0)) == entireinterval(Float64) - @test csc(Interval(-2.0, 3.0)) == entireinterval(Float64) - @test csc(Interval(-2.0, 2.0)) == entireinterval(Float64) - @test csc(Interval(-2.0, 1.0)) == entireinterval(Float64) - @test csc(Interval(-2.0, 0.0)) == Interval(-Inf, -1.0) - @test csc(Interval(-2.0, -1.0)) == Interval(-0x1303aa9620b224p-52, -1.0) - @test csc(Interval(-2.0, -2.0)) == Interval(-0x119893a272f913p-52, -0x119893a272f912p-52) - @test csc(Interval(-1.0, 7.0)) == entireinterval(Float64) - @test csc(Interval(-1.0, 6.0)) == entireinterval(Float64) - @test csc(Interval(-1.0, 5.0)) == entireinterval(Float64) - @test csc(Interval(-1.0, 4.0)) == entireinterval(Float64) - @test csc(Interval(-1.0, 3.0)) == entireinterval(Float64) - @test csc(Interval(-1.0, 2.0)) == entireinterval(Float64) - @test csc(Interval(-1.0, 1.0)) == entireinterval(Float64) - @test csc(Interval(-1.0, 0.0)) == Interval(-Inf, -0x1303aa9620b223p-52) - @test csc(Interval(-1.0, -1.0)) == Interval(-0x1303aa9620b224p-52, -0x1303aa9620b223p-52) - @test csc(Interval(1.0, 7.0)) == entireinterval(Float64) - @test csc(Interval(1.0, 6.0)) == entireinterval(Float64) - @test csc(Interval(1.0, 5.0)) == entireinterval(Float64) - @test csc(Interval(1.0, 4.0)) == entireinterval(Float64) - @test csc(Interval(1.0, 3.0)) == Interval(1.0, 0x1c583c440ab0dap-50) - @test csc(Interval(1.0, 2.0)) == Interval(1.0, 0x1303aa9620b224p-52) - @test csc(Interval(1.0, 1.0)) == Interval(0x1303aa9620b223p-52, 0x1303aa9620b224p-52) - @test csc(Interval(2.0, 7.0)) == entireinterval(Float64) - @test csc(Interval(2.0, 6.0)) == entireinterval(Float64) - @test csc(Interval(2.0, 5.0)) == entireinterval(Float64) - @test csc(Interval(2.0, 4.0)) == entireinterval(Float64) - @test csc(Interval(2.0, 3.0)) == Interval(0x119893a272f912p-52, 0x1c583c440ab0dap-50) - @test csc(Interval(2.0, 2.0)) == Interval(0x119893a272f912p-52, 0x119893a272f913p-52) - @test csc(Interval(3.0, 7.0)) == entireinterval(Float64) - @test csc(Interval(3.0, 6.0)) == entireinterval(Float64) - @test csc(Interval(3.0, 5.0)) == entireinterval(Float64) - @test csc(Interval(3.0, 4.0)) == entireinterval(Float64) - @test csc(Interval(3.0, 3.0)) == Interval(0x1c583c440ab0d9p-50, 0x1c583c440ab0dap-50) - @test csc(Interval(4.0, 7.0)) == entireinterval(Float64) - @test csc(Interval(4.0, 6.0)) == Interval(-0x1ca19615f903dap-51, -1.0) - @test csc(Interval(4.0, 5.0)) == Interval(-0x15243e8b2f4642p-52, -1.0) - @test csc(Interval(4.0, 4.0)) == Interval(-0x15243e8b2f4642p-52, -0x15243e8b2f4641p-52) - @test csc(Interval(5.0, 7.0)) == entireinterval(Float64) - @test csc(Interval(5.0, 6.0)) == Interval(-0x1ca19615f903dap-51, -0x10af73f9df86b7p-52) - @test csc(Interval(5.0, 5.0)) == Interval(-0x10af73f9df86b8p-52, -0x10af73f9df86b7p-52) - @test csc(Interval(6.0, 7.0)) == entireinterval(Float64) - @test csc(Interval(6.0, 6.0)) == Interval(-0x1ca19615f903dap-51, -0x1ca19615f903d9p-51) - @test csc(Interval(7.0, 7.0)) == Interval(+0x185a86a4ceb06cp-52, +0x185a86a4ceb06dp-52) -end - -@testset "mpfi_csch" begin - # special values - @test csch(Interval(-Inf, -7.0)) == Interval(-0x1de16d3cffcd54p-62, 0.0) - @test csch(Interval(-Inf, 0.0)) == Interval(-Inf, 0.0) - @test csch(Interval(-Inf, +8.0)) == entireinterval(Float64) - @test csch(entireinterval(Float64)) == entireinterval(Float64) - @test csch(Interval(-8.0, 0.0)) == Interval(-Inf, -0x15fc212d92371ap-63) - @test csch(Interval(-3.0, 0.0)) == Interval(-Inf, -0x198de80929b901p-56) - @test csch(Interval(-1.0, 0.0)) == Interval(-Inf, -0x1b3ab8a78b90c0p-53) - @test csch(Interval(0.0, 0.0)) == ∅ - @test csch(Interval(0.0, +1.0)) == Interval(0x1b3ab8a78b90c0p-53, Inf) - @test csch(Interval(0.0, +3.0)) == Interval(0x198de80929b901p-56, Inf) - @test csch(Interval(0.0, +8.0)) == Interval(0x15fc212d92371ap-63, Inf) - @test csch(Interval(0.0, Inf)) == Interval(0.0, Inf) - # regular values - @test csch(Interval(-3.0, 2.0)) == entireinterval(Float64) - @test csch(Interval(-10.0, -8.0)) == Interval(-0x15fc212d92371bp-63, -0x17cd79b63733a0p-66) - @test csch(Interval(7.0, 17.0)) == Interval(0x1639e3175a68a7p-76, 0x1de16d3cffcd54p-62) - @test csch(Interval(0x10000000000001p-58, 0x10000000000001p-53)) == Interval(0x1eb45dc88defeap-52, 0x3fff555693e722p-48) -end - -@testset "mpfi_d_div" begin - # special values - @test Interval(-0x170ef54646d496p-107, -0x170ef54646d496p-107) / Interval(-Inf, -7.0) == Interval(0.0, 0x1a5a3ce29a1787p-110) - @test Interval(0.0, 0.0) / Interval(-Inf, -7.0) == Interval(0.0, 0.0) - @test Interval(0x170ef54646d496p-107, 0x170ef54646d496p-107) / Interval(-Inf, -7.0) == Interval(-0x1a5a3ce29a1787p-110, 0.0) - @test Interval(-0x170ef54646d497p-106, -0x170ef54646d497p-106) / Interval(-Inf, 0.0) == Interval(0.0, Inf) - @test Interval(0.0, 0.0) / Interval(-Inf, 0.0) == Interval(0.0, 0.0) - @test Interval(0x170ef54646d497p-106, 0x170ef54646d497p-106) / Interval(-Inf, 0.0) == Interval(-Inf, 0.0) - @test Interval(-0x16345785d8a00000p0, -0x16345785d8a00000p0) / Interval(-Inf, 8.0) == entireinterval(Float64) - @test Interval(0.0, 0.0) / Interval(-Inf, 8.0) == Interval(0.0, 0.0) - @test Interval(0x16345785d8a00000p0, 0x16345785d8a00000p0) / Interval(-Inf, 8.0) == entireinterval(Float64) - @test Interval(-0x170ef54646d497p-105, -0x170ef54646d497p-105) / entireinterval(Float64) == entireinterval(Float64) - @test Interval(0.0e-17, 0.0e-17) / entireinterval(Float64) == Interval(0.0, 0.0) - @test Interval(+0x170ef54646d497p-105, +0x170ef54646d497p-105) / entireinterval(Float64) == entireinterval(Float64) - @test Interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109) / Interval(0.0, 0.0) == ∅ - @test Interval(0.0, 0.0) / Interval(0.0, 0.0) == ∅ - @test Interval(0x170ef54646d497p-109, 0x170ef54646d497p-109) / Interval(0.0, 0.0) == ∅ - @test Interval(-0x114b37f4b51f71p-107, -0x114b37f4b51f71p-107) / Interval(0.0, 7.0) == Interval(-Inf, -0x13c3ada9f391a5p-110) - @test Interval(0.0, 0.0) / Interval(0.0, 7.0) == Interval(0.0, 0.0) - @test Interval(0x114b37f4b51f71p-107, 0x114b37f4b51f71p-107) / Interval(0.0, 7.0) == Interval(0x13c3ada9f391a5p-110, Inf) - @test Interval(-0x50b45a75f7e81p-104, -0x50b45a75f7e81p-104) / Interval(0.0, Inf) == Interval(-Inf, 0.0) - @test Interval(0.0, 0.0) / Interval(0.0, Inf) == Interval(0.0, 0.0) - @test Interval(0x142d169d7dfa03p-106, 0x142d169d7dfa03p-106) / Interval(0.0, Inf) == Interval(0.0, Inf) - # regular values - @test Interval(-2.5, -2.5) / Interval(-8.0, 8.0) == entireinterval(Float64) - @test Interval(-2.5, -2.5) / Interval(-8.0, -5.0) == Interval(0x5p-4, 0.5) - @test Interval(-2.5, -2.5) / Interval(25.0, 40.0) == Interval(-0x1999999999999ap-56, -0x1p-4) - @test Interval(-2.5, -2.5) / Interval(-16.0, -7.0) == Interval(0x5p-5, 0x16db6db6db6db7p-54) - @test Interval(-2.5, -2.5) / Interval(11.0, 143.0) == Interval(-0x1d1745d1745d18p-55, -0x11e6efe35b4cfap-58) - @test Interval(33.125, 33.125) / Interval(8.28125, 530.0) == Interval(0x1p-4, 4.0) - @test Interval(33.125, 33.125) / Interval(-530.0, -496.875) == Interval(-0x11111111111112p-56, -0x1p-4) - @test Interval(33.125, 33.125) / Interval(54.0, 265.0) == Interval(0.125, 0x13a12f684bda13p-53) - @test Interval(33.125, 33.125) / Interval(52.0, 54.0) == Interval(0x13a12f684bda12p-53, 0x14627627627628p-53) -end - -@testset "mpfi_diam_abs" begin - # special values - @test diam(Interval(-Inf, -8.0)) == Inf - @test diam(Interval(-Inf, 0.0)) == Inf - @test diam(Interval(-Inf, 5.0)) == Inf - @test diam(entireinterval(Float64)) == Inf - @test diam(Interval(-Inf, 0.0)) == Inf - @test diam(Interval(-8.0, 0.0)) == +8 - @test diam(Interval(0.0, 0.0)) == -0 - @test diam(Interval(0.0, 5.0)) == +5 - @test diam(Interval(0.0, Inf)) == Inf - # regular values - @test diam(Interval(-34.0, -17.0)) == 17 -end - -@testset "mpfi_div" begin - # special values - @test Interval(-Inf, -7.0) / Interval(-1.0, +8.0) == entireinterval(Float64) - @test Interval(-Inf, 0.0) / Interval(+8.0, Inf) == Interval(-Inf, 0.0) - @test Interval(-Inf, +8.0) / Interval(0.0, +8.0) == entireinterval(Float64) - @test entireinterval(Float64) / Interval(0.0, +8.0) == entireinterval(Float64) - @test Interval(0.0, 0.0) / Interval(-Inf, -7.0) == Interval(0.0, 0.0) - @test Interval(0.0, +8.0) / Interval(-7.0, 0.0) == Interval(-Inf, 0.0) - @test Interval(0.0, 0.0) / Interval(0.0, +8.0) == Interval(0.0, 0.0) - @test Interval(0.0, Inf) / Interval(0.0, +8.0) == Interval(0.0, Inf) - @test Interval(0.0, 0.0) / Interval(+8.0, Inf) == Interval(0.0, 0.0) - @test Interval(0.0, 0.0) / entireinterval(Float64) == Interval(0.0, 0.0) - @test Interval(0.0, +8.0) / Interval(-7.0, +8.0) == entireinterval(Float64) - @test Interval(0.0, Inf) / Interval(0.0, +8.0) == Interval(0.0, Inf) - # regular value - @test Interval(-0x75bcd15p0, -0x754ep0) / Interval(-0x11ep0, -0x9p0) == Interval(0x69p0, 0xd14fadp0) - @test Interval(-0x75bcd15p0, -0x1.489c07caba163p-4) / Interval(-0x2.e8e36e560704ap+4, -0x9p0) == Interval(0x7.0ef61537b1704p-12, 0xd14fadp0) - @test Interval(-0x1.02f0415f9f596p+0, -0x754ep-16) / Interval(-0x11ep0, -0x7.62ce64fbacd2cp-8) == Interval(0x69p-16, 0x2.30ee5eef9c36cp+4) - @test Interval(-0x1.02f0415f9f596p+0, -0x1.489c07caba163p-4) / Interval(-0x2.e8e36e560704ap+0, -0x7.62ce64fbacd2cp-8) == Interval(0x7.0ef61537b1704p-8, 0x2.30ee5eef9c36cp+4) - @test Interval(-0xacbp+256, -0x6f9p0) / Interval(-0x7p0, 0.0) == Interval(0xffp0, Inf) - @test Interval(-0x100p0, -0xe.bb80d0a0824ep-4) / Interval(-0x1.7c6d760a831fap+0, 0.0) == Interval(0x9.e9f24790445fp-4, Inf) - @test Interval(-0x1.25f2d73472753p+0, -0x9.9a19fd3c1fc18p-4) / Interval(-0x9.3b0c8074ccc18p-4, +0x4.788df5d72af78p-4) == entireinterval(Float64) - @test Interval(-100.0, -15.0) / Interval(0.0, +3.0) == Interval(-Inf, -5.0) - @test Interval(-2.0, -0x1.25f2d73472753p+0) / Interval(0.0, +0x9.3b0c8074ccc18p-4) == Interval(-Inf, -0x1.fd8457415f917p+0) - @test Interval(-0x123456789p0, -0x754ep+4) / Interval(0x40bp0, 0x11ep+4) == Interval(-0x480b3bp0, -0x69p0) - @test Interval(-0xd.67775e4b8588p-4, -0x754ep-53) / Interval(0x4.887091874ffc8p+0, 0x11ep+201) == Interval(-0x2.f5008d2df94ccp-4, -0x69p-254) - @test Interval(-0x123456789p0, -0x1.b0a62934c76e9p+0) / Interval(0x40bp-17, 0x2.761ec797697a4p-4) == Interval(-0x480b3bp+17, -0xa.fc5e7338f3e4p+0) - @test Interval(-0xd.67775e4b8588p+0, -0x1.b0a62934c76e9p+0) / Interval(0x4.887091874ffc8p-4, 0x2.761ec797697a4p+4) == Interval(-0x2.f5008d2df94ccp+4, -0xa.fc5e7338f3e4p-8) - @test Interval(-0x75bcd15p0, 0.0) / Interval(-0x90p0, -0x9p0) == Interval(0.0, 0xd14fadp0) - @test Interval(-0x1.4298b2138f2a7p-4, 0.0) / Interval(-0x1p-8, -0xf.5e4900c9c19fp-12) == Interval(0.0, 0x1.4fdb41a33d6cep+4) - @test Interval(-0xeeeeeeeeep0, 0.0) / Interval(-0xaaaaaaaaap0, 0.0) == Interval(0.0, Inf) - @test Interval(-0x1.25f2d73472753p+0, 0.0) / Interval(-0x9.3b0c8074ccc18p-4, +0x4.788df5d72af78p-4) == entireinterval(Float64) - @test Interval(-0xeeeeeeeeep0, 0.0) / Interval(0.0, +0x3p0) == Interval(-Inf, 0.0) - @test Interval(-0x75bcd15p0, 0.0) / Interval(0x9p0, 0x90p0) == Interval(-0xd14fadp0, 0.0) - @test Interval(-0x1.4298b2138f2a7p-4, 0.0) / Interval(0xf.5e4900c9c19fp-12, 0x9p0) == Interval(-0x1.4fdb41a33d6cep+4, 0.0) - @test Interval(-0x75bcd15p0, 0xa680p0) / Interval(-0xaf6p0, -0x9p0) == Interval(-0x1280p0, 0xd14fadp0) - @test Interval(-0x12p0, 0x10p0) / Interval(-0xbbbbbbbbbbp0, -0x9p0) == Interval(-0x1.c71c71c71c71dp0, 2.0) - @test Interval(-0x1p0, 0x754ep-16) / Interval(-0xccccccccccp0, -0x11ep0) == Interval(-0x69p-16, 0xe.525982af70c9p-12) - @test Interval(-0xb.5b90b4d32136p-4, 0x6.e694ac6767394p+0) / Interval(-0xdddddddddddp0, -0xc.f459be9e80108p-4) == Interval(-0x8.85e40b3c3f63p+0, 0xe.071cbfa1de788p-4) - @test Interval(-0xacbp+256, 0x6f9p0) / Interval(-0x7p0, 0.0) == entireinterval(Float64) - @test Interval(-0x1.25f2d73472753p+0, +0x9.9a19fd3c1fc18p-4) / Interval(-0x9.3b0c8074ccc18p-4, +0x4.788df5d72af78p-4) == entireinterval(Float64) - @test Interval(0.0, +15.0) / Interval(-3.0, +3.0) == entireinterval(Float64) - @test Interval(-0x754ep0, 0xd0e9dc4p+12) / Interval(0x11ep0, 0xbbbp0) == Interval(-0x69p0, 0xbaffep+12) - @test Interval(-0x10p0, 0xd0e9dc4p+12) / Interval(0x11ep0, 0xbbbp0) == Interval(-0xe.525982af70c9p-8, 0xbaffep+12) - @test Interval(-0x754ep0, 0x1p+10) / Interval(0x11ep0, 0xbbbp0) == Interval(-0x69p0, 0xe.525982af70c9p-2) - @test Interval(-0x1.18333622af827p+0, 0x2.14b836907297p+0) / Interval(0x1.263147d1f4bcbp+0, 0x111p0) == Interval(-0xf.3d2f5db8ec728p-4, 0x1.cf8fa732de129p+0) - @test Interval(0.0, 0x75bcd15p0) / Interval(-0xap0, -0x9p0) == Interval(-0xd14fadp0, 0.0) - @test Interval(0.0, 0x1.acbf1702af6edp+0) / Interval(-0x0.fp0, -0xe.3d7a59e2bdacp-4) == Interval(-0x1.e1bb896bfda07p+0, 0.0) - @test Interval(0.0, 0xap0) / Interval(-0x9p0, 0.0) == Interval(-Inf, 0.0) - @test Interval(0.0, 0xap0) / Interval(-1.0, +1.0) == entireinterval(Float64) - @test Interval(0.0, 0x75bcd15p0) / Interval(+0x9p0, +0xap0) == Interval(0.0, 0xd14fadp0) - @test Interval(0.0, 0x1.5f6b03dc8c66fp+0) / Interval(+0x2.39ad24e812dcep+0, 0xap0) == Interval(0.0, 0x9.deb65b02baep-4) - @test Interval(0x754ep0, 0x75bcd15p0) / Interval(-0x11ep0, -0x9p0) == Interval(-0xd14fadp0, -0x69p0) - @test Interval(0x754ep-16, 0x1.008a3accc766dp+4) / Interval(-0x11ep0, -0x2.497403b31d32ap+0) == Interval(-0x7.02d3edfbc8b6p+0, -0x69p-16) - @test Interval(0x9.ac412ff1f1478p-4, 0x75bcd15p0) / Interval(-0x1.5232c83a0e726p+4, -0x9p0) == Interval(-0xd14fadp0, -0x7.52680a49e5d68p-8) - @test Interval(0xe.1552a314d629p-4, 0x1.064c5adfd0042p+0) / Interval(-0x5.0d4d319a50b04p-4, -0x2.d8f51df1e322ep-4) == Interval(-0x5.c1d97d57d81ccp+0, -0x2.c9a600c455f5ap+0) - @test Interval(0x754ep0, 0xeeeep0) / Interval(-0x11ep0, 0.0) == Interval(-Inf, -0x69p0) - @test Interval(0x1.a9016514490e6p-4, 0xeeeep0) / Interval(-0xe.316e87be0b24p-4, 0.0) == Interval(-Inf, -0x1.df1cc82e6a583p-4) - @test Interval(5.0, 6.0) / Interval(-0x5.0d4d319a50b04p-4, 0x2.d8f51df1e322ep-4) == entireinterval(Float64) - @test Interval(0x754ep0, +0xeeeeep0) / Interval(0.0, +0x11ep0) == Interval(0x69p0, Inf) - @test Interval(0x1.7f03f2a978865p+0, 0xeeeeep0) / Interval(0.0, 0x1.48b08624606b9p+0) == Interval(0x1.2a4fcda56843p+0, Inf) - @test Interval(0x5efc1492p0, 0x1ba2dc763p0) / Interval(0x2fdd1fp0, 0x889b71p0) == Interval(0xb2p0, 0x93dp0) - @test Interval(0x1.d7c06f9ff0706p-8, 0x1ba2dc763p0) / Interval(0x2fdd1fp-20, 0xe.3d7a59e2bdacp+0) == Interval(0x2.120d75be74b54p-12, 0x93dp+20) - @test Interval(0x5.efc1492p-4, 0x1.008a3accc766dp+0) / Interval(0x2.497403b31d32ap+0, 0x8.89b71p+0) == Interval(0xb.2p-8, 0x7.02d3edfbc8b6p-4) - @test Interval(0x8.440e7d65be6bp-8, 0x3.99982e9eae09ep+0) / Interval(0x8.29fa8d0659e48p-4, 0xc.13d2fd762e4a8p-4) == Interval(0xa.f3518768b206p-8, 0x7.0e2acad54859cp+0) -end - -@testset "mpfi_div_d" begin - # special values - @test Interval(-Inf, -7.0) / Interval(-7.0, -7.0) == Interval(1.0, Inf) - @test Interval(-Inf, -7.0) / Interval(0.0, 0.0) == ∅ - @test Interval(-Inf, -7.0) / Interval(7.0, 7.0) == Interval(-Inf, -1.0) - @test Interval(-Inf, 0.0) / Interval(-0x170ef54646d497p-106, -0x170ef54646d497p-106) == Interval(0.0, Inf) - @test Interval(-Inf, 0.0) / Interval(0x170ef54646d497p-106, 0x170ef54646d497p-106) == Interval(-Inf, 0.0) - @test Interval(-Inf, 8.0) / Interval(-3.0, -3.0) == Interval(-0x15555555555556p-51, Inf) - @test Interval(-Inf, 8.0) / Interval(0.0, 0.0) == ∅ - @test Interval(-Inf, 8.0) / Interval(3.0, 3.0) == Interval(-Inf, 0x15555555555556p-51) - @test entireinterval(Float64) / Interval(-0x170ef54646d497p-105, -0x170ef54646d497p-105) == entireinterval(Float64) - @test entireinterval(Float64) / Interval(0.0e-17, 0.0e-17) == ∅ - @test entireinterval(Float64) / Interval(+0x170ef54646d497p-105, +0x170ef54646d497p-105) == entireinterval(Float64) - @test Interval(0.0, 0.0) / Interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109) == Interval(0.0, 0.0) - @test Interval(0.0, 0.0) / Interval(0x170ef54646d497p-109, 0x170ef54646d497p-109) == Interval(0.0, 0.0) - @test Interval(0.0, 8.0) / Interval(-0x114b37f4b51f71p-107, -0x114b37f4b51f71p-107) == Interval(-0x1d9b1f5d20d556p+5, 0.0) - @test Interval(0.0, 8.0) / Interval(0x114b37f4b51f71p-107, 0x114b37f4b51f71p-107) == Interval(0.0, 0x1d9b1f5d20d556p+5) - @test Interval(0.0, Inf) / Interval(-0x50b45a75f7e81p-104, -0x50b45a75f7e81p-104) == Interval(-Inf, 0.0) - @test Interval(0.0, Inf) / Interval(0x142d169d7dfa03p-106, 0x142d169d7dfa03p-106) == Interval(0.0, Inf) - # regular values - @test Interval(-0x10000000000001p-20, -0x10000000000001p-53) / Interval(-1.0, -1.0) == Interval(0x10000000000001p-53, 0x10000000000001p-20) - @test Interval(-0x10000000000002p-20, -0x10000000000001p-53) / Interval(0x10000000000001p-53, 0x10000000000001p-53) == Interval(-0x10000000000001p-19, -1.0) - @test Interval(-0x10000000000001p-20, -0x10000020000001p-53) / Interval(0x10000000000001p-53, 0x10000000000001p-53) == Interval(-0x1p+33, -0x1000001fffffffp-52) - @test Interval(-0x10000000000002p-20, -0x10000020000001p-53) / Interval(0x10000000000001p-53, 0x10000000000001p-53) == Interval(-0x10000000000001p-19, -0x1000001fffffffp-52) - @test Interval(-0x123456789abcdfp-53, 0x123456789abcdfp-7) / Interval(-0x123456789abcdfp0, -0x123456789abcdfp0) == Interval(-0x1p-7, 0x1p-53) - @test Interval(-0x123456789abcdfp-53, 0x10000000000001p-53) / Interval(-0x123456789abcdfp0, -0x123456789abcdfp0) == Interval(-0x1c200000000002p-106, 0x1p-53) - @test Interval(-1.0, 0x123456789abcdfp-7) / Interval(-0x123456789abcdfp0, -0x123456789abcdfp0) == Interval(-0x1p-7, 0x1c200000000001p-105) - @test Interval(-1.0, 0x10000000000001p-53) / Interval(-0x123456789abcdfp0, -0x123456789abcdfp0) == Interval(-0x1c200000000002p-106, 0x1c200000000001p-105) -end - -@testset "mpfi_d_sub" begin - # special values - @test Interval(-0x170ef54646d497p-107, -0x170ef54646d497p-107) - Interval(-Inf, -7.0) == Interval(0x1bffffffffffffp-50, Inf) - @test Interval(0.0, 0.0) - Interval(-Inf, -7.0) == Interval(7.0, Inf) - @test Interval(0x170ef54646d497p-107, 0x170ef54646d497p-107) - Interval(-Inf, -7.0) == Interval(7.0, Inf) - @test Interval(-0x170ef54646d497p-96, -0x170ef54646d497p-96) - Interval(-Inf, 0.0) == Interval(-0x170ef54646d497p-96, Inf) - @test Interval(0.0, 0.0) - Interval(-Inf, 0.0) == Interval(0.0, Inf) - @test Interval(0x170ef54646d497p-96, 0x170ef54646d497p-96) - Interval(-Inf, 0.0) == Interval(0x170ef54646d497p-96, Inf) - @test Interval(-0x16345785d8a00000p0, -0x16345785d8a00000p0) - Interval(-Inf, 8.0) == Interval(-0x16345785d8a00100p0, Inf) - @test Interval(0.0, 0.0) - Interval(-Inf, 8.0) == Interval(-8.0, Inf) - @test Interval(0x16345785d8a00000p0, 0x16345785d8a00000p0) - Interval(-Inf, 8.0) == Interval(0x16345785d89fff00p0, Inf) - @test Interval(-0x170ef54646d497p-105, -0x170ef54646d497p-105) - entireinterval(Float64) == entireinterval(Float64) - @test Interval(0.0e-17, 0.0e-17) - entireinterval(Float64) == entireinterval(Float64) - @test Interval(0x170ef54646d497p-105, 0x170ef54646d497p-105) - entireinterval(Float64) == entireinterval(Float64) - @test Interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109) - Interval(0.0, 0.0) == Interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109) - @test Interval(0.0, 0.0) - Interval(0.0, 0.0) == Interval(0.0, 0.0) - @test Interval(0x170ef54646d497p-109, 0x170ef54646d497p-109) - Interval(0.0, 0.0) == Interval(0x170ef54646d497p-109, 0x170ef54646d497p-109) - @test Interval(-0x114b37f4b51f71p-107, -0x114b37f4b51f71p-107) - Interval(0.0, 8.0) == Interval(-0x10000000000001p-49, -0x114b37f4b51f71p-107) - @test Interval(0.0, 0.0) - Interval(0.0, 8.0) == Interval(-8.0, 0.0) - @test Interval(0x114b37f4b51f71p-107, 0x114b37f4b51f71p-107) - Interval(0.0, 8.0) == Interval(-8.0, 0x114b37f4b51f71p-107) - @test Interval(-0x50b45a75f7e81p-104, -0x50b45a75f7e81p-104) - Interval(0.0, Inf) == Interval(-Inf, -0x50b45a75f7e81p-104) - @test Interval(0.0, 0.0) - Interval(0.0, Inf) == Interval(-Inf, 0.0) - @test Interval(-0x142d169d7dfa03p-106, -0x142d169d7dfa03p-106) - Interval(0.0, Inf) == Interval(-Inf, -0x142d169d7dfa03p-106) - # regular values - @test Interval(-0xfb53d14aa9c2fp-47, -0xfb53d14aa9c2fp-47) - Interval(17.0, 32.0) == Interval(-0x1fb53d14aa9c2fp-47, -0x18353d14aa9c2fp-47) - @test Interval(0xfb53d14aa9c2fp-47, 0xfb53d14aa9c2fp-47) - Interval(17.0, 0xfb53d14aa9c2fp-47) == Interval(0.0, 0x7353d14aa9c2fp-47) - @test Interval(0xfb53d14aa9c2fp-48, 0xfb53d14aa9c2fp-48) - Interval(0xfb53d14aa9c2fp-48, 32.0) == Interval(-0x104ac2eb5563d1p-48, 0.0) - @test Interval(3.5, 3.5) - Interval(-0x123456789abcdfp-4, -0x123456789abcdfp-48) == Interval(0x15b456789abcdfp-48, 0x123456789abd17p-4) - @test Interval(3.5, 3.5) - Interval(-0x123456789abcdfp-4, -0x123456789abcdfp-56) == Interval(0x3923456789abcdp-52, 0x123456789abd17p-4) - @test Interval(256.5, 256.5) - Interval(-0x123456789abcdfp-52, 0xffp0) == Interval(0x18p-4, 0x101a3456789abdp-44) - @test Interval(4097.5, 4097.5) - Interval(0x1p-550, 0x1fffffffffffffp-52) == Interval(0xfff8p-4, 0x10018p-4) - @test Interval(-3.5, -3.5) - Interval(-0x123456789abcdfp-4, -0x123456789abcdfp-48) == Interval(0xeb456789abcdfp-48, 0x123456789abca7p-4) - @test Interval(-3.5, -3.5) - Interval(-0x123456789abcdfp-4, -0x123456789abcdfp-56) == Interval(-0x36dcba98765434p-52, 0x123456789abca7p-4) - @test Interval(-256.5, -256.5) - Interval(-0x123456789abcdfp-52, 0xffp0) == Interval(-0x1ff8p-4, -0xff5cba9876543p-44) - @test Interval(-4097.5, -4097.5) - Interval(0x1p-550, 0x1fffffffffffffp-52) == Interval(-0x10038p-4, -0x10018p-4) -end - -@testset "mpfi_exp" begin - # special values - @test exp(Interval(-Inf, -7.0)) == Interval(0.0, 0x1de16b9c24a98fp-63) - @test exp(Interval(-Inf, 0.0)) == Interval(0.0, 1.0) - @test exp(Interval(-Inf, +1.0)) == Interval(0.0, 0x15bf0a8b14576ap-51) - @test exp(entireinterval(Float64)) == Interval(0.0, Inf) - @test exp(Interval(0.0, 0.0)) == Interval(1.0, 1.0) - @test exp(Interval(0.0, +1.0)) == Interval(1.0, 0x15bf0a8b14576ap-51) - @test exp(Interval(0.0, Inf)) == Interval(1.0, Inf) - # regular values - @test exp(Interval(-123.0, -17.0)) == Interval(0x1766b45dd84f17p-230, 0x1639e3175a689dp-77) - @test exp(Interval(-0.125, 0.25)) == Interval(0x1c3d6a24ed8221p-53, 0x148b5e3c3e8187p-52) - @test exp(Interval(-0.125, 0.0)) == Interval(0x1c3d6a24ed8221p-53, 1.0) - @test exp(Interval(0.0, 0.25)) == Interval(1.0, 0x148b5e3c3e8187p-52) - @test exp(Interval(0xap-47, 0xbp-47)) == Interval(0x10000000000140p-52, 0x10000000000161p-52) -end - -@testset "mpfi_exp2" begin - # special values - @test exp2(Interval(-Inf, -1.0)) == Interval(0.0, 0.5) - @test exp2(Interval(-Inf, 0.0)) == Interval(0.0, 1.0) - @test exp2(Interval(-Inf, 1.0)) == Interval(0.0, 2.0) - @test exp2(entireinterval(Float64)) == Interval(0.0, Inf) - @test exp2(Interval(0.0, 0.0)) == Interval(1.0, 1.0) - @test exp2(Interval(0.0, +1.0)) == Interval(1.0, 2.0) - @test exp2(Interval(0.0, Inf)) == Interval(1.0, Inf) - # regular values - @test exp2(Interval(-123.0, -17.0)) == Interval(0x1p-123, 0x1p-17) - @test exp2(Interval(-7.0, 7.0)) == Interval(0x1p-7, 0x1p+7) - @test exp2(Interval(-0.125, 0.25)) == Interval(0x1d5818dcfba487p-53, 0x1306fe0a31b716p-52) - @test exp2(Interval(-0.125, 0.0)) == Interval(0x1d5818dcfba487p-53, 1.0) - @test exp2(Interval(0.0, 0.25)) == Interval(1.0, 0x1306fe0a31b716p-52) - @test exp2(Interval(0xap-47, 0xbp-47)) == Interval(0x100000000000ddp-52, 0x100000000000f4p-52) -end - -@testset "mpfi_expm1" begin - # special values - @test expm1(Interval(-Inf, -7.0)) == Interval(-1.0, -0x1ff887a518f6d5p-53) - @test expm1(Interval(-Inf, 0.0)) == Interval(-1.0, 0.0) - @test expm1(Interval(-Inf, 1.0)) == Interval(-1.0, 0x1b7e151628aed3p-52) - @test expm1(entireinterval(Float64)) == Interval(-1.0, Inf) - @test expm1(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test expm1(Interval(0.0, 1.0)) == Interval(0.0, 0x1b7e151628aed3p-52) - @test expm1(Interval(0.0, Inf)) == Interval(0.0, Inf) - # regular values - @test expm1(Interval(-36.0, -36.0)) == Interval(-0x1ffffffffffffep-53, -0x1ffffffffffffdp-53) - @test expm1(Interval(-0.125, 0.25)) == Interval(-0x1e14aed893eef4p-56, 0x122d78f0fa061ap-54) - @test expm1(Interval(-0.125, 0.0)) == Interval(-0x1e14aed893eef4p-56, 0.0) - @test expm1(Interval(0.0, 0.25)) == Interval(0.0, 0x122d78f0fa061ap-54) - @test expm1(Interval(0xap-47, 0xbp-47)) == Interval(0x140000000000c8p-96, 0x160000000000f3p-96) -end - -@testset "mpfi_hypot" begin - # special values - @test hypot(Interval(-Inf, -7.0), Interval(-1.0, 8.0)) == Interval(7.0, Inf) - @test hypot(Interval(-Inf, 0.0), Interval(8.0, Inf)) == Interval(8.0, Inf) - @test hypot(Interval(-Inf, 8.0), Interval(0.0, 8.0)) == Interval(0.0, Inf) - @test hypot(entireinterval(Float64), Interval(0.0, 8.0)) == Interval(0.0, Inf) - @test hypot(Interval(0.0, 0.0), Interval(-Inf, -7.0)) == Interval(7.0, Inf) - @test hypot(Interval(0.0, 3.0), Interval(-4.0, 0.0)) == Interval(0.0, 5.0) - @test hypot(Interval(0.0, 0.0), Interval(0.0, 8.0)) == Interval(0.0, 8.0) - @test hypot(Interval(0.0, Inf), Interval(0.0, 8.0)) == Interval(0.0, Inf) - @test hypot(Interval(0.0, 0.0), Interval(8.0, Inf)) == Interval(8.0, Inf) - @test hypot(Interval(0.0, 0.0), entireinterval(Float64)) == Interval(0.0, Inf) - @test hypot(Interval(0.0, 5.0), Interval(0.0, 12.0)) == Interval(0.0, 13.0) - @test hypot(Interval(0.0, 0.0), Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test hypot(Interval(0.0, Inf), Interval(-7.0, 8.0)) == Interval(0.0, Inf) - # regular values - @test hypot(Interval(-12.0, -5.0), Interval(-35.0, -12.0)) == Interval(13.0, 37.0) - @test hypot(Interval(6.0, 7.0), Interval(1.0, 24.0)) == Interval(0x1854bfb363dc39p-50, 25.0) - @test hypot(Interval(-4.0, +7.0), Interval(-25.0, 3.0)) == Interval(0.0, 0x19f625847a5899p-48) - @test hypot(Interval(0x1854bfb363dc39p-50, 0x19f625847a5899p-48), Interval(0x1854bfb363dc39p-50, 0x19f625847a5899p-48)) == Interval(0x113463fa37014dp-49, 0x125b89092b8fc0p-47) -end - -@testset "mpfi_intersect" begin - # special values - @test intersect(Interval(-Inf, -7.0), Interval(-1.0, +8.0)) == ∅ - @test ∩(Interval(-Inf, -7.0), Interval(-1.0, +8.0)) == ∅ - @test (Interval(-Inf, -7.0) ∩ Interval(-1.0, +8.0)) == ∅ - @test intersect(Interval(-Inf, 0.0), Interval(+8.0, Inf)) == ∅ - @test ∩(Interval(-Inf, 0.0), Interval(+8.0, Inf)) == ∅ - @test (Interval(-Inf, 0.0) ∩ Interval(+8.0, Inf)) == ∅ - @test intersect(Interval(-Inf, +8.0), Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test ∩(Interval(-Inf, +8.0), Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test (Interval(-Inf, +8.0) ∩ Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test intersect(entireinterval(Float64), Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test ∩(entireinterval(Float64), Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test (entireinterval(Float64) ∩ Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test intersect(Interval(0.0, 0.0), Interval(-Inf, -7.0)) == ∅ - @test ∩(Interval(0.0, 0.0), Interval(-Inf, -7.0)) == ∅ - @test (Interval(0.0, 0.0) ∩ Interval(-Inf, -7.0)) == ∅ - @test intersect(Interval(0.0, +8.0), Interval(-7.0, 0.0)) == Interval(0.0, 0.0) - @test ∩(Interval(0.0, +8.0), Interval(-7.0, 0.0)) == Interval(0.0, 0.0) - @test (Interval(0.0, +8.0) ∩ Interval(-7.0, 0.0)) == Interval(0.0, 0.0) - @test intersect(Interval(0.0, 0.0), Interval(0.0, +8.0)) == Interval(0.0, 0.0) - @test ∩(Interval(0.0, 0.0), Interval(0.0, +8.0)) == Interval(0.0, 0.0) - @test (Interval(0.0, 0.0) ∩ Interval(0.0, +8.0)) == Interval(0.0, 0.0) - @test intersect(Interval(0.0, Inf), Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test ∩(Interval(0.0, Inf), Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test (Interval(0.0, Inf) ∩ Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test intersect(Interval(0.0, 0.0), Interval(+8.0, Inf)) == ∅ - @test ∩(Interval(0.0, 0.0), Interval(+8.0, Inf)) == ∅ - @test (Interval(0.0, 0.0) ∩ Interval(+8.0, Inf)) == ∅ - @test intersect(Interval(0.0, 0.0), entireinterval(Float64)) == Interval(0.0, 0.0) - @test ∩(Interval(0.0, 0.0), entireinterval(Float64)) == Interval(0.0, 0.0) - @test (Interval(0.0, 0.0) ∩ entireinterval(Float64)) == Interval(0.0, 0.0) - @test intersect(Interval(0.0, +8.0), Interval(-7.0, +8.0)) == Interval(0.0, +8.0) - @test ∩(Interval(0.0, +8.0), Interval(-7.0, +8.0)) == Interval(0.0, +8.0) - @test (Interval(0.0, +8.0) ∩ Interval(-7.0, +8.0)) == Interval(0.0, +8.0) - @test intersect(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(0.0, 0.0)) == Interval(0.0, 0.0) - @test intersect(Interval(0.0, Inf), Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test ∩(Interval(0.0, Inf), Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test (Interval(0.0, Inf) ∩ Interval(0.0, +8.0)) == Interval(0.0, +8.0) - # regular values - @test intersect(Interval(0x12p0, 0x90p0), Interval(-0x0dp0, 0x34p0)) == Interval(0x12p0, 0x34p0) - @test ∩(Interval(0x12p0, 0x90p0), Interval(-0x0dp0, 0x34p0)) == Interval(0x12p0, 0x34p0) - @test (Interval(0x12p0, 0x90p0) ∩ Interval(-0x0dp0, 0x34p0)) == Interval(0x12p0, 0x34p0) -end - -@testset "mpfi_inv" begin - # special values - @test inv(Interval(-Inf, -.25)) == Interval(-4.0, 0.0) - @test (Interval(-Inf, -.25))^(-1) == Interval(-4.0, 0.0) - @test (Interval(-Inf, -.25))^(-1//1) == Interval(-4.0, 0.0) - @test (Interval(-Inf, -.25))^(-1.0) == Interval(-4.0, 0.0) - @test 1 /(Interval(-Inf, -.25)) == Interval(-4.0, 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, +4.0)) == entireinterval(Float64) - @test (Interval(-Inf, +4.0))^(-1) == entireinterval(Float64) - @test (Interval(-Inf, +4.0))^(-1//1) == entireinterval(Float64) - @test (Interval(-Inf, +4.0))^(-1.0) == entireinterval(Float64) - @test 1 /(Interval(-Inf, +4.0)) == entireinterval(Float64) - @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) - @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, +2.0)) == Interval(+.5, Inf) - @test (Interval(0.0, +2.0))^(-1) == Interval(+.5, Inf) - @test (Interval(0.0, +2.0))^(-1//1) == Interval(+.5, Inf) - @test (Interval(0.0, +2.0))^(-1.0) == Interval(+.5, Inf) - @test 1 /(Interval(0.0, +2.0)) == Interval(+.5, 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) - # regular values - @test inv(Interval(-8.0, -2.0)) == Interval(-.5, -0.125) - @test (Interval(-8.0, -2.0))^(-1) == Interval(-.5, -0.125) - @test (Interval(-8.0, -2.0))^(-1//1) == Interval(-.5, -0.125) - @test (Interval(-8.0, -2.0))^(-1.0) == Interval(-.5, -0.125) - @test 1 /(Interval(-8.0, -2.0)) == Interval(-.5, -0.125) - @test inv(Interval(0x1p-4, 0x1440c131282cd9p-53)) == Interval(0x1947bfce1bc417p-52, 0x10p0) - @test (Interval(0x1p-4, 0x1440c131282cd9p-53))^(-1) == Interval(0x1947bfce1bc417p-52, 0x10p0) - @test (Interval(0x1p-4, 0x1440c131282cd9p-53))^(-1//1) == Interval(0x1947bfce1bc417p-52, 0x10p0) - @test (Interval(0x1p-4, 0x1440c131282cd9p-53))^(-1.0) == Interval(0x1947bfce1bc417p-52, 0x10p0) - @test 1 /(Interval(0x1p-4, 0x1440c131282cd9p-53)) == Interval(0x1947bfce1bc417p-52, 0x10p0) - @test inv(Interval(0x19f1a539c91fddp-55, +64.0)) == Interval(0.015625, 0x13bc205a76b3fdp-50) - @test (Interval(0x19f1a539c91fddp-55, +64.0))^(-1) == Interval(0.015625, 0x13bc205a76b3fdp-50) - @test (Interval(0x19f1a539c91fddp-55, +64.0))^(-1//1) == Interval(0.015625, 0x13bc205a76b3fdp-50) - @test (Interval(0x19f1a539c91fddp-55, +64.0))^(-1.0) == Interval(0.015625, 0x13bc205a76b3fdp-50) - @test 1 /(Interval(0x19f1a539c91fddp-55, +64.0)) == Interval(0.015625, 0x13bc205a76b3fdp-50) - @test inv(Interval(-0xae83b95effd69p-52, -0x63e3cb4ed72a3p-53)) == Interval(-0x1480a9b5772a23p-50, -0x177887d65484c9p-52) - @test (Interval(-0xae83b95effd69p-52, -0x63e3cb4ed72a3p-53))^(-1) == Interval(-0x1480a9b5772a23p-50, -0x177887d65484c9p-52) - @test (Interval(-0xae83b95effd69p-52, -0x63e3cb4ed72a3p-53))^(-1//1) == Interval(-0x1480a9b5772a23p-50, -0x177887d65484c9p-52) - @test (Interval(-0xae83b95effd69p-52, -0x63e3cb4ed72a3p-53))^(-1.0) == Interval(-0x1480a9b5772a23p-50, -0x177887d65484c9p-52) - @test 1 /(Interval(-0xae83b95effd69p-52, -0x63e3cb4ed72a3p-53)) == Interval(-0x1480a9b5772a23p-50, -0x177887d65484c9p-52) -end - -@testset "mpfi_is_neg" begin - # special values - @test precedes(Interval(-Inf, -8.0), Interval(0.0, 0.0)) - @test precedes(Interval(-Inf, 0.0), Interval(0.0, 0.0)) - @test precedes(Interval(-Inf, 5.0), Interval(0.0, 0.0)) == false - @test precedes(entireinterval(Float64), Interval(0.0, 0.0)) == false - @test precedes(Interval(-8.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, 5.0), Interval(0.0, 0.0)) == false - @test precedes(Interval(0.0, Inf), Interval(0.0, 0.0)) == false - @test precedes(Interval(5.0, Inf), Interval(0.0, 0.0)) == false - # regular values - @test precedes(Interval(-34.0, -17.0), Interval(0.0, 0.0)) - @test precedes(Interval(-8.0, -1.0), Interval(0.0, 0.0)) - @test precedes(Interval(-34.0, 17.0), Interval(0.0, 0.0)) == false - @test precedes(Interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51), Interval(0.0, 0.0)) == false - @test precedes(Interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51), Interval(0.0, 0.0)) == false - @test precedes(Interval(+8.0, +0x7fffffffffffbp+51), Interval(0.0, 0.0)) == false - @test precedes(Interval(+0x1fffffffffffffp-53, 2.0), Interval(0.0, 0.0)) == false -end - -@testset "mpfi_is_nonneg" begin - # special values - @test ≤(Interval(0.0, 0.0), Interval(-Inf, -8.0)) == false - @test (Interval(0.0, 0.0) ≤ Interval(-Inf, -8.0)) == false - @test ≤(Interval(0.0, 0.0), Interval(-Inf, 0.0)) == false - @test (Interval(0.0, 0.0) ≤ Interval(-Inf, 0.0)) == false - @test ≤(Interval(0.0, 0.0), Interval(-Inf, 5.0)) == false - @test (Interval(0.0, 0.0) ≤ Interval(-Inf, 5.0)) == false - @test ≤(Interval(0.0, 0.0), entireinterval(Float64)) == false - @test (Interval(0.0, 0.0) ≤ entireinterval(Float64)) == false - @test ≤(Interval(0.0, 0.0), Interval(-8.0, 0.0)) == false - @test (Interval(0.0, 0.0) ≤ Interval(-8.0, 0.0)) == false - @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, 5.0)) - @test (Interval(0.0, 0.0) ≤ Interval(0.0, 5.0)) - @test ≤(Interval(0.0, 0.0), Interval(0.0, Inf)) - @test (Interval(0.0, 0.0) ≤ Interval(0.0, Inf)) - @test ≤(Interval(0.0, 0.0), Interval(5.0, Inf)) - @test (Interval(0.0, 0.0) ≤ Interval(5.0, Inf)) - # regular values - @test ≤(Interval(0.0, 0.0), Interval(-34.0, -17.0)) == false - @test (Interval(0.0, 0.0) ≤ Interval(-34.0, -17.0)) == false - @test ≤(Interval(0.0, 0.0), Interval(-8.0, -1.0)) == false - @test (Interval(0.0, 0.0) ≤ Interval(-8.0, -1.0)) == false - @test ≤(Interval(0.0, 0.0), Interval(-34.0, 17.0)) == false - @test (Interval(0.0, 0.0) ≤ Interval(-34.0, 17.0)) == false - @test ≤(Interval(0.0, 0.0), Interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) == false - @test (Interval(0.0, 0.0) ≤ Interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) == false - @test ≤(Interval(0.0, 0.0), Interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) - @test (Interval(0.0, 0.0) ≤ Interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) - @test ≤(Interval(0.0, 0.0), Interval(+8.0, +0x7fffffffffffbp+51)) - @test (Interval(0.0, 0.0) ≤ Interval(+8.0, +0x7fffffffffffbp+51)) - @test ≤(Interval(0.0, 0.0), Interval(+0x1fffffffffffffp-53, 2.0)) - @test (Interval(0.0, 0.0) ≤ Interval(+0x1fffffffffffffp-53, 2.0)) -end - -@testset "mpfi_is_nonpos" begin - # special values - @test ≤(Interval(-Inf, -8.0), Interval(0.0, 0.0)) - @test (Interval(-Inf, -8.0) ≤ Interval(0.0, 0.0)) - @test ≤(Interval(-Inf, 0.0), Interval(0.0, 0.0)) - @test (Interval(-Inf, 0.0) ≤ Interval(0.0, 0.0)) - @test ≤(Interval(-Inf, 5.0), Interval(0.0, 0.0)) == false - @test (Interval(-Inf, 5.0) ≤ Interval(0.0, 0.0)) == false - @test ≤(entireinterval(Float64), Interval(0.0, 0.0)) == false - @test (entireinterval(Float64) ≤ Interval(0.0, 0.0)) == false - @test ≤(Interval(-8.0, 0.0), Interval(0.0, 0.0)) - @test (Interval(-8.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, 5.0), Interval(0.0, 0.0)) == false - @test (Interval(0.0, 5.0) ≤ Interval(0.0, 0.0)) == false - @test ≤(Interval(0.0, Inf), Interval(0.0, 0.0)) == false - @test (Interval(0.0, Inf) ≤ Interval(0.0, 0.0)) == false - @test ≤(Interval(5.0, Inf), Interval(0.0, 0.0)) == false - @test (Interval(5.0, Inf) ≤ Interval(0.0, 0.0)) == false - # regular values - @test ≤(Interval(-34.0, -17.0), Interval(0.0, 0.0)) - @test (Interval(-34.0, -17.0) ≤ Interval(0.0, 0.0)) - @test ≤(Interval(-8.0, -1.0), Interval(0.0, 0.0)) - @test (Interval(-8.0, -1.0) ≤ Interval(0.0, 0.0)) - @test ≤(Interval(-34.0, 17.0), Interval(0.0, 0.0)) == false - @test (Interval(-34.0, 17.0) ≤ Interval(0.0, 0.0)) == false - @test ≤(Interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51), Interval(0.0, 0.0)) == false - @test (Interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51) ≤ Interval(0.0, 0.0)) == false - @test ≤(Interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51), Interval(0.0, 0.0)) == false - @test (Interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51) ≤ Interval(0.0, 0.0)) == false - @test ≤(Interval(8.0, 0x7fffffffffffbp+51), Interval(0.0, 0.0)) == false - @test (Interval(8.0, 0x7fffffffffffbp+51) ≤ Interval(0.0, 0.0)) == false - @test ≤(Interval(0x1fffffffffffffp-53, 2.0), Interval(0.0, 0.0)) == false - @test (Interval(0x1fffffffffffffp-53, 2.0) ≤ Interval(0.0, 0.0)) == false -end - -@testset "mpfi_is_pos" begin - # special values - @test precedes(Interval(0.0, 0.0), Interval(-Inf, -8.0)) == false - @test precedes(Interval(0.0, 0.0), Interval(-Inf, 0.0)) == false - @test precedes(Interval(0.0, 0.0), Interval(-Inf, 5.0)) == false - @test precedes(Interval(0.0, 0.0), entireinterval(Float64)) == false - @test precedes(Interval(0.0, 0.0), Interval(-8.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, 5.0)) - @test precedes(Interval(0.0, 0.0), Interval(0.0, Inf)) - @test precedes(Interval(0.0, 0.0), Interval(5.0, Inf)) - # regular values - @test precedes(Interval(0.0, 0.0), Interval(-34.0, -17.0)) == false - @test precedes(Interval(0.0, 0.0), Interval(-8.0, -1.0)) == false - @test precedes(Interval(0.0, 0.0), Interval(-34.0, 17.0)) == false - @test precedes(Interval(0.0, 0.0), Interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) == false - @test precedes(Interval(0.0, 0.0), Interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) - @test precedes(Interval(0.0, 0.0), Interval(+8.0, +0x7fffffffffffbp+51)) - @test precedes(Interval(0.0, 0.0), Interval(+0x1fffffffffffffp-53, 2.0)) -end - -@testset "mpfi_is_strictly_neg" begin - # special values - @test strictprecedes(Interval(-Inf, -8.0), Interval(0.0, 0.0)) - @test strictprecedes(Interval(-Inf, 0.0), Interval(0.0, 0.0)) == false - @test strictprecedes(Interval(-Inf, 5.0), Interval(0.0, 0.0)) == false - @test strictprecedes(entireinterval(Float64), Interval(0.0, 0.0)) == false - @test strictprecedes(Interval(-8.0, 0.0), Interval(0.0, 0.0)) == false - @test strictprecedes(Interval(0.0, 0.0), Interval(0.0, 0.0)) == false - @test strictprecedes(Interval(0.0, 5.0), Interval(0.0, 0.0)) == false - @test strictprecedes(Interval(0.0, Inf), Interval(0.0, 0.0)) == false - @test strictprecedes(Interval(5.0, Inf), Interval(0.0, 0.0)) == false - # regular values - @test strictprecedes(Interval(-34.0, -17.0), Interval(0.0, 0.0)) - @test strictprecedes(Interval(-8.0, -1.0), Interval(0.0, 0.0)) - @test strictprecedes(Interval(-34.0, 17.0), Interval(0.0, 0.0)) == false - @test strictprecedes(Interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51), Interval(0.0, 0.0)) == false - @test strictprecedes(Interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51), Interval(0.0, 0.0)) == false - @test strictprecedes(Interval(+8.0, +0x7fffffffffffbp+51), Interval(0.0, 0.0)) == false - @test strictprecedes(Interval(+0x1fffffffffffffp-53, 2.0), Interval(0.0, 0.0)) == false -end - -@testset "mpfi_is_strictly_pos" begin - # special values - @test strictprecedes(Interval(0.0, 0.0), Interval(-Inf, -8.0)) == false - @test strictprecedes(Interval(0.0, 0.0), Interval(-Inf, 0.0)) == false - @test strictprecedes(Interval(0.0, 0.0), Interval(-Inf, 5.0)) == false - @test strictprecedes(Interval(0.0, 0.0), entireinterval(Float64)) == false - @test strictprecedes(Interval(0.0, 0.0), Interval(-8.0, 0.0)) == false - @test strictprecedes(Interval(0.0, 0.0), Interval(0.0, 0.0)) == false - @test strictprecedes(Interval(0.0, 0.0), Interval(0.0, 5.0)) == false - @test strictprecedes(Interval(0.0, 0.0), Interval(0.0, Inf)) == false - @test strictprecedes(Interval(0.0, 0.0), Interval(5.0, Inf)) - # regular values - @test strictprecedes(Interval(0.0, 0.0), Interval(-34.0, -17.0)) == false - @test strictprecedes(Interval(0.0, 0.0), Interval(-8.0, -1.0)) == false - @test strictprecedes(Interval(0.0, 0.0), Interval(-34.0, 17.0)) == false - @test strictprecedes(Interval(0.0, 0.0), Interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) == false - @test strictprecedes(Interval(0.0, 0.0), Interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) - @test strictprecedes(Interval(0.0, 0.0), Interval(+8.0, +0x7fffffffffffbp+51)) - @test strictprecedes(Interval(0.0, 0.0), Interval(+0x1fffffffffffffp-53, 2.0)) -end - -@testset "mpfi_log" begin - # special values - @test log(Interval(0.0, +1.0)) == Interval(-Inf, 0.0) - @test log(Interval(0.0, Inf)) == entireinterval(Float64) - # regular values - @test log(Interval(+1.0, +1.0)) == Interval(0.0, 0.0) - @test log(Interval(0x3a2a08c23afe3p-14, 0x1463ceb440d6bdp-14)) == Interval(0xc6dc8a2928579p-47, 0x1a9500bc7ffcc5p-48) - @test log(Interval(0xb616ab8b683b5p-52, +1.0)) == Interval(-0x2b9b8b1fb2fb9p-51, 0.0) - @test log(Interval(+1.0, 0x8ac74d932fae3p-21)) == Interval(0.0, 0x5380455576989p-46) - @test log(Interval(0x4c322657ec89bp-16, 0x4d68ba5f26bf1p-11)) == Interval(0xbdee7228cfedfp-47, 0x1b3913fc99f555p-48) -end - -@testset "mpfi_log1p" begin - # special values - @test log1p(Interval(-1.0, 0.0)) == Interval(-Inf, 0.0) - @test log1p(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test log1p(Interval(0.0, 1.0)) == Interval(0.0, 0x162e42fefa39f0p-53) - @test log1p(Interval(0.0, Inf)) == Interval(0.0, Inf) - # regular values - @test log1p(Interval(-0xb616ab8b683b5p-52, 0.0)) == Interval(-0x13e080325bab7bp-52, 0.0) - @test log1p(Interval(0.0, 0x8ac74d932fae3p-21)) == Interval(0.0, 0x14e0115561569cp-48) - @test log1p(Interval(0x4c322657ec89bp-16, 0x4d68ba5f26bf1p-11)) == Interval(0x17bdce451a337fp-48, 0x1b3913fc99f6fcp-48) -end - -@testset "mpfi_log2" begin - # special values - @test log2(Interval(0.0, +1.0)) == Interval(-Inf, 0.0) - @test log2(Interval(0.0, Inf)) == entireinterval(Float64) - # regular values - @test log2(Interval(1.0, 1.0)) == Interval(0.0, 0.0) - @test log2(Interval(0xb616ab8b683b5p-52, 1.0)) == Interval(-0x1f74cb5d105b3ap-54, 0.0) - @test log2(Interval(1.0, 0x8ac74d932fae3p-21)) == Interval(0.0, 0x1e1ddc27c2c70fp-48) - @test log2(Interval(0x4c322657ec89bp-16, 0x4d68ba5f26bf1p-11)) == Interval(0x112035c9390c07p-47, 0x13a3208f61f10cp-47) -end - -@testset "mpfi_log10" begin - # special values - @test log10(Interval(0.0, 1.0)) == Interval(-Inf, 0.0) - @test log10(Interval(0.0, Inf)) == entireinterval(Float64) - # regular values - @test log10(Interval(1.0, 1.0)) == Interval(0.0, 0.0) - @test log10(Interval(0x3a2a08c23afe3p-14, 0x1463ceb440d6bdp-14)) == Interval(0x159753104a9401p-49, 0x1716c01a04b570p-49) - @test log10(Interval(0xb616ab8b683b5p-52, 1.0)) == Interval(-0x12f043ec00f8d6p-55, 0.0) - @test log10(Interval(100.0, 0x8ac74d932fae3p-21)) == Interval(2.0, 0x1221cc590b9946p-49) - @test log10(Interval(0x4c322657ec89bp-16, 0x4d68ba5f26bf1p-11)) == Interval(0x149f1d70168f49p-49, 0x17a543a94fb65ep-49) -end - -@testset "mpfi_mag" begin - # special values - @test mag(Interval(-Inf, -8.0)) == Inf - @test mag(Interval(-Inf, 0.0)) == Inf - @test mag(Interval(-Inf, 5.0)) == Inf - @test mag(entireinterval(Float64)) == Inf - @test mag(Interval(-Inf, 0.0)) == Inf - @test mag(Interval(-8.0, 0.0)) == +8 - @test mag(Interval(0.0, 0.0)) == +0 - @test mag(Interval(0.0, 5.0)) == +5 - @test mag(Interval(0.0, Inf)) == Inf - # regular values - @test mag(Interval(-34.0, -17.0)) == 34 -end - -@testset "mpfi_mid" begin - # special values - @test mid(Interval(-8.0, 0.0)) == -4 - @test mid(Interval(0.0, 0.0)) == +0 - @test mid(Interval(0.0, 5.0)) == +2.5 - # regular values - @test mid(Interval(-34.0, -17.0)) == -0x33p-1 - @test mid(Interval(-34.0, 17.0)) == -8.5 - @test mid(Interval(0.0, +0x123456789abcdp-2)) == +0x123456789abcdp-3 - @test mid(Interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) == 0x1921fb54442d18p-51 - @test mid(Interval(-0x1921fb54442d19p-51, -0x1921fb54442d18p-51)) == -0x1921fb54442d18p-51 - @test mid(Interval(-4.0, -0x7fffffffffffdp-51)) == -0x27fffffffffffbp-52 - @test mid(Interval(-8.0, -0x7fffffffffffbp-51)) == -0x47fffffffffffbp-52 - @test mid(Interval(-0x1fffffffffffffp-53, 2.0)) == 0.5 -end - -@testset "mpfi_mig" begin - # special values - @test mig(Interval(-Inf, -8.0)) == 8 - @test mig(Interval(-Inf, 0.0)) == +0 - @test mig(Interval(-Inf, 5.0)) == +0 - @test mig(entireinterval(Float64)) == +0 - @test mig(Interval(-Inf, 0.0)) == +0 - @test mig(Interval(-8.0, 0.0)) == +0 - @test mig(Interval(0.0, 0.0)) == +0 - @test mig(Interval(0.0, 5.0)) == +0 - @test mig(Interval(0.0, Inf)) == +0 - # regular values - @test mig(Interval(-34.0, -17.0)) == 17 -end - -@testset "mpfi_mul" begin - # special values - @test Interval(-Inf, -7.0) * Interval(-1.0, +8.0) == entireinterval(Float64) - @test Interval(-Inf, 0.0) * Interval(+8.0, Inf) == Interval(-Inf, 0.0) - @test Interval(-Inf, +8.0) * Interval(0.0, +8.0) == Interval(-Inf, +64.0) - @test entireinterval(Float64) * Interval(0.0, 0.0) == Interval(0.0, 0.0) - @test entireinterval(Float64) * Interval(0.0, +8.0) == entireinterval(Float64) - @test Interval(0.0, 0.0) * Interval(-Inf, -7.0) == Interval(0.0, 0.0) - @test Interval(0.0, +8.0) * Interval(-7.0, 0.0) == Interval(-56.0, 0.0) - @test Interval(0.0, 0.0) * Interval(0.0, +8.0) == Interval(0.0, 0.0) - @test Interval(0.0, Inf) * Interval(0.0, +8.0) == Interval(0.0, Inf) - @test Interval(0.0, 0.0) * Interval(+8.0, Inf) == Interval(0.0, 0.0) - @test Interval(0.0, 0.0) * entireinterval(Float64) == Interval(0.0, 0.0) - @test Interval(0.0, +8.0) * Interval(-7.0, +8.0) == Interval(-56.0, +64.0) - @test Interval(0.0, 0.0) * Interval(0.0, 0.0) == Interval(0.0, 0.0) - @test Interval(0.0, Inf) * Interval(0.0, +8.0) == Interval(0.0, Inf) - @test Interval(-3.0, +7.0) * Interval(0.0, 0.0) == Interval(0.0, 0.0) - # regular values - @test Interval(-0x0dp0, -0x09p0) * Interval(-0x04p0, -0x02p0) == Interval(0x12p0, 0x34p0) - @test Interval(-0x0dp0, -0xd.f0e7927d247cp-4) * Interval(-0x04p0, -0xa.41084aff48f8p-8) == Interval(0x8.ef3aa21dba748p-8, 0x34p0) - @test Interval(-0xe.26c9e9eb67b48p-4, -0x8.237d2eb8b1178p-4) * Interval(-0x5.8c899a0706d5p-4, -0x3.344e57a37b5e8p-4) == Interval(0x1.a142a930de328p-4, 0x4.e86c3434cd924p-4) - @test Interval(-0x37p0, -0x07p0) * Interval(-0x01p0, 0x22p0) == Interval(-0x74ep0, 0x37p0) - @test Interval(-0xe.063f267ed51ap-4, -0x0.33p0) * Interval(-0x01p0, 0x1.777ab178b4a1ep+0) == Interval(-0x1.491df346a9f15p+0, 0xe.063f267ed51ap-4) - @test Interval(-0x1.cb540b71699a8p+4, -0x0.33p0) * Interval(-0x1.64dcaaa101f18p+0, 0x01p0) == Interval(-0x1.cb540b71699a8p+4, 0x2.804cce4a3f42ep+4) - @test Interval(-0x1.cb540b71699a8p+4, -0x0.33p0) * Interval(-0x1.64dcaaa101f18p+0, 0x1.eb67a1a6ef725p+4) == Interval(-0x3.71b422ce817f4p+8, 0x2.804cce4a3f42ep+4) - @test Interval(-0x123456789ap0, -0x01p0) * Interval(0x01p0, 0x10p0) == Interval(-0x123456789a0p0, -0x01p0) - @test Interval(-0xb.6c67d3a37d54p-4, -0x0.8p0) * Interval(0x02p0, 0x2.0bee4e8bb3dfp+0) == Interval(-0x1.7611a672948a5p+0, -0x01p0) - @test Interval(-0x04p0, -0xa.497d533c3b2ep-8) * Interval(0xb.d248df3373e68p-4, 0x04p0) == Interval(-0x10p0, -0x7.99b990532d434p-8) - @test Interval(-0xb.6c67d3a37d54p-4, -0xa.497d533c3b2ep-8) * Interval(0xb.d248df3373e68p-4, 0x2.0bee4e8bb3dfp+0) == Interval(-0x1.7611a672948a5p+0, -0x7.99b990532d434p-8) - @test Interval(-0x01p0, 0x11p0) * Interval(-0x07p0, -0x04p0) == Interval(-0x77p0, 0x07p0) - @test Interval(-0x01p0, 0xe.ca7ddfdb8572p-4) * Interval(-0x2.3b46226145234p+0, -0x0.1p0) == Interval(-0x2.101b41d3d48b8p+0, 0x2.3b46226145234p+0) - @test Interval(-0x1.1d069e75e8741p+8, 0x01p0) * Interval(-0x2.3b46226145234p+0, -0x0.1p0) == Interval(-0x2.3b46226145234p+0, 0x2.7c0bd9877f404p+8) - @test Interval(-0xe.ca7ddfdb8572p-4, 0x1.1d069e75e8741p+8) * Interval(-0x2.3b46226145234p+0, -0x0.1p0) == Interval(-0x2.7c0bd9877f404p+8, 0x2.101b41d3d48b8p+0) - @test Interval(-0x01p0, 0x10p0) * Interval(-0x02p0, 0x03p0) == Interval(-0x20p0, 0x30p0) - @test Interval(-0x01p0, 0x2.db091cea593fap-4) * Interval(-0x2.6bff2625fb71cp-4, 0x1p-8) == Interval(-0x6.ea77a3ee43de8p-8, 0x2.6bff2625fb71cp-4) - @test Interval(-0x01p0, 0x6.e211fefc216ap-4) * Interval(-0x1p-4, 0x1.8e3fe93a4ea52p+0) == Interval(-0x1.8e3fe93a4ea52p+0, 0xa.b52fe22d72788p-4) - @test Interval(-0x1.15e079e49a0ddp+0, 0x1p-8) * Interval(-0x2.77fc84629a602p+0, 0x8.3885932f13fp-4) == Interval(-0x8.ec5de73125be8p-4, 0x2.adfe651d3b19ap+0) - @test Interval(-0x07p0, 0x07p0) * Interval(0x13p0, 0x24p0) == Interval(-0xfcp0, 0xfcp0) - @test Interval(-0xa.8071f870126cp-4, 0x10p0) * Interval(0x02p0, 0x2.3381083e7d3b4p+0) == Interval(-0x1.71dc5b5607781p+0, 0x2.3381083e7d3b4p+4) - @test Interval(-0x01p0, 0x1.90aa487ecf153p+0) * Interval(0x01p-53, 0x1.442e2695ac81ap+0) == Interval(-0x1.442e2695ac81ap+0, 0x1.fb5fbebd0cbc6p+0) - @test Interval(-0x1.c40db77f2f6fcp+0, 0x1.8eb70bbd94478p+0) * Interval(0x02p0, 0x3.45118635235c6p+0) == Interval(-0x5.c61fcad908df4p+0, 0x5.17b7c49130824p+0) - @test Interval(0xcp0, 0x2dp0) * Interval(-0x679p0, -0xe5p0) == Interval(-0x12345p0, -0xabcp0) - @test Interval(0xcp0, 0x1.1833fdcab4c4ap+10) * Interval(-0x2.4c0afc50522ccp+40, -0xe5p0) == Interval(-0x2.83a3712099234p+50, -0xabcp0) - @test Interval(0xb.38f1fb0ef4308p+0, 0x2dp0) * Interval(-0x679p0, -0xa.4771d7d0c604p+0) == Interval(-0x12345p0, -0x7.35b3c8400ade4p+4) - @test Interval(0xf.08367984ca1cp-4, 0xa.bcf6c6cbe341p+0) * Interval(-0x5.cbc445e9952c4p+0, -0x2.8ad05a7b988fep-8) == Interval(-0x3.e3ce52d4a139cp+4, -0x2.637164cf2f346p-8) - @test Interval(0x01p0, 0xcp0) * Interval(-0xe5p0, 0x01p0) == Interval(-0xabcp0, 0xcp0) - @test Interval(0x123p-52, 0x1.ec24910ac6aecp+0) * Interval(-0xa.a97267f56a9b8p-4, 0x1p+32) == Interval(-0x1.47f2dbe4ef916p+0, 0x1.ec24910ac6aecp+32) - @test Interval(0x03p0, 0x7.2bea531ef4098p+0) * Interval(-0x01p0, 0xa.a97267f56a9b8p-4) == Interval(-0x7.2bea531ef4098p+0, 0x4.c765967f9468p+0) - @test Interval(0x0.3p0, 0xa.a97267f56a9b8p-4) * Interval(-0x1.ec24910ac6aecp+0, 0x7.2bea531ef4098p+0) == Interval(-0x1.47f2dbe4ef916p+0, 0x4.c765967f9468p+0) - @test Interval(0x3p0, 0x7p0) * Interval(0x5p0, 0xbp0) == Interval(0xfp0, 0x4dp0) - @test Interval(0x2.48380232f6c16p+0, 0x7p0) * Interval(0x3.71cb6c53e68eep+0, 0xbp0) == Interval(0x7.dc58fb323ad78p+0, 0x4dp0) - @test Interval(0x3p0, 0x3.71cb6c53e68eep+0) * Interval(0x5p-25, 0x2.48380232f6c16p+0) == Interval(0xfp-25, 0x7.dc58fb323ad7cp+0) - @test Interval(0x3.10e8a605572p-4, 0x2.48380232f6c16p+0) * Interval(0xc.3d8e305214ecp-4, 0x2.9e7db05203c88p+0) == Interval(0x2.587a32d02bc04p-4, 0x5.fa216b7c20c6cp+0) -end - -@testset "mpfi_mul_d" begin - # special values - @test Interval(-Inf, -7.0) * Interval(-0x17p0, -0x17p0) == Interval(+0xa1p0, Inf) - @test Interval(-Inf, -7.0) * Interval(0.0, 0.0) == Interval(0.0, 0.0) - @test Interval(-Inf, -7.0) * Interval(0x170ef54646d497p-107, 0x170ef54646d497p-107) == Interval(-Inf, -0xa168b4ebefd020p-107) - @test Interval(-Inf, 0.0) * Interval(-0x170ef54646d497p-106, -0x170ef54646d497p-106) == Interval(0.0, Inf) - @test Interval(-Inf, 0.0) * Interval(0.0, 0.0) == Interval(0.0, 0.0) - @test Interval(-Inf, 0.0) * Interval(0x170ef54646d497p-106, 0x170ef54646d497p-106) == Interval(-Inf, 0.0) - @test Interval(-Inf, 8.0) * Interval(-0x16345785d8a00000p0, -0x16345785d8a00000p0) == Interval(-0xb1a2bc2ec5000000p0, Inf) - @test Interval(-Inf, 8.0) * Interval(0.0, 0.0) == Interval(0.0, 0.0) - @test Interval(-Inf, 8.0) * Interval(0x16345785d8a00000p0, 0x16345785d8a00000p0) == Interval(-Inf, 0xb1a2bc2ec5000000p0) - @test entireinterval(Float64) * Interval(-0x170ef54646d497p-105, -0x170ef54646d497p-105) == entireinterval(Float64) - @test entireinterval(Float64) * Interval(0.0e-17, 0.0e-17) == Interval(0.0, 0.0) - @test entireinterval(Float64) * Interval(+0x170ef54646d497p-105, +0x170ef54646d497p-105) == entireinterval(Float64) - @test Interval(0.0, 0.0) * Interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109) == 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(0x170ef54646d497p-109, 0x170ef54646d497p-109) == Interval(0.0, 0.0) - @test Interval(0.0, 7.0) * Interval(-0x114b37f4b51f71p-107, -0x114b37f4b51f71p-107) == Interval(-0x790e87b0f3dc18p-107, 0.0) - @test Interval(0.0, 8.0) * Interval(0.0, 0.0) == Interval(0.0, 0.0) - @test Interval(0.0, 9.0) * Interval(0x114b37f4b51f71p-103, 0x114b37f4b51f71p-103) == Interval(0.0, 0x9ba4f79a5e1b00p-103) - @test Interval(0.0, Inf) * Interval(-0x50b45a75f7e81p-104, -0x50b45a75f7e81p-104) == Interval(-Inf, 0.0) - @test Interval(0.0, Inf) * Interval(0.0, 0.0) == Interval(0.0, 0.0) - @test Interval(0.0, Inf) * Interval(0x142d169d7dfa03p-106, 0x142d169d7dfa03p-106) == Interval(0.0, Inf) - # regular values - @test Interval(-0x1717170p0, -0xaaaaaaaaaaaaap-123) * Interval(-1.5, -1.5) == Interval(0xfffffffffffffp-123, 0x22a2a28p0) - @test Interval(-0xaaaaaaaaaaaaap0, 0x1717170p+401) * Interval(-1.5, -1.5) == Interval(-0x22a2a28p+401, 0xfffffffffffffp0) - @test Interval(0x10000000000010p0, 0x888888888888p+654) * Interval(-2.125, -2.125) == Interval(-0x1222222222221p+654, -0x22000000000022p0) - @test Interval(-0x1717170p0, -0xaaaaaaaaaaaaap-123) * Interval(1.5, 1.5) == Interval(-0x22a2a28p0, -0xfffffffffffffp-123) - @test Interval(-0xaaaaaaaaaaaaap0, 0x1717170p+401) * Interval(1.5, 1.5) == Interval(-0xfffffffffffffp0, 0x22a2a28p+401) - @test Interval(0x10000000000010p0, 0x888888888888p+654) * Interval(2.125, 2.125) == Interval(0x22000000000022p0, 0x1222222222221p+654) - @test Interval(-0x1717170p+36, -0x10000000000001p0) * Interval(-1.5, -1.5) == Interval(0x18000000000001p0, 0x22a2a28p+36) - @test Interval(-0xaaaaaaaaaaaaap0, 0x10000000000001p0) * Interval(-1.5, -1.5) == Interval(-0x18000000000002p0, 0xfffffffffffffp0) - @test Interval(0x10000000000010p0, 0x11111111111111p0) * Interval(-2.125, -2.125) == Interval(-0x12222222222223p+1, -0x22000000000022p0) - @test Interval(-0x10000000000001p0, -0xaaaaaaaaaaaaap-123) * Interval(1.5, 1.5) == Interval(-0x18000000000002p0, -0xfffffffffffffp-123) - @test Interval(-0xaaaaaaaaaaaabp0, 0x1717170p+401) * Interval(1.5, 1.5) == Interval(-0x10000000000001p0, 0x22a2a28p+401) - @test Interval(0x10000000000001p0, 0x888888888888p+654) * Interval(2.125, 2.125) == Interval(0x22000000000002p0, 0x1222222222221p+654) - @test Interval(-0x11717171717171p0, -0xaaaaaaaaaaaaap-123) * Interval(-1.5, -1.5) == Interval(0xfffffffffffffp-123, 0x1a2a2a2a2a2a2ap0) - @test Interval(-0x10000000000001p0, 0x1717170p+401) * Interval(-1.5, -1.5) == Interval(-0x22a2a28p+401, 0x18000000000002p0) - @test Interval(0x10000000000001p0, 0x888888888888p+654) * Interval(-2.125, -2.125) == Interval(-0x1222222222221p+654, -0x22000000000002p0) - @test Interval(-0x1717170p0, -0x1aaaaaaaaaaaaap-123) * Interval(1.5, 1.5) == Interval(-0x22a2a28p0, -0x27fffffffffffep-123) - @test Interval(-0xaaaaaaaaaaaaap0, 0x11717171717171p0) * Interval(1.5, 1.5) == Interval(-0xfffffffffffffp0, 0x1a2a2a2a2a2a2ap0) - @test Interval(0x10000000000010p0, 0x18888888888889p0) * Interval(2.125, 2.125) == Interval(0x22000000000022p0, 0x34222222222224p0) - @test Interval(-0x11717171717171p0, -0x10000000000001p0) * Interval(-1.5, -1.5) == Interval(0x18000000000001p0, 0x1a2a2a2a2a2a2ap0) - @test Interval(-0x10000000000001p0, 0x10000000000001p0) * Interval(-1.5, -1.5) == Interval(-0x18000000000002p0, 0x18000000000002p0) - @test Interval(0x10000000000001p0, 0x11111111111111p0) * Interval(-2.125, -2.125) == Interval(-0x12222222222223p+1, -0x22000000000002p0) - @test Interval(-0x10000000000001p0, -0x1aaaaaaaaaaaaap-123) * Interval(1.5, 1.5) == Interval(-0x18000000000002p0, -0x27fffffffffffep-123) - @test Interval(-0xaaaaaaaaaaaabp0, 0x11717171717171p0) * Interval(1.5, 1.5) == Interval(-0x10000000000001p0, 0x1a2a2a2a2a2a2ap0) - @test Interval(0x10000000000001p0, 0x18888888888889p0) * Interval(2.125, 2.125) == Interval(0x22000000000002p0, 0x34222222222224p0) -end - -@testset "mpfi_neg" begin - # special values - @test -(Interval(-Inf, -7.0)) == Interval(+7.0, Inf) - @test -(Interval(-Inf, 0.0)) == Interval(0.0, Inf) - @test -(Interval(-Inf, +8.0)) == Interval(-8.0, Inf) - @test -(entireinterval(Float64)) == entireinterval(Float64) - @test -(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test -(Interval(0.0, +8.0)) == Interval(-8.0, 0.0) - @test -(Interval(0.0, Inf)) == Interval(-Inf, 0.0) - # regular values - @test -(Interval(0x123456789p-16, 0x123456799p-16)) == Interval(-0x123456799p-16, -0x123456789p-16) -end - -@testset "mpfi_put_d" begin - # special values - @test hull(Interval(0.0, 0.0), Interval(-8.0, -8.0)) == Interval(-8.0, 0.0) - @test ∪(Interval(0.0, 0.0), Interval(-8.0, -8.0)) == Interval(-8.0, 0.0) - @test (Interval(0.0, 0.0) ∪ Interval(-8.0, -8.0)) == Interval(-8.0, 0.0) - @test hull(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(0.0, 0.0)) == Interval(0.0, 0.0) - @test hull(Interval(+5.0, +5.0), Interval(0.0, 0.0)) == Interval(0.0, +5.0) - @test ∪(Interval(+5.0, +5.0), Interval(0.0, 0.0)) == Interval(0.0, +5.0) - @test (Interval(+5.0, +5.0) ∪ Interval(0.0, 0.0)) == Interval(0.0, +5.0) -end - -@testset "mpfi_sec" begin - # special values - @test sec(Interval(-Inf, -7.0)) == entireinterval(Float64) - @test sec(Interval(-Inf, 0.0)) == entireinterval(Float64) - @test sec(Interval(-Inf, 8.0)) == entireinterval(Float64) - @test sec(entireinterval(Float64)) == entireinterval(Float64) - @test sec(Interval(-8.0, 0.0)) == entireinterval(Float64) - @test sec(Interval(-3.0, 0.0)) == entireinterval(Float64) - @test sec(Interval(-1.0, 0.0)) == Interval(1.0, 0x1d9cf0f125cc2ap-52) - @test sec(Interval(0.0, 0.0)) == Interval(1.0, 1.0) - @test sec(Interval(0.0, +1.0)) == Interval(1.0, 0x1d9cf0f125cc2ap-52) - @test sec(Interval(0.0, 3.0)) == entireinterval(Float64) - @test sec(Interval(0.0, 8.0)) == entireinterval(Float64) - @test sec(Interval(0.0, Inf)) == entireinterval(Float64) - # regular values - @test sec(Interval(-6.0, 7.0)) == entireinterval(Float64) - @test sec(Interval(-6.0, 6.0)) == entireinterval(Float64) - @test sec(Interval(-6.0, 5.0)) == entireinterval(Float64) - @test sec(Interval(-6.0, 4.0)) == entireinterval(Float64) - @test sec(Interval(-6.0, 3.0)) == entireinterval(Float64) - @test sec(Interval(-6.0, 2.0)) == entireinterval(Float64) - @test sec(Interval(-6.0, 1.0)) == entireinterval(Float64) - @test sec(Interval(-6.0, 0.0)) == entireinterval(Float64) - @test sec(Interval(-6.0, -1.0)) == entireinterval(Float64) - @test sec(Interval(-6.0, -2.0)) == entireinterval(Float64) - @test sec(Interval(-6.0, -3.0)) == entireinterval(Float64) - @test sec(Interval(-6.0, -4.0)) == entireinterval(Float64) - @test sec(Interval(-6.0, -5.0)) == Interval(0x10a9e8f3e19df1p-52, 0x1c33db0464189bp-51) - @test sec(Interval(-6.0, -6.0)) == Interval(0x10a9e8f3e19df1p-52, 0x10a9e8f3e19df2p-52) - @test sec(Interval(-5.0, 7.0)) == entireinterval(Float64) - @test sec(Interval(-5.0, 6.0)) == entireinterval(Float64) - @test sec(Interval(-5.0, 5.0)) == entireinterval(Float64) - @test sec(Interval(-5.0, 4.0)) == entireinterval(Float64) - @test sec(Interval(-5.0, 3.0)) == entireinterval(Float64) - @test sec(Interval(-5.0, 2.0)) == entireinterval(Float64) - @test sec(Interval(-5.0, 1.0)) == entireinterval(Float64) - @test sec(Interval(-5.0, 0.0)) == entireinterval(Float64) - @test sec(Interval(-5.0, -1.0)) == entireinterval(Float64) - @test sec(Interval(-5.0, -2.0)) == entireinterval(Float64) - @test sec(Interval(-5.0, -3.0)) == entireinterval(Float64) - @test sec(Interval(-5.0, -4.0)) == entireinterval(Float64) - @test sec(Interval(-5.0, -5.0)) == Interval(0x1c33db0464189ap-51, 0x1c33db0464189bp-51) - @test sec(Interval(-4.0, 7.0)) == entireinterval(Float64) - @test sec(Interval(-4.0, 6.0)) == entireinterval(Float64) - @test sec(Interval(-4.0, 5.0)) == entireinterval(Float64) - @test sec(Interval(-4.0, 4.0)) == entireinterval(Float64) - @test sec(Interval(-4.0, 3.0)) == entireinterval(Float64) - @test sec(Interval(-4.0, 2.0)) == entireinterval(Float64) - @test sec(Interval(-4.0, 1.0)) == entireinterval(Float64) - @test sec(Interval(-4.0, 0.0)) == entireinterval(Float64) - @test sec(Interval(-4.0, -1.0)) == entireinterval(Float64) - @test sec(Interval(-4.0, -2.0)) == Interval(-0x133956fecf9e49p-51, -1.0) - @test sec(Interval(-4.0, -3.0)) == Interval(-0x187a6961d2485fp-52, -1.0) - @test sec(Interval(-4.0, -4.0)) == Interval(-0x187a6961d2485fp-52, -0x187a6961d2485ep-52) - @test sec(Interval(-3.0, 7.0)) == entireinterval(Float64) - @test sec(Interval(-3.0, 6.0)) == entireinterval(Float64) - @test sec(Interval(-3.0, 5.0)) == entireinterval(Float64) - @test sec(Interval(-3.0, 4.0)) == entireinterval(Float64) - @test sec(Interval(-3.0, 3.0)) == entireinterval(Float64) - @test sec(Interval(-3.0, 2.0)) == entireinterval(Float64) - @test sec(Interval(-3.0, 1.0)) == entireinterval(Float64) - @test sec(Interval(-3.0, 0.0)) == entireinterval(Float64) - @test sec(Interval(-3.0, -1.0)) == entireinterval(Float64) - @test sec(Interval(-3.0, -2.0)) == Interval(-0x133956fecf9e49p-51, -0x102967b457b245p-52) - @test sec(Interval(-3.0, -3.0)) == Interval(-0x102967b457b246p-52, -0x102967b457b245p-52) - @test sec(Interval(-2.0, 7.0)) == entireinterval(Float64) - @test sec(Interval(-2.0, 6.0)) == entireinterval(Float64) - @test sec(Interval(-2.0, 5.0)) == entireinterval(Float64) - @test sec(Interval(-2.0, 4.0)) == entireinterval(Float64) - @test sec(Interval(-2.0, 3.0)) == entireinterval(Float64) - @test sec(Interval(-2.0, 2.0)) == entireinterval(Float64) - @test sec(Interval(-2.0, 1.0)) == entireinterval(Float64) - @test sec(Interval(-2.0, 0.0)) == entireinterval(Float64) - @test sec(Interval(-2.0, -1.0)) == entireinterval(Float64) - @test sec(Interval(-2.0, -2.0)) == Interval(-0x133956fecf9e49p-51, -0x133956fecf9e48p-51) - @test sec(Interval(-1.0, 7.0)) == entireinterval(Float64) - @test sec(Interval(-1.0, 6.0)) == entireinterval(Float64) - @test sec(Interval(-1.0, 5.0)) == entireinterval(Float64) - @test sec(Interval(-1.0, 4.0)) == entireinterval(Float64) - @test sec(Interval(-1.0, 3.0)) == entireinterval(Float64) - @test sec(Interval(-1.0, 2.0)) == entireinterval(Float64) - @test sec(Interval(-1.0, 1.0)) == Interval(1.0, 0x1d9cf0f125cc2ap-52) - @test sec(Interval(-1.0, 0.0)) == Interval(1.0, 0x1d9cf0f125cc2ap-52) - @test sec(Interval(-1.0, -1.0)) == Interval(0x1d9cf0f125cc29p-52, 0x1d9cf0f125cc2ap-52) - @test sec(Interval(1.0, 7.0)) == entireinterval(Float64) - @test sec(Interval(1.0, 6.0)) == entireinterval(Float64) - @test sec(Interval(1.0, 5.0)) == entireinterval(Float64) - @test sec(Interval(1.0, 4.0)) == entireinterval(Float64) - @test sec(Interval(1.0, 3.0)) == entireinterval(Float64) - @test sec(Interval(1.0, 2.0)) == entireinterval(Float64) - @test sec(Interval(1.0, 1.0)) == Interval(0x1d9cf0f125cc29p-52, 0x1d9cf0f125cc2ap-52) - @test sec(Interval(2.0, 7.0)) == entireinterval(Float64) - @test sec(Interval(2.0, 6.0)) == entireinterval(Float64) - @test sec(Interval(2.0, 5.0)) == entireinterval(Float64) - @test sec(Interval(2.0, 4.0)) == Interval(-0x133956fecf9e49p-51, -1.0) - @test sec(Interval(2.0, 3.0)) == Interval(-0x133956fecf9e49p-51, -0x102967b457b245p-52) - @test sec(Interval(2.0, 2.0)) == Interval(-0x133956fecf9e49p-51, -0x133956fecf9e48p-51) - @test sec(Interval(3.0, 7.0)) == entireinterval(Float64) - @test sec(Interval(3.0, 6.0)) == entireinterval(Float64) - @test sec(Interval(3.0, 5.0)) == entireinterval(Float64) - @test sec(Interval(3.0, 4.0)) == Interval(-0x187a6961d2485fp-52, -1.0) - @test sec(Interval(3.0, 3.0)) == Interval(-0x102967b457b246p-52, -0x102967b457b245p-52) - @test sec(Interval(4.0, 7.0)) == entireinterval(Float64) - @test sec(Interval(4.0, 6.0)) == entireinterval(Float64) - @test sec(Interval(4.0, 5.0)) == entireinterval(Float64) - @test sec(Interval(4.0, 4.0)) == Interval(-0x187a6961d2485fp-52, -0x187a6961d2485ep-52) - @test sec(Interval(5.0, 7.0)) == Interval(1.0, 0x1c33db0464189bp-51) - @test sec(Interval(5.0, 6.0)) == Interval(0x10a9e8f3e19df1p-52, 0x1c33db0464189bp-51) - @test sec(Interval(5.0, 5.0)) == Interval(0x1c33db0464189ap-51, 0x1c33db0464189bp-51) - @test sec(Interval(6.0, 7.0)) == Interval(1.0, 0x153910a80e7db5p-52) - @test sec(Interval(6.0, 6.0)) == Interval(0x10a9e8f3e19df1p-52, 0x10a9e8f3e19df2p-52) - @test sec(Interval(7.0, 7.0)) == Interval(0x153910a80e7db4p-52, 0x153910a80e7db5p-52) -end - -@testset "mpfi_sech" begin - # special values - @test sech(Interval(-Inf, -7.0)) == Interval(0.0, 0x1de169fb49b339p-62) - @test sech(Interval(-Inf, 0.0)) == Interval(0.0, 1.0) - @test sech(Interval(-Inf, +8.0)) == Interval(0.0, 1.0) - @test sech(entireinterval(Float64)) == Interval(0.0, 1.0) - @test sech(Interval(-1.0, 0.0)) == Interval(0x14bcdc50ed6be7p-53, 1.0) - @test sech(Interval(0.0, 0.0)) == Interval(1.0, 1.0) - @test sech(Interval(0.0, +1.0)) == Interval(0x14bcdc50ed6be7p-53, 1.0) - @test sech(Interval(0.0, +8.0)) == Interval(0x15fc20da8e18dbp-63, 1.0) - @test sech(Interval(0.0, Inf)) == Interval(0.0, 1.0) - # regular values - @test sech(Interval(-0.125, 0.0)) == Interval(0x1fc069fe3f72bep-53, 1.0) - @test sech(Interval(0.0, 0x10000000000001p-53)) == Interval(0x1c60d1ff040dcfp-53, 1.0) - @test sech(Interval(-4.5, -0.625)) == Interval(0x16bf984a9a2355p-58, 0x1aa0b464a5e24ap-53) - @test sech(Interval(1.0, 3.0)) == Interval(0x196d8e17d88eb1p-56, 0x14bcdc50ed6be8p-53) - @test sech(Interval(17.0, 0xb145bb71d3dbp-38)) == Interval(0x10000000000173p-1074, 0x1639e3175a6893p-76) -end - -@testset "mpfi_sin" begin - # special values - @test sin(Interval(-Inf, -7.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-Inf, 0.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-Inf, +8.0)) == Interval(-1.0, 1.0) - @test sin(entireinterval(Float64)) == Interval(-1.0, 1.0) - @test sin(Interval(-1.0, 0.0)) == Interval(-0x1aed548f090cefp-53, 0.0) - @test sin(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test sin(Interval(0.0, +1.0)) == Interval(0.0, 0x1aed548f090cefp-53) - @test sin(Interval(0.0, +8.0)) == Interval(-1.0, 1.0) - @test sin(Interval(0.0, Inf)) == Interval(-1.0, 1.0) - # regular values - @test sin(Interval(0.125, 17.0)) == Interval(-1.0, 1.0) - @test sin(Interval(0x1921fb54442d18p-52, 0x1921fb54442d19p-52)) == Interval(0x1fffffffffffffp-53, 1.0) - @test sin(Interval(-2.0, -0.5)) == Interval(-1.0, -0x1eaee8744b05efp-54) - @test sin(Interval(-4.5, 0.625)) == Interval(-1.0, 0x1f47ed3dc74081p-53) - @test sin(Interval(-1.0, -0.25)) == Interval(-0x1aed548f090cefp-53, -0x1faaeed4f31576p-55) - @test sin(Interval(-0.5, 0.5)) == Interval(-0x1eaee8744b05f0p-54, 0x1eaee8744b05f0p-54) - @test sin(Interval(0x71p+76, 0x71p+76)) == Interval(0x1bde6c11cbfc46p-55, 0x1bde6c11cbfc47p-55) - @test sin(Interval(-7.0, 7.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-7.0, 6.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-7.0, 5.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-7.0, 4.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-7.0, 3.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-7.0, 2.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-7.0, 1.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-7.0, 0.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-7.0, -1.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-7.0, -2.0)) == Interval(-0x1d18f6ead1b446p-53, 1.0) - @test sin(Interval(-7.0, -3.0)) == Interval(-0x150608c26d0a09p-53, 1.0) - @test sin(Interval(-7.0, -4.0)) == Interval(-0x150608c26d0a09p-53, 1.0) - @test sin(Interval(-7.0, -5.0)) == Interval(-0x150608c26d0a09p-53, 0x1eaf81f5e09934p-53) - @test sin(Interval(-7.0, -6.0)) == Interval(-0x150608c26d0a09p-53, 0x11e1f18ab0a2c1p-54) - @test sin(Interval(-7.0, -7.0)) == Interval(-0x150608c26d0a09p-53, -0x150608c26d0a08p-53) - @test sin(Interval(-6.0, 7.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-6.0, 6.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-6.0, 5.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-6.0, 4.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-6.0, 3.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-6.0, 2.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-6.0, 1.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-6.0, 0.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-6.0, -1.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-6.0, -2.0)) == Interval(-0x1d18f6ead1b446p-53, 1.0) - @test sin(Interval(-6.0, -3.0)) == Interval(-0x1210386db6d55cp-55, 1.0) - @test sin(Interval(-6.0, -4.0)) == Interval(0x11e1f18ab0a2c0p-54, 1.0) - @test sin(Interval(-6.0, -5.0)) == Interval(0x11e1f18ab0a2c0p-54, 0x1eaf81f5e09934p-53) - @test sin(Interval(-6.0, -6.0)) == Interval(0x11e1f18ab0a2c0p-54, 0x11e1f18ab0a2c1p-54) - @test sin(Interval(-5.0, 7.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-5.0, 6.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-5.0, 5.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-5.0, 4.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-5.0, 3.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-5.0, 2.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-5.0, 1.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-5.0, 0.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-5.0, -1.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-5.0, -2.0)) == Interval(-0x1d18f6ead1b446p-53, 1.0) - @test sin(Interval(-5.0, -3.0)) == Interval(-0x1210386db6d55cp-55, 1.0) - @test sin(Interval(-5.0, -4.0)) == Interval(0x1837b9dddc1eaep-53, 1.0) - @test sin(Interval(-5.0, -5.0)) == Interval(0x1eaf81f5e09933p-53, 0x1eaf81f5e09934p-53) - @test sin(Interval(-4.0, 7.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-4.0, 6.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-4.0, 5.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-4.0, 4.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-4.0, 3.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-4.0, 2.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-4.0, 1.0)) == Interval(-1.0, 0x1aed548f090cefp-53) - @test sin(Interval(-4.0, 0.0)) == Interval(-1.0, 0x1837b9dddc1eafp-53) - @test sin(Interval(-4.0, -1.0)) == Interval(-1.0, 0x1837b9dddc1eafp-53) - @test sin(Interval(-4.0, -2.0)) == Interval(-0x1d18f6ead1b446p-53, 0x1837b9dddc1eafp-53) - @test sin(Interval(-4.0, -3.0)) == Interval(-0x1210386db6d55cp-55, 0x1837b9dddc1eafp-53) - @test sin(Interval(-4.0, -4.0)) == Interval(0x1837b9dddc1eaep-53, 0x1837b9dddc1eafp-53) - @test sin(Interval(-3.0, 7.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-3.0, 6.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-3.0, 5.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-3.0, 4.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-3.0, 3.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-3.0, 2.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-3.0, 1.0)) == Interval(-1.0, 0x1aed548f090cefp-53) - @test sin(Interval(-3.0, 0.0)) == Interval(-1.0, 0.0) - @test sin(Interval(-3.0, -1.0)) == Interval(-1.0, -0x1210386db6d55bp-55) - @test sin(Interval(-3.0, -2.0)) == Interval(-0x1d18f6ead1b446p-53, -0x1210386db6d55bp-55) - @test sin(Interval(-3.0, -3.0)) == Interval(-0x1210386db6d55cp-55, -0x1210386db6d55bp-55) - @test sin(Interval(-2.0, 7.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-2.0, 6.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-2.0, 5.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-2.0, 4.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-2.0, 3.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-2.0, 2.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-2.0, 1.0)) == Interval(-1.0, 0x1aed548f090cefp-53) - @test sin(Interval(-2.0, 0.0)) == Interval(-1.0, 0.0) - @test sin(Interval(-2.0, -1.0)) == Interval(-1.0, -0x1aed548f090ceep-53) - @test sin(Interval(-2.0, -2.0)) == Interval(-0x1d18f6ead1b446p-53, -0x1d18f6ead1b445p-53) - @test sin(Interval(-1.0, 7.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-1.0, 6.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-1.0, 5.0)) == Interval(-1.0, 1.0) - @test sin(Interval(-1.0, 4.0)) == Interval(-0x1aed548f090cefp-53, 1.0) - @test sin(Interval(-1.0, 3.0)) == Interval(-0x1aed548f090cefp-53, 1.0) - @test sin(Interval(-1.0, 2.0)) == Interval(-0x1aed548f090cefp-53, 1.0) - @test sin(Interval(-1.0, 1.0)) == Interval(-0x1aed548f090cefp-53, 0x1aed548f090cefp-53) - @test sin(Interval(-1.0, 0.0)) == Interval(-0x1aed548f090cefp-53, 0.0) - @test sin(Interval(-1.0, -1.0)) == Interval(-0x1aed548f090cefp-53, -0x1aed548f090ceep-53) - @test sin(Interval(1.0, 7.0)) == Interval(-1.0, 1.0) - @test sin(Interval(1.0, 6.0)) == Interval(-1.0, 1.0) - @test sin(Interval(1.0, 5.0)) == Interval(-1.0, 1.0) - @test sin(Interval(1.0, 4.0)) == Interval(-0x1837b9dddc1eafp-53, 1.0) - @test sin(Interval(1.0, 3.0)) == Interval(0x1210386db6d55bp-55, 1.0) - @test sin(Interval(1.0, 2.0)) == Interval(0x1aed548f090ceep-53, 1.0) - @test sin(Interval(1.0, 1.0)) == Interval(0x1aed548f090ceep-53, 0x1aed548f090cefp-53) - @test sin(Interval(2.0, 7.0)) == Interval(-1.0, 0x1d18f6ead1b446p-53) - @test sin(Interval(2.0, 6.0)) == Interval(-1.0, 0x1d18f6ead1b446p-53) - @test sin(Interval(2.0, 5.0)) == Interval(-1.0, 0x1d18f6ead1b446p-53) - @test sin(Interval(2.0, 4.0)) == Interval(-0x1837b9dddc1eafp-53, 0x1d18f6ead1b446p-53) - @test sin(Interval(2.0, 3.0)) == Interval(0x1210386db6d55bp-55, 0x1d18f6ead1b446p-53) - @test sin(Interval(2.0, 2.0)) == Interval(0x1d18f6ead1b445p-53, 0x1d18f6ead1b446p-53) - @test sin(Interval(3.0, 7.0)) == Interval(-1.0, 0x150608c26d0a09p-53) - @test sin(Interval(3.0, 6.0)) == Interval(-1.0, 0x1210386db6d55cp-55) - @test sin(Interval(3.0, 5.0)) == Interval(-1.0, 0x1210386db6d55cp-55) - @test sin(Interval(3.0, 4.0)) == Interval(-0x1837b9dddc1eafp-53, 0x1210386db6d55cp-55) - @test sin(Interval(3.0, 3.0)) == Interval(0x1210386db6d55bp-55, 0x1210386db6d55cp-55) - @test sin(Interval(4.0, 7.0)) == Interval(-1.0, 0x150608c26d0a09p-53) - @test sin(Interval(4.0, 6.0)) == Interval(-1.0, -0x11e1f18ab0a2c0p-54) - @test sin(Interval(4.0, 5.0)) == Interval(-1.0, -0x1837b9dddc1eaep-53) - @test sin(Interval(4.0, 4.0)) == Interval(-0x1837b9dddc1eafp-53, -0x1837b9dddc1eaep-53) - @test sin(Interval(5.0, 7.0)) == Interval(-0x1eaf81f5e09934p-53, 0x150608c26d0a09p-53) - @test sin(Interval(5.0, 6.0)) == Interval(-0x1eaf81f5e09934p-53, -0x11e1f18ab0a2c0p-54) - @test sin(Interval(5.0, 5.0)) == Interval(-0x1eaf81f5e09934p-53, -0x1eaf81f5e09933p-53) - @test sin(Interval(6.0, 7.0)) == Interval(-0x11e1f18ab0a2c1p-54, 0x150608c26d0a09p-53) - @test sin(Interval(6.0, 6.0)) == Interval(-0x11e1f18ab0a2c1p-54, -0x11e1f18ab0a2c0p-54) - @test sin(Interval(7.0, 7.0)) == Interval(0x150608c26d0a08p-53, 0x150608c26d0a09p-53) -end - -@testset "mpfi_sinh" begin - # special values - @test sinh(Interval(-Inf, -7.0)) == Interval(-Inf, -0x1122876ba380c9p-43) - @test sinh(Interval(-Inf, 0.0)) == Interval(-Inf, 0.0) - @test sinh(Interval(-Inf, +8.0)) == Interval(-Inf, 0x1749ea514eca66p-42) - @test sinh(entireinterval(Float64)) == entireinterval(Float64) - @test sinh(Interval(-1.0, 0.0)) == Interval(-0x12cd9fc44eb983p-52, 0.0) - @test sinh(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test sinh(Interval(0.0, +1.0)) == Interval(0.0, 0x12cd9fc44eb983p-52) - @test sinh(Interval(0.0, +8.0)) == Interval(0.0, 0x1749ea514eca66p-42) - @test sinh(Interval(0.0, Inf)) == Interval(0.0, Inf) - # regular values - @test sinh(Interval(-0.125, 0.0)) == Interval(-0x100aaccd00d2f1p-55, 0.0) - @test sinh(Interval(0.0, 0x10000000000001p-53)) == Interval(0.0, 0x10acd00fe63b98p-53) - @test sinh(Interval(-4.5, -0.625)) == Interval(-0x168062ab5fa9fdp-47, -0x1553e795dc19ccp-53) - @test sinh(Interval(1.0, 3.0)) == Interval(0x12cd9fc44eb982p-52, 0x140926e70949aep-49) -end - -@testset "mpfi_sqr" begin - # special values - @test Interval(-Inf, -7.0) ^2 == Interval(+49.0, Inf) - @test Interval(-Inf, -7.0) ^(2//1) == Interval(+49.0, Inf) - @test Interval(-Inf, -7.0) ^(2.0) == Interval(+49.0, Inf) - @test Interval(-Inf, 0.0) ^2 == Interval(0.0, Inf) - @test Interval(-Inf, 0.0) ^(2//1) == Interval(0.0, Inf) - @test Interval(-Inf, 0.0) ^(2.0) == Interval(0.0, Inf) - @test Interval(-Inf, +8.0) ^2 == Interval(0.0, Inf) - @test Interval(-Inf, +8.0) ^(2//1) == Interval(0.0, Inf) - @test Interval(-Inf, +8.0) ^(2.0) == Interval(0.0, Inf) - @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(0.0, 0.0) ^2 == Interval(0.0, 0.0) - @test Interval(0.0, 0.0) ^(2//1) == Interval(0.0, 0.0) - @test Interval(0.0, 0.0) ^(2.0) == Interval(0.0, 0.0) - @test Interval(0.0, +8.0) ^2 == Interval(0.0, +64.0) - @test Interval(0.0, +8.0) ^(2//1) == Interval(0.0, +64.0) - @test Interval(0.0, +8.0) ^(2.0) == Interval(0.0, +64.0) - @test Interval(0.0, Inf) ^2 == Interval(0.0, Inf) - @test Interval(0.0, Inf) ^(2//1) == Interval(0.0, Inf) - @test Interval(0.0, Inf) ^(2.0) == Interval(0.0, Inf) - # regular values - @test Interval(0x8.6374d8p-4, 0x3.f1d929p+8) ^2 == Interval(0x4.65df11464764p-4, 0xf.8f918d688891p+16) - @test Interval(0x8.6374d8p-4, 0x3.f1d929p+8) ^(2//1) == Interval(0x4.65df11464764p-4, 0xf.8f918d688891p+16) - @test Interval(0x8.6374d8p-4, 0x3.f1d929p+8) ^(2.0) == Interval(0x4.65df11464764p-4, 0xf.8f918d688891p+16) - @test Interval(0x6.61485c33c0b14p+4, 0x123456p0) ^2 == Interval(0x2.8b45c3cc03ea6p+12, 0x14b66cb0ce4p0) - @test Interval(0x6.61485c33c0b14p+4, 0x123456p0) ^(2//1) == Interval(0x2.8b45c3cc03ea6p+12, 0x14b66cb0ce4p0) - @test Interval(0x6.61485c33c0b14p+4, 0x123456p0) ^(2.0) == Interval(0x2.8b45c3cc03ea6p+12, 0x14b66cb0ce4p0) - @test Interval(-0x1.64722ad2480c9p+0, 0x1p0) ^2 == Interval(0.0, 0x1.f04dba0302d4dp+0) - @test Interval(-0x1.64722ad2480c9p+0, 0x1p0) ^(2//1) == Interval(0.0, 0x1.f04dba0302d4dp+0) - @test Interval(-0x1.64722ad2480c9p+0, 0x1p0) ^(2.0) == Interval(0.0, 0x1.f04dba0302d4dp+0) - @test Interval(0x1.6b079248747a2p+0, 0x2.b041176d263f6p+0) ^2 == Interval(0x2.02ce7912cddf6p+0, 0x7.3a5dee779527p+0) - @test Interval(0x1.6b079248747a2p+0, 0x2.b041176d263f6p+0) ^(2//1) == Interval(0x2.02ce7912cddf6p+0, 0x7.3a5dee779527p+0) - @test Interval(0x1.6b079248747a2p+0, 0x2.b041176d263f6p+0) ^(2.0) == Interval(0x2.02ce7912cddf6p+0, 0x7.3a5dee779527p+0) -end - -@testset "mpfi_sqrt" begin - # special values - @test sqrt(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test (Interval(0.0, 0.0))^(1/2) == Interval(0.0, 0.0) - @test (Interval(0.0, 0.0))^(0.5) == Interval(0.0, 0.0) - @test (Interval(0.0, 0.0))^(1//2) == Interval(0.0, 0.0) - @test sqrt(Interval(0.0, +9.0)) == Interval(0.0, +3.0) - @test (Interval(0.0, +9.0))^(1/2) == Interval(0.0, +3.0) - @test (Interval(0.0, +9.0))^(0.5) == Interval(0.0, +3.0) - @test (Interval(0.0, +9.0))^(1//2) == Interval(0.0, +3.0) - @test sqrt(Interval(0.0, Inf)) == Interval(0.0, Inf) - @test (Interval(0.0, Inf))^(1/2) == Interval(0.0, Inf) - @test (Interval(0.0, Inf))^(0.5) == Interval(0.0, Inf) - @test (Interval(0.0, Inf))^(1//2) == Interval(0.0, Inf) - # regular values - @test sqrt(Interval(0xaaa1p0, 0x14b66cb0ce4p0)) == Interval(0xd1p0, 0x123456p0) - @test (Interval(0xaaa1p0, 0x14b66cb0ce4p0))^(1/2) == Interval(0xd1p0, 0x123456p0) - @test (Interval(0xaaa1p0, 0x14b66cb0ce4p0))^(0.5) == Interval(0xd1p0, 0x123456p0) - @test (Interval(0xaaa1p0, 0x14b66cb0ce4p0))^(1//2) == Interval(0xd1p0, 0x123456p0) - @test sqrt(Interval(0xe.49ae7969e41bp-4, 0xaaa1p0)) == Interval(0xf.1ea42821b27a8p-4, 0xd1p0) - @test (Interval(0xe.49ae7969e41bp-4, 0xaaa1p0))^(1/2) == Interval(0xf.1ea42821b27a8p-4, 0xd1p0) - @test (Interval(0xe.49ae7969e41bp-4, 0xaaa1p0))^(0.5) == Interval(0xf.1ea42821b27a8p-4, 0xd1p0) - @test (Interval(0xe.49ae7969e41bp-4, 0xaaa1p0))^(1//2) == Interval(0xf.1ea42821b27a8p-4, 0xd1p0) - @test sqrt(Interval(0xa.aa1p-4, 0x1.0c348f804c7a9p+0)) == Interval(0xd.1p-4, 0x1.06081714eef1dp+0) - @test (Interval(0xa.aa1p-4, 0x1.0c348f804c7a9p+0))^(1/2) == Interval(0xd.1p-4, 0x1.06081714eef1dp+0) - @test (Interval(0xa.aa1p-4, 0x1.0c348f804c7a9p+0))^(0.5) == Interval(0xd.1p-4, 0x1.06081714eef1dp+0) - @test (Interval(0xa.aa1p-4, 0x1.0c348f804c7a9p+0))^(1//2) == Interval(0xd.1p-4, 0x1.06081714eef1dp+0) - @test sqrt(Interval(0xe.49ae7969e41bp-4, 0x1.0c348f804c7a9p+0)) == Interval(0xf.1ea42821b27a8p-4, 0x1.06081714eef1dp+0) - @test (Interval(0xe.49ae7969e41bp-4, 0x1.0c348f804c7a9p+0))^(1/2) == Interval(0xf.1ea42821b27a8p-4, 0x1.06081714eef1dp+0) - @test (Interval(0xe.49ae7969e41bp-4, 0x1.0c348f804c7a9p+0))^(0.5) == Interval(0xf.1ea42821b27a8p-4, 0x1.06081714eef1dp+0) - @test (Interval(0xe.49ae7969e41bp-4, 0x1.0c348f804c7a9p+0))^(1//2) == Interval(0xf.1ea42821b27a8p-4, 0x1.06081714eef1dp+0) -end - -@testset "mpfi_sub" begin - # special values - @test Interval(-Inf, -7.0) - Interval(-1.0, +8.0) == Interval(-Inf, -6.0) - @test Interval(-Inf, 0.0) - Interval(+8.0, Inf) == Interval(-Inf, -8.0) - @test Interval(-Inf, +8.0) - Interval(0.0, +8.0) == Interval(-Inf, +8.0) - @test entireinterval(Float64) - Interval(0.0, +8.0) == entireinterval(Float64) - @test Interval(0.0, 0.0) - Interval(-Inf, -7.0) == Interval(+7.0, Inf) - @test Interval(0.0, +8.0) - Interval(-7.0, 0.0) == Interval(0.0, +15.0) - @test Interval(0.0, 0.0) - Interval(0.0, +8.0) == Interval(-8.0, 0.0) - @test Interval(0.0, Inf) - Interval(0.0, +8.0) == Interval(-8.0, Inf) - @test Interval(0.0, 0.0) - Interval(+8.0, Inf) == Interval(-Inf, -8.0) - @test Interval(0.0, 0.0) - entireinterval(Float64) == entireinterval(Float64) - @test Interval(0.0, +8.0) - Interval(-7.0, +8.0) == Interval(-8.0, +15.0) - @test Interval(0.0, 0.0) - Interval(0.0, 0.0) == Interval(0.0, 0.0) - @test Interval(0.0, Inf) - Interval(0.0, +8.0) == Interval(-8.0, Inf) - # regular values - @test Interval(-5.0, 59.0) - Interval(17.0, 81.0) == Interval(-86.0, 42.0) - @test Interval(-0x1p-300, 0x123456p+28) - Interval(-0x789abcdp0, 0x10000000000000p-93) == Interval(-0x10000000000001p-93, 0x123456789abcdp0) - @test Interval(-4.0, 7.0) - Interval(-3e300, 0x123456789abcdp-17) == Interval(-0x123456791abcdp-17, 0x8f596b3002c1bp+947) - @test Interval(-0x1000100010001p+8, 0x1p+60) - Interval(-3e300, 0x1000100010001p0) == Interval(-0x10101010101011p+4, 0x8f596b3002c1bp+947) - @test Interval(-5.0, 1.0) - Interval(1.0, 0x1p+70) == Interval(-0x10000000000001p+18, 0.0) - @test Interval(5.0, 0x1p+70) - Interval(3.0, 5.0) == Interval(0.0, 0x1p+70) -end - -@testset "mpfi_sub_d" begin - # special values - @test Interval(-Inf, -7.0) - Interval(-0x170ef54646d497p-107, -0x170ef54646d497p-107) == Interval(-Inf, -0x1bffffffffffffp-50) - @test Interval(-Inf, -7.0) - Interval(0.0, 0.0) == Interval(-Inf, -7.0) - @test Interval(-Inf, -7.0) - Interval(0x170ef54646d497p-107, 0x170ef54646d497p-107) == Interval(-Inf, -7.0) - @test Interval(-Inf, 0.0) - Interval(-0x170ef54646d497p-106, -0x170ef54646d497p-106) == Interval(-Inf, 0x170ef54646d497p-106) - @test Interval(-Inf, 0.0) - Interval(0.0, 0.0) == Interval(-Inf, 0.0) - @test Interval(-Inf, 0.0) - Interval(0x170ef54646d497p-106, 0x170ef54646d497p-106) == Interval(-Inf, -8.0e-17) - @test Interval(-Inf, 8.0) - Interval(-0x16345785d8a00000p0, -0x16345785d8a00000p0) == Interval(-Inf, 0x16345785d8a00100p0) - @test Interval(-Inf, 8.0) - Interval(0.0, 0.0) == Interval(-Inf, 8.0) - @test Interval(-Inf, 8.0) - Interval(0x16345785d8a00000p0, 0x16345785d8a00000p0) == Interval(-Inf, -0x16345785d89fff00p0) - @test entireinterval(Float64) - Interval(-0x170ef54646d497p-105, -0x170ef54646d497p-105) == entireinterval(Float64) - @test entireinterval(Float64) - Interval(0.0e-17, 0.0e-17) == entireinterval(Float64) - @test entireinterval(Float64) - Interval(+0x170ef54646d497p-105, +0x170ef54646d497p-105) == entireinterval(Float64) - @test Interval(0.0, 0.0) - Interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109) == Interval(+0x170ef54646d497p-109, +0x170ef54646d497p-109) - @test Interval(0.0, 0.0) - Interval(0.0, 0.0) == Interval(0.0, 0.0) - @test Interval(0.0, 0.0) - Interval(0x170ef54646d497p-109, 0x170ef54646d497p-109) == Interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109) - @test Interval(0.0, 8.0) - Interval(-0x114b37f4b51f71p-107, -0x114b37f4b51f71p-107) == Interval(0x114b37f4b51f71p-107, 0x10000000000001p-49) - @test Interval(0.0, 8.0) - Interval(0.0, 0.0) == Interval(0.0, 8.0) - @test Interval(0.0, 8.0) - Interval(0x114b37f4b51f71p-107, 0x114b37f4b51f71p-107) == Interval(-0x114b37f4b51f71p-107, 8.0) - @test Interval(0.0, Inf) - Interval(-0x50b45a75f7e81p-104, -0x50b45a75f7e81p-104) == Interval(0x50b45a75f7e81p-104, Inf) - @test Interval(0.0, Inf) - Interval(0.0, 0.0) == Interval(0.0, Inf) - @test Interval(0.0, Inf) - Interval(0x142d169d7dfa03p-106, 0x142d169d7dfa03p-106) == Interval(-0x142d169d7dfa03p-106, Inf) - # regular values - @test Interval(-32.0, -17.0) - Interval(0xfb53d14aa9c2fp-47, 0xfb53d14aa9c2fp-47) == Interval(-0x1fb53d14aa9c2fp-47, -0x18353d14aa9c2fp-47) - @test Interval(-0xfb53d14aa9c2fp-47, -17.0) - Interval(-0xfb53d14aa9c2fp-47, -0xfb53d14aa9c2fp-47) == Interval(0.0, 0x7353d14aa9c2fp-47) - @test Interval(-32.0, -0xfb53d14aa9c2fp-48) - Interval(-0xfb53d14aa9c2fp-48, -0xfb53d14aa9c2fp-48) == Interval(-0x104ac2eb5563d1p-48, 0.0) - @test Interval(0x123456789abcdfp-48, 0x123456789abcdfp-4) - Interval(-3.5, -3.5) == Interval(0x15b456789abcdfp-48, 0x123456789abd17p-4) - @test Interval(0x123456789abcdfp-56, 0x123456789abcdfp-4) - Interval(-3.5, -3.5) == Interval(0x3923456789abcdp-52, 0x123456789abd17p-4) - @test Interval(-0xffp0, 0x123456789abcdfp-52) - Interval(-256.5, -256.5) == Interval(0x18p-4, 0x101a3456789abdp-44) - @test Interval(-0x1fffffffffffffp-52, -0x1p-550) - Interval(-4097.5, -4097.5) == Interval(0xfff8p-4, 0x10018p-4) - @test Interval(0x123456789abcdfp-48, 0x123456789abcdfp-4) - Interval(3.5, 3.5) == Interval(0xeb456789abcdfp-48, 0x123456789abca7p-4) - @test Interval(0x123456789abcdfp-56, 0x123456789abcdfp-4) - Interval(3.5, 3.5) == Interval(-0x36dcba98765434p-52, 0x123456789abca7p-4) - @test Interval(-0xffp0, 0x123456789abcdfp-52) - Interval(256.5, 256.5) == Interval(-0x1ff8p-4, -0xff5cba9876543p-44) - @test Interval(-0x1fffffffffffffp-52, -0x1p-550) - Interval(4097.5, 4097.5) == Interval(-0x10038p-4, -0x10018p-4) -end - -@testset "mpfi_tan" begin - # special values - @test tan(Interval(-Inf, -7.0)) == entireinterval(Float64) - @test tan(Interval(-Inf, 0.0)) == entireinterval(Float64) - @test tan(Interval(-Inf, +8.0)) == entireinterval(Float64) - @test tan(entireinterval(Float64)) == entireinterval(Float64) - @test tan(Interval(-1.0, 0.0)) == Interval(-0x18eb245cbee3a6p-52, 0.0) - @test tan(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test tan(Interval(0.0, +1.0)) == Interval(0.0, 0x18eb245cbee3a6p-52) - @test tan(Interval(0.0, +8.0)) == entireinterval(Float64) - @test tan(Interval(0.0, Inf)) == entireinterval(Float64) - # regular values - @test tan(Interval(0.125, 17.0)) == entireinterval(Float64) - @test tan(Interval(0x1921fb54442d18p-52, 0x1921fb54442d19p-52)) == entireinterval(Float64) - @test tan(Interval(-2.0, -0.5)) == entireinterval(Float64) - @test tan(Interval(-4.5, 0.625)) == entireinterval(Float64) - @test tan(Interval(-1.0, -0.25)) == Interval(-0x18eb245cbee3a6p-52, -0x105785a43c4c55p-54) - @test tan(Interval(-0.5, 0.5)) == Interval(-0x117b4f5bf3474bp-53, 0x117b4f5bf3474bp-53) - @test tan(Interval(0x71p+76, 0x71p+76)) == Interval(-0x1c8dc87ddcc134p-55, -0x1c8dc87ddcc133p-55) - @test tan(Interval(-7.0, 7.0)) == entireinterval(Float64) - @test tan(Interval(-7.0, 6.0)) == entireinterval(Float64) - @test tan(Interval(-7.0, 5.0)) == entireinterval(Float64) - @test tan(Interval(-7.0, 4.0)) == entireinterval(Float64) - @test tan(Interval(-7.0, 3.0)) == entireinterval(Float64) - @test tan(Interval(-7.0, 2.0)) == entireinterval(Float64) - @test tan(Interval(-7.0, 1.0)) == entireinterval(Float64) - @test tan(Interval(-7.0, 0.0)) == entireinterval(Float64) - @test tan(Interval(-7.0, -1.0)) == entireinterval(Float64) - @test tan(Interval(-7.0, -2.0)) == entireinterval(Float64) - @test tan(Interval(-7.0, -3.0)) == entireinterval(Float64) - @test tan(Interval(-7.0, -4.0)) == entireinterval(Float64) - @test tan(Interval(-7.0, -5.0)) == Interval(-0x1be2e6e13eea79p-53, 0x1b0b4b739bbb07p-51) - @test tan(Interval(-7.0, -6.0)) == Interval(-0x1be2e6e13eea79p-53, 0x129fd86ebb95bfp-54) - @test tan(Interval(-7.0, -7.0)) == Interval(-0x1be2e6e13eea79p-53, -0x1be2e6e13eea78p-53) - @test tan(Interval(-6.0, 7.0)) == entireinterval(Float64) - @test tan(Interval(-6.0, 6.0)) == entireinterval(Float64) - @test tan(Interval(-6.0, 5.0)) == entireinterval(Float64) - @test tan(Interval(-6.0, 4.0)) == entireinterval(Float64) - @test tan(Interval(-6.0, 3.0)) == entireinterval(Float64) - @test tan(Interval(-6.0, 2.0)) == entireinterval(Float64) - @test tan(Interval(-6.0, 1.0)) == entireinterval(Float64) - @test tan(Interval(-6.0, 0.0)) == entireinterval(Float64) - @test tan(Interval(-6.0, -1.0)) == entireinterval(Float64) - @test tan(Interval(-6.0, -2.0)) == entireinterval(Float64) - @test tan(Interval(-6.0, -3.0)) == entireinterval(Float64) - @test tan(Interval(-6.0, -4.0)) == entireinterval(Float64) - @test tan(Interval(-6.0, -5.0)) == Interval(0x129fd86ebb95bep-54, 0x1b0b4b739bbb07p-51) - @test tan(Interval(-6.0, -6.0)) == Interval(0x129fd86ebb95bep-54, 0x129fd86ebb95bfp-54) - @test tan(Interval(-5.0, 7.0)) == entireinterval(Float64) - @test tan(Interval(-5.0, 6.0)) == entireinterval(Float64) - @test tan(Interval(-5.0, 5.0)) == entireinterval(Float64) - @test tan(Interval(-5.0, 4.0)) == entireinterval(Float64) - @test tan(Interval(-5.0, 3.0)) == entireinterval(Float64) - @test tan(Interval(-5.0, 2.0)) == entireinterval(Float64) - @test tan(Interval(-5.0, 1.0)) == entireinterval(Float64) - @test tan(Interval(-5.0, 0.0)) == entireinterval(Float64) - @test tan(Interval(-5.0, -1.0)) == entireinterval(Float64) - @test tan(Interval(-5.0, -2.0)) == entireinterval(Float64) - @test tan(Interval(-5.0, -3.0)) == entireinterval(Float64) - @test tan(Interval(-5.0, -4.0)) == entireinterval(Float64) - @test tan(Interval(-5.0, -5.0)) == Interval(0x1b0b4b739bbb06p-51, 0x1b0b4b739bbb07p-51) - @test tan(Interval(-4.0, 7.0)) == entireinterval(Float64) - @test tan(Interval(-4.0, 6.0)) == entireinterval(Float64) - @test tan(Interval(-4.0, 5.0)) == entireinterval(Float64) - @test tan(Interval(-4.0, 4.0)) == entireinterval(Float64) - @test tan(Interval(-4.0, 3.0)) == entireinterval(Float64) - @test tan(Interval(-4.0, 2.0)) == entireinterval(Float64) - @test tan(Interval(-4.0, 1.0)) == entireinterval(Float64) - @test tan(Interval(-4.0, 0.0)) == entireinterval(Float64) - @test tan(Interval(-4.0, -1.0)) == entireinterval(Float64) - @test tan(Interval(-4.0, -2.0)) == Interval(-0x12866f9be4de14p-52, 0x117af62e0950f9p-51) - @test tan(Interval(-4.0, -3.0)) == Interval(-0x12866f9be4de14p-52, 0x123ef71254b870p-55) - @test tan(Interval(-4.0, -4.0)) == Interval(-0x12866f9be4de14p-52, -0x12866f9be4de13p-52) - @test tan(Interval(-3.0, 7.0)) == entireinterval(Float64) - @test tan(Interval(-3.0, 6.0)) == entireinterval(Float64) - @test tan(Interval(-3.0, 5.0)) == entireinterval(Float64) - @test tan(Interval(-3.0, 4.0)) == entireinterval(Float64) - @test tan(Interval(-3.0, 3.0)) == entireinterval(Float64) - @test tan(Interval(-3.0, 2.0)) == entireinterval(Float64) - @test tan(Interval(-3.0, 1.0)) == entireinterval(Float64) - @test tan(Interval(-3.0, 0.0)) == entireinterval(Float64) - @test tan(Interval(-3.0, -1.0)) == entireinterval(Float64) - @test tan(Interval(-3.0, -2.0)) == Interval(0x123ef71254b86fp-55, 0x117af62e0950f9p-51) - @test tan(Interval(-3.0, -3.0)) == Interval(0x123ef71254b86fp-55, 0x123ef71254b870p-55) - @test tan(Interval(-2.0, 7.0)) == entireinterval(Float64) - @test tan(Interval(-2.0, 6.0)) == entireinterval(Float64) - @test tan(Interval(-2.0, 5.0)) == entireinterval(Float64) - @test tan(Interval(-2.0, 4.0)) == entireinterval(Float64) - @test tan(Interval(-2.0, 3.0)) == entireinterval(Float64) - @test tan(Interval(-2.0, 2.0)) == entireinterval(Float64) - @test tan(Interval(-2.0, 1.0)) == entireinterval(Float64) - @test tan(Interval(-2.0, 0.0)) == entireinterval(Float64) - @test tan(Interval(-2.0, -1.0)) == entireinterval(Float64) - @test tan(Interval(-2.0, -2.0)) == Interval(0x117af62e0950f8p-51, 0x117af62e0950f9p-51) - @test tan(Interval(-1.0, 7.0)) == entireinterval(Float64) - @test tan(Interval(-1.0, 6.0)) == entireinterval(Float64) - @test tan(Interval(-1.0, 5.0)) == entireinterval(Float64) - @test tan(Interval(-1.0, 4.0)) == entireinterval(Float64) - @test tan(Interval(-1.0, 3.0)) == entireinterval(Float64) - @test tan(Interval(-1.0, 2.0)) == entireinterval(Float64) - @test tan(Interval(-1.0, 1.0)) == Interval(-0x18eb245cbee3a6p-52, 0x18eb245cbee3a6p-52) - @test tan(Interval(-1.0, 0.0)) == Interval(-0x18eb245cbee3a6p-52, 0.0) - @test tan(Interval(-1.0, -1.0)) == Interval(-0x18eb245cbee3a6p-52, -0x18eb245cbee3a5p-52) - @test tan(Interval(1.0, 7.0)) == entireinterval(Float64) - @test tan(Interval(1.0, 6.0)) == entireinterval(Float64) - @test tan(Interval(1.0, 5.0)) == entireinterval(Float64) - @test tan(Interval(1.0, 4.0)) == entireinterval(Float64) - @test tan(Interval(1.0, 3.0)) == entireinterval(Float64) - @test tan(Interval(1.0, 2.0)) == entireinterval(Float64) - @test tan(Interval(1.0, 1.0)) == Interval(0x18eb245cbee3a5p-52, 0x18eb245cbee3a6p-52) - @test tan(Interval(2.0, 7.0)) == entireinterval(Float64) - @test tan(Interval(2.0, 6.0)) == entireinterval(Float64) - @test tan(Interval(2.0, 5.0)) == entireinterval(Float64) - @test tan(Interval(2.0, 4.0)) == Interval(-0x117af62e0950f9p-51, 0x12866f9be4de14p-52) - @test tan(Interval(2.0, 3.0)) == Interval(-0x117af62e0950f9p-51, -0x123ef71254b86fp-55) - @test tan(Interval(2.0, 2.0)) == Interval(-0x117af62e0950f9p-51, -0x117af62e0950f8p-51) - @test tan(Interval(3.0, 7.0)) == entireinterval(Float64) - @test tan(Interval(3.0, 6.0)) == entireinterval(Float64) - @test tan(Interval(3.0, 5.0)) == entireinterval(Float64) - @test tan(Interval(3.0, 4.0)) == Interval(-0x123ef71254b870p-55, 0x12866f9be4de14p-52) - @test tan(Interval(3.0, 3.0)) == Interval(-0x123ef71254b870p-55, -0x123ef71254b86fp-55) - @test tan(Interval(4.0, 7.0)) == entireinterval(Float64) - @test tan(Interval(4.0, 6.0)) == entireinterval(Float64) - @test tan(Interval(4.0, 5.0)) == entireinterval(Float64) - @test tan(Interval(4.0, 4.0)) == Interval(0x12866f9be4de13p-52, 0x12866f9be4de14p-52) - @test tan(Interval(5.0, 7.0)) == Interval(-0x1b0b4b739bbb07p-51, 0x1be2e6e13eea79p-53) - @test tan(Interval(5.0, 6.0)) == Interval(-0x1b0b4b739bbb07p-51, -0x129fd86ebb95bep-54) - @test tan(Interval(5.0, 5.0)) == Interval(-0x1b0b4b739bbb07p-51, -0x1b0b4b739bbb06p-51) - @test tan(Interval(6.0, 7.0)) == Interval(-0x129fd86ebb95bfp-54, 0x1be2e6e13eea79p-53) - @test tan(Interval(6.0, 6.0)) == Interval(-0x129fd86ebb95bfp-54, -0x129fd86ebb95bep-54) - @test tan(Interval(7.0, 7.0)) == Interval(0x1be2e6e13eea78p-53, 0x1be2e6e13eea79p-53) -end - -@testset "mpfi_tanh" begin - # special values - @test tanh(Interval(-Inf, -7.0)) == Interval(-1.0, -0x1ffffc832750f1p-53) - @test tanh(Interval(-Inf, 0.0)) == Interval(-1.0, 0.0) - @test tanh(Interval(-Inf, 8.0)) == Interval(-1.0, 0x1fffff872a91f9p-53) - @test tanh(entireinterval(Float64)) == Interval(-1.0, +1.0) - @test tanh(Interval(-1.0, 0.0)) == Interval(-0x185efab514f395p-53, 0.0) - @test tanh(Interval(0.0, 0.0)) == Interval(0.0, 0.0) - @test tanh(Interval(0.0, 1.0)) == Interval(0.0, 0x185efab514f395p-53) - @test tanh(Interval(0.0, 8.0)) == Interval(0.0, 0x1fffff872a91f9p-53) - @test tanh(Interval(0.0, Inf)) == Interval(0.0, +1.0) - # regular values - @test tanh(Interval(-0.125, 0.0)) == Interval(-0x1fd5992bc4b835p-56, 0.0) - @test tanh(Interval(0.0, 0x10000000000001p-53)) == Interval(0.0, 0x1d9353d7568af5p-54) - @test tanh(Interval(-4.5, -0.625)) == Interval(-0x1ffdfa72153984p-53, -0x11bf47eabb8f95p-53) - @test tanh(Interval(1.0, 3.0)) == Interval(0x185efab514f394p-53, 0x1fd77d111a0b00p-53) - @test tanh(Interval(17.0, 18.0)) == Interval(0x1fffffffffffe1p-53, 0x1ffffffffffffcp-53) -end - -@testset "mpfi_union" begin - # special values - @test hull(Interval(-Inf, -7.0), Interval(-1.0, +8.0)) == Interval(-Inf, +8.0) - @test ∪(Interval(-Inf, -7.0), Interval(-1.0, +8.0)) == Interval(-Inf, +8.0) - @test (Interval(-Inf, -7.0) ∪ Interval(-1.0, +8.0)) == Interval(-Inf, +8.0) - @test hull(Interval(-Inf, 0.0), Interval(+8.0, Inf)) == entireinterval(Float64) - @test ∪(Interval(-Inf, 0.0), Interval(+8.0, Inf)) == entireinterval(Float64) - @test (Interval(-Inf, 0.0) ∪ Interval(+8.0, Inf)) == entireinterval(Float64) - @test hull(Interval(-Inf, +8.0), Interval(0.0, +8.0)) == Interval(-Inf, +8.0) - @test ∪(Interval(-Inf, +8.0), Interval(0.0, +8.0)) == Interval(-Inf, +8.0) - @test (Interval(-Inf, +8.0) ∪ Interval(0.0, +8.0)) == Interval(-Inf, +8.0) - @test hull(entireinterval(Float64), Interval(0.0, +8.0)) == entireinterval(Float64) - @test ∪(entireinterval(Float64), Interval(0.0, +8.0)) == entireinterval(Float64) - @test (entireinterval(Float64) ∪ Interval(0.0, +8.0)) == entireinterval(Float64) - @test hull(Interval(0.0, 0.0), Interval(-Inf, -7.0)) == Interval(-Inf, 0.0) - @test ∪(Interval(0.0, 0.0), Interval(-Inf, -7.0)) == Interval(-Inf, 0.0) - @test (Interval(0.0, 0.0) ∪ Interval(-Inf, -7.0)) == Interval(-Inf, 0.0) - @test hull(Interval(0.0, +8.0), Interval(-7.0, 0.0)) == Interval(-7.0, +8.0) - @test ∪(Interval(0.0, +8.0), Interval(-7.0, 0.0)) == Interval(-7.0, +8.0) - @test (Interval(0.0, +8.0) ∪ Interval(-7.0, 0.0)) == Interval(-7.0, +8.0) - @test hull(Interval(0.0, 0.0), Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test ∪(Interval(0.0, 0.0), Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test (Interval(0.0, 0.0) ∪ Interval(0.0, +8.0)) == Interval(0.0, +8.0) - @test hull(Interval(0.0, Inf), Interval(0.0, +8.0)) == Interval(0.0, Inf) - @test ∪(Interval(0.0, Inf), Interval(0.0, +8.0)) == Interval(0.0, Inf) - @test (Interval(0.0, Inf) ∪ Interval(0.0, +8.0)) == Interval(0.0, Inf) - @test hull(Interval(0.0, 0.0), Interval(+8.0, Inf)) == Interval(0.0, Inf) - @test ∪(Interval(0.0, 0.0), Interval(+8.0, Inf)) == Interval(0.0, Inf) - @test (Interval(0.0, 0.0) ∪ Interval(+8.0, Inf)) == Interval(0.0, Inf) - @test hull(Interval(0.0, 0.0), entireinterval(Float64)) == entireinterval(Float64) - @test ∪(Interval(0.0, 0.0), entireinterval(Float64)) == entireinterval(Float64) - @test (Interval(0.0, 0.0) ∪ entireinterval(Float64)) == entireinterval(Float64) - @test hull(Interval(0.0, +8.0), Interval(-7.0, +8.0)) == Interval(-7.0, +8.0) - @test ∪(Interval(0.0, +8.0), Interval(-7.0, +8.0)) == Interval(-7.0, +8.0) - @test (Interval(0.0, +8.0) ∪ Interval(-7.0, +8.0)) == Interval(-7.0, +8.0) - @test hull(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(0.0, 0.0)) == Interval(0.0, 0.0) - @test hull(Interval(0.0, Inf), Interval(0.0, +8.0)) == Interval(0.0, Inf) - @test ∪(Interval(0.0, Inf), Interval(0.0, +8.0)) == Interval(0.0, Inf) - @test (Interval(0.0, Inf) ∪ Interval(0.0, +8.0)) == Interval(0.0, Inf) - # regular values - @test hull(Interval(0x12p0, 0x90p0), Interval(-0x0dp0, 0x34p0)) == Interval(-0x0dp0, 0x90p0) - @test ∪(Interval(0x12p0, 0x90p0), Interval(-0x0dp0, 0x34p0)) == Interval(-0x0dp0, 0x90p0) - @test (Interval(0x12p0, 0x90p0) ∪ Interval(-0x0dp0, 0x34p0)) == Interval(-0x0dp0, 0x90p0) -end -# FactCheck.exitstatus() diff --git a/test/runtests.jl b/test/runtests.jl index 51933b52d..79a3f3a5f 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -16,8 +16,8 @@ include("rand.jl") # Display tests: include("display_tests/display.jl") -# ITF1788 tests +include("multidim_tests/multidim.jl") -include("ITF1788_tests/ITF1788_tests.jl") +# ITF1788 tests -include("multidim_tests/multidim.jl") +include("test_ITF1788/run_ITF1788.jl") diff --git a/test/ITF1788_tests/LICENSE b/test/test_ITF1788/LICENSE similarity index 100% rename from test/ITF1788_tests/LICENSE rename to test/test_ITF1788/LICENSE diff --git a/test/ITF1788_tests/NOTICE b/test/test_ITF1788/NOTICE similarity index 100% rename from test/ITF1788_tests/NOTICE rename to test/test_ITF1788/NOTICE diff --git a/test/test_ITF1788/README.md b/test/test_ITF1788/README.md new file mode 100644 index 000000000..9e51045a8 --- /dev/null +++ b/test/test_ITF1788/README.md @@ -0,0 +1 @@ +This folder contains the tests from the [ITF1788](https://github.com/oheim/ITF1788) testsuite developed by Oliver Heimlich. The Julia code was generated using [ITF1788.jl](https://github.com/juliaintervals/itf1788.jl). Instructions on how to generate locally the julia tests from the original tests specifications can be found in the ITF1788.jl [repository](https://github.com/juliaintervals/itf1788.jl). \ No newline at end of file diff --git a/test/test_ITF1788/abs_rev.jl b/test/test_ITF1788/abs_rev.jl new file mode 100644 index 000000000..5240e4fe4 --- /dev/null +++ b/test/test_ITF1788/abs_rev.jl @@ -0,0 +1,51 @@ +@testset "minimal.absRevBin_test" begin + + @test abs_rev(emptyinterval(), entireinterval())[2] === emptyinterval() + + @test abs_rev(interval(0.0, 1.0), emptyinterval())[2] === emptyinterval() + + @test abs_rev(interval(0.0, 1.0), interval(7.0, 9.0))[2] === emptyinterval() + + @test abs_rev(emptyinterval(), interval(0.0, 1.0))[2] === emptyinterval() + + @test abs_rev(interval(-2.0, -1.0), entireinterval())[2] === emptyinterval() + + @test abs_rev(interval(1.0, 1.0), entireinterval())[2] === Interval(-1.0, 1.0) + + @test abs_rev(interval(0.0, 0.0), entireinterval())[2] === Interval(0.0, 0.0) + + @test abs_rev(interval(-1.0, -1.0), entireinterval())[2] === emptyinterval() + + @test abs_rev(interval(0x1.FFFFFFFFFFFFFp1023, 0x1.FFFFFFFFFFFFFp1023), entireinterval())[2] === Interval(-0x1.FFFFFFFFFFFFFp1023, 0x1.FFFFFFFFFFFFFp1023) + + @test abs_rev(interval(0x1p-1022, 0x1p-1022), entireinterval())[2] === Interval(-0x1p-1022, 0x1p-1022) + + @test abs_rev(interval(-0x1p-1022, -0x1p-1022), entireinterval())[2] === emptyinterval() + + @test abs_rev(interval(-0x1.FFFFFFFFFFFFFp1023, -0x1.FFFFFFFFFFFFFp1023), entireinterval())[2] === emptyinterval() + + @test abs_rev(interval(1.0, 2.0), entireinterval())[2] === Interval(-2.0, 2.0) + + @test abs_rev(interval(1.0, 2.0), interval(0.0, 2.0))[2] === Interval(1.0, 2.0) + + @test abs_rev(interval(0.0, 1.0), interval(-0.5, 2.0))[2] === Interval(-0.5, 1.0) + + @test abs_rev(interval(-1.0, 1.0), entireinterval())[2] === Interval(-1.0, 1.0) + + @test abs_rev(interval(-1.0, 0.0), entireinterval())[2] === Interval(0.0, 0.0) + + @test abs_rev(interval(0.0, Inf), entireinterval())[2] === entireinterval() + + @test abs_rev(entireinterval(), entireinterval())[2] === entireinterval() + + @test abs_rev(interval(-Inf, 0.0), entireinterval())[2] === Interval(0.0, 0.0) + + @test abs_rev(interval(1.0, Inf), interval(-Inf, 0.0))[2] === Interval(-Inf, -1.0) + + @test abs_rev(interval(-1.0, Inf), entireinterval())[2] === entireinterval() + + @test abs_rev(interval(-Inf, -1.0), entireinterval())[2] === emptyinterval() + + @test abs_rev(interval(-Inf, 1.0), entireinterval())[2] === Interval(-1.0, 1.0) + +end diff --git a/test/test_ITF1788/atan2.jl b/test/test_ITF1788/atan2.jl new file mode 100644 index 000000000..1dc656902 --- /dev/null +++ b/test/test_ITF1788/atan2.jl @@ -0,0 +1,80 @@ +@testset "minimal.atan2_test" begin + + @test atan(emptyinterval(), emptyinterval()) === emptyinterval() + + @test atan(emptyinterval(), entireinterval()) === emptyinterval() + + @test atan(entireinterval(), emptyinterval()) === emptyinterval() + + @test atan(interval(0.0, 0.0), interval(0.0, 0.0)) === emptyinterval() + + @test atan(entireinterval(), entireinterval()) === Interval(-0x1.921FB54442D19p1, +0x1.921FB54442D19p1) + + @test atan(interval(0.0, 0.0), interval(-Inf, 0.0)) === Interval(0x1.921FB54442D18p1, 0x1.921FB54442D19p1) + + @test atan(interval(0.0, 0.0), interval(0.0, Inf)) === Interval(0.0, 0.0) + + @test atan(interval(0.0, Inf), interval(0.0, 0.0)) === Interval(0x1.921FB54442D18p0, 0x1.921FB54442D19p0) + + @test atan(interval(-Inf, 0.0), interval(0.0, 0.0)) === Interval(-0x1.921FB54442D19p0, -0x1.921FB54442D18p0) + + @test atan(interval(-0x1p-1022, 0.0), interval(-0x1p-1022, -0x1p-1022)) === Interval(-0x1.921FB54442D19p1, +0x1.921FB54442D19p1) + + @test atan(interval(1.0, 1.0), interval(-1.0, -1.0)) === Interval(0x1.2D97C7F3321D2p1, 0x1.2D97C7F3321D3p1) + + @test atan(interval(1.0, 1.0), interval(1.0, 1.0)) === Interval(0x1.921FB54442D18p-1, 0x1.921FB54442D19p-1) + + @test atan(interval(-1.0, -1.0), interval(1.0, 1.0)) === Interval(-0x1.921FB54442D19p-1, -0x1.921FB54442D18p-1) + + @test atan(interval(-1.0, -1.0), interval(-1.0, -1.0)) === Interval(-0x1.2D97C7F3321D3p1, -0x1.2D97C7F3321D2p1) + + @test atan(interval(-0x1p-1022, 0x1p-1022), interval(-0x1p-1022, -0x1p-1022)) === Interval(-0x1.921FB54442D19p1, +0x1.921FB54442D19p1) + + @test atan(interval(-0x1p-1022, 0x1p-1022), interval(0x1p-1022, 0x1p-1022)) === Interval(-0x1.921FB54442D19p-1, +0x1.921FB54442D19p-1) + + @test atan(interval(-0x1p-1022, -0x1p-1022), interval(-0x1p-1022, 0x1p-1022)) === Interval(-0x1.2D97C7F3321D3p1, -0x1.921FB54442D18p-1) + + @test atan(interval(0x1p-1022, 0x1p-1022), interval(-0x1p-1022, 0x1p-1022)) === Interval(0x1.921FB54442D18p-1, 0x1.2D97C7F3321D3p1) + + @test atan(interval(-2.0, 2.0), interval(-3.0, -1.0)) === Interval(-0x1.921FB54442D19p1, +0x1.921FB54442D19p1) + + @test atan(interval(0.0, 2.0), interval(-3.0, -1.0)) === Interval(0x1.0468A8ACE4DF6p1, 0x1.921FB54442D19p1) + + @test atan(interval(1.0, 3.0), interval(-3.0, -1.0)) === Interval(0x1.E47DF3D0DD4Dp0, 0x1.68F095FDF593Dp1) + + @test atan(interval(1.0, 3.0), interval(-2.0, 0.0)) === Interval(0x1.921FB54442D18p0, 0x1.56C6E7397F5AFp1) + + @test atan(interval(1.0, 3.0), interval(-2.0, 2.0)) === Interval(0x1.DAC670561BB4Fp-2, 0x1.56C6E7397F5AFp1) + + @test atan(interval(1.0, 3.0), interval(0.0, 2.0)) === Interval(0x1.DAC670561BB4Fp-2, 0x1.921FB54442D19p0) + + @test atan(interval(1.0, 3.0), interval(1.0, 3.0)) === Interval(0x1.4978FA3269EE1p-2, 0x1.3FC176B7A856p0) + + @test atan(interval(0.0, 2.0), interval(1.0, 3.0)) === Interval(0x0p0, 0x1.1B6E192EBBE45p0) + + @test atan(interval(-2.0, 2.0), interval(1.0, 3.0)) === Interval(-0x1.1B6E192EBBE45p0, +0x1.1B6E192EBBE45p0) + + @test atan(interval(-2.0, 0.0), interval(1.0, 3.0)) === Interval(-0x1.1B6E192EBBE45p0, 0x0p0) + + @test atan(interval(-3.0, -1.0), interval(1.0, 3.0)) === Interval(-0x1.3FC176B7A856p0, -0x1.4978FA3269EE1p-2) + + @test atan(interval(-3.0, -1.0), interval(0.0, 2.0)) === Interval(-0x1.921FB54442D19p0, -0x1.DAC670561BB4Fp-2) + + @test atan(interval(-3.0, -1.0), interval(-2.0, 2.0)) === Interval(-0x1.56C6E7397F5AFp1, -0x1.DAC670561BB4Fp-2) + + @test atan(interval(-3.0, -1.0), interval(-2.0, 0.0)) === Interval(-0x1.56C6E7397F5AFp1, -0x1.921FB54442D18p0) + + @test atan(interval(-3.0, -1.0), interval(-3.0, -1.0)) === Interval(-0x1.68F095FDF593Dp1, -0x1.E47DF3D0DD4Dp0) + + @test atan(interval(-2.0, 0.0), interval(-3.0, -1.0)) === Interval(-0x1.921FB54442D19p1, +0x1.921FB54442D19p1) + + @test atan(interval(-5.0, 0.0), interval(-5.0, 0.0)) === Interval(-0x1.921FB54442D19p1, +0x1.921FB54442D19p1) + + @test atan(interval(0.0, 5.0), interval(-5.0, 0.0)) === Interval(0x1.921FB54442D18p0, 0x1.921FB54442D19p1) + + @test atan(interval(0.0, 5.0), interval(0.0, 5.0)) === Interval(0x0p0, 0x1.921FB54442D19p0) + + @test atan(interval(-5.0, 0.0), interval(0.0, 5.0)) === Interval(-0x1.921FB54442D19p0, 0x0p0) + +end + diff --git a/test/test_ITF1788/c-xsc.jl b/test/test_ITF1788/c-xsc.jl new file mode 100644 index 000000000..581f13f54 --- /dev/null +++ b/test/test_ITF1788/c-xsc.jl @@ -0,0 +1,352 @@ +@testset "cxsc.intervaladdsub" begin + + @test +(interval(10.0, 20.0), interval(13.0, 17.0)) === Interval(23.0, 37.0) + + @test +(interval(13.0, 17.0), interval(10.0, 20.0)) === Interval(23.0, 37.0) + + @test -(interval(10.0, 20.0), interval(13.0, 16.0)) === Interval(-6.0, 7.0) + + @test -(interval(13.0, 16.0), interval(10.0, 20.0)) === Interval(-7.0, 6.0) + + @test -(interval(10.0, 20.0)) === Interval(-20.0, -10.0) + + @test +(interval(10.0, 20.0)) === Interval(10.0, 20.0) + +end + +@testset "cxsc.intervalmuldiv" begin + + @test *(interval(1.0, 2.0), interval(3.0, 4.0)) === Interval(3.0, 8.0) + + @test *(interval(-1.0, 2.0), interval(3.0, 4.0)) === Interval(-4.0, 8.0) + + @test *(interval(-2.0, 1.0), interval(3.0, 4.0)) === Interval(-8.0, 4.0) + + @test *(interval(-2.0, -1.0), interval(3.0, 4.0)) === Interval(-8.0, -3.0) + + @test *(interval(1.0, 2.0), interval(-3.0, 4.0)) === Interval(-6.0, 8.0) + + @test *(interval(-1.0, 2.0), interval(-3.0, 4.0)) === Interval(-6.0, 8.0) + + @test *(interval(-2.0, 1.0), interval(-3.0, 4.0)) === Interval(-8.0, 6.0) + + @test *(interval(-2.0, -1.0), interval(-3.0, 4.0)) === Interval(-8.0, 6.0) + + @test *(interval(1.0, 2.0), interval(-4.0, 3.0)) === Interval(-8.0, 6.0) + + @test *(interval(-1.0, 2.0), interval(-4.0, 3.0)) === Interval(-8.0, 6.0) + + @test *(interval(-2.0, 1.0), interval(-4.0, 3.0)) === Interval(-6.0, 8.0) + + @test *(interval(-2.0, -1.0), interval(-4.0, 3.0)) === Interval(-6.0, 8.0) + + @test *(interval(1.0, 2.0), interval(-4.0, -3.0)) === Interval(-8.0, -3.0) + + @test *(interval(-1.0, 2.0), interval(-4.0, -3.0)) === Interval(-8.0, 4.0) + + @test *(interval(-2.0, -1.0), interval(-4.0, -3.0)) === Interval(3.0, 8.0) + + @test /(interval(1.0, 2.0), interval(4.0, 8.0)) === Interval(0.125, 0.5) + + @test /(interval(-1.0, 2.0), interval(4.0, 8.0)) === Interval(-0.25, 0.5) + + @test /(interval(-2.0, 1.0), interval(4.0, 8.0)) === Interval(-0.5, 0.25) + + @test /(interval(-2.0, -1.0), interval(4.0, 8.0)) === Interval(-0.5, -0.125) + + @test /(interval(1.0, 2.0), interval(-4.0, 8.0)) === entireinterval() + + @test /(interval(-1.0, 2.0), interval(-4.0, 8.0)) === entireinterval() + + @test /(interval(-2.0, 1.0), interval(-4.0, 8.0)) === entireinterval() + + @test /(interval(-2.0, -1.0), interval(-4.0, 8.0)) === entireinterval() + + @test /(interval(1.0, 2.0), interval(-8.0, 4.0)) === entireinterval() + + @test /(interval(-1.0, 2.0), interval(-8.0, 4.0)) === entireinterval() + + @test /(interval(-2.0, 1.0), interval(-8.0, 4.0)) === entireinterval() + + @test /(interval(-2.0, -1.0), interval(-8.0, 4.0)) === entireinterval() + + @test /(interval(1.0, 2.0), interval(-8.0, -4.0)) === Interval(-0.5, -0.125) + + @test /(interval(-1.0, 2.0), interval(-8.0, -4.0)) === Interval(-0.5, 0.25) + + @test /(interval(-2.0, 1.0), interval(-8.0, -4.0)) === Interval(-0.25, 0.5) + + @test /(interval(-2.0, -1.0), interval(-8.0, -4.0)) === Interval(0.125, 0.5) + +end + +@testset "cxsc.intervalsetops" begin + + @test hull(interval(-2.0, 2.0), interval(-4.0, -3.0)) === Interval(-4.0, 2.0) + + @test hull(interval(-2.0, 2.0), interval(-4.0, -1.0)) === Interval(-4.0, 2.0) + + @test hull(interval(-2.0, 2.0), interval(-4.0, 4.0)) === Interval(-4.0, 4.0) + + @test hull(interval(-2.0, 2.0), interval(-1.0, 1.0)) === Interval(-2.0, 2.0) + + @test hull(interval(-2.0, 2.0), interval(1.0, 4.0)) === Interval(-2.0, 4.0) + + @test hull(interval(-2.0, 2.0), interval(3.0, 4.0)) === Interval(-2.0, 4.0) + + @test hull(interval(-4.0, -3.0), interval(-2.0, 2.0)) === Interval(-4.0, 2.0) + + @test hull(interval(-4.0, -1.0), interval(-2.0, 2.0)) === Interval(-4.0, 2.0) + + @test hull(interval(-4.0, 4.0), interval(-2.0, 2.0)) === Interval(-4.0, 4.0) + + @test hull(interval(-1.0, 1.0), interval(-2.0, 2.0)) === Interval(-2.0, 2.0) + + @test hull(interval(1.0, 4.0), interval(-2.0, 2.0)) === Interval(-2.0, 4.0) + + @test hull(interval(3.0, 4.0), interval(-2.0, 2.0)) === Interval(-2.0, 4.0) + + @test intersect(interval(-2.0, 2.0), interval(-4.0, -3.0)) === emptyinterval() + + @test intersect(interval(-2.0, 2.0), interval(-4.0, -1.0)) === Interval(-2.0, -1.0) + + @test intersect(interval(-2.0, 2.0), interval(-4.0, 4.0)) === Interval(-2.0, 2.0) + + @test intersect(interval(-2.0, 2.0), interval(-1.0, 1.0)) === Interval(-1.0, 1.0) + + @test intersect(interval(-2.0, 2.0), interval(1.0, 4.0)) === Interval(1.0, 2.0) + + @test intersect(interval(-2.0, 2.0), interval(3.0, 4.0)) === emptyinterval() + + @test intersect(interval(-4.0, -3.0), interval(-2.0, 2.0)) === emptyinterval() + + @test intersect(interval(-4.0, -1.0), interval(-2.0, 2.0)) === Interval(-2.0, -1.0) + + @test intersect(interval(-4.0, 4.0), interval(-2.0, 2.0)) === Interval(-2.0, 2.0) + + @test intersect(interval(-1.0, 1.0), interval(-2.0, 2.0)) === Interval(-1.0, 1.0) + + @test intersect(interval(1.0, 4.0), interval(-2.0, 2.0)) === Interval(1.0, 2.0) + + @test intersect(interval(3.0, 4.0), interval(-2.0, 2.0)) === emptyinterval() + +end + +@testset "cxsc.intervalmixsetops" begin + + @test hull(interval(-2.0, 2.0), interval(-4.0, -4.0)) === Interval(-4.0, 2.0) + + @test hull(interval(-2.0, 2.0), interval(1.0, 1.0)) === Interval(-2.0, 2.0) + + @test hull(interval(-2.0, 2.0), interval(4.0, 4.0)) === Interval(-2.0, 4.0) + + @test hull(interval(-4.0, -4.0), interval(-2.0, 2.0)) === Interval(-4.0, 2.0) + + @test hull(interval(1.0, 1.0), interval(-2.0, 2.0)) === Interval(-2.0, 2.0) + + @test hull(interval(4.0, 4.0), interval(-2.0, 2.0)) === Interval(-2.0, 4.0) + + @test intersect(interval(-2.0, 2.0), interval(-4.0, -4.0)) === emptyinterval() + + @test intersect(interval(-2.0, 2.0), interval(1.0, 1.0)) === Interval(1.0, 1.0) + + @test intersect(interval(-2.0, 2.0), interval(4.0, 4.0)) === emptyinterval() + + @test intersect(interval(-4.0, -4.0), interval(-2.0, 2.0)) === emptyinterval() + + @test intersect(interval(1.0, 1.0), interval(-2.0, 2.0)) === Interval(1.0, 1.0) + + @test intersect(interval(4.0, 4.0), interval(-2.0, 2.0)) === emptyinterval() + +end + +@testset "cxsc.scalarmixsetops" begin + + @test hull(interval(-2.0, -2.0), interval(-4.0, -4.0)) === Interval(-4.0, -2.0) + + @test hull(interval(-2.0, -2.0), interval(-2.0, -2.0)) === Interval(-2.0, -2.0) + + @test hull(interval(-2.0, -2.0), interval(2.0, 2.0)) === Interval(-2.0, 2.0) + + @test hull(interval(-4.0, -4.0), interval(-2.0, -2.0)) === Interval(-4.0, -2.0) + + @test hull(interval(-2.0, -2.0), interval(-2.0, -2.0)) === Interval(-2.0, -2.0) + + @test hull(interval(2.0, 2.0), interval(-2.0, -2.0)) === Interval(-2.0, 2.0) + +end + +@testset "cxsc.intervalsetcompops" begin + + @test isinterior(interval(-1.0, 2.0), interval(-1.0, 2.0)) === false + + @test isinterior(interval(-2.0, 1.0), interval(-3.0, 2.0)) === true + + @test isinterior(interval(-2.0, 2.0), interval(-1.0, 1.0)) === false + + @test isinterior(interval(-2.0, 2.0), interval(-1.0, 2.0)) === false + + @test isinterior(interval(-2.0, 2.0), interval(-2.0, 1.0)) === false + + @test isinterior(interval(-2.0, 2.0), interval(-2.0, 3.0)) === false + + @test isinterior(interval(-2.0, 2.0), interval(-3.0, 2.0)) === false + + @test isinterior(interval(-1.0, 2.0), interval(-1.0, 2.0)) === false + + @test isinterior(interval(-3.0, 2.0), interval(-2.0, 1.0)) === false + + @test isinterior(interval(-1.0, 1.0), interval(-2.0, 2.0)) === true + + @test isinterior(interval(-1.0, 2.0), interval(-2.0, 2.0)) === false + + @test isinterior(interval(-2.0, 1.0), interval(-2.0, 2.0)) === false + + @test isinterior(interval(-2.0, 3.0), interval(-2.0, 2.0)) === false + + @test isinterior(interval(-3.0, 2.0), interval(-2.0, 2.0)) === false + + @test issubset(interval(-1.0, 2.0), interval(-1.0, 2.0)) === true + + @test issubset(interval(-2.0, 1.0), interval(-3.0, 2.0)) === true + + @test issubset(interval(-2.0, 2.0), interval(-1.0, 1.0)) === false + + @test issubset(interval(-2.0, 2.0), interval(-1.0, 2.0)) === false + + @test issubset(interval(-2.0, 2.0), interval(-2.0, 1.0)) === false + + @test issubset(interval(-2.0, 2.0), interval(-2.0, 3.0)) === true + + @test issubset(interval(-2.0, 2.0), interval(-3.0, 2.0)) === true + + @test issubset(interval(-3.0, 2.0), interval(-2.0, 1.0)) === false + + @test issubset(interval(-1.0, 1.0), interval(-2.0, 2.0)) === true + + @test issubset(interval(-1.0, 2.0), interval(-2.0, 2.0)) === true + + @test issubset(interval(-2.0, 1.0), interval(-2.0, 2.0)) === true + + @test issubset(interval(-2.0, 3.0), interval(-2.0, 2.0)) === false + + @test issubset(interval(-3.0, 2.0), interval(-2.0, 2.0)) === false + + @test ==(interval(-1.0, 2.0), interval(-1.0, 2.0)) === true + + @test ==(interval(-2.0, 1.0), interval(-3.0, 2.0)) === false + + @test ==(interval(-2.0, 2.0), interval(-1.0, 1.0)) === false + + @test ==(interval(-2.0, 2.0), interval(-1.0, 2.0)) === false + + @test ==(interval(-2.0, 2.0), interval(-2.0, 1.0)) === false + + @test ==(interval(-2.0, 2.0), interval(-2.0, 3.0)) === false + + @test ==(interval(-2.0, 2.0), interval(-3.0, 2.0)) === false + +end + +@testset "cxsc.intervalscalarsetcompops" begin + + @test isinterior(interval(-1.0, 2.0), interval(-2.0, -2.0)) === false + + @test isinterior(interval(-2.0, 2.0), interval(-2.0, -2.0)) === false + + @test isinterior(interval(-2.0, 2.0), interval(0.0, 0.0)) === false + + @test isinterior(interval(-2.0, 2.0), interval(2.0, 2.0)) === false + + @test isinterior(interval(-2.0, 2.0), interval(3.0, 3.0)) === false + + @test isinterior(interval(-1.0, -1.0), interval(1.0, 1.0)) === false + + @test isinterior(interval(-1.0, -1.0), interval(-1.0, -1.0)) === false + + @test isinterior(interval(-2.0, -2.0), interval(-1.0, 2.0)) === false + + @test isinterior(interval(-2.0, -2.0), interval(-2.0, 2.0)) === false + + @test isinterior(interval(0.0, 0.0), interval(-2.0, 2.0)) === true + + @test isinterior(interval(2.0, 2.0), interval(-2.0, 2.0)) === false + + @test isinterior(interval(3.0, 3.0), interval(-2.0, 2.0)) === false + + @test isinterior(interval(1.0, 1.0), interval(-1.0, -1.0)) === false + + @test isinterior(interval(-1.0, -1.0), interval(-1.0, -1.0)) === false + + @test issubset(interval(-1.0, 2.0), interval(-2.0, -2.0)) === false + + @test issubset(interval(-2.0, 2.0), interval(-2.0, -2.0)) === false + + @test issubset(interval(-2.0, 2.0), interval(0.0, 0.0)) === false + + @test issubset(interval(-2.0, 2.0), interval(2.0, 2.0)) === false + + @test issubset(interval(-2.0, 2.0), interval(3.0, 3.0)) === false + + @test issubset(interval(-1.0, -1.0), interval(1.0, 1.0)) === false + + @test issubset(interval(-1.0, -1.0), interval(-1.0, -1.0)) === true + + @test issubset(interval(-2.0, -2.0), interval(-1.0, 2.0)) === false + + @test issubset(interval(-2.0, -2.0), interval(-2.0, 2.0)) === true + + @test issubset(interval(0.0, 0.0), interval(-2.0, 2.0)) === true + + @test issubset(interval(2.0, 2.0), interval(-2.0, 2.0)) === true + + @test issubset(interval(3.0, 3.0), interval(-2.0, 2.0)) === false + + @test issubset(interval(1.0, 1.0), interval(-1.0, -1.0)) === false + + @test issubset(interval(-1.0, -1.0), interval(-1.0, -1.0)) === true + + @test ==(interval(-1.0, 2.0), interval(-2.0, -2.0)) === false + + @test ==(interval(-2.0, 2.0), interval(-2.0, -2.0)) === false + + @test ==(interval(-2.0, 2.0), interval(0.0, 0.0)) === false + + @test ==(interval(-2.0, 2.0), interval(2.0, 2.0)) === false + + @test ==(interval(-2.0, 2.0), interval(3.0, 3.0)) === false + + @test ==(interval(-1.0, -1.0), interval(1.0, 1.0)) === false + + @test ==(interval(-1.0, -1.0), interval(-1.0, -1.0)) === true + +end + +@testset "cxsc.intervalstdfunc" begin + + @test interval(11.0, 11.0)^2 === Interval(121.0, 121.0) + + @test interval(0.0, 0.0)^2 === Interval(0.0, 0.0) + + @test interval(-9.0, -9.0)^2 === Interval(81.0, 81.0) + + @test sqrt(interval(121.0, 121.0)) === Interval(11.0, 11.0) + + @test sqrt(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test sqrt(interval(81.0, 81.0)) === Interval(9.0, 9.0) + + @test nthroot(interval(27.0, 27.0), 3) === Interval(3.0, 3.0) + + @test nthroot(interval(0.0, 0.0), 4) === Interval(0.0, 0.0) + + @test nthroot(interval(1024.0, 1024.0), 10) === Interval(2.0, 2.0) + + @test ^(interval(2.0, 2.0), interval(2.0, 2.0)) === Interval(4.0, 4.0) + + @test ^(interval(4.0, 4.0), interval(5.0, 5.0)) === Interval(1024.0, 1024.0) + + @test ^(interval(2.0, 2.0), interval(3.0, 3.0)) === Interval(8.0, 8.0) + +end + diff --git a/test/test_ITF1788/fi_lib.jl b/test/test_ITF1788/fi_lib.jl new file mode 100644 index 000000000..a977afaa3 --- /dev/null +++ b/test/test_ITF1788/fi_lib.jl @@ -0,0 +1,1746 @@ +@testset "FI_LIB.addii" begin + + @test +(interval(0x0.0000000000000P+0, 0x0.0000000000000P+0), interval(0x0.0000000000000P+0, 0x0.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + + @test +(interval(0x1.0000000000000P+0, 0x1.0000000000000P+0), interval(0x2.0000000000000P+0, 0x2.0000000000000P+0)) === Interval(0x3.0000000000000P+0, 0x3.0000000000000P+0) + + @test +(interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0), interval(-0x2.0000000000000P+0, -0x2.0000000000000P+0)) === Interval(-0x3.0000000000000P+0, -0x3.0000000000000P+0) + + @test +(interval(0x1.0000000000000P+0, 0x1.0000000000000P+0), interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + + @test +(interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + + @test +(interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064), interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064)) === Interval(0x3.F400000000000P-1064, 0x3.F400000000000P-1064) + + @test +(interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test +(interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064), interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064)) === Interval(-0x3.F400000000000P-1064, -0x3.F400000000000P-1064) + + @test +(interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test +(interval(0xF.FFFFFFFFFFFF8P+1020, 0xF.FFFFFFFFFFFF8P+1020), interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0)) === Interval(0xF.FFFFFFFFFFFF0P+1020, 0xF.FFFFFFFFFFFF8P+1020) + + @test +(interval(-0xF.FFFFFFFFFFFF8P+1020, -0xF.FFFFFFFFFFFF8P+1020), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(-0xF.FFFFFFFFFFFF8P+1020, -0xF.FFFFFFFFFFFF0P+1020) + + @test +(interval(0x0.0000000000000P+0, 0x1.0000000000000P+0), interval(0x1.0000000000000P+0, 0x2.0000000000000P+0)) === Interval(0x1.0000000000000P+0, 0x3.0000000000000P+0) + + @test +(interval(0x1.0000000000000P+0, 0x2.0000000000000P+0), interval(0x0.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(0x1.0000000000000P+0, 0x3.0000000000000P+0) + + @test +(interval(0x1.0000000000000P+0, 0x2.0000000000000P+0), interval(0x3.0000000000000P+0, 0x4.0000000000000P+0)) === Interval(0x4.0000000000000P+0, 0x6.0000000000000P+0) + + @test +(interval(0x3.0000000000000P+0, 0x4.0000000000000P+0), interval(0x1.0000000000000P+0, 0x2.0000000000000P+0)) === Interval(0x4.0000000000000P+0, 0x6.0000000000000P+0) + + @test +(interval(-0x1.0000000000000P+0, 0x0.0000000000000P+0), interval(-0x4.0000000000000P+0, -0x3.0000000000000P+0)) === Interval(-0x5.0000000000000P+0, -0x3.0000000000000P+0) + + @test +(interval(-0x4.0000000000000P+0, -0x3.0000000000000P+0), interval(-0x1.0000000000000P+0, 0x0.0000000000000P+0)) === Interval(-0x5.0000000000000P+0, -0x3.0000000000000P+0) + + @test +(interval(-0x5.0000000000000P+0, -0x4.0000000000000P+0), interval(0x4.0000000000000P+0, 0x5.0000000000000P+0)) === Interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0) + + @test +(interval(0x4.0000000000000P+0, 0x5.0000000000000P+0), interval(-0x5.0000000000000P+0, -0x4.0000000000000P+0)) === Interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0) + +end + +@testset "FI_LIB.subii" begin + + @test -(interval(0x0.0000000000000P+0, 0x0.0000000000000P+0), interval(0x0.0000000000000P+0, 0x0.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + + @test -(interval(0x1.0000000000000P+0, 0x1.0000000000000P+0), interval(0x2.0000000000000P+0, 0x2.0000000000000P+0)) === Interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0) + + @test -(interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0), interval(-0x2.0000000000000P+0, -0x2.0000000000000P+0)) === Interval(0x1.0000000000000P+0, 0x1.0000000000000P+0) + + @test -(interval(0x1.0000000000000P+0, 0x1.0000000000000P+0), interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0)) === Interval(0x2.0000000000000P+0, 0x2.0000000000000P+0) + + @test -(interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(-0x2.0000000000000P+0, -0x2.0000000000000P+0) + + @test -(interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064), interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + + @test -(interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(-0x1.0000000000000P+0, -0xF.FFFFFFFFFFFF8P-4) + + @test -(interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064), interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + + @test -(interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(-0x1.0000000000001P+0, -0x1.0000000000000P+0) + + @test -(interval(0xF.FFFFFFFFFFFF8P+1020, 0xF.FFFFFFFFFFFF8P+1020), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(0xF.FFFFFFFFFFFF0P+1020, 0xF.FFFFFFFFFFFF8P+1020) + + @test -(interval(-0xF.FFFFFFFFFFFF8P+1020, -0xF.FFFFFFFFFFFF8P+1020), interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0)) === Interval(-0xF.FFFFFFFFFFFF8P+1020, -0xF.FFFFFFFFFFFF0P+1020) + + @test -(interval(0x0.0000000000000P+0, 0x1.0000000000000P+0), interval(0x1.0000000000000P+0, 0x2.0000000000000P+0)) === Interval(-0x2.0000000000000P+0, 0x0.0000000000000P+0) + + @test -(interval(0x1.0000000000000P+0, 0x2.0000000000000P+0), interval(0x0.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x2.0000000000000P+0) + + @test -(interval(0x1.0000000000000P+0, 0x2.0000000000000P+0), interval(0x3.0000000000000P+0, 0x4.0000000000000P+0)) === Interval(-0x3.0000000000000P+0, -0x1.0000000000000P+0) + + @test -(interval(0x3.0000000000000P+0, 0x4.0000000000000P+0), interval(0x1.0000000000000P+0, 0x2.0000000000000P+0)) === Interval(0x1.0000000000000P+0, 0x3.0000000000000P+0) + + @test -(interval(-0x1.0000000000000P+0, 0x0.0000000000000P+0), interval(-0x4.0000000000000P+0, -0x3.0000000000000P+0)) === Interval(0x2.0000000000000P+0, 0x4.0000000000000P+0) + + @test -(interval(-0x4.0000000000000P+0, -0x3.0000000000000P+0), interval(-0x1.0000000000000P+0, 0x0.0000000000000P+0)) === Interval(-0x4.0000000000000P+0, -0x2.0000000000000P+0) + + @test -(interval(-0x5.0000000000000P+0, -0x4.0000000000000P+0), interval(0x4.0000000000000P+0, 0x5.0000000000000P+0)) === Interval(-0xA.0000000000000P+0, -0x8.0000000000000P+0) + + @test -(interval(0x4.0000000000000P+0, 0x5.0000000000000P+0), interval(-0x5.0000000000000P+0, -0x4.0000000000000P+0)) === Interval(0x8.0000000000000P+0, 0xA.0000000000000P+0) + +end + +@testset "FI_LIB.mulii" begin + + @test *(interval(0x0.0000000000000P+0, 0x0.0000000000000P+0), interval(0x0.0000000000000P+0, 0x0.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + + @test *(interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0), interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0)) === Interval(0x1.0000000000000P+0, 0x1.0000000000000P+0) + + @test *(interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0), interval(0x0.0000000000000P+0, 0x0.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + + @test *(interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0) + + @test *(interval(0x0.0000000000000P+0, 0x0.0000000000000P+0), interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + + @test *(interval(0x0.0000000000000P+0, 0x0.0000000000000P+0), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + + @test *(interval(0x1.0000000000000P+0, 0x1.0000000000000P+0), interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0)) === Interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0) + + @test *(interval(0x1.0000000000000P+0, 0x1.0000000000000P+0), interval(0x0.0000000000000P+0, 0x0.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + + @test *(interval(0x1.0000000000000P+0, 0x1.0000000000000P+0), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(0x1.0000000000000P+0, 0x1.0000000000000P+0) + + @test *(interval(0xF.FFFFFFFFFFFF8P+1020, 0xF.FFFFFFFFFFFF8P+1020), interval(0x8.0000000000000P-4, 0x8.0000000000000P-4)) === Interval(0x7.FFFFFFFFFFFFCP+1020, 0x7.FFFFFFFFFFFFCP+1020) + + @test *(interval(-0xF.FFFFFFFFFFFF8P+1020, -0xF.FFFFFFFFFFFF8P+1020), interval(0x8.0000000000000P-4, 0x8.0000000000000P-4)) === Interval(-0x7.FFFFFFFFFFFFCP+1020, -0x7.FFFFFFFFFFFFCP+1020) + + @test *(interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064), interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064)) === Interval(0x0.0000000000000P+0, 0x4.0000000000000P-1076) + + @test *(interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064) + + @test *(interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064), interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0)) === Interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064) + + @test *(interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0), interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0)) === Interval(0x4.0000000000000P+0, 0x9.0000000000000P+0) + + @test *(interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0), interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0)) === Interval(-0x3.0000000000000P+0, +0x3.0000000000000P+0) + + @test *(interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0), interval(0x2.0000000000000P+0, 0x3.0000000000000P+0)) === Interval(-0x9.0000000000000P+0, -0x4.0000000000000P+0) + + @test *(interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0), interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0)) === Interval(-0x3.0000000000000P+0, +0x3.0000000000000P+0) + + @test *(interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0), interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0)) === Interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0) + + @test *(interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0), interval(0x2.0000000000000P+0, 0x3.0000000000000P+0)) === Interval(-0x3.0000000000000P+0, +0x3.0000000000000P+0) + + @test *(interval(0x2.0000000000000P+0, 0x3.0000000000000P+0), interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0)) === Interval(-0x9.0000000000000P+0, -0x4.0000000000000P+0) + + @test *(interval(0x2.0000000000000P+0, 0x3.0000000000000P+0), interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0)) === Interval(-0x3.0000000000000P+0, +0x3.0000000000000P+0) + + @test *(interval(0x2.0000000000000P+0, 0x3.0000000000000P+0), interval(0x2.0000000000000P+0, 0x3.0000000000000P+0)) === Interval(0x4.0000000000000P+0, 0x9.0000000000000P+0) + + @test *(interval(-0x5.0000000000000P+0, +0x2.0000000000000P+0), interval(-0x4.0000000000000P+0, +0x3.0000000000000P+0)) === Interval(-0xF.0000000000000P+0, +0x1.4000000000000P+4) + + @test *(interval(-0x5.0000000000000P+0, +0x2.0000000000000P+0), interval(-0x3.0000000000000P+0, +0x8.0000000000000P+0)) === Interval(-0x2.8000000000000P+4, +0x1.0000000000000P+4) + + @test *(interval(-0x2.0000000000000P+0, +0x5.0000000000000P+0), interval(-0x4.0000000000000P+0, +0x3.0000000000000P+0)) === Interval(-0x1.4000000000000P+4, +0xF.0000000000000P+0) + + @test *(interval(-0x4.0000000000000P+0, +0x5.0000000000000P+0), interval(-0x4.0000000000000P+0, +0x3.0000000000000P+0)) === Interval(-0x1.4000000000000P+4, +0x1.0000000000000P+4) + + @test *(interval(-0x3.0000000000000P+0, 0x0.0000000000000P+0), interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x9.0000000000000P+0) + + @test *(interval(-0x3.0000000000000P+0, 0x0.0000000000000P+0), interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0)) === Interval(-0x3.0000000000000P+0, +0x3.0000000000000P+0) + + @test *(interval(-0x3.0000000000000P+0, 0x0.0000000000000P+0), interval(0x2.0000000000000P+0, 0x3.0000000000000P+0)) === Interval(-0x9.0000000000000P+0, 0x0.0000000000000P+0) + + @test *(interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0), interval(-0x3.0000000000000P+0, 0x0.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x9.0000000000000P+0) + + @test *(interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0), interval(0x0.0000000000000P+0, 0x3.0000000000000P+0)) === Interval(-0x9.0000000000000P+0, 0x0.0000000000000P+0) + + @test *(interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0), interval(-0x3.0000000000000P+0, 0x0.0000000000000P+0)) === Interval(-0x3.0000000000000P+0, +0x3.0000000000000P+0) + + @test *(interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0), interval(0x0.0000000000000P+0, 0x3.0000000000000P+0)) === Interval(-0x3.0000000000000P+0, +0x3.0000000000000P+0) + + @test *(interval(0x0.0000000000000P+0, 0x3.0000000000000P+0), interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0)) === Interval(-0x9.0000000000000P+0, 0x0.0000000000000P+0) + + @test *(interval(0x0.0000000000000P+0, 0x3.0000000000000P+0), interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0)) === Interval(-0x3.0000000000000P+0, +0x3.0000000000000P+0) + + @test *(interval(0x0.0000000000000P+0, 0x3.0000000000000P+0), interval(0x2.0000000000000P+0, 0x3.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x9.0000000000000P+0) + + @test *(interval(0x2.0000000000000P+0, 0x3.0000000000000P+0), interval(-0x3.0000000000000P+0, 0x0.0000000000000P+0)) === Interval(-0x9.0000000000000P+0, 0x0.0000000000000P+0) + + @test *(interval(0x2.0000000000000P+0, 0x3.0000000000000P+0), interval(-0x3.0000000000000P+0, 0x0.0000000000000P+0)) === Interval(-0x9.0000000000000P+0, 0x0.0000000000000P+0) + + @test *(interval(0x0.0000000000000P+0, 0x2.0000000000000P+0), interval(-0x3.0000000000000P+0, 0x0.0000000000000P+0)) === Interval(-0x6.0000000000000P+0, 0x0.0000000000000P+0) + + @test *(interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064), interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064)) === Interval(0x0.0000000000000P+0, 0x4.0000000000000P-1076) + + @test *(interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064) + + @test *(interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064), interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0)) === Interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064) + + @test *(interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064), interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064)) === Interval(-0x4.0000000000000P-1076, 0x0.0000000000000P+0) + + @test *(interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064), interval(0x0.0000000000000P+0, 0x0.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + + @test *(interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064), interval(0x0.0000000000000P+0, 0x0.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + +end + +@testset "FI_LIB.divii" begin + + @test /(interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0), interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0)) === Interval(0x1.0000000000000P+0, 0x1.0000000000000P+0) + + @test /(interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0) + + @test /(interval(0x0.0000000000000P+0, 0x0.0000000000000P+0), interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + + @test /(interval(0x0.0000000000000P+0, 0x0.0000000000000P+0), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x0.0000000000000P+0) + + @test /(interval(0x1.0000000000000P+0, 0x1.0000000000000P+0), interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0)) === Interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0) + + @test /(interval(0x1.0000000000000P+0, 0x1.0000000000000P+0), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(0x1.0000000000000P+0, 0x1.0000000000000P+0) + + @test /(interval(0xF.FFFFFFFFFFFF8P+1020, 0xF.FFFFFFFFFFFF8P+1020), interval(0x2.0000000000000P+0, 0x2.0000000000000P+0)) === Interval(0x7.FFFFFFFFFFFFCP+1020, 0x7.FFFFFFFFFFFFCP+1020) + + @test /(interval(-0xF.FFFFFFFFFFFF8P+1020, -0xF.FFFFFFFFFFFF8P+1020), interval(0x2.0000000000000P+0, 0x2.0000000000000P+0)) === Interval(-0x7.FFFFFFFFFFFFCP+1020, -0x7.FFFFFFFFFFFFCP+1020) + + @test /(interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064), interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064)) === Interval(0x1.0000000000000P+0, 0x1.0000000000000P+0) + + @test /(interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064), interval(0x1.0000000000000P+0, 0x1.0000000000000P+0)) === Interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064) + + @test /(interval(0x1.FA00000000000P-1064, 0x1.FA00000000000P-1064), interval(-0x1.0000000000000P+0, -0x1.0000000000000P+0)) === Interval(-0x1.FA00000000000P-1064, -0x1.FA00000000000P-1064) + + @test /(interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0), interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0)) === Interval(0xA.AAAAAAAAAAAA8P-4, 0x1.8000000000000P+0) + + @test /(interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0), interval(0x2.0000000000000P+0, 0x3.0000000000000P+0)) === Interval(-0x1.8000000000000P+0, -0xA.AAAAAAAAAAAA8P-4) + + @test /(interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0), interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0)) === Interval(-0x8.0000000000000P-4, +0x8.0000000000000P-4) + + @test /(interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0), interval(0x2.0000000000000P+0, 0x3.0000000000000P+0)) === Interval(-0x8.0000000000000P-4, +0x8.0000000000000P-4) + + @test /(interval(0x2.0000000000000P+0, 0x3.0000000000000P+0), interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0)) === Interval(-0x1.8000000000000P+0, -0xA.AAAAAAAAAAAA8P-4) + + @test /(interval(0x2.0000000000000P+0, 0x3.0000000000000P+0), interval(0x2.0000000000000P+0, 0x3.0000000000000P+0)) === Interval(0xA.AAAAAAAAAAAA8P-4, 0x1.8000000000000P+0) + + @test /(interval(-0x3.0000000000000P+0, 0x0.0000000000000P+0), interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x1.8000000000000P+0) + + @test /(interval(-0x3.0000000000000P+0, 0x0.0000000000000P+0), interval(0x2.0000000000000P+0, 0x3.0000000000000P+0)) === Interval(-0x1.8000000000000P+0, 0x0.0000000000000P+0) + + @test /(interval(0x0.0000000000000P+0, 0x3.0000000000000P+0), interval(-0x3.0000000000000P+0, -0x2.0000000000000P+0)) === Interval(-0x1.8000000000000P+0, 0x0.0000000000000P+0) + + @test /(interval(0x0.0000000000000P+0, 0x3.0000000000000P+0), interval(0x2.0000000000000P+0, 0x3.0000000000000P+0)) === Interval(0x0.0000000000000P+0, 0x1.8000000000000P+0) + +end + +@testset "FI_LIB.unary_functions" begin + + @test exp(interval(-0x1.16CC0DF1540F5P+112, -0x1.B3E4076622F04P-232)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp(interval(-0x2.42042B9A88438P-220, -0x2.A213429DB0508P-508)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp(interval(-0x2.0E2E40B15D814P+272, -0x1.5D74CFDA6B292P-200)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp(interval(-0x2.0EA791886F712P-416, -0x3.FE66A8D1A3472P-456)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp(interval(-0x8.80EEFDF700148P+332, -0x1.C4E85E50A626DP+0)) === Interval(0x0.0000000000000P+0, 0x2.BA43457B11D98P-4) + + @test exp(interval(-0x6.CA83546563A5CP+236, -0x4.F0F28370909FCP-440)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp(interval(-0x4.E60572D4FCFD0P+172, -0x1.EB095183538C8P-344)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp(interval(-0x2.7ED8954764B12P-288, -0x8.71DC22117BE90P-756)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp(interval(-0xD.CF39B8DD68B98P-76, -0x8.0205C5B1357B0P-564)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp(interval(-0x4.AF296DD37FD74P+256, -0x5.CBE2BD423B02CP-48)) === Interval(0x0.0000000000000P+0, 0xF.FFFFFFFFFFA38P-4) + + @test exp(interval(-0x1.1FBA2D1252D2BP+656, -0x2.4B7A4095C91B4P+8)) === Interval(0x0.0000000000000P+0, 0x1.5D7A2F6655DFCP-848) + + @test exp(interval(-0x1.44F2134E1901EP+8, -0x2.581DAD9AFE6DCP-172)) === Interval(0x9.34C0766401B20P-472, 0x1.0000000000000P+0) + + @test exp(interval(-0x2.9529E333F2ABAP+988, -0x7.19390F862F49CP-544)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp(interval(-0x1.58391FD92C387P-148, -0x4.0C12426A57194P-440)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp(interval(-0xB.FADC4FB83E140P+348, -0xF.13E388B2165F0P-512)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp(interval(-0x8.86826CE1AB700P-240, -0x4.FEA8D3A3ED018P-316)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp(interval(0x1.0000000000000P+0, 0x2.0000000000000P+0)) === Interval(0x2.B7E151628AED2P+0, 0x7.63992E35376B8P+0) + + @test exp(interval(-0x1.0000000000000P+0, +0x2.0000000000000P+0)) === Interval(0x5.E2D58D8B3BCDCP-4, 0x7.63992E35376B8P+0) + + @test exp(interval(-0x5.0000000000000P+0, -0x3.0000000000000P+0)) === Interval(0x1.B993FE00D5376P-8, 0xC.BED8666758578P-8) + + @test exp(interval(-0x2.0000000000000P+0, +0x9.9999999999998P-4)) === Interval(0x2.2A555477F0396P-4, 0x1.D27660B11A9F0P+0) + + @test exp(interval(0x4.0000000000000P-1076, 0x4.4444400000000P-1056)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test exp(interval(0x4.4440000000000P-1064, 0x1.0000000000000P+0)) === Interval(0x1.0000000000000P+0, 0x2.B7E151628AED4P+0) + + @test exp(interval(-0x4.4444000000000P-1060, +0x4.4444000000000P-1060)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000001P+0) + + @test exp(interval(-0x4.4400000000000P-1068, +0x1.FFF0000000000P+0)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x7.6322F8540CFB4P+0) + + @test exp(interval(-0x1.FFFF000000000P+0, -0x8.8888880000000P-1052)) === Interval(0x2.2A577ECE59DC6P-4, 0x1.0000000000000P+0) + + @test exp(interval(-0x1.FFFFFFF000000P+0, +0x8.CD11555400000P-1044)) === Interval(0x2.2A55549A958EAP-4, 0x1.0000000000001P+0) + + @test exp2(interval(-0x1.16CC0DF1540F5P+112, -0x1.B3E4076622F04P-232)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp2(interval(-0x2.42042B9A88438P-220, -0x2.A213429DB0508P-508)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp2(interval(-0x2.0E2E40B15D814P+272, -0x1.5D74CFDA6B292P-200)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp2(interval(-0x2.0EA791886F712P-416, -0x3.FE66A8D1A3472P-456)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp2(interval(-0x8.80EEFDF700148P+332, -0x1.C4E85E50A626DP+0)) === Interval(0x0.0000000000000P+0, 0x4.B1AC6F8470484P-4) + + @test exp2(interval(-0x6.CA83546563A5CP+236, -0x4.F0F28370909FCP-440)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp2(interval(-0x4.E60572D4FCFD0P+172, -0x1.EB095183538C8P-344)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp2(interval(-0x2.7ED8954764B12P-288, -0x8.71DC22117BE90P-756)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp2(interval(-0xD.CF39B8DD68B98P-76, -0x8.0205C5B1357B0P-564)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp2(interval(-0x4.AF296DD37FD74P+256, -0x5.CBE2BD423B02CP-48)) === Interval(0x0.0000000000000P+0, 0xF.FFFFFFFFFFC00P-4) + + @test exp2(interval(-0x1.1FBA2D1252D2BP+656, -0x2.4B7A4095C91B4P+8)) === Interval(0x0.0000000000000P+0, 0x1.6FB78C613E5ECP-588) + + @test exp2(interval(-0x1.44F2134E1901EP+8, -0x2.581DAD9AFE6DCP-172)) === Interval(0x8.4EB038B9B8508P-328, 0x1.0000000000000P+0) + + @test exp2(interval(-0x2.9529E333F2ABAP+988, -0x7.19390F862F49CP-544)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp2(interval(-0x1.58391FD92C387P-148, -0x4.0C12426A57194P-440)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp2(interval(-0xB.FADC4FB83E140P+348, -0xF.13E388B2165F0P-512)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp2(interval(-0x8.86826CE1AB700P-240, -0x4.FEA8D3A3ED018P-316)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp2(interval(0x1.0000000000000P+0, 0x2.0000000000000P+0)) === Interval(0x2.0000000000000P+0, 0x4.0000000000000P+0) + + @test exp2(interval(-0x1.0000000000000P+0, +0x2.0000000000000P+0)) === Interval(0x8.0000000000000P-4, 0x4.0000000000000P+0) + + @test exp2(interval(-0x5.0000000000000P+0, -0x3.0000000000000P+0)) === Interval(0x8.0000000000000P-8, 0x2.0000000000000P-4) + + @test exp2(interval(-0x2.0000000000000P+0, +0x9.9999999999998P-4)) === Interval(0x4.0000000000000P-4, 0x1.8406003B2AE5DP+0) + + @test exp2(interval(0x4.4400000000000P-1068, 0x4.48CD100000000P-1052)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test exp2(interval(-0x4.8D15088880000P-1040, +0x4.8D11554000000P-1048)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000001P+0) + + @test exp2(interval(0xD.0888D11000000P-1044, 0x1.000003443AAAAP+0)) === Interval(0x1.0000000000000P+0, 0x2.0000048742860P+0) + + @test exp2(interval(-0xD.15550CC880000P-1040, +0x4.8D150CC000000P-1048)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000001P+0) + + @test exp2(interval(-0x4.8D159E0000000P-1048, +0x1.FFFFFF0999999P+0)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x3.FFFFFD54D58B0P+0) + + @test exp2(interval(-0x1.FFFFFFFFFFFFFP+0, +0x1.14C8911540000P-1040)) === Interval(0x4.0000000000000P-4, 0x1.0000000000001P+0) + + @test exp10(interval(-0x2.8457BC029986EP+112, -0x1.7A77BFCCF5A9EP-232)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp10(interval(-0x6.05C0BB1BCB730P-220, -0x3.C5EC30FBB68C8P-508)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp10(interval(-0x2.9B09919BF9D9EP+272, -0xE.20FF41BD18058P-204)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp10(interval(-0x1.1503444763FC5P-416, -0x2.075DF98B2478CP-456)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp10(interval(-0x4.ECBC855871080P+332, -0x1.3A01905E36F84P+0)) === Interval(0x0.0000000000000P+0, 0xF.317F8555628F0P-8) + + @test exp10(interval(-0x7.32EDAB7F60A50P+236, -0x2.404E44C49C644P-440)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp10(interval(-0x6.5263CF84EF388P+172, -0x1.63A15E999EB64P-344)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp10(interval(-0x1.4171976A1CA54P-288, -0x6.941F470A70074P-756)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp10(interval(-0x4.69BB1D34B9570P-76, -0x7.78A1F475A306CP-564)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp10(interval(-0x2.E046DB554037CP+256, -0x2.6ABC15579B2B2P-48)) === Interval(0x0.0000000000000P+0, 0xF.FFFFFFFFFFA70P-4) + + @test exp10(interval(-0xE.33C49CF5B8790P+652, -0x8.297A99ED9ED08P+8)) === Interval(0x0.0000000000000P+0, 0x4.0000000000000P-1076) + + @test exp10(interval(-0x1.7AAA15EBBD3F2P+8, -0x6.3E590E626451CP-172)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp10(interval(-0x2.8F9204BC4041EP+988, -0x6.ACFA418D8F92CP-544)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp10(interval(-0x2.B00450A48D586P-148, -0x2.BB570B356C6CAP-440)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp10(interval(-0x1.9E7DDBBE00F75P+352, -0xC.41329461A0C30P-512)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp10(interval(-0x1.5BD629B25AA23P-236, -0x7.DEA605DEC97CCP-316)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp10(interval(-0x3.AE1DC13A652CAP+168, -0x6.65D7E0A247778P-56)) === Interval(0x0.0000000000000P+0, 0xF.FFFFFFFFFFFF8P-4) + + @test exp10(interval(-0xA.27B4555158148P-68, -0x5.2B55801231EC8P-344)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp10(interval(-0x1.D68A6BA7E617FP+12, -0x6.36B661DCE2688P-236)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp10(interval(-0x1.98EF0C6A8BD66P+132, -0x1.EB0E1AB78F314P-480)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp10(interval(-0x1.C08152CC09416P+220, -0x7.4CF193131FA64P-192)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp10(interval(-0x6.F70E0DA4D2BA0P-140, -0x1.7036C237D5B00P-672)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test exp10(interval(-0xF.CC937FA330E40P+648, -0x3.A0EE84451C92CP-324)) === Interval(0x0.0000000000000P+0, 0x1.0000000000000P+0) + + @test exp10(interval(-0x5.F775993940188P-120, -0x1.8BCA641025A83P-124)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test log(interval(0xC.4B4A6EB6B3AF0P-264, 0xA.DD2C4C1BE4B30P+92)) === Interval(-0xB.47B530A1054D8P+4, +0x4.227AD8183FB70P+4) + + @test log(interval(0x2.6213E21B14894P-516, 0x6.6606F0995E5F4P-224)) === Interval(-0x1.64CBA844FC0EAP+8, -0x9.968AD8B569FE0P+4) + + @test log(interval(0x9.0FF2CAA1B3048P-240, 0x1.95F14B9BA7449P+236)) === Interval(-0xA.426B5145A44A0P+4, +0xA.40B346F454218P+4) + + @test log(interval(0x8.E2ADA8DFBE938P-492, 0x3.67CB3BE0BB146P-452)) === Interval(-0x1.52D81024E4C23P+8, -0x1.3813C01ACD25CP+8) + + @test log(interval(0x1.394270BBCBA7EP+196, 0x8.4976F0BF45A40P+224)) === Interval(0x8.80F0717A1DC40P+4, 0x9.D6130F01F8B78P+4) + + @test log(interval(0x6.A000A12839A50P-44, 0x3.86DC59439415AP+276)) === Interval(-0x1.C9B8D4127E3DAP+4, +0xC.091AAD1207058P+4) + + @test log(interval(0x1.3C84E4F9C80CEP-476, 0x9.1E9439C3B4358P+196)) === Interval(-0x1.49B9D16B7E46AP+8, +0x8.A1137BDE55CF8P+4) + + @test log(interval(0x8.41D2DB6D93548P-376, 0x2.EDCF4A7919034P+140)) === Interval(-0x1.028323B4D95B4P+8, +0x6.21D80D9193AB8P+4) + + @test log(interval(0x1.2C18FEEBCAEAEP-768, 0x1.C369E759DF5E3P-328)) === Interval(-0x2.142D983D15A28P+8, -0xE.2C8FA3F896A50P+4) + + @test log(interval(0x4.D94E91619D3F0P-580, 0x2.9F6CAF6B5513EP-132)) === Interval(-0x1.907255D3994FEP+8, -0x5.A87FCF5FBD800P+4) + + @test log(interval(0x2.9CD12C1D0AAC4P+116, 0x3.BF7E0E52DC1AAP+276)) === Interval(0x5.15D8B410E0A5CP+4, 0xC.0A13DC536CD58P+4) + + @test log(interval(0x3.36DE5C55594EEP-100, 0x1.D0460177B1553P+204)) === Interval(-0x4.425A8474E3980P+4, +0x8.DFF506FE0D9F8P+4) + + @test log(interval(0x4.BD4031736F7A8P+4, 0xF.A10BB3C91C7B0P+592)) === Interval(0x4.54169A4297548P+0, 0x1.9D179EA5204D0P+8) + + @test log(interval(0x2.8E258DB3C44F8P+20, 0x3.1A4EDE719A4C0P+628)) === Interval(0xE.CD14BEBE2CD68P+0, 0x1.B46DC0D02B874P+8) + + @test log(interval(0x2.33950F38F830EP-176, 0x5.BE0388619B018P-24)) === Interval(-0x7.9346BAB839B58P+4, -0xE.E33F2C933B990P+0) + + @test log(interval(0x3.24F03DF33568CP-560, 0xE.67255823421E8P+920)) === Interval(-0x1.83044F26AAA2BP+8, +0x2.805CE2DC91036P+8) + + @test log(interval(0x2.D572639DC5FA8P-468, 0x1.95CF42AA171CDP-160)) === Interval(-0x1.4359ECD75CB6CP+8, -0x6.E715E1BA0E35CP+4) + + @test log(interval(0x4.705A028302DB0P-532, 0x2.E57341C14970CP+324)) === Interval(-0x1.6F438EE9F6020P+8, +0xE.1A4A3523F2658P+4) + + @test log(interval(0x4.DBA1D21D6F308P+144, 0x3.667988C57865AP+196)) === Interval(0x6.564D09AD1D214P+4, 0x8.914A9531FD118P+4) + + @test log(interval(0x4.9FA5A1E4DF740P-328, 0x1.11B85141B78F6P-240)) === Interval(-0xE.1D2336A5BE1A8P+4, -0xA.649D44362A2F0P+4) + + @test log(interval(0xA.0CDE9DC015B08P+360, 0xF.99D84F862AC58P+524)) === Interval(0xF.BD7308ED73FF0P+4, 0x1.6DF4DA39DC5DDP+8) + + @test log(interval(0x6.88441038D56B8P-108, 0x3.3D65C09938132P+136)) === Interval(-0x4.8FBAEF1169C24P+4, +0x5.F718BBF0CE2F8P+4) + + @test log(interval(0x7.1761CAB055134P-356, 0x1.92EFD09488689P-76)) === Interval(-0xF.4CD3094A3B4B8P+4, -0x3.439BFD719BAE8P+4) + + @test log(interval(0x6.2085E427413C8P-252, 0xB.8CDD3B024EA10P-36)) === Interval(-0xA.CDC41AEE74318P+4, -0x1.681AFF89E9C89P+4) + + @test log(interval(0xB.F5F1C0FA33978P-504, 0x4.924DD8D50B1CCP+72)) === Interval(-0x1.5ADD53379EF4DP+8, +0x3.36D2B121508A8P+4) + + @test log(interval(0xB.BC7E37EB2D388P-216, 0x1.CFE27BB53DEBBP+192)) === Interval(-0x9.341D196AD2D58P+4, +0x8.5ADC069F618A8P+4) + + @test log(interval(0x1.E139DD116F868P-688, 0xD.2545346D68FD0P-148)) === Interval(-0x1.DC410CBC8E1C8P+8, -0x6.4027B79D2EAA8P+4) + + @test log(interval(0x2.E0C8E64A890ACP+192, 0x2.6A898D2CAA9A4P+260)) === Interval(0x8.6243148F46208P+4, 0xB.519B6E544F898P+4) + + @test log(interval(0x5.9C4642ED78BC8P-340, 0x4.631BD2232F0C0P+588)) === Interval(-0xE.9F20674285418P+4, +0x1.990C99B6124FEP+8) + + @test log(interval(0xF.C05EA810DFE88P-180, 0xA.05884FBED5F48P-152)) === Interval(-0x7.A02728D7D3790P+4, -0x6.70DBA893A16E0P+4) + + @test log2(interval(0xC.4B4A6EB6B3AF0P-264, 0xA.DD2C4C1BE4B30P+92)) === Interval(-0x1.04614E93EA794P+8, +0x5.F7104B04804E4P+4) + + @test log2(interval(0x2.6213E21B14894P-516, 0x6.6606F0995E5F4P-224)) === Interval(-0x2.02BF4547CF74AP+8, -0xD.D527F669B7AA0P+4) + + @test log2(interval(0x9.0FF2CAA1B3048P-240, 0x1.95F14B9BA7449P+236)) === Interval(-0xE.CD1F394A2C268P+4, +0xE.CAA4613C31FD0P+4) + + @test log2(interval(0x8.E2ADA8DFBE938P-492, 0x3.67CB3BE0BB146P-452)) === Interval(-0x1.E8D93AC78E47CP+8, -0x1.C23B6E9F9BE73P+8) + + @test log2(interval(0x1.394270BBCBA7EP+196, 0x8.4976F0BF45A40P+224)) === Interval(0xC.44A8D0A480900P+4, 0xE.30D042BD32E08P+4) + + @test log2(interval(0x6.A000A12839A50P-44, 0x3.86DC59439415AP+276)) === Interval(-0x2.945A6DE3564F2P+4, +0x1.15D18004DA527P+8) + + @test log2(interval(0x1.3C84E4F9C80CEP-476, 0x9.1E9439C3B4358P+196)) === Interval(-0x1.DBB1A03AD9911P+8, +0xC.7305ECF8E75D8P+4) + + @test log2(interval(0x8.41D2DB6D93548P-376, 0x2.EDCF4A7919034P+140)) === Interval(-0x1.74F450FB5F194P+8, +0x8.D8CE5C08208D0P+4) + + @test log2(interval(0x1.2C18FEEBCAEAEP-768, 0x1.C369E759DF5E3P-328)) === Interval(-0x2.FFC54D5EF9E5AP+8, -0x1.472E83799CCFAP+8) + + @test log2(interval(0x4.D94E91619D3F0P-580, 0x2.9F6CAF6B5513EP-132)) === Interval(-0x2.41B8EC5041B68P+8, -0x8.29BE215800410P+4) + + @test log2(interval(0x2.9CD12C1D0AAC4P+116, 0x3.BF7E0E52DC1AAP+276)) === Interval(0x7.562AE05DF4698P+4, 0x1.15E7F7FA196AAP+8) + + @test log2(interval(0x3.36DE5C55594EEP-100, 0x1.D0460177B1553P+204)) === Interval(-0x6.250C3695FCF20P+4, +0xC.CDBDC5938D560P+4) + + @test log2(interval(0x4.BD4031736F7A8P+4, 0xF.A10BB3C91C7B0P+592)) === Interval(0x6.3EA22BED11920P+0, 0x2.53F7565A6FA4CP+8) + + @test log2(interval(0x2.8E258DB3C44F8P+20, 0x3.1A4EDE719A4C0P+628)) === Interval(0x1.55A7D090E9BC4P+4, 0x2.75A230A6EF148P+8) + + @test log2(interval(0x2.33950F38F830EP-176, 0x5.BE0388619B018P-24)) === Interval(-0xA.EDC8C6AE09A00P+4, -0x1.57A778189781EP+4) + + @test log2(interval(0x3.24F03DF33568CP-560, 0xE.67255823421E8P+920)) === Interval(-0x2.2E58E661BEF52P+8, +0x3.9BD9297418726P+8) + + @test log2(interval(0x2.D572639DC5FA8P-468, 0x1.95CF42AA171CDP-160)) === Interval(-0x1.D27F4D5811EC0P+8, -0x9.F55D8E4A51F88P+4) + + @test log2(interval(0x4.705A028302DB0P-532, 0x2.E57341C14970CP+324)) === Interval(-0x2.11D98CE9F01E8P+8, +0x1.4588C1B9F05FCP+8) + + @test log2(interval(0x4.DBA1D21D6F308P+144, 0x3.667988C57865AP+196)) === Interval(0x9.247C4A0D6A240P+4, 0xC.5C40234316DE0P+4) + + @test log2(interval(0x4.9FA5A1E4DF740P-328, 0x1.11B85141B78F6P-240)) === Interval(-0x1.45CA7D7508D73P+8, -0xE.FE7480A8A6A70P+4) + + @test log2(interval(0xA.0CDE9DC015B08P+360, 0xF.99D84F862AC58P+524)) === Interval(0x1.6B54440063A2FP+8, 0x2.0FF6AC0A1DF08P+8) + + @test log2(interval(0x6.88441038D56B8P-108, 0x3.3D65C09938132P+136)) === Interval(-0x6.94ADB7A807630P+4, +0x8.9B227CD69B7B0P+4) + + @test log2(interval(0x7.1761CAB055134P-356, 0x1.92EFD09488689P-76)) === Interval(-0x1.612C877FDEFC9P+8, -0x4.B58789B7D2AB8P+4) + + @test log2(interval(0x6.2085E427413C8P-252, 0xB.8CDD3B024EA10P-36)) === Interval(-0xF.96282D809EDE0P+4, -0x2.0785B9A270C10P+4) + + @test log2(interval(0xB.F5F1C0FA33978P-504, 0x4.924DD8D50B1CCP+72)) === Interval(-0x1.F46B75E4932F4P+8, +0x4.A3152AC221298P+4) + + @test log2(interval(0xB.BC7E37EB2D388P-216, 0x1.CFE27BB53DEBBP+192)) === Interval(-0xD.47274C2E0B298P+4, +0xC.0DB8D252704A8P+4) + + @test log2(interval(0x1.E139DD116F868P-688, 0xD.2545346D68FD0P-148)) === Interval(-0x2.AF16E4D3D6128P+8, -0x9.048930492A7A0P+4) + + @test log2(interval(0x2.E0C8E64A890ACP+192, 0x2.6A898D2CAA9A4P+260)) === Interval(0xC.1866CEA5B0408P+4, 0x1.0545D0C4DA7BAP+8) + + @test log2(interval(0x5.9C4642ED78BC8P-340, 0x4.631BD2232F0C0P+588)) === Interval(-0x1.51830AD8B30FCP+8, +0x2.4E221EC1DB53EP+8) + + @test log2(interval(0xF.C05EA810DFE88P-180, 0xA.05884FBED5F48P-152)) === Interval(-0xB.005C8501548A8P+4, -0x9.4ACCA02A24828P+4) + + @test log10(interval(0xC.4B4A6EB6B3AF0P-264, 0xA.DD2C4C1BE4B30P+92)) === Interval(-0x4.E61D94C4C8D58P+4, +0x1.CBB1247192AE0P+4) + + @test log10(interval(0x2.6213E21B14894P-516, 0x6.6606F0995E5F4P-224)) === Interval(-0x9.AF44F24283358P+4, -0x4.29FE8451F9E24P+4) + + @test log10(interval(0x9.0FF2CAA1B3048P-240, 0x1.95F14B9BA7449P+236)) === Interval(-0x4.74A3ADB971C48P+4, +0x4.73E4925024C64P+4) + + @test log10(interval(0x8.E2ADA8DFBE938P-492, 0x3.67CB3BE0BB146P-452)) === Interval(-0x9.32877CA0160B8P+4, -0x8.7888BDDBCE5D0P+4) + + @test log10(interval(0x1.394270BBCBA7EP+196, 0x8.4976F0BF45A40P+224)) === Interval(0x3.B16EC52507DF2P+4, 0x4.4595F97548968P+4) + + @test log10(interval(0x6.A000A12839A50P-44, 0x3.86DC59439415AP+276)) === Interval(-0xC.6C93FFEF64F78P+0, +0x5.3A1B471A21FF4P+4) + + @test log10(interval(0x1.3C84E4F9C80CEP-476, 0x9.1E9439C3B4358P+196)) === Interval(-0x8.F32B7DBB21008P+4, +0x3.BF63BA7A3C658P+4) + + @test log10(interval(0x8.41D2DB6D93548P-376, 0x2.EDCF4A7919034P+140)) === Interval(-0x7.0453C2F061648P+4, +0x2.A9C64A16830FCP+4) + + @test log10(interval(0x1.2C18FEEBCAEAEP-768, 0x1.C369E759DF5E3P-328)) === Interval(-0xE.71F3C5029D848P+4, -0x6.27DD331C437F0P+4) + + @test log10(interval(0x4.D94E91619D3F0P-580, 0x2.9F6CAF6B5513EP-132)) === Interval(-0xA.DE968FD95ABE0P+4, -0x2.7513429684674P+4) + + @test log10(interval(0x2.9CD12C1D0AAC4P+116, 0x3.BF7E0E52DC1AAP+276)) === Interval(0x2.35627EFD00A60P+4, 0x5.3A877F4AD58E8P+4) + + @test log10(interval(0x3.36DE5C55594EEP-100, 0x1.D0460177B1553P+204)) === Interval(-0x1.D988D7EBC5AE3P+4, +0x3.DAB2CD7F2625EP+4) + + @test log10(interval(0x4.BD4031736F7A8P+4, 0xF.A10BB3C91C7B0P+592)) === Interval(0x1.E13C93CF0C5D8P+0, 0xB.367584AC914D0P+4) + + @test log10(interval(0x2.8E258DB3C44F8P+20, 0x3.1A4EDE719A4C0P+628)) === Interval(0x6.6D93B54D66420P+0, 0xB.D89E0CA927598P+4) + + @test log10(interval(0x2.33950F38F830EP-176, 0x5.BE0388619B018P-24)) === Interval(-0x3.4A378CAAD54DAP+4, -0x6.773414D886C14P+0) + + @test log10(interval(0x3.24F03DF33568CP-560, 0xE.67255823421E8P+920)) === Interval(-0xA.8144B5B8F5DD8P+4, +0x1.161B25DAC86ECP+8) + + @test log10(interval(0x2.D572639DC5FA8P-468, 0x1.95CF42AA171CDP-160)) === Interval(-0x8.C6DFF01C76970P+4, -0x2.FF6F7B088B0CCP+4) + + @test log10(interval(0x4.705A028302DB0P-532, 0x2.E57341C14970CP+324)) === Interval(-0x9.F802CE339E840P+4, +0x6.1FEDD0FB88D78P+4) + + @test log10(interval(0x4.DBA1D21D6F308P+144, 0x3.667988C57865AP+196)) === Interval(0x2.C08E6C63F32E4P+4, 0x3.B888C99289754P+4) + + @test log10(interval(0x4.9FA5A1E4DF740P-328, 0x1.11B85141B78F6P-240)) === Interval(-0x6.212A6B69124F0P+4, -0x4.837D7868C93BCP+4) + + @test log10(interval(0xA.0CDE9DC015B08P+360, 0xF.99D84F862AC58P+524)) === Interval(0x6.D5F7B5F14DD48P+4, 0x9.EEED0801EA480P+4) + + @test log10(interval(0x6.88441038D56B8P-108, 0x3.3D65C09938132P+136)) === Interval(-0x1.FB238786D64F9P+4, +0x2.9735AA99F42AAP+4) + + @test log10(interval(0x7.1761CAB055134P-356, 0x1.92EFD09488689P-76)) === Interval(-0x6.A50E2200DFF14P+4, -0x1.6AE688B7C8203P+4) + + @test log10(interval(0x6.2085E427413C8P-252, 0xB.8CDD3B024EA10P-36)) === Interval(-0x4.B1282C68FE4F8P+4, -0x9.C644DFB9EE3E0P+0) + + @test log10(interval(0xB.F5F1C0FA33978P-504, 0x4.924DD8D50B1CCP+72)) === Interval(-0x9.6A430336AD680P+4, +0x1.6558F570C1420P+4) + + @test log10(interval(0xB.BC7E37EB2D388P-216, 0x1.CFE27BB53DEBBP+192)) === Interval(-0x3.FF3F46384E0E2P+4, +0x3.A0E51611FF75EP+4) + + @test log10(interval(0x1.E139DD116F868P-688, 0xD.2545346D68FD0P-148)) === Interval(-0xC.ED5A39E5D4878P+4, -0x2.B6F044CDE4A0CP+4) + + @test log10(interval(0x2.E0C8E64A890ACP+192, 0x2.6A898D2CAA9A4P+260)) === Interval(0x3.A41C190FE9E7AP+4, 0x4.EA6A3021E4FB8P+4) + + @test log10(interval(0x5.9C4642ED78BC8P-340, 0x4.631BD2232F0C0P+588)) === Interval(-0x6.599E84FEF71BCP+4, +0xB.1A5D77BC55F98P+4) + + @test log10(interval(0xF.C05EA810DFE88P-180, 0xA.05884FBED5F48P-152)) === Interval(-0x3.4FCF2BC10B840P+4, -0x2.CC1706E0167D2P+4) + + @test sin(interval(-0xA.644C9D88EA8C8P-152, -0xD.8EC7927926F18P-944)) === Interval(-0xA.644C9D88EA8C8P-152, -0xD.8EC7927926F10P-944) + + @test sin(interval(-0x1.9EE1A9DB994F5P-436, -0x6.D914701C82FECP-624)) === Interval(-0x1.9EE1A9DB994F5P-436, -0x6.D914701C82FE8P-624) + + @test sin(interval(-0x5.65057F3EFFC60P+4, -0x2.3617CF5815ECAP-960)) === Interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0) + + @test sin(interval(-0x1.975299CCB0E08P-372, +0xB.BEC7D35B45B00P-588)) === Interval(-0x1.975299CCB0E08P-372, +0xB.BEC7D35B45B00P-588) + + @test sin(interval(-0x3.51D388D47AED2P-356, -0x1.C3A9CD7025105P-564)) === Interval(-0x3.51D388D47AED2P-356, -0x1.C3A9CD7025104P-564) + + @test sin(interval(-0xC.DB363268CF708P-332, -0x2.171B7D7BFE4E0P-412)) === Interval(-0xC.DB363268CF708P-332, -0x2.171B7D7BFE4DEP-412) + + @test sin(interval(-0x1.32690AAC2472DP-40, -0x8.706EBDCF39C88P-792)) === Interval(-0x1.32690AAC2472DP-40, -0x8.706EBDCF39C80P-792) + + @test sin(interval(-0x5.0145AF0C53324P-200, -0x2.F5A0CB3301856P-204)) === Interval(-0x5.0145AF0C53324P-200, -0x2.F5A0CB3301854P-204) + + @test sin(interval(0xF.4077C7E8CD6A0P-268, 0x3.753426098AC5AP-80)) === Interval(0xF.4077C7E8CD698P-268, 0x3.753426098AC5AP-80) + + @test sin(interval(-0xB.B25F8D8BB7FB8P-376, -0x2.017A332F9B05CP-916)) === Interval(-0xB.B25F8D8BB7FB8P-376, -0x2.017A332F9B05AP-916) + + @test sin(interval(-0xD.947CA427FDFE0P-592, +0xE.3BE493B5BC8E8P-16)) === Interval(-0xD.947CA427FDFE0P-592, +0xE.3BE491D517170P-16) + + @test sin(interval(-0x9.C46198B2471F0P-336, -0x1.65ED85DF2D4B7P-576)) === Interval(-0x9.C46198B2471F0P-336, -0x1.65ED85DF2D4B6P-576) + + @test sin(interval(-0x3.2C867C027DB44P-936, +0x6.1883EA827AB6CP-388)) === Interval(-0x3.2C867C027DB44P-936, +0x6.1883EA827AB6CP-388) + + @test sin(interval(-0x3.560EF91C47DEAP-492, +0x5.413664DD17ABCP-20)) === Interval(-0x3.560EF91C47DEAP-492, +0x5.413664DCFF7D4P-20) + + @test sin(interval(-0x8.36BFCD74A6D68P-304, -0x3.2C20EB130D510P-836)) === Interval(-0x8.36BFCD74A6D68P-304, -0x3.2C20EB130D50EP-836) + + @test sin(interval(-0x6.BCEC84603958CP-500, -0x1.068B13DA99666P-760)) === Interval(-0x6.BCEC84603958CP-500, -0x1.068B13DA99665P-760) + + @test sin(interval(-0x1.2789C2D583BCDP-568, -0x1.F2BD89DAD0665P-780)) === Interval(-0x1.2789C2D583BCDP-568, -0x1.F2BD89DAD0664P-780) + + @test sin(interval(-0xC.FE4E8D857E3E0P-548, +0x1.580844B9DC45CP-780)) === Interval(-0xC.FE4E8D857E3E0P-548, +0x1.580844B9DC45CP-780) + + @test sin(interval(-0xC.508D29ACB01B8P-52, +0x1.B1E6B793078DDP-664)) === Interval(-0xC.508D29ACB01B8P-52, +0x1.B1E6B793078DDP-664) + + @test sin(interval(-0xA.12F7783880A78P-124, -0x3.765DF69EE106EP-548)) === Interval(-0xA.12F7783880A78P-124, -0x3.765DF69EE106CP-548) + + @test sin(interval(-0x6.3A58D52FDF844P-896, -0x1.039E2518CF503P-1008)) === Interval(-0x6.3A58D52FDF844P-896, -0x1.039E2518CF502P-1008) + + @test sin(interval(-0xB.DD3171FDEEC18P-168, +0x1.069E434EE9E0FP-740)) === Interval(-0xB.DD3171FDEEC18P-168, +0x1.069E434EE9E0FP-740) + + @test sin(interval(-0x3.CF0053257533AP-776, -0x1.7883A587654E5P-928)) === Interval(-0x3.CF0053257533AP-776, -0x1.7883A587654E4P-928) + + @test sin(interval(0x1.455801D3D2B63P-704, 0x3.A4C915783D07AP-28)) === Interval(0x1.455801D3D2B62P-704, 0x3.A4C915783D07AP-28) + + @test sin(interval(-0x2.097D06F4DE3E2P-376, +0x2.2E7561FD9255EP-772)) === Interval(-0x2.097D06F4DE3E2P-376, +0x2.2E7561FD9255EP-772) + + @test sin(interval(-0x1.7E13DBB66E5A3P-84, -0x6.BC8F45D6A8F48P-540)) === Interval(-0x1.7E13DBB66E5A3P-84, -0x6.BC8F45D6A8F44P-540) + + @test sin(interval(-0x4.1F50C5F2CDA54P-276, -0x3.DF16F79756422P-496)) === Interval(-0x4.1F50C5F2CDA54P-276, -0x3.DF16F79756420P-496) + + @test sin(interval(-0x7.ECC4C5EEC4CACP-328, -0x2.E02E1DB7A08F6P-876)) === Interval(-0x7.ECC4C5EEC4CACP-328, -0x2.E02E1DB7A08F4P-876) + + @test sin(interval(-0xC.1BC7A4C89D440P-256, +0x2.A7F56252D1D34P-608)) === Interval(-0xC.1BC7A4C89D440P-256, +0x2.A7F56252D1D34P-608) + + @test sin(interval(-0xB.CE50D7B2F2868P-236, -0xE.6B08988339B80P-432)) === Interval(-0xB.CE50D7B2F2868P-236, -0xE.6B08988339B78P-432) + + @test cos(interval(-0xA.644C9D88EA8C8P-152, -0xD.8EC7927926F18P-944)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x1.9EE1A9DB994F5P-436, -0x6.D914701C82FECP-624)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x5.65057F3EFFC60P+4, -0x2.3617CF5815ECAP-960)) === Interval(-0x1.0000000000000P+0, +0x1.0000000000000P+0) + + @test cos(interval(-0x1.975299CCB0E08P-372, +0xB.BEC7D35B45B00P-588)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x3.51D388D47AED2P-356, -0x1.C3A9CD7025105P-564)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0xC.DB363268CF708P-332, -0x2.171B7D7BFE4E0P-412)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x1.32690AAC2472DP-40, -0x8.706EBDCF39C88P-792)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x5.0145AF0C53324P-200, -0x2.F5A0CB3301856P-204)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(0xF.4077C7E8CD6A0P-268, 0x3.753426098AC5AP-80)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0xB.B25F8D8BB7FB8P-376, -0x2.017A332F9B05CP-916)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0xD.947CA427FDFE0P-592, +0xE.3BE493B5BC8E8P-16)) === Interval(0xF.FFFFF9AB27E58P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x9.C46198B2471F0P-336, -0x1.65ED85DF2D4B7P-576)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x3.2C867C027DB44P-936, +0x6.1883EA827AB6CP-388)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x3.560EF91C47DEAP-492, +0x5.413664DD17ABCP-20)) === Interval(0xF.FFFFFFFF231A0P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x8.36BFCD74A6D68P-304, -0x3.2C20EB130D510P-836)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x6.BCEC84603958CP-500, -0x1.068B13DA99666P-760)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x1.2789C2D583BCDP-568, -0x1.F2BD89DAD0665P-780)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0xC.FE4E8D857E3E0P-548, +0x1.580844B9DC45CP-780)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0xC.508D29ACB01B8P-52, +0x1.B1E6B793078DDP-664)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0xA.12F7783880A78P-124, -0x3.765DF69EE106EP-548)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x6.3A58D52FDF844P-896, -0x1.039E2518CF503P-1008)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0xB.DD3171FDEEC18P-168, +0x1.069E434EE9E0FP-740)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x3.CF0053257533AP-776, -0x1.7883A587654E5P-928)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(0x1.455801D3D2B63P-704, 0x3.A4C915783D07AP-28)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x2.097D06F4DE3E2P-376, +0x2.2E7561FD9255EP-772)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x1.7E13DBB66E5A3P-84, -0x6.BC8F45D6A8F48P-540)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x4.1F50C5F2CDA54P-276, -0x3.DF16F79756422P-496)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0x7.ECC4C5EEC4CACP-328, -0x2.E02E1DB7A08F6P-876)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0xC.1BC7A4C89D440P-256, +0x2.A7F56252D1D34P-608)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test cos(interval(-0xB.CE50D7B2F2868P-236, -0xE.6B08988339B80P-432)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test tan(interval(0x4.6AF931A62EB70P+4, 0x4.6C0D89ACF83F0P+4)) === Interval(-0x4.2B94A5B864748P+16, -0xE.CC7EFFC39BBE8P+0) + + @test tan(interval(0x9.B824319678E98P+4, 0x9.B8365416B3188P+4)) === Interval(-0x9.517610C9FF4F0P+28, -0xE.1DCEBD0ABA128P+4) + + @test tan(interval(0xE.231D6DE6B2910P+0, 0xE.232155989FD58P+0)) === Interval(-0x1.1A74CC770CA81P+20, -0x4.09E5FC000B430P+12) + + @test tan(interval(0x3.A1E994576AF38P+4, 0x3.A1F62CB3D8B0CP+4)) === Interval(-0x3.EDBBE63A85A20P+12, -0x1.3EC2E09B0B82DP+8) + + @test tan(interval(0x4.504512C674C88P+8, 0x4.5045147DF4570P+8)) === Interval(-0xC.5E819F2BCA708P+28, -0x9.51D20751384C0P+12) + + @test tan(interval(0x7.DA9E8C267B000P+0, 0xA.CCC7028A13E50P+0)) === Interval(-0x8.CE26DA7B8CCA8P+20, +0x5.0BA299C8F763CP+0) + + @test tan(interval(0xC.CA9E956E09870P+12, 0xC.CA9FEB35E8D28P+12)) === Interval(-0x9.40D68D3420248P+16, -0xB.F4CB43C962B98P+0) + + @test tan(interval(0x2.F6B1D30E1AC2CP+8, 0x2.F6B1EAD90ED6EP+8)) === Interval(-0x1.1E211833A60A2P+20, -0xA.BBFD5C235E8E8P+8) + + @test tan(interval(0xB.C33774AC8C510P+8, 0xB.C3378F9640B80P+8)) === Interval(-0x3.B8E9A3359EA76P+12, -0x8.33C065B080F78P+8) + + @test tan(interval(0x4.B65F2027400ECP+0, 0x4.B65F690A4503CP+0)) === Interval(-0x2.D46AD27DDB548P+24, -0x3.7ECF31F99ADC4P+16) + + @test tan(interval(0x3.C60A2C774D8A6P+8, 0x3.C60A76B28E42CP+8)) === Interval(-0x3.28E3C44C11B44P+24, -0x3.72D85B31BD660P+8) + + @test tan(interval(0x7.DA9E8A5DF3B7CP+0, 0x7.DAA9CFE45466CP+0)) === Interval(-0x1.D9B11082E8FC3P+28, -0x1.6B6333E88C1DFP+12) + + @test tan(interval(0x3.A1E953315B022P+4, 0x3.A3624FC9B84C0P+4)) === Interval(-0x4.91A5298A762FCP+24, -0xA.D59BACA695F48P+0) + + @test tan(interval(0x7.DA9E8AB1B7B7CP+0, 0x8.E4A2BCBB988B0P+0)) === Interval(-0x2.C52AD8545AC54P+24, -0x9.691CCDB9751E8P-4) + + @test tan(interval(0x5.48783C12B018CP+8, 0x5.487863A8A0C78P+8)) === Interval(-0x4.7465D978FF1E8P+4, -0x4.455187267B294P+4) + + @test tan(interval(0x1.AB41B772619C2P+4, 0x1.AB96C295E1A23P+4)) === Interval(-0x2.55DE9F429F276P+16, -0x3.02439C1296068P+4) + + @test tan(interval(0x1.87E20C8B7CCC1P+16, 0x1.87E20E060934FP+16)) === Interval(-0x7.5F7BB0C55311CP+28, -0xA.D1F5D5F3730E8P+4) + + @test tan(interval(0x2.5BA5629043048P+16, 0x2.5BA5A6106DDF4P+16)) === Interval(-0x4.BDE3C915168D8P+4, -0x3.84ED584601B4CP+0) + + @test tan(interval(0x1.A9AF913EE27CFP+8, 0x1.A9AFA6D06E549P+8)) === Interval(-0x2.CB455269CB954P+16, -0xB.ACE6E2EAA9098P+8) + + @test tan(interval(0x7.64CF403A51948P+8, 0x7.64D139F1912E4P+8)) === Interval(-0x5.38F704820A47CP+28, -0x8.19686283B81E8P+4) + + @test tan(interval(0x4.1437B08F8BA70P+16, 0x4.1439A27E86D50P+16)) === Interval(-0x1.3ADB30F7A9B56P+24, +0x6.48C7464A8F9A0P-4) + + @test tan(interval(0x2.74518B3BAFB7CP+4, 0x2.74518DE5A60C0P+4)) === Interval(-0xF.8E3A10DB36640P+24, -0x5.FF456443FD8B8P+16) + + @test tan(interval(0x1.DD85A7816A0FFP+4, 0x1.DD89849DFDF09P+4)) === Interval(-0x3.FA5C8BD1A67ECP+20, -0x4.23D96B0387510P+8) + + @test tan(interval(0x1.AB41B29964887P+4, 0x1.B5CBD4ED0D1DDP+4)) === Interval(-0x7.FC8B577B97310P+16, -0x1.4AB8A7BB81552P+0) + + @test tan(interval(0x1.19454E95BC804P+12, 0x1.194551E9AD95AP+12)) === Interval(-0x1.2A53ECF4C9B1AP+12, -0x3.D27F074C2DA94P+8) + + @test tan(interval(0x4.C4823D2C30D00P+8, 0x4.C482DEAE395CCP+8)) === Interval(-0x7.F7B434A3F3544P+28, -0x1.95C659F53B09BP+8) + + @test tan(interval(0x1.DD85BAAB9BAF9P+4, 0x1.DD8660423BAACP+4)) === Interval(-0xD.2F5338751C9C8P+12, -0x1.623D682415BE0P+12) + + @test tan(interval(0x2.F798BB3536690P+16, 0x2.F79A363308C32P+16)) === Interval(-0x2.F8C1AC15A9CCEP+16, -0x1.731B7ACF94603P-4) + + @test tan(interval(0x1.78FDB9F143616P+4, 0x1.78FDB9F143616P+4)) === Interval(-0xC.9CFD638FE0A18P+24, -0xC.9CFD638FE0A10P+24) + + @test tan(interval(0x1.78FDB9F143616P+4, 0x1.79367E02D4EAAP+4)) === Interval(-0xC.9CFD638FE0A18P+24, -0x4.826BF805C4E68P+4) + + @test cot(interval(0x4.51D73651EA89CP+4, 0x4.52EB8E58B411CP+4)) === Interval(0xE.CC7EFFC39DE08P+0, 0x4.2B94A5E391E20P+16) + + @test cot(interval(0x9.9F02364234BC8P+4, 0x9.9F1458C26EEB8P+4)) === Interval(0xE.1DCEBD0AA72D0P+4, 0x9.516DD4FA21CF0P+28) + + @test cot(interval(0xC.90FDB8A26FBF8P+0, 0xC.9101A0545D040P+0)) === Interval(0x4.09E5FC0006C38P+12, 0x1.1A74CC76B6B71P+20) + + @test cot(interval(0x3.88C7990326C68P+4, 0x3.88D4315F9483CP+4)) === Interval(0x1.3EC2E09B0928AP+8, 0x3.EDBBE6390EF44P+12) + + @test cot(interval(0x4.4EB2F3113085CP+8, 0x4.4EB2F4C8B0144P+8)) === Interval(0x9.51D206F220E70P+12, 0xC.5DDA26E3680B8P+28) + + @test cot(interval(0x6.487ED6E2382ECP+0, 0x9.3AA74D45D1138P+0)) === Interval(-0x5.0BA299C8F7644P+0, +0x8.CE26D93009840P+20) + + @test cot(interval(0xC.CA857372B5428P+12, 0xC.CA86C93A948E0P+12)) === Interval(0xB.F4CB43CC4C9E8P+0, 0x9.40D848DDFC130P+16) + + @test cot(interval(0x2.F51FB358D6800P+8, 0x2.F51FCB23CA942P+8)) === Interval(0xA.BBFD5C1B7C1D8P+8, 0x1.1E2116D584957P+20) + + @test cot(interval(0xB.C1A554F7480E0P+8, 0xB.C1A56FE0FC750P+8)) === Interval(0x8.33C065BCB81C8P+8, 0x3.B8E9A35DDF6BCP+12) + + @test cot(interval(0x3.243F6AE2FD3D8P+0, 0x3.243FB3C602324P+0)) === Interval(0x3.7ECF31F964F42P+16, 0x2.D46AD05A0B746P+24) + + @test cot(interval(0x3.C4780CC209478P+8, 0x3.C47856FD49FFEP+8)) === Interval(0x3.72D85B3269A44P+8, 0x3.28E454E439A90P+24) + + @test cot(interval(0x6.487ED519B0E68P+0, 0x6.488A1AA011958P+0)) === Interval(0x1.6B6333E883806P+12, 0x1.D9B101DF34E20P+28) + + @test cot(interval(0x3.88C757DD16D52P+4, 0x3.8A405475741F0P+4)) === Interval(0xA.D59BACA695410P+0, 0x4.91A509DE53224P+24) + + @test cot(interval(0x6.487ED56D74E68P+0, 0x7.5283077755B9CP+0)) === Interval(0x9.691CCDB975190P-4, 0x2.C52AD6475D346P+24) + + @test cot(interval(0x5.46E61C5D6BD60P+8, 0x5.46E643F35C84CP+8)) === Interval(0x4.4551872667304P+4, 0x4.7465D978E9638P+4) + + @test cot(interval(0x1.921FBC1E1D6F1P+4, 0x1.9274C7419D752P+4)) === Interval(0x3.02439C1295BB8P+4, 0x2.55DE9F3FCCF28P+16) + + @test cot(interval(0x1.87E07A6BC787DP+16, 0x1.87E07BE653F0BP+16)) === Interval(0xA.D1F5D5DED35E0P+4, 0x7.55F4ABD4357C8P+28) + + @test cot(interval(0x2.5BA3D0708DC04P+16, 0x2.5BA413F0B89B0P+16)) === Interval(0x3.84ED5845DBFB2P+0, 0x4.BDE3C91120740P+4) + + @test cot(interval(0x1.A81D71899E3A2P+8, 0x1.A81D871B2A11CP+8)) === Interval(0xB.ACE6E2E9DA370P+8, 0x2.CB45525DF368EP+16) + + @test cot(interval(0x7.633D20850D51CP+8, 0x7.633F1A3C4CEB8P+8)) === Interval(0x8.19686283704C0P+4, 0x5.38D928BC4D11CP+28) + + @test cot(interval(0x4.14361E6FD662CP+16, 0x4.1438105ED190CP+16)) === Interval(-0x6.48C7464AC3A74P-4, +0x1.3AD6ED9B4C193P+24) + + @test cot(interval(0x2.5B2F8FE76B8ACP+4, 0x2.5B2F929161DF0P+4)) === Interval(0x5.FF45640D6BF8CP+16, 0xF.8E38A1B8F3CE0P+24) + + @test cot(interval(0x1.C463AC2D25E2EP+4, 0x1.C4678949B9C38P+4)) === Interval(0x4.23D96B037E734P+8, 0x3.FA5C8B4EB13BAP+20) + + @test cot(interval(0x1.921FB745205B6P+4, 0x1.9CA9D998C8F0CP+4)) === Interval(0x1.4AB8A7BB8153CP+0, 0x7.FC8B575A99618P+16) + + @test cot(interval(0x1.192C2C9A683C1P+12, 0x1.192C2FEE59517P+12)) === Interval(0x3.D27F074ED4C1AP+8, 0x1.2A53ECF8BBB09P+12) + + @test cot(interval(0x4.C2F01D76EC8D4P+8, 0x4.C2F0BEF8F51A0P+8)) === Interval(0x1.95C659F50F06FP+8, 0x7.F76EB663A7898P+28) + + @test cot(interval(0x1.C463BF5757828P+4, 0x1.C46464EDF77DBP+4)) === Interval(0x1.623D682405E56P+12, 0xD.2F53386F7DF28P+12) + + @test cot(interval(0x2.F79729158124CP+16, 0x2.F798A413537EEP+16)) === Interval(0x1.731B7ACF66E92P-4, 0x2.F8C19331ECBFCP+16) + + @test cot(interval(0x3.371943E536E9EP+8, 0x3.371D0784693FAP+8)) === Interval(0x3.E06D09FC7DDC2P+4, 0x2.C1B5E6F32FDEEP+8) + + @test cot(interval(0x1.5FDBBE9CFF344P+4, 0x1.601482AE90BD8P+4)) === Interval(0x4.826BF805C583CP+4, 0xC.9CFDB05DEF930P+24) + + @test asin(interval(-0x3.11A309475E762P-164, -0xC.3784302E15500P-680)) === Interval(-0x3.11A309475E764P-164, -0xC.3784302E15500P-680) + + @test asin(interval(-0x5.7DD17A4248D38P-280, -0x2.898FC0F386F74P-640)) === Interval(-0x5.7DD17A4248D3CP-280, -0x2.898FC0F386F74P-640) + + @test asin(interval(-0xE.D83DCD7F564A0P-296, -0x1.62F61FBA0F40FP-764)) === Interval(-0xE.D83DCD7F564A8P-296, -0x1.62F61FBA0F40FP-764) + + @test asin(interval(-0x1.67712A1E64C2CP-944, -0x1.C0102C4D258EFP-976)) === Interval(-0x1.67712A1E64C2DP-944, -0x1.C0102C4D258EFP-976) + + @test asin(interval(0x2.E3D991AE84668P-728, 0x1.92C3C728CCF4AP-612)) === Interval(0x2.E3D991AE84668P-728, 0x1.92C3C728CCF4BP-612) + + @test asin(interval(-0x1.BCD3FEB3B0175P-640, +0x1.BEBE69E3BF3C2P-536)) === Interval(-0x1.BCD3FEB3B0176P-640, +0x1.BEBE69E3BF3C3P-536) + + @test asin(interval(-0x1.2469575189327P-372, -0x7.51C0C39F58A4CP-1008)) === Interval(-0x1.2469575189328P-372, -0x7.51C0C39F58A4CP-1008) + + @test asin(interval(-0x1.C4D163A6CCCD9P-336, -0x1.3BEE6DAB70397P-796)) === Interval(-0x1.C4D163A6CCCDAP-336, -0x1.3BEE6DAB70397P-796) + + @test asin(interval(-0x2.0FAE5DE90C98CP-896, -0x2.2079777EC2418P-976)) === Interval(-0x2.0FAE5DE90C98EP-896, -0x2.2079777EC2418P-976) + + @test asin(interval(-0x1.08C248C37E53BP-816, +0x2.8C9F04EE5DE84P-948)) === Interval(-0x1.08C248C37E53CP-816, +0x2.8C9F04EE5DE86P-948) + + @test asin(interval(-0x2.0002542B01474P-228, +0x2.4D59F217BF74CP-796)) === Interval(-0x2.0002542B01476P-228, +0x2.4D59F217BF74EP-796) + + @test asin(interval(0xD.D4033889729A0P-844, 0x7.44451BF919D78P-556)) === Interval(0xD.D4033889729A0P-844, 0x7.44451BF919D7CP-556) + + @test asin(interval(-0x2.08918B016995CP-64, +0x3.3FC26450C6E4AP-268)) === Interval(-0x2.08918B016995EP-64, +0x3.3FC26450C6E4CP-268) + + @test asin(interval(-0x2.66C95BD8D7716P-388, +0x1.7E16B310F878AP-232)) === Interval(-0x2.66C95BD8D7718P-388, +0x1.7E16B310F878BP-232) + + @test asin(interval(-0x3.D9C66BD30B774P-256, -0x4.A8C30F678CB68P-456)) === Interval(-0x3.D9C66BD30B776P-256, -0x4.A8C30F678CB68P-456) + + @test asin(interval(-0x1.AA045CCB15AEDP-804, +0xD.450C473265610P-24)) === Interval(-0x1.AA045CCB15AEEP-804, +0xD.450C473266E68P-24) + + @test asin(interval(-0x2.23ADFA571FC3CP-344, -0x1.30D1074DC059EP-868)) === Interval(-0x2.23ADFA571FC3EP-344, -0x1.30D1074DC059EP-868) + + @test asin(interval(-0x3.DFBC1A4BF3888P-68, -0x4.A89E39B247C84P-840)) === Interval(-0x3.DFBC1A4BF388AP-68, -0x4.A89E39B247C84P-840) + + @test asin(interval(0x9.583064525D370P-496, 0x2.C67652F06A55EP-408)) === Interval(0x9.583064525D370P-496, 0x2.C67652F06A560P-408) + + @test asin(interval(-0x3.38BF880EC3082P-304, -0x7.7B19877E536ACP-512)) === Interval(-0x3.38BF880EC3084P-304, -0x7.7B19877E536ACP-512) + + @test asin(interval(-0x2.ADBF037238702P-44, +0x1.98DC940C3AE1EP-564)) === Interval(-0x2.ADBF037238704P-44, +0x1.98DC940C3AE1FP-564) + + @test asin(interval(-0x4.E4A79C48B3A58P-328, +0xA.28B02E59D39D8P-856)) === Interval(-0x4.E4A79C48B3A5CP-328, +0xA.28B02E59D39E0P-856) + + @test asin(interval(-0x6.80D3E87B911D8P-232, -0x2.3DF54212C46E4P-520)) === Interval(-0x6.80D3E87B911DCP-232, -0x2.3DF54212C46E4P-520) + + @test asin(interval(-0x1.4E54C309C46F8P-480, +0x9.47E982AC83F98P-688)) === Interval(-0x1.4E54C309C46F9P-480, +0x9.47E982AC83FA0P-688) + + @test asin(interval(-0x2.276202227A6DEP-808, +0x1.C53E9BA64FADFP-768)) === Interval(-0x2.276202227A6E0P-808, +0x1.C53E9BA64FAE0P-768) + + @test asin(interval(-0x4.8E4B4D7BA6DD0P-212, -0x1.4B35284C1064BP-548)) === Interval(-0x4.8E4B4D7BA6DD4P-212, -0x1.4B35284C1064BP-548) + + @test asin(interval(-0x3.5C52B8D9FF582P-248, -0x2.AF868D652B866P-912)) === Interval(-0x3.5C52B8D9FF584P-248, -0x2.AF868D652B866P-912) + + @test asin(interval(0x1.6938CC5EE183AP-692, 0xB.F7A583AC38168P-664)) === Interval(0x1.6938CC5EE183AP-692, 0xB.F7A583AC38170P-664) + + @test asin(interval(-0x3.68B35F23B2506P-560, +0x9.F9C9246D05138P-304)) === Interval(-0x3.68B35F23B2508P-560, +0x9.F9C9246D05140P-304) + + @test asin(interval(-0xA.BDE70B6850EA0P-516, +0x2.BB76D5BF703FAP-1020)) === Interval(-0xA.BDE70B6850EA8P-516, +0x2.BB76D5BF703FCP-1020) + + @test acos(interval(-0x3.11A309475E762P-164, -0xC.3784302E15500P-680)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x5.7DD17A4248D38P-280, -0x2.898FC0F386F74P-640)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0xE.D83DCD7F564A0P-296, -0x1.62F61FBA0F40FP-764)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x1.67712A1E64C2CP-944, -0x1.C0102C4D258EFP-976)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(0x2.E3D991AE84668P-728, 0x1.92C3C728CCF4AP-612)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x1.BCD3FEB3B0175P-640, +0x1.BEBE69E3BF3C2P-536)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x1.2469575189327P-372, -0x7.51C0C39F58A4CP-1008)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x1.C4D163A6CCCD9P-336, -0x1.3BEE6DAB70397P-796)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x2.0FAE5DE90C98CP-896, -0x2.2079777EC2418P-976)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x1.08C248C37E53BP-816, +0x2.8C9F04EE5DE84P-948)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x2.0002542B01474P-228, +0x2.4D59F217BF74CP-796)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(0xD.D4033889729A0P-844, 0x7.44451BF919D78P-556)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x2.08918B016995CP-64, +0x3.3FC26450C6E4AP-268)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x2.66C95BD8D7716P-388, +0x1.7E16B310F878AP-232)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x3.D9C66BD30B774P-256, -0x4.A8C30F678CB68P-456)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x1.AA045CCB15AEDP-804, +0xD.450C473265610P-24)) === Interval(0x1.921FA7FF368A5P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x2.23ADFA571FC3CP-344, -0x1.30D1074DC059EP-868)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x3.DFBC1A4BF3888P-68, -0x4.A89E39B247C84P-840)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(0x9.583064525D370P-496, 0x2.C67652F06A55EP-408)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x3.38BF880EC3082P-304, -0x7.7B19877E536ACP-512)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x2.ADBF037238702P-44, +0x1.98DC940C3AE1EP-564)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442FC7P+0) + + @test acos(interval(-0x4.E4A79C48B3A58P-328, +0xA.28B02E59D39D8P-856)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x6.80D3E87B911D8P-232, -0x2.3DF54212C46E4P-520)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x1.4E54C309C46F8P-480, +0x9.47E982AC83F98P-688)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x2.276202227A6DEP-808, +0x1.C53E9BA64FADFP-768)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x4.8E4B4D7BA6DD0P-212, -0x1.4B35284C1064BP-548)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x3.5C52B8D9FF582P-248, -0x2.AF868D652B866P-912)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(0x1.6938CC5EE183AP-692, 0xB.F7A583AC38168P-664)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0x3.68B35F23B2506P-560, +0x9.F9C9246D05138P-304)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acos(interval(-0xA.BDE70B6850EA0P-516, +0x2.BB76D5BF703FAP-1020)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0x1.7A77BFCCF5A9EP-232, 0x2.8457BC029986EP+112)) === Interval(0x1.7A77BFCCF5A9DP-232, 0x1.921FB54442D19P+0) + + @test atan(interval(0x3.C5EC30FBB68C8P-508, 0x6.05C0BB1BCB730P-220)) === Interval(0x3.C5EC30FBB68C6P-508, 0x6.05C0BB1BCB730P-220) + + @test atan(interval(0xE.20FF41BD18058P-204, 0x2.9B09919BF9D9EP+272)) === Interval(0xE.20FF41BD18050P-204, 0x1.921FB54442D19P+0) + + @test atan(interval(0x2.075DF98B2478CP-456, 0x1.1503444763FC5P-416)) === Interval(0x2.075DF98B2478AP-456, 0x1.1503444763FC5P-416) + + @test atan(interval(0x1.5444E676976F1P+252, 0x2.7C064F6929234P+292)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0x1.3A01905E36F84P+0, 0x4.ECBC855871080P+332)) === Interval(0xE.3062E34353278P-4, 0x1.921FB54442D19P+0) + + @test atan(interval(0x2.404E44C49C644P-440, 0x7.32EDAB7F60A50P+236)) === Interval(0x2.404E44C49C642P-440, 0x1.921FB54442D19P+0) + + @test atan(interval(0x1.63A15E999EB64P-344, 0x6.5263CF84EF388P+172)) === Interval(0x1.63A15E999EB63P-344, 0x1.921FB54442D19P+0) + + @test atan(interval(0x6.941F470A70074P-756, 0x1.4171976A1CA54P-288)) === Interval(0x6.941F470A70070P-756, 0x1.4171976A1CA54P-288) + + @test atan(interval(0x7.78A1F475A306CP-564, 0x4.69BB1D34B9570P-76)) === Interval(0x7.78A1F475A3068P-564, 0x4.69BB1D34B9570P-76) + + @test atan(interval(0x1.BA04D452BBB35P+180, 0x1.F0D19ADCB5D74P+312)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0x2.6ABC15579B2B2P-48, 0x2.E046DB554037CP+256)) === Interval(0x2.6ABC15579B2B0P-48, 0x1.921FB54442D19P+0) + + @test atan(interval(0x8.297A99ED9ED08P+8, 0xE.33C49CF5B8790P+652)) === Interval(0x1.920057E3A66F1P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0x3.436DFE8F08194P+48, 0x2.A69A969772FDEP+688)) === Interval(0x1.921FB54442D13P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0x6.3E590E626451CP-172, 0x1.7AAA15EBBD3F2P+8)) === Interval(0x6.3E590E6264518P-172, 0x1.9172A3136EB8DP+0) + + @test atan(interval(0x6.ACFA418D8F92CP-544, 0x2.8F9204BC4041EP+988)) === Interval(0x6.ACFA418D8F928P-544, 0x1.921FB54442D19P+0) + + @test atan(interval(0x2.BB570B356C6CAP-440, 0x2.B00450A48D586P-148)) === Interval(0x2.BB570B356C6C8P-440, 0x2.B00450A48D586P-148) + + @test atan(interval(0xC.41329461A0C30P-512, 0x1.9E7DDBBE00F75P+352)) === Interval(0xC.41329461A0C28P-512, 0x1.921FB54442D19P+0) + + @test atan(interval(0x6.6978492A3064CP+188, 0xD.5E2045CEE9720P+236)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0x7.DEA605DEC97CCP-316, 0x1.5BD629B25AA23P-236)) === Interval(0x7.DEA605DEC97C8P-316, 0x1.5BD629B25AA23P-236) + + @test atan(interval(0xD.05E9CCF66CF58P+424, 0xB.A944253373080P+564)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0x6.65D7E0A247778P-56, 0x3.AE1DC13A652CAP+168)) === Interval(0x6.65D7E0A247774P-56, 0x1.921FB54442D19P+0) + + @test atan(interval(0x5.2B55801231EC8P-344, 0xA.27B4555158148P-68)) === Interval(0x5.2B55801231EC4P-344, 0xA.27B4555158148P-68) + + @test atan(interval(0x6.36B661DCE2688P-236, 0x1.D68A6BA7E617FP+12)) === Interval(0x6.36B661DCE2684P-236, 0x1.921700D14CFE5P+0) + + @test atan(interval(0x1.EB0E1AB78F314P-480, 0x1.98EF0C6A8BD66P+132)) === Interval(0x1.EB0E1AB78F313P-480, 0x1.921FB54442D19P+0) + + @test atan(interval(0x7.4CF193131FA64P-192, 0x1.C08152CC09416P+220)) === Interval(0x7.4CF193131FA60P-192, 0x1.921FB54442D19P+0) + + @test atan(interval(0x1.7036C237D5B00P-672, 0x6.F70E0DA4D2BA0P-140)) === Interval(0x1.7036C237D5AFFP-672, 0x6.F70E0DA4D2BA0P-140) + + @test atan(interval(0x1.D283CF8F05665P+252, 0xB.24D19E00C8460P+324)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0x3.A0EE84451C92CP-324, 0xF.CC937FA330E40P+648)) === Interval(0x3.A0EE84451C92AP-324, 0x1.921FB54442D19P+0) + + @test atan(interval(0x1.8BCA641025A83P-124, 0x5.F775993940188P-120)) === Interval(0x1.8BCA641025A82P-124, 0x5.F775993940188P-120) + + @test_broken acot(interval(0x1.7A77BFCCF5A9EP-232, 0x2.8457BC029986EP+112)) === Interval(0x6.5B5B8AA0A6884P-116, 0x1.921FB54442D19P+0) + + @test acot(interval(0x3.C5EC30FBB68C8P-508, 0x6.05C0BB1BCB730P-220)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test_broken acot(interval(0xE.20FF41BD18058P-204, 0x2.9B09919BF9D9EP+272)) === Interval(0x6.23FD67FFA09A4P-276, 0x1.921FB54442D19P+0) + + @test acot(interval(0x2.075DF98B2478CP-456, 0x1.1503444763FC5P-416)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test_broken acot(interval(0x1.5444E676976F1P+252, 0x2.7C064F6929234P+292)) === Interval(0x6.70A3F8408ABF0P-296, 0xC.099B90EB0FA30P-256) + + @test_broken acot(interval(0x1.3A01905E36F84P+0, 0x4.ECBC855871080P+332)) === Interval(0x3.3FB79247499D6P-336, 0xA.F1987100D9F08P-4) + + @test_broken acot(interval(0x2.404E44C49C644P-440, 0x7.32EDAB7F60A50P+236)) === Interval(0x2.38F904C465F6AP-240, 0x1.921FB54442D19P+0) + + @test_broken acot(interval(0x1.63A15E999EB64P-344, 0x6.5263CF84EF388P+172)) === Interval(0x2.87E9C09D98938P-176, 0x1.921FB54442D19P+0) + + @test acot(interval(0x6.941F470A70074P-756, 0x1.4171976A1CA54P-288)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acot(interval(0x7.78A1F475A306CP-564, 0x4.69BB1D34B9570P-76)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test_broken acot(interval(0x1.BA04D452BBB35P+180, 0x1.F0D19ADCB5D74P+312)) === Interval(0x8.3E949ACCB0F88P-316, 0x9.443E1DD721FE8P-184) + + @test_broken acot(interval(0x2.6ABC15579B2B2P-48, 0x2.E046DB554037CP+256)) === Interval(0x5.9028FAA64FBC8P-260, 0x1.921FB54442CF2P+0) + + @test_broken acot(interval(0x8.297A99ED9ED08P+8, 0xE.33C49CF5B8790P+652)) === Interval(0x1.2067D7F96AFE5P-656, 0x1.F5D609C62725FP-12) + + @test_broken acot(interval(0x3.436DFE8F08194P+48, 0x2.A69A969772FDEP+688)) === Interval(0x6.09322FE56F794P-692, 0x4.E7223FE097808P-52) + + @test_broken acot(interval(0x6.3E590E626451CP-172, 0x1.7AAA15EBBD3F2P+8)) === Interval(0xA.D1230D418C238P-12, 0x1.921FB54442D19P+0) + + @test_broken acot(interval(0x6.ACFA418D8F92CP-544, 0x2.8F9204BC4041EP+988)) === Interval(0x6.3F7C8D3DDFC74P-992, 0x1.921FB54442D19P+0) + + @test acot(interval(0x2.BB570B356C6CAP-440, 0x2.B00450A48D586P-148)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test_broken acot(interval(0xC.41329461A0C30P-512, 0x1.9E7DDBBE00F75P+352)) === Interval(0x9.E1C9C04F15630P-356, 0x1.921FB54442D19P+0) + + @test_broken acot(interval(0x6.6978492A3064CP+188, 0xD.5E2045CEE9720P+236)) === Interval(0x1.326922CF32B2EP-240, 0x2.7ECD966556E9CP-192) + + @test acot(interval(0x7.DEA605DEC97CCP-316, 0x1.5BD629B25AA23P-236)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test_broken acot(interval(0xD.05E9CCF66CF58P+424, 0xB.A944253373080P+564)) === Interval(0x1.5F401B7014200P-568, 0x1.3A84A0CB7AC42P-428) + + @test_broken acot(interval(0x6.65D7E0A247778P-56, 0x3.AE1DC13A652CAP+168)) === Interval(0x4.59002C447A028P-172, 0x1.921FB54442D18P+0) + + @test acot(interval(0x5.2B55801231EC8P-344, 0xA.27B4555158148P-68)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test acot(interval(0x6.36B661DCE2688P-236, 0x1.D68A6BA7E617FP+12)) === Interval(0x8.B472F5D335130P-16, 0x1.921FB54442D19P+0) + + @test_broken acot(interval(0x1.EB0E1AB78F314P-480, 0x1.98EF0C6A8BD66P+132)) === Interval(0xA.042BAEF7787B8P-136, 0x1.921FB54442D19P+0) + + @test_broken acot(interval(0x7.4CF193131FA64P-192, 0x1.C08152CC09416P+220)) === Interval(0x9.21EF65D6A5190P-224, 0x1.921FB54442D19P+0) + + @test acot(interval(0x1.7036C237D5B00P-672, 0x6.F70E0DA4D2BA0P-140)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test_broken acot(interval(0x1.D283CF8F05665P+252, 0xB.24D19E00C8460P+324)) === Interval(0x1.6F8ED062CAC9BP-328, 0x8.C7ADFB6368868P-256) + + @test_broken acot(interval(0x3.A0EE84451C92CP-324, 0xF.CC937FA330E40P+648)) === Interval(0x1.03413E0E19942P-652, 0x1.921FB54442D19P+0) + + @test acot(interval(0x1.8BCA641025A83P-124, 0x5.F775993940188P-120)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test sinh(interval(-0x3.53DC9496DE0A0P-160, -0xC.287E0E10EC1B8P-960)) === Interval(-0x3.53DC9496DE0A2P-160, -0xC.287E0E10EC1B8P-960) + + @test sinh(interval(-0x1.CF3637DCBCC9AP-452, -0x5.E4846462FF33CP-636)) === Interval(-0x1.CF3637DCBCC9BP-452, -0x5.E4846462FF33CP-636) + + @test sinh(interval(-0x1.0362421843787P+0, -0x3.3D2CCEF698A5AP-972)) === Interval(-0x1.32197576F3697P+0, -0x3.3D2CCEF698A5AP-972) + + @test sinh(interval(-0x1.494A24A7585D1P-380, +0x1.A0790A9E3013EP-604)) === Interval(-0x1.494A24A7585D2P-380, +0x1.A0790A9E3013FP-604) + + @test sinh(interval(-0x2.B64BC5E999866P-368, -0xF.0633041110C28P-572)) === Interval(-0x2.B64BC5E999868P-368, -0xF.0633041110C28P-572) + + @test sinh(interval(-0x7.56F52F4FED854P-336, -0x4.F40A3934B3354P-416)) === Interval(-0x7.56F52F4FED858P-336, -0x4.F40A3934B3354P-416) + + @test sinh(interval(-0xA.0E33C2BA95C88P-48, -0x1.1927CA3847669P-808)) === Interval(-0xA.0E33C2BA95C90P-48, -0x1.1927CA3847669P-808) + + @test sinh(interval(-0x1.1BBBD6FE8B950P-208, -0x1.463A32DBA649DP-220)) === Interval(-0x1.1BBBD6FE8B951P-208, -0x1.463A32DBA649DP-220) + + @test sinh(interval(0x5.290FE84915530P-268, 0x1.8C9AF520C22C3P-96)) === Interval(0x5.290FE84915530P-268, 0x1.8C9AF520C22C4P-96) + + @test sinh(interval(-0x2.E7332C654ABB6P-384, -0x1.4363967367F55P-932)) === Interval(-0x2.E7332C654ABB8P-384, -0x1.4363967367F55P-932) + + @test sinh(interval(-0x1.55EBB1D70A46EP-592, +0x4.733FA51468530P-20)) === Interval(-0x1.55EBB1D70A46FP-592, +0x4.733FA51477038P-20) + + @test sinh(interval(-0x1.1B4B8388A3D92P-340, -0xD.51D4A3CE4C490P-600)) === Interval(-0x1.1B4B8388A3D93P-340, -0xD.51D4A3CE4C490P-600) + + @test sinh(interval(-0x4.21B73745BC4C0P-952, +0xD.E40D83923C3E0P-404)) === Interval(-0x4.21B73745BC4C4P-952, +0xD.E40D83923C3E8P-404) + + @test sinh(interval(-0x1.73D14FA7DA1CBP-504, +0x1.5B3AFEEB17A85P-28)) === Interval(-0x1.73D14FA7DA1CCP-504, +0x1.5B3AFEEB17A86P-28) + + @test sinh(interval(-0x3.3CD34997DF066P-320, -0x1.606C7BCE75819P-852)) === Interval(-0x3.3CD34997DF068P-320, -0x1.606C7BCE75819P-852) + + @test sinh(interval(-0xC.5356A56E59748P-516, -0x1.33B9A95C55513P-772)) === Interval(-0xC.5356A56E59750P-516, -0x1.33B9A95C55513P-772) + + @test sinh(interval(-0x5.FA887950A63CCP-588, -0x2.B707741B15478P-800)) === Interval(-0x5.FA887950A63D0P-588, -0x2.B707741B15478P-800) + + @test sinh(interval(-0x2.9476464AAE5BAP-548, +0x4.0734E17C026D4P-784)) === Interval(-0x2.9476464AAE5BCP-548, +0x4.0734E17C026D8P-784) + + @test sinh(interval(-0xF.A46AC05B0EAA8P-68, +0x1.EFA89F34F4188P-684)) === Interval(-0xF.A46AC05B0EAB0P-68, +0x1.EFA89F34F4189P-684) + + @test sinh(interval(-0x9.9488CB205AFA8P-124, -0x2.940180D1AA2AEP-556)) === Interval(-0x9.9488CB205AFB0P-124, -0x2.940180D1AA2AEP-556) + + @test sinh(interval(-0x3.F9D9FE5792CE0P-912, -0x3.F00FC8CE24ADCP-1016)) === Interval(-0x3.F9D9FE5792CE2P-912, -0x3.F00FC8CE24ADCP-1016) + + @test sinh(interval(-0x7.D5A28EF80D6B0P-176, +0xC.5D2B8FFCB2AD8P-756)) === Interval(-0x7.D5A28EF80D6B4P-176, +0xC.5D2B8FFCB2AE0P-756) + + @test sinh(interval(-0x5.B5DCAA821A628P-784, -0x1.48532232C10FDP-940)) === Interval(-0x5.B5DCAA821A62CP-784, -0x1.48532232C10FDP-940) + + @test sinh(interval(0x3.8110D13AB0378P-720, 0x2.77422E18981C2P-44)) === Interval(0x3.8110D13AB0378P-720, 0x2.77422E18981C4P-44) + + @test sinh(interval(-0x1.4AD562C0B5178P-380, +0x3.CEB34F40EA9BAP-792)) === Interval(-0x1.4AD562C0B5179P-380, +0x3.CEB34F40EA9BCP-792) + + @test sinh(interval(-0x7.ED02EF56E40B0P-92, -0x1.8C80275A696B0P-552)) === Interval(-0x7.ED02EF56E40B4P-92, -0x1.8C80275A696B0P-552) + + @test sinh(interval(-0x1.56FBE834FC822P-296, -0x3.66041558BACA8P-516)) === Interval(-0x1.56FBE834FC823P-296, -0x3.66041558BACA8P-516) + + @test sinh(interval(-0x6.44524F6FCCF8CP-340, -0x5.3E8ED576A1334P-896)) === Interval(-0x6.44524F6FCCF90P-340, -0x5.3E8ED576A1334P-896) + + @test sinh(interval(-0x8.92F5BEDA59C78P-268, +0x2.51B11C2EC76BAP-612)) === Interval(-0x8.92F5BEDA59C80P-268, +0x2.51B11C2EC76BCP-612) + + @test sinh(interval(-0x4.785C46BDC2A50P-244, -0x1.BA5C062DE8F00P-432)) === Interval(-0x4.785C46BDC2A54P-244, -0x1.BA5C062DE8F00P-432) + + @test cosh(interval(-0x3.53DC9496DE0A0P-160, -0xC.287E0E10EC1B8P-960)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x1.CF3637DCBCC9AP-452, -0x5.E4846462FF33CP-636)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x1.0362421843787P+0, -0x3.3D2CCEF698A5AP-972)) === Interval(0x1.0000000000000P+0, 0x1.8F0A39674B193P+0) + + @test cosh(interval(-0x1.494A24A7585D1P-380, +0x1.A0790A9E3013EP-604)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x2.B64BC5E999866P-368, -0xF.0633041110C28P-572)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x7.56F52F4FED854P-336, -0x4.F40A3934B3354P-416)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0xA.0E33C2BA95C88P-48, -0x1.1927CA3847669P-808)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x1.1BBBD6FE8B950P-208, -0x1.463A32DBA649DP-220)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(0x5.290FE84915530P-268, 0x1.8C9AF520C22C3P-96)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x2.E7332C654ABB6P-384, -0x1.4363967367F55P-932)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x1.55EBB1D70A46EP-592, +0x4.733FA51468530P-20)) === Interval(0x1.0000000000000P+0, 0x1.0000000009E6FP+0) + + @test cosh(interval(-0x1.1B4B8388A3D92P-340, -0xD.51D4A3CE4C490P-600)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x4.21B73745BC4C0P-952, +0xD.E40D83923C3E0P-404)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x1.73D14FA7DA1CBP-504, +0x1.5B3AFEEB17A85P-28)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x3.3CD34997DF066P-320, -0x1.606C7BCE75819P-852)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0xC.5356A56E59748P-516, -0x1.33B9A95C55513P-772)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x5.FA887950A63CCP-588, -0x2.B707741B15478P-800)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x2.9476464AAE5BAP-548, +0x4.0734E17C026D4P-784)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0xF.A46AC05B0EAA8P-68, +0x1.EFA89F34F4188P-684)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x9.9488CB205AFA8P-124, -0x2.940180D1AA2AEP-556)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x3.F9D9FE5792CE0P-912, -0x3.F00FC8CE24ADCP-1016)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x7.D5A28EF80D6B0P-176, +0xC.5D2B8FFCB2AD8P-756)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x5.B5DCAA821A628P-784, -0x1.48532232C10FDP-940)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(0x3.8110D13AB0378P-720, 0x2.77422E18981C2P-44)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x1.4AD562C0B5178P-380, +0x3.CEB34F40EA9BAP-792)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x7.ED02EF56E40B0P-92, -0x1.8C80275A696B0P-552)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x1.56FBE834FC822P-296, -0x3.66041558BACA8P-516)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x6.44524F6FCCF8CP-340, -0x5.3E8ED576A1334P-896)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x8.92F5BEDA59C78P-268, +0x2.51B11C2EC76BAP-612)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test cosh(interval(-0x4.785C46BDC2A50P-244, -0x1.BA5C062DE8F00P-432)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test tanh(interval(0x1.7A77BFCCF5A9EP-232, 0x2.8457BC029986EP+112)) === Interval(0x1.7A77BFCCF5A9DP-232, 0x1.0000000000000P+0) + + @test tanh(interval(0x3.C5EC30FBB68C8P-508, 0x6.05C0BB1BCB730P-220)) === Interval(0x3.C5EC30FBB68C6P-508, 0x6.05C0BB1BCB730P-220) + + @test tanh(interval(0xE.20FF41BD18058P-204, 0x2.9B09919BF9D9EP+272)) === Interval(0xE.20FF41BD18050P-204, 0x1.0000000000000P+0) + + @test tanh(interval(0x2.075DF98B2478CP-456, 0x1.1503444763FC5P-416)) === Interval(0x2.075DF98B2478AP-456, 0x1.1503444763FC5P-416) + + @test tanh(interval(0x1.5444E676976F1P+252, 0x2.7C064F6929234P+292)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test tanh(interval(0x1.3A01905E36F84P+0, 0x4.ECBC855871080P+332)) === Interval(0xD.772335E624B98P-4, 0x1.0000000000000P+0) + + @test tanh(interval(0x2.404E44C49C644P-440, 0x7.32EDAB7F60A50P+236)) === Interval(0x2.404E44C49C642P-440, 0x1.0000000000000P+0) + + @test tanh(interval(0x1.63A15E999EB64P-344, 0x6.5263CF84EF388P+172)) === Interval(0x1.63A15E999EB63P-344, 0x1.0000000000000P+0) + + @test tanh(interval(0x6.941F470A70074P-756, 0x1.4171976A1CA54P-288)) === Interval(0x6.941F470A70070P-756, 0x1.4171976A1CA54P-288) + + @test tanh(interval(0x7.78A1F475A306CP-564, 0x4.69BB1D34B9570P-76)) === Interval(0x7.78A1F475A3068P-564, 0x4.69BB1D34B9570P-76) + + @test tanh(interval(0x1.BA04D452BBB35P+180, 0x1.F0D19ADCB5D74P+312)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test tanh(interval(0x2.6ABC15579B2B2P-48, 0x2.E046DB554037CP+256)) === Interval(0x2.6ABC15579B2B0P-48, 0x1.0000000000000P+0) + + @test tanh(interval(0x8.297A99ED9ED08P+8, 0xE.33C49CF5B8790P+652)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test tanh(interval(0x3.436DFE8F08194P+48, 0x2.A69A969772FDEP+688)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test tanh(interval(0x6.3E590E626451CP-172, 0x1.7AAA15EBBD3F2P+8)) === Interval(0x6.3E590E6264518P-172, 0x1.0000000000000P+0) + + @test tanh(interval(0x6.ACFA418D8F92CP-544, 0x2.8F9204BC4041EP+988)) === Interval(0x6.ACFA418D8F928P-544, 0x1.0000000000000P+0) + + @test tanh(interval(0x2.BB570B356C6CAP-440, 0x2.B00450A48D586P-148)) === Interval(0x2.BB570B356C6C8P-440, 0x2.B00450A48D586P-148) + + @test tanh(interval(0xC.41329461A0C30P-512, 0x1.9E7DDBBE00F75P+352)) === Interval(0xC.41329461A0C28P-512, 0x1.0000000000000P+0) + + @test tanh(interval(0x6.6978492A3064CP+188, 0xD.5E2045CEE9720P+236)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test tanh(interval(0x7.DEA605DEC97CCP-316, 0x1.5BD629B25AA23P-236)) === Interval(0x7.DEA605DEC97C8P-316, 0x1.5BD629B25AA23P-236) + + @test tanh(interval(0xD.05E9CCF66CF58P+424, 0xB.A944253373080P+564)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test tanh(interval(0x6.65D7E0A247778P-56, 0x3.AE1DC13A652CAP+168)) === Interval(0x6.65D7E0A247774P-56, 0x1.0000000000000P+0) + + @test tanh(interval(0x5.2B55801231EC8P-344, 0xA.27B4555158148P-68)) === Interval(0x5.2B55801231EC4P-344, 0xA.27B4555158148P-68) + + @test tanh(interval(0x6.36B661DCE2688P-236, 0x1.D68A6BA7E617FP+12)) === Interval(0x6.36B661DCE2684P-236, 0x1.0000000000000P+0) + + @test tanh(interval(0x1.EB0E1AB78F314P-480, 0x1.98EF0C6A8BD66P+132)) === Interval(0x1.EB0E1AB78F313P-480, 0x1.0000000000000P+0) + + @test tanh(interval(0x7.4CF193131FA64P-192, 0x1.C08152CC09416P+220)) === Interval(0x7.4CF193131FA60P-192, 0x1.0000000000000P+0) + + @test tanh(interval(0x1.7036C237D5B00P-672, 0x6.F70E0DA4D2BA0P-140)) === Interval(0x1.7036C237D5AFFP-672, 0x6.F70E0DA4D2BA0P-140) + + @test tanh(interval(0x1.D283CF8F05665P+252, 0xB.24D19E00C8460P+324)) === Interval(0xF.FFFFFFFFFFFF8P-4, 0x1.0000000000000P+0) + + @test tanh(interval(0x3.A0EE84451C92CP-324, 0xF.CC937FA330E40P+648)) === Interval(0x3.A0EE84451C92AP-324, 0x1.0000000000000P+0) + + @test tanh(interval(0x1.8BCA641025A83P-124, 0x5.F775993940188P-120)) === Interval(0x1.8BCA641025A82P-124, 0x5.F775993940188P-120) + + @test coth(interval(0x5.9D7EEEA9B9EE0P-264, 0x3.F03D06503CAA2P+92)) === Interval(0x1.0000000000000P+0, 0x2.D97240157D2C8P+260) + + @test coth(interval(-0x3.F03D06503CAA2P+92, -0x5.9D7EEEA9B9EE0P-264)) === Interval(-0x2.D97240157D2C8P+260, -0x1.0000000000000P+0) + + @test coth(interval(0xB.6600F238FE060P-520, 0x1.BB63631B595B0P-224)) === Interval(0x9.3CEA8A8C76FC0P+220, 0x1.6758D7D180F69P+516) + + @test coth(interval(-0x1.BB63631B595B0P-224, -0xB.6600F238FE060P-520)) === Interval(-0x1.6758D7D180F69P+516, -0x9.3CEA8A8C76FC0P+220) + + @test coth(interval(0x4.DC89ED0034C6CP-240, 0xD.A1D118A3891E8P+232)) === Interval(0x1.0000000000000P+0, 0x3.4A8AB6B06359AP+236) + + @test coth(interval(-0xD.A1D118A3891E8P+232, -0x4.DC89ED0034C6CP-240)) === Interval(-0x3.4A8AB6B06359AP+236, -0x1.0000000000000P+0) + + @test coth(interval(0x4.7F93F879A61A4P-492, 0x1.BDC6388153882P-452)) === Interval(0x9.3041F45FA3D78P+448, 0x3.8E8E46D77A03EP+488) + + @test coth(interval(-0x1.BDC6388153882P-452, -0x4.7F93F879A61A4P-492)) === Interval(-0x3.8E8E46D77A03EP+488, -0x9.3041F45FA3D78P+448) + + @test coth(interval(0xF.C7C928D9BB718P+192, 0x8.41A7954605A98P+224)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test coth(interval(-0x8.41A7954605A98P+224, -0xF.C7C928D9BB718P+192)) === Interval(-0x1.0000000000001P+0, -0x1.0000000000000P+0) + + @test coth(interval(0x3.F07C0B8005270P-44, 0x2.DD3C8580FCBE0P+276)) === Interval(0x1.0000000000000P+0, 0x4.0FC1103283A70P+40) + + @test coth(interval(-0x2.DD3C8580FCBE0P+276, -0x3.F07C0B8005270P-44)) === Interval(-0x4.0FC1103283A70P+40, -0x1.0000000000000P+0) + + @test coth(interval(0xA.A97DED29FFF30P-480, 0x5.35EEA9C504860P+196)) === Interval(0x1.0000000000000P+0, 0x1.802A4F4EFE3B2P+476) + + @test coth(interval(-0x5.35EEA9C504860P+196, -0xA.A97DED29FFF30P-480)) === Interval(-0x1.802A4F4EFE3B2P+476, -0x1.0000000000000P+0) + + @test coth(interval(0x3.CF4B727451402P-376, 0x1.759F6C21DAF9AP+140)) === Interval(0x1.0000000000000P+0, 0x4.33233873998C8P+372) + + @test coth(interval(-0x1.759F6C21DAF9AP+140, -0x3.CF4B727451402P-376)) === Interval(-0x4.33233873998C8P+372, -0x1.0000000000000P+0) + + @test coth(interval(0x6.55376F4C1C50CP-772, 0x1.0120DD4EBC019P-328)) === Interval(0xF.EE06735C6D910P+324, 0x2.86C88F09A2CBEP+768) + + @test coth(interval(-0x1.0120DD4EBC019P-328, -0x6.55376F4C1C50CP-772)) === Interval(-0x2.86C88F09A2CBEP+768, -0xF.EE06735C6D910P+324) + + @test coth(interval(0x1.B63F1F7AED49EP-580, 0x2.245AF5BCB3356P-132)) === Interval(0x7.7838528478BF8P+128, 0x9.58A984202B8E8P+576) + + @test coth(interval(-0x2.245AF5BCB3356P-132, -0x1.B63F1F7AED49EP-580)) === Interval(-0x9.58A984202B8E8P+576, -0x7.7838528478BF8P+128) + + @test coth(interval(0x2.73B23CC8D8F76P+116, 0x1.F1E4F59403FC3P+276)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test coth(interval(-0x1.F1E4F59403FC3P+276, -0x2.73B23CC8D8F76P+116)) === Interval(-0x1.0000000000001P+0, -0x1.0000000000000P+0) + + @test coth(interval(0x2.5B4F5F71CA5FCP-100, 0x1.5C244CE1AC6B3P+204)) === Interval(0x1.0000000000000P+0, 0x6.CA09D0DDC330CP+96) + + @test coth(interval(-0x1.5C244CE1AC6B3P+204, -0x2.5B4F5F71CA5FCP-100)) === Interval(-0x6.CA09D0DDC330CP+96, -0x1.0000000000000P+0) + + @test coth(interval(0x1.4E7212DD5ABB9P+4, 0xD.9F35E61FDF7E8P+592)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test coth(interval(-0xD.9F35E61FDF7E8P+592, -0x1.4E7212DD5ABB9P+4)) === Interval(-0x1.0000000000001P+0, -0x1.0000000000000P+0) + + @test coth(interval(0x1.271B33491E515P+20, 0x2.B3031CF3AF4ECP+628)) === Interval(0x1.0000000000000P+0, 0x1.0000000000001P+0) + + @test coth(interval(-0x2.B3031CF3AF4ECP+628, -0x1.271B33491E515P+20)) === Interval(-0x1.0000000000001P+0, -0x1.0000000000000P+0) + + @test coth(interval(0x9.DB635E2FF52B0P-180, 0x2.AF04176524D06P-24)) === Interval(0x5.F646A7779F114P+20, 0x1.9F8AFAA8DBFF9P+176) + + @test coth(interval(-0x2.AF04176524D06P-24, -0x9.DB635E2FF52B0P-180)) === Interval(-0x1.9F8AFAA8DBFF9P+176, -0x5.F646A7779F114P+20) + + @test asinh(interval(0x1.7A77BFCCF5A9EP-232, 0x2.8457BC029986EP+112)) === Interval(0x1.7A77BFCCF5A9DP-232, 0x4.F3FA9CD060658P+4) + + @test asinh(interval(0x3.C5EC30FBB68C8P-508, 0x6.05C0BB1BCB730P-220)) === Interval(0x3.C5EC30FBB68C6P-508, 0x6.05C0BB1BCB730P-220) + + @test asinh(interval(0xE.20FF41BD18058P-204, 0x2.9B09919BF9D9EP+272)) === Interval(0xE.20FF41BD18050P-204, 0xB.E2FD554E373E0P+4) + + @test asinh(interval(0x2.075DF98B2478CP-456, 0x1.1503444763FC5P-416)) === Interval(0x2.075DF98B2478AP-456, 0x1.1503444763FC5P-416) + + @test asinh(interval(0x1.5444E676976F1P+252, 0x2.7C064F6929234P+292)) === Interval(0xA.FA69A93525138P+4, 0xC.C008F1DBA8390P+4) + + @test asinh(interval(0x1.3A01905E36F84P+0, 0x4.ECBC855871080P+332)) === Interval(0x1.086AFFAE230B6P+0, 0xE.8698B81E22AB0P+4) + + @test asinh(interval(0x2.404E44C49C644P-440, 0x7.32EDAB7F60A50P+236)) === Interval(0x2.404E44C49C642P-440, 0xA.63FF3E7D6B730P+4) + + @test asinh(interval(0x1.63A15E999EB64P-344, 0x6.5263CF84EF388P+172)) === Interval(0x1.63A15E999EB63P-344, 0x7.9C22B35B1CEE0P+4) + + @test asinh(interval(0x6.941F470A70074P-756, 0x1.4171976A1CA54P-288)) === Interval(0x6.941F470A70070P-756, 0x1.4171976A1CA54P-288) + + @test asinh(interval(0x7.78A1F475A306CP-564, 0x4.69BB1D34B9570P-76)) === Interval(0x7.78A1F475A3068P-564, 0x4.69BB1D34B9570P-76) + + @test asinh(interval(0x1.BA04D452BBB35P+180, 0x1.F0D19ADCB5D74P+312)) === Interval(0x7.E017D1421AED4P+4, 0xD.99E3CCF428D70P+4) + + @test asinh(interval(0x2.6ABC15579B2B2P-48, 0x2.E046DB554037CP+256)) === Interval(0x2.6ABC15579B2B0P-48, 0xB.331FC2BC20E70P+4) + + @test asinh(interval(0x6.3E590E626451CP-172, 0x1.7AAA15EBBD3F2P+8)) === Interval(0x6.3E590E6264518P-172, 0x6.A13A85E654788P+0) + + @test asinh(interval(0x6.ACFA418D8F92CP-544, 0x2.8F9204BC4041EP+988)) === Interval(0x6.ACFA418D8F928P-544, 0x2.AE767FF2330E0P+8) + + @test asinh(interval(0x2.BB570B356C6CAP-440, 0x2.B00450A48D586P-148)) === Interval(0x2.BB570B356C6C8P-440, 0x2.B00450A48D586P-148) + + @test asinh(interval(0xC.41329461A0C30P-512, 0x1.9E7DDBBE00F75P+352)) === Interval(0xC.41329461A0C28P-512, 0xF.529AF3B8107E0P+4) + + @test asinh(interval(0x6.6978492A3064CP+188, 0xD.5E2045CEE9720P+236)) === Interval(0x8.4DCECB852E1E8P+4, 0xA.6DE648AA01A20P+4) + + @test asinh(interval(0x7.DEA605DEC97CCP-316, 0x1.5BD629B25AA23P-236)) === Interval(0x7.DEA605DEC97C8P-316, 0x1.5BD629B25AA23P-236) + + @test asinh(interval(0x6.65D7E0A247778P-56, 0x3.AE1DC13A652CAP+168)) === Interval(0x6.65D7E0A247774P-56, 0x7.671E008768830P+4) + + @test asinh(interval(0x5.2B55801231EC8P-344, 0xA.27B4555158148P-68)) === Interval(0x5.2B55801231EC4P-344, 0xA.27B4555158148P-68) + + @test asinh(interval(0x6.36B661DCE2688P-236, 0x1.D68A6BA7E617FP+12)) === Interval(0x6.36B661DCE2684P-236, 0x9.9E9F4F5A56088P+0) + + @test asinh(interval(0x1.EB0E1AB78F314P-480, 0x1.98EF0C6A8BD66P+132)) === Interval(0x1.EB0E1AB78F313P-480, 0x5.CA82DEDB3D320P+4) + + @test asinh(interval(0x7.4CF193131FA64P-192, 0x1.C08152CC09416P+220)) === Interval(0x7.4CF193131FA60P-192, 0x9.9BF0B87669850P+4) + + @test asinh(interval(0x1.7036C237D5B00P-672, 0x6.F70E0DA4D2BA0P-140)) === Interval(0x1.7036C237D5AFFP-672, 0x6.F70E0DA4D2BA0P-140) + + @test asinh(interval(0x1.D283CF8F05665P+252, 0xB.24D19E00C8460P+324)) === Interval(0xA.FF762A8B30EA0P+4, 0xE.3AF0836B2F5B0P+4) + + @test asinh(interval(0x1.8BCA641025A83P-124, 0x5.F775993940188P-120)) === Interval(0x1.8BCA641025A82P-124, 0x5.F775993940188P-120) + + @test acosh(interval(0x5.AD89AD14DDC74P+272, 0x2.6EC5D31670A5EP+860)) === Interval(0xB.EF73BF42C19D8P+4, 0x2.55B05064B6C2AP+8) + + @test acosh(interval(0x4.A457C35864940P+344, 0x2.3ADEFB54BC048P+444)) === Interval(0xF.0ABC113DB1AF0P+4, 0x1.3540A29BC6B5EP+8) + + @test acosh(interval(0x6.941C8B9506D90P+56, 0x3.B11D8083AE958P+744)) === Interval(0x2.964A9197BF832P+4, 0x2.05B3663FAE652P+8) + + @test acosh(interval(0x1.09A940A083EE3P+132, 0x1.047FD514ADF08P+384)) === Interval(0x5.C39C22D7AA908P+4, 0x1.0AE10BDF7FE81P+8) + + @test acosh(interval(0x7.710740B71A0D4P+256, 0xF.C0798D156BFA0P+560)) === Interval(0xB.42559B5CF34E8P+4, 0x1.879CCE87EE3A1P+8) + + @test acosh(interval(0x2.3721A01F70456P+564, 0x9.C62BBF31FD290P+728)) === Interval(0x1.886C6F1DDDFF7P+8, 0x1.FB958311209BFP+8) + + @test acosh(interval(0x6.F06D452BDCEF0P+44, 0x2.4825931366BBCP+520)) === Interval(0x2.120F95BD1F706P+4, 0x1.69F464545899AP+8) + + @test acosh(interval(0x5.D326D4B0883D8P+76, 0x1.77175C5A113ADP+528)) === Interval(0x3.7226BF0157930P+4, 0x1.6F0E8DBF98710P+8) + + @test acosh(interval(0x1.05ADFE119D4C2P+296, 0x2.6BCDF50E05E34P+1020)) === Interval(0xC.DE2FBE78FEC28P+4, 0x2.C49666459E1A4P+8) + + @test acosh(interval(0xA.7F5D255B81268P+408, 0x1.9D1EDDC132B36P+864)) === Interval(0x1.1DD92C82827A1P+8, 0x2.580D06072BF20P+8) + + @test acosh(interval(0xC.FBE4E2C6D0A80P+484, 0x4.DF75BDC17C330P+868)) === Interval(0x1.52BD770642386P+8, 0x2.5BEDB7E376E18P+8) + + @test acosh(interval(0xB.241032F9700A0P+380, 0x1.04A65B06B2920P+640)) === Interval(0x1.0A7FEC190CCEEP+8, 0x1.BC5349B021815P+8) + + @test acosh(interval(0x5.F207EAF5F8BB4P+608, 0xA.BC87C6F90AEE0P+648)) === Interval(0x1.A7E8C5069EA32P+8, 0x1.C439E5E8A511CP+8) + + @test acosh(interval(0x1.BCD62C46ADFD7P+16, 0xA.CD289B35ECD00P+564)) === Interval(0xC.56062C0C41518P+0, 0x1.8A0201556D85AP+8) + + @test acosh(interval(0x6.534BBA40A0B44P+224, 0x1.8DE35856E91FBP+452)) === Interval(0x9.DCD7CC0C7FFB8P+4, 0x1.3A6FC95911674P+8) + + @test acosh(interval(0x2.C4F59012F4E48P+508, 0x1.1854765A9A205P+688)) === Interval(0x1.61D49DF92AB79P+8, 0x1.DDAB5081E5A0EP+8) + + @test acosh(interval(0x8.6F890522C18B0P+44, 0x3.F87592D71E06CP+220)) === Interval(0x2.152F7D2DBF2BCP+4, 0x9.A907E7C701690P+4) + + @test acosh(interval(0x9.2A9035A578970P+124, 0x1.35EE42DCA8B75P+608)) === Interval(0x5.8DBE2A7E96990P+4, 0x1.A6515B9ECF2F1P+8) + + @test acosh(interval(0x5.2641115F86D38P+204, 0x7.BE33D080E6584P+252)) === Interval(0x8.FBBEB3B84C708P+4, 0xB.169BBE1313F68P+4) + + @test acosh(interval(0xA.8746F72A1BD90P+72, 0x5.6ABE29A315520P+872)) === Interval(0x3.4F42DBFC0E4B4P+4, 0x2.5ECE9922C7894P+8) + + @test acosh(interval(0xB.D0973FF704000P+224, 0x2.2FD9ABBD09D34P+976)) === Interval(0x9.E6D6EA0633070P+4, 0x2.A5FCBEDD15F2CP+8) + + @test acosh(interval(0xA.C15D51DB7D9F0P+536, 0x1.7207A70831D7AP+796)) === Interval(0x1.76986E964982DP+8, 0x2.28CE847F69DCAP+8) + + @test acosh(interval(0x4.280BEC7911E7CP+180, 0x6.B4F11E86ECA38P+792)) === Interval(0x7.EE261446DD5F8P+4, 0x2.27919F48F2C20P+8) + + @test acosh(interval(0x3.4B22674960B0EP+468, 0xA.505A061DF4CD8P+808)) === Interval(0x1.4647297977E4EP+8, 0x2.3316ED57009D4P+8) + + @test acosh(interval(0x2.383FC27D5E4E4P+756, 0x5.88E9C96565E54P+920)) === Interval(0x2.0D82822002358P+8, 0x2.801980299550CP+8) + + @test acosh(interval(0x1.20E762C8AAB55P+72, 0x1.DBB7B8FE35847P+960)) === Interval(0x3.2B87D37C9EAFAP+4, 0x2.9ABBED2A77E62P+8) + + @test acosh(interval(0x1.1265074E9E3DFP+792, 0x2.229B285A709C0P+920)) === Interval(0x2.25BC2FC876EBCP+8, 0x2.7F25A89FE16E6P+8) + + @test acosh(interval(0x1.054DCDEF21349P+436, 0x1.618994D07D9A7P+636)) === Interval(0x1.2EED02D819A15P+8, 0x1.B9DB8970CC5ECP+8) + + @test acosh(interval(0x4.5BE0D9A7FF0CCP+460, 0x2.6F2C55F16354AP+568)) === Interval(0x1.4103588C86AB6P+8, 0x1.8B4A572E180D4P+8) + + @test acosh(interval(0x9.BD8B9A7FB6630P+80, 0x2.AD5F8458C8722P+768)) === Interval(0x3.A6BD416FCCF70P+4, 0x2.1603D4EDCB36AP+8) + + @test atanh(interval(-0x3.11A309475E762P-164, -0xC.3784302E15500P-680)) === Interval(-0x3.11A309475E764P-164, -0xC.3784302E15500P-680) + + @test atanh(interval(-0x5.7DD17A4248D38P-280, -0x2.898FC0F386F74P-640)) === Interval(-0x5.7DD17A4248D3CP-280, -0x2.898FC0F386F74P-640) + + @test atanh(interval(-0xE.D83DCD7F564A0P-296, -0x1.62F61FBA0F40FP-764)) === Interval(-0xE.D83DCD7F564A8P-296, -0x1.62F61FBA0F40FP-764) + + @test atanh(interval(-0x1.67712A1E64C2CP-944, -0x1.C0102C4D258EFP-976)) === Interval(-0x1.67712A1E64C2DP-944, -0x1.C0102C4D258EFP-976) + + @test atanh(interval(0x2.E3D991AE84668P-728, 0x1.92C3C728CCF4AP-612)) === Interval(0x2.E3D991AE84668P-728, 0x1.92C3C728CCF4BP-612) + + @test atanh(interval(-0x1.BCD3FEB3B0175P-640, +0x1.BEBE69E3BF3C2P-536)) === Interval(-0x1.BCD3FEB3B0176P-640, +0x1.BEBE69E3BF3C3P-536) + + @test atanh(interval(-0x1.2469575189327P-372, -0x7.51C0C39F58A4CP-1008)) === Interval(-0x1.2469575189328P-372, -0x7.51C0C39F58A4CP-1008) + + @test atanh(interval(-0x1.C4D163A6CCCD9P-336, -0x1.3BEE6DAB70397P-796)) === Interval(-0x1.C4D163A6CCCDAP-336, -0x1.3BEE6DAB70397P-796) + + @test atanh(interval(-0x2.0FAE5DE90C98CP-896, -0x2.2079777EC2418P-976)) === Interval(-0x2.0FAE5DE90C98EP-896, -0x2.2079777EC2418P-976) + + @test atanh(interval(-0x1.08C248C37E53BP-816, +0x2.8C9F04EE5DE84P-948)) === Interval(-0x1.08C248C37E53CP-816, +0x2.8C9F04EE5DE86P-948) + + @test atanh(interval(-0x2.0002542B01474P-228, +0x2.4D59F217BF74CP-796)) === Interval(-0x2.0002542B01476P-228, +0x2.4D59F217BF74EP-796) + + @test atanh(interval(0xD.D4033889729A0P-844, 0x7.44451BF919D78P-556)) === Interval(0xD.D4033889729A0P-844, 0x7.44451BF919D7CP-556) + + @test atanh(interval(-0x2.08918B016995CP-64, +0x3.3FC26450C6E4AP-268)) === Interval(-0x2.08918B016995EP-64, +0x3.3FC26450C6E4CP-268) + + @test atanh(interval(-0x2.66C95BD8D7716P-388, +0x1.7E16B310F878AP-232)) === Interval(-0x2.66C95BD8D7718P-388, +0x1.7E16B310F878BP-232) + + @test atanh(interval(-0x3.D9C66BD30B774P-256, -0x4.A8C30F678CB68P-456)) === Interval(-0x3.D9C66BD30B776P-256, -0x4.A8C30F678CB68P-456) + + @test atanh(interval(-0x1.AA045CCB15AEDP-804, +0xD.450C473265610P-24)) === Interval(-0x1.AA045CCB15AEEP-804, +0xD.450C4732686C0P-24) + + @test atanh(interval(-0x2.23ADFA571FC3CP-344, -0x1.30D1074DC059EP-868)) === Interval(-0x2.23ADFA571FC3EP-344, -0x1.30D1074DC059EP-868) + + @test atanh(interval(-0x3.DFBC1A4BF3888P-68, -0x4.A89E39B247C84P-840)) === Interval(-0x3.DFBC1A4BF388AP-68, -0x4.A89E39B247C84P-840) + + @test atanh(interval(0x9.583064525D370P-496, 0x2.C67652F06A55EP-408)) === Interval(0x9.583064525D370P-496, 0x2.C67652F06A560P-408) + + @test atanh(interval(-0x3.38BF880EC3082P-304, -0x7.7B19877E536ACP-512)) === Interval(-0x3.38BF880EC3084P-304, -0x7.7B19877E536ACP-512) + + @test atanh(interval(-0x2.ADBF037238702P-44, +0x1.98DC940C3AE1EP-564)) === Interval(-0x2.ADBF037238704P-44, +0x1.98DC940C3AE1FP-564) + + @test atanh(interval(-0x4.E4A79C48B3A58P-328, +0xA.28B02E59D39D8P-856)) === Interval(-0x4.E4A79C48B3A5CP-328, +0xA.28B02E59D39E0P-856) + + @test atanh(interval(-0x6.80D3E87B911D8P-232, -0x2.3DF54212C46E4P-520)) === Interval(-0x6.80D3E87B911DCP-232, -0x2.3DF54212C46E4P-520) + + @test atanh(interval(-0x1.4E54C309C46F8P-480, +0x9.47E982AC83F98P-688)) === Interval(-0x1.4E54C309C46F9P-480, +0x9.47E982AC83FA0P-688) + + @test atanh(interval(-0x2.276202227A6DEP-808, +0x1.C53E9BA64FADFP-768)) === Interval(-0x2.276202227A6E0P-808, +0x1.C53E9BA64FAE0P-768) + + @test atanh(interval(-0x4.8E4B4D7BA6DD0P-212, -0x1.4B35284C1064BP-548)) === Interval(-0x4.8E4B4D7BA6DD4P-212, -0x1.4B35284C1064BP-548) + + @test atanh(interval(-0x3.5C52B8D9FF582P-248, -0x2.AF868D652B866P-912)) === Interval(-0x3.5C52B8D9FF584P-248, -0x2.AF868D652B866P-912) + + @test atanh(interval(0x1.6938CC5EE183AP-692, 0xB.F7A583AC38168P-664)) === Interval(0x1.6938CC5EE183AP-692, 0xB.F7A583AC38170P-664) + + @test atanh(interval(-0x3.68B35F23B2506P-560, +0x9.F9C9246D05138P-304)) === Interval(-0x3.68B35F23B2508P-560, +0x9.F9C9246D05140P-304) + + @test atanh(interval(-0xA.BDE70B6850EA0P-516, +0x2.BB76D5BF703FAP-1020)) === Interval(-0xA.BDE70B6850EA8P-516, +0x2.BB76D5BF703FCP-1020) + + @test_broken acoth(interval(0x5.AD89AD14DDC78P+272, 0x2.6EC5D31670A60P+860)) === Interval(0x6.93B8C1A4ADA4CP-864, 0x2.D165505974CDCP-276) + + @test_broken acoth(interval(-0x2.6EC5D31670A60P+860, -0x5.AD89AD14DDC78P+272)) === Interval(-0x2.D165505974CDCP-276, -0x6.93B8C1A4ADA4CP-864) + + @test_broken acoth(interval(0x4.A457C35864944P+344, 0x2.3ADEFB54BC04AP+444)) === Interval(0x7.2CCCD8F3E4D84P-448, 0x3.726295CD6E028P-348) + + @test_broken acoth(interval(-0x2.3ADEFB54BC04AP+444, -0x4.A457C35864944P+344)) === Interval(-0x3.726295CD6E028P-348, -0x7.2CCCD8F3E4D84P-448) + + @test_broken acoth(interval(0x6.941C8B9506D98P+56, 0x3.B11D8083AE95CP+744)) === Interval(0x4.55780C09BB248P-748, 0x2.6EA0EC606D92CP-60) + + @test_broken acoth(interval(-0x3.B11D8083AE95CP+744, -0x6.941C8B9506D98P+56)) === Interval(-0x2.6EA0EC606D92CP-60, -0x4.55780C09BB248P-748) + + @test_broken acoth(interval(0x1.09A940A083EE4P+132, 0x1.047FD514ADF09P+384)) === Interval(0xF.B940FE60125C0P-388, 0xF.6B0B0DCA2D740P-136) + + @test_broken acoth(interval(-0x1.047FD514ADF09P+384, -0x1.09A940A083EE4P+132)) === Interval(-0xF.6B0B0DCA2D740P-136, -0xF.B940FE60125C0P-388) + + @test_broken acoth(interval(0x7.710740B71A0DCP+256, 0xF.C0798D156BFB0P+560)) === Interval(0x1.04086A3447A55P-564, 0x2.266CE7A905524P-260) + + @test_broken acoth(interval(-0xF.C0798D156BFB0P+560, -0x7.710740B71A0DCP+256)) === Interval(-0x2.266CE7A905524P-260, -0x1.04086A3447A55P-564) + + @test_broken acoth(interval(0x2.3721A01F70458P+564, 0x9.C62BBF31FD298P+728)) === Interval(0x1.A3110641EF7BCP-732, 0x7.38E97DB7ABD94P-568) + + @test_broken acoth(interval(-0x9.C62BBF31FD298P+728, -0x2.3721A01F70458P+564)) === Interval(-0x7.38E97DB7ABD94P-568, -0x1.A3110641EF7BCP-732) + + @test_broken acoth(interval(0x6.F06D452BDCEF8P+44, 0x2.4825931366BBEP+520)) === Interval(0x7.030E427A5F700P-524, 0x2.4E45C5E18EA0EP-48) + + @test_broken acoth(interval(-0x2.4825931366BBEP+520, -0x6.F06D452BDCEF8P+44)) === Interval(-0x2.4E45C5E18EA0EP-48, -0x7.030E427A5F700P-524) + + @test_broken acoth(interval(0x5.D326D4B0883DCP+76, 0x1.77175C5A113AEP+528)) === Interval(0xA.EB85BC1375C18P-532, 0x2.BF32E14DB1D26P-80) + + @test_broken acoth(interval(-0x1.77175C5A113AEP+528, -0x5.D326D4B0883DCP+76)) === Interval(-0x2.BF32E14DB1D26P-80, -0xA.EB85BC1375C18P-532) + + @test_broken acoth(interval(0x1.05ADFE119D4C3P+296, 0x2.6BCDF50E05E36P+1020)) === Interval(0x6.9BC8F6BE69A84P-1024, 0xF.A7190DED61120P-300) + + @test_broken acoth(interval(-0x2.6BCDF50E05E36P+1020, -0x1.05ADFE119D4C3P+296)) === Interval(-0xF.A7190DED61120P-300, -0x6.9BC8F6BE69A84P-1024) + + @test_broken acoth(interval(0xA.7F5D255B81270P+408, 0x1.9D1EDDC132B38P+864)) === Interval(0x9.EA2F16D4B51A8P-868, 0x1.8630054C790C6P-412) + + @test_broken acoth(interval(-0x1.9D1EDDC132B38P+864, -0xA.7F5D255B81270P+408)) === Interval(-0x1.8630054C790C6P-412, -0x9.EA2F16D4B51A8P-868) + + @test_broken acoth(interval(0xC.FBE4E2C6D0A90P+484, 0x4.DF75BDC17C334P+868)) === Interval(0x3.4891A2770DF7CP-872, 0x1.3B7754395DD7FP-488) + + @test_broken acoth(interval(-0x4.DF75BDC17C334P+868, -0xC.FBE4E2C6D0A90P+484)) === Interval(-0x1.3B7754395DD7FP-488, -0x3.4891A2770DF7CP-872) + + @test_broken acoth(interval(0xB.241032F9700A8P+380, 0x1.04A65B06B2921P+640)) === Interval(0xF.B6EE12E44E478P-644, 0x1.6FA7BD9AAC5D2P-384) + + @test_broken acoth(interval(-0x1.04A65B06B2921P+640, -0xB.241032F9700A8P+380)) === Interval(-0x1.6FA7BD9AAC5D2P-384, -0xF.B6EE12E44E478P-644) + + @test_broken acoth(interval(0x5.F207EAF5F8BB8P+608, 0xA.BC87C6F90AEE8P+648)) === Interval(0x1.7D8116060016CP-652, 0x2.B0EE9FA61C0DAP-612) + + @test_broken acoth(interval(-0xA.BC87C6F90AEE8P+648, -0x5.F207EAF5F8BB8P+608)) === Interval(-0x2.B0EE9FA61C0DAP-612, -0x1.7D8116060016CP-652) + + @test_broken acoth(interval(0x1.BCD62C46ADFD9P+16, 0xA.CD289B35ECD08P+564)) === Interval(0x1.7B35C74EEC020P-568, 0x9.35374E76B1BE8P-20) + + @test_broken acoth(interval(-0xA.CD289B35ECD08P+564, -0x1.BCD62C46ADFD9P+16)) === Interval(-0x9.35374E76B1BE8P-20, -0x1.7B35C74EEC020P-568) + + @test_broken acoth(interval(0x6.534BBA40A0B4CP+224, 0x1.8DE35856E91FDP+452)) === Interval(0xA.4B5AAEDFCE6A8P-456, 0x2.878CF52E5FBF8P-228) + + @test_broken acoth(interval(-0x1.8DE35856E91FDP+452, -0x6.534BBA40A0B4CP+224)) === Interval(-0x2.878CF52E5FBF8P-228, -0xA.4B5AAEDFCE6A8P-456) + + @test expm1(interval(-0x1.16CC0DF1540F5P+112, -0x1.B3E4076622F04P-232)) === Interval(-0x1.0000000000000P+0, -0x1.B3E4076622F03P-232) + + @test expm1(interval(-0x2.42042B9A88438P-220, -0x2.A213429DB0508P-508)) === Interval(-0x2.42042B9A88438P-220, -0x2.A213429DB0506P-508) + + @test expm1(interval(-0x2.0E2E40B15D814P+272, -0x1.5D74CFDA6B292P-200)) === Interval(-0x1.0000000000000P+0, -0x1.5D74CFDA6B291P-200) + + @test expm1(interval(-0x2.0EA791886F712P-416, -0x3.FE66A8D1A3472P-456)) === Interval(-0x2.0EA791886F712P-416, -0x3.FE66A8D1A3470P-456) + + @test expm1(interval(-0x8.80EEFDF700148P+332, -0x1.C4E85E50A626DP+0)) === Interval(-0x1.0000000000000P+0, -0xD.45BCBA84EE268P-4) + + @test expm1(interval(-0x6.CA83546563A5CP+236, -0x4.F0F28370909FCP-440)) === Interval(-0x1.0000000000000P+0, -0x4.F0F28370909F8P-440) + + @test expm1(interval(-0x4.E60572D4FCFD0P+172, -0x1.EB095183538C8P-344)) === Interval(-0x1.0000000000000P+0, -0x1.EB095183538C7P-344) + + @test expm1(interval(-0x2.7ED8954764B12P-288, -0x8.71DC22117BE90P-756)) === Interval(-0x2.7ED8954764B12P-288, -0x8.71DC22117BE88P-756) + + @test expm1(interval(-0xD.CF39B8DD68B98P-76, -0x8.0205C5B1357B0P-564)) === Interval(-0xD.CF39B8DD68B98P-76, -0x8.0205C5B1357A8P-564) + + @test expm1(interval(-0x4.AF296DD37FD74P+256, -0x5.CBE2BD423B02CP-48)) === Interval(-0x1.0000000000000P+0, -0x5.CBE2BD423AF1CP-48) + + @test expm1(interval(-0x1.1FBA2D1252D2BP+656, -0x2.4B7A4095C91B4P+8)) === Interval(-0x1.0000000000000P+0, -0xF.FFFFFFFFFFFF8P-4) + + @test expm1(interval(-0x1.44F2134E1901EP+8, -0x2.581DAD9AFE6DCP-172)) === Interval(-0x1.0000000000000P+0, -0x2.581DAD9AFE6DAP-172) + + @test expm1(interval(-0x2.9529E333F2ABAP+988, -0x7.19390F862F49CP-544)) === Interval(-0x1.0000000000000P+0, -0x7.19390F862F498P-544) + + @test expm1(interval(-0x1.58391FD92C387P-148, -0x4.0C12426A57194P-440)) === Interval(-0x1.58391FD92C387P-148, -0x4.0C12426A57190P-440) + + @test expm1(interval(-0xB.FADC4FB83E140P+348, -0xF.13E388B2165F0P-512)) === Interval(-0x1.0000000000000P+0, -0xF.13E388B2165E8P-512) + + @test expm1(interval(-0x8.86826CE1AB700P-240, -0x4.FEA8D3A3ED018P-316)) === Interval(-0x8.86826CE1AB700P-240, -0x4.FEA8D3A3ED014P-316) + + @test expm1(interval(0x1.0000000000000P+0, 0x2.0000000000000P+0)) === Interval(0x1.B7E151628AED2P+0, 0x6.63992E35376B8P+0) + + @test expm1(interval(-0x1.0000000000000P+0, +0x2.0000000000000P+0)) === Interval(-0xA.1D2A7274C4328P-4, +0x6.63992E35376B8P+0) + + @test expm1(interval(-0x5.0000000000000P+0, -0x3.0000000000000P+0)) === Interval(-0xF.E466C01FF2AD0P-4, -0xF.341279998A7A8P-4) + + @test expm1(interval(-0x2.0000000000000P+0, +0x9.9999999999998P-4)) === Interval(-0xD.D5AAAB880FC70P-4, +0xD.27660B11A9EF8P-4) + + @test expm1(interval(0x4.0000000000000P-1076, 0x4.4444400000000P-1056)) === Interval(0x4.0000000000000P-1076, 0x4.4444800000000P-1056) + + @test expm1(interval(0x4.4440000000000P-1064, 0x1.0000000000000P+0)) === Interval(0x4.4440000000000P-1064, 0x1.B7E151628AED3P+0) + + @test expm1(interval(-0x4.4444000000000P-1060, +0x4.4444000000000P-1060)) === Interval(-0x4.4444000000000P-1060, +0x4.4448000000000P-1060) + + @test expm1(interval(-0x4.4400000000000P-1068, +0x1.FFF0000000000P+0)) === Interval(-0x4.4400000000000P-1068, +0x6.6322F8540CFB4P+0) + + @test expm1(interval(-0x1.FFFF000000000P+0, -0x8.8888880000000P-1052)) === Interval(-0xD.D5A88131A6240P-4, -0x8.8888840000000P-1052) + + @test expm1(interval(-0x1.FFFFFFF000000P+0, +0x8.CD11555400000P-1044)) === Interval(-0xD.D5AAAB656A718P-4, +0x8.CD11555800000P-1044) + + @test log1p(interval(0xC.4B4A6EB6B3AF0P-264, 0xA.DD2C4C1BE4B30P+92)) === Interval(0xC.4B4A6EB6B3AE8P-264, 0x4.227AD8183FB70P+4) + + @test log1p(interval(0x2.6213E21B14894P-516, 0x6.6606F0995E5F4P-224)) === Interval(0x2.6213E21B14892P-516, 0x6.6606F0995E5F4P-224) + + @test log1p(interval(0x9.0FF2CAA1B3048P-240, 0x1.95F14B9BA7449P+236)) === Interval(0x9.0FF2CAA1B3040P-240, 0xA.40B346F454218P+4) + + @test log1p(interval(0x8.E2ADA8DFBE938P-492, 0x3.67CB3BE0BB146P-452)) === Interval(0x8.E2ADA8DFBE930P-492, 0x3.67CB3BE0BB146P-452) + + @test log1p(interval(0x1.394270BBCBA7EP+196, 0x8.4976F0BF45A40P+224)) === Interval(0x8.80F0717A1DC40P+4, 0x9.D6130F01F8B78P+4) + + @test log1p(interval(0x6.A000A12839A50P-44, 0x3.86DC59439415AP+276)) === Interval(0x6.A000A1283845CP-44, 0xC.091AAD1207058P+4) + + @test log1p(interval(0x1.3C84E4F9C80CEP-476, 0x9.1E9439C3B4358P+196)) === Interval(0x1.3C84E4F9C80CDP-476, 0x8.A1137BDE55CF8P+4) + + @test log1p(interval(0x8.41D2DB6D93548P-376, 0x2.EDCF4A7919034P+140)) === Interval(0x8.41D2DB6D93540P-376, 0x6.21D80D9193AB8P+4) + + @test log1p(interval(0x1.2C18FEEBCAEAEP-768, 0x1.C369E759DF5E3P-328)) === Interval(0x1.2C18FEEBCAEADP-768, 0x1.C369E759DF5E3P-328) + + @test log1p(interval(0x4.D94E91619D3F0P-580, 0x2.9F6CAF6B5513EP-132)) === Interval(0x4.D94E91619D3ECP-580, 0x2.9F6CAF6B5513EP-132) + + @test log1p(interval(0x2.9CD12C1D0AAC4P+116, 0x3.BF7E0E52DC1AAP+276)) === Interval(0x5.15D8B410E0A5CP+4, 0xC.0A13DC536CD58P+4) + + @test log1p(interval(0x3.36DE5C55594EEP-100, 0x1.D0460177B1553P+204)) === Interval(0x3.36DE5C55594ECP-100, 0x8.DFF506FE0D9F8P+4) + + @test log1p(interval(0x4.BD4031736F7A8P+4, 0xF.A10BB3C91C7B0P+592)) === Interval(0x4.5771391F308D8P+0, 0x1.9D179EA5204D0P+8) + + @test log1p(interval(0x2.8E258DB3C44F8P+20, 0x3.1A4EDE719A4C0P+628)) === Interval(0xE.CD14C501247C0P+0, 0x1.B46DC0D02B874P+8) + + @test log1p(interval(0x2.33950F38F830EP-176, 0x5.BE0388619B018P-24)) === Interval(0x2.33950F38F830CP-176, 0x5.BE0377E504F78P-24) + + @test log1p(interval(0x3.24F03DF33568CP-560, 0xE.67255823421E8P+920)) === Interval(0x3.24F03DF33568AP-560, 0x2.805CE2DC91036P+8) + + @test log1p(interval(0x2.D572639DC5FA8P-468, 0x1.95CF42AA171CDP-160)) === Interval(0x2.D572639DC5FA6P-468, 0x1.95CF42AA171CDP-160) + + @test log1p(interval(0x4.705A028302DB0P-532, 0x2.E57341C14970CP+324)) === Interval(0x4.705A028302DACP-532, 0xE.1A4A3523F2658P+4) + + @test log1p(interval(0x4.DBA1D21D6F308P+144, 0x3.667988C57865AP+196)) === Interval(0x6.564D09AD1D214P+4, 0x8.914A9531FD118P+4) + + @test log1p(interval(0x4.9FA5A1E4DF740P-328, 0x1.11B85141B78F6P-240)) === Interval(0x4.9FA5A1E4DF73CP-328, 0x1.11B85141B78F6P-240) + + @test log1p(interval(0xA.0CDE9DC015B08P+360, 0xF.99D84F862AC58P+524)) === Interval(0xF.BD7308ED73FF0P+4, 0x1.6DF4DA39DC5DDP+8) + + @test log1p(interval(0x6.88441038D56B8P-108, 0x3.3D65C09938132P+136)) === Interval(0x6.88441038D56B4P-108, 0x5.F718BBF0CE2F8P+4) + + @test log1p(interval(0x7.1761CAB055134P-356, 0x1.92EFD09488689P-76)) === Interval(0x7.1761CAB055130P-356, 0x1.92EFD09488689P-76) + + @test log1p(interval(0x6.2085E427413C8P-252, 0xB.8CDD3B024EA10P-36)) === Interval(0x6.2085E427413C4P-252, 0xB.8CDD3AFE235D0P-36) + + @test log1p(interval(0xB.F5F1C0FA33978P-504, 0x4.924DD8D50B1CCP+72)) === Interval(0xB.F5F1C0FA33970P-504, 0x3.36D2B121508A8P+4) + + @test log1p(interval(0xB.BC7E37EB2D388P-216, 0x1.CFE27BB53DEBBP+192)) === Interval(0xB.BC7E37EB2D380P-216, 0x8.5ADC069F618A8P+4) + + @test log1p(interval(0x1.E139DD116F868P-688, 0xD.2545346D68FD0P-148)) === Interval(0x1.E139DD116F867P-688, 0xD.2545346D68FD0P-148) + + @test log1p(interval(0x2.E0C8E64A890ACP+192, 0x2.6A898D2CAA9A4P+260)) === Interval(0x8.6243148F46208P+4, 0xB.519B6E544F898P+4) + + @test log1p(interval(0x5.9C4642ED78BC8P-340, 0x4.631BD2232F0C0P+588)) === Interval(0x5.9C4642ED78BC4P-340, 0x1.990C99B6124FEP+8) + + @test log1p(interval(0xF.C05EA810DFE88P-180, 0xA.05884FBED5F48P-152)) === Interval(0xF.C05EA810DFE80P-180, 0xA.05884FBED5F48P-152) + + @test sqrt(interval(0xC.4B4A6EB6B3AF0P-264, 0xA.DD2C4C1BE4B30P+92)) === Interval(0x3.819C8C44FCAE8P-132, 0xD.2F2830FA93228P+44) + + @test sqrt(interval(0x2.6213E21B14894P-516, 0x6.6606F0995E5F4P-224)) === Interval(0x6.2CC8B5D1B7648P-260, 0x2.878F8E10E2752P-112) + + @test sqrt(interval(0x9.0FF2CAA1B3048P-240, 0x1.95F14B9BA7449P+236)) === Interval(0x3.02A74AB0BBF36P-120, 0x5.0979194446A10P+116) + + @test sqrt(interval(0x8.E2ADA8DFBE938P-492, 0x3.67CB3BE0BB146P-452)) === Interval(0xB.EC63BFE10BCC8P-248, 0x7.61AC89CF17804P-228) + + @test sqrt(interval(0x1.394270BBCBA7EP+196, 0x8.4976F0BF45A40P+224)) === Interval(0x4.6CBEB2D8F6718P+96, 0x2.E0F32319AC30AP+112) + + @test sqrt(interval(0x6.A000A12839A50P-44, 0x3.86DC59439415AP+276)) === Interval(0xA.4BAEE7F482900P-24, 0x7.830C8D5A5F3D8P+136) + + @test sqrt(interval(0x1.3C84E4F9C80CEP-476, 0x9.1E9439C3B4358P+196)) === Interval(0x4.729F7C344CE30P-240, 0xC.14519D6697FF0P+96) + + @test sqrt(interval(0x8.41D2DB6D93548P-376, 0x2.EDCF4A7919034P+140)) === Interval(0x2.DF9F14A64C77AP-188, 0x6.D87D667089BD8P+68) + + @test sqrt(interval(0x1.2C18FEEBCAEAEP-768, 0x1.C369E759DF5E3P-328)) === Interval(0x1.152C585EDDB6AP-384, 0x1.53F1A81CAA4A0P-164) + + @test sqrt(interval(0x4.D94E91619D3F0P-580, 0x2.9F6CAF6B5513EP-132)) === Interval(0x8.CEDC2135E05E8P-292, 0x6.7A5BEF2579C34P-68) + + @test sqrt(interval(0x2.9CD12C1D0AAC4P+116, 0x3.BF7E0E52DC1AAP+276)) === Interval(0x6.7722C88D985D8P+56, 0x7.BE7173245A668P+136) + + @test sqrt(interval(0x3.36DE5C55594EEP-100, 0x1.D0460177B1553P+204)) === Interval(0x7.2BE248A308D24P-52, 0x5.630224B50BCF8P+100) + + @test sqrt(interval(0x4.BD4031736F7A8P+4, 0xF.A10BB3C91C7B0P+592)) === Interval(0x8.B53B61217B4F8P+0, 0x3.F40FA54A699E2P+296) + + @test sqrt(interval(0x2.8E258DB3C44F8P+20, 0x3.1A4EDE719A4C0P+628)) === Interval(0x6.64E1F64817930P+8, 0x7.0BBE006E8934CP+312) + + @test sqrt(interval(0x2.33950F38F830EP-176, 0x5.BE0388619B018P-24)) === Interval(0x1.7BD69462CDAD2P-88, 0x2.6573BFB248EF0P-12) + + @test sqrt(interval(0x3.24F03DF33568CP-560, 0xE.67255823421E8P+920)) === Interval(0x1.C5F168118C2B1P-280, 0x3.CB8CCAD62ED10P+460) + + @test sqrt(interval(0x2.D572639DC5FA8P-468, 0x1.95CF42AA171CDP-160)) === Interval(0x6.BBC8A036CC930P-236, 0x1.4250C275A7B2BP-80) + + @test sqrt(interval(0x4.705A028302DB0P-532, 0x2.E57341C14970CP+324)) === Interval(0x8.6D6D9A3EA2160P-268, 0x6.CEB17F56F1B50P+160) + + @test sqrt(interval(0x4.DBA1D21D6F308P+144, 0x3.667988C57865AP+196)) === Interval(0x2.343E215EB2264P+72, 0x7.603E67F0E1DD0P+96) + + @test sqrt(interval(0x4.9FA5A1E4DF740P-328, 0x1.11B85141B78F6P-240)) === Interval(0x2.26777C4E368BEP-164, 0x1.08B63617A4210P-120) + + @test sqrt(interval(0xA.0CDE9DC015B08P+360, 0xF.99D84F862AC58P+524)) === Interval(0x3.2B934CDCC29E0P+180, 0xF.CC99981010AD0P+260) + + @test sqrt(interval(0x6.88441038D56B8P-108, 0x3.3D65C09938132P+136)) === Interval(0xA.392C9B2283838P-56, 0x1.CCC9C68E6B873P+68) + + @test sqrt(interval(0x7.1761CAB055134P-356, 0x1.92EFD09488689P-76)) === Interval(0xA.A6DE001E1A878P-180, 0x5.04B0B42B185F4P-40) + + @test sqrt(interval(0x6.2085E427413C8P-252, 0xB.8CDD3B024EA10P-36)) === Interval(0x9.E6B17DD90B818P-128, 0xD.9821AE0A3F288P-20) + + @test sqrt(interval(0xB.F5F1C0FA33978P-504, 0x4.924DD8D50B1CCP+72)) === Interval(0x3.755B7F9B147FCP-252, 0x2.235AF64AA2532P+36) + + @test sqrt(interval(0xB.BC7E37EB2D388P-216, 0x1.CFE27BB53DEBBP+192)) === Interval(0x3.6D0318CB65970P-108, 0x1.589B93C7CC280P+96) + + @test sqrt(interval(0x1.E139DD116F868P-688, 0xD.2545346D68FD0P-148)) === Interval(0x1.5EFD65C23F515P-344, 0xE.80B36809CA340P-76) + + @test sqrt(interval(0x2.E0C8E64A890ACP+192, 0x2.6A898D2CAA9A4P+260)) === Interval(0x1.B24CEBB3D4B84P+96, 0x6.37B4CD9068634P+128) + + @test sqrt(interval(0x5.9C4642ED78BC8P-340, 0x4.631BD2232F0C0P+588)) === Interval(0x9.797C4D6802170P-172, 0x8.60D1F01F1A8D8P+292) + + @test sqrt(interval(0xF.C05EA810DFE88P-180, 0xA.05884FBED5F48P-152)) === Interval(0xF.E00F72E6C82F8P-92, 0x3.2A6AD8ACFCBB0P-76) + + @test interval(-0xA.644C9D88EA8C8P-152, -0xD.8EC7927926F18P-944)^2 === Interval(0x0.0000000000000P+0, 0x6.BFD4840B33478P-300) + + @test interval(-0x1.9EE1A9DB994F5P-436, -0x6.D914701C82FECP-624)^2 === Interval(0x0.0000000000000P+0, 0x2.A05EA84E4893CP-872) + + @test interval(-0x5.65057F3EFFC60P+4, -0x2.3617CF5815ECAP-960)^2 === Interval(0x0.0000000000000P+0, 0x1.D1A144EFBEB44P+12) + + @test interval(-0x1.975299CCB0E08P-372, +0xB.BEC7D35B45B00P-588)^2 === Interval(0x0.0000000000000P+0, 0x2.8817BFAFBDF18P-744) + + @test interval(-0x3.51D388D47AED2P-356, -0x1.C3A9CD7025105P-564)^2 === Interval(0x0.0000000000000P+0, 0xB.051CC05C2EBE0P-712) + + @test interval(-0xC.DB363268CF708P-332, -0x2.171B7D7BFE4E0P-412)^2 === Interval(0x4.5E83E96FF693CP-824, 0xA.548CA7F8C13A0P-660) + + @test interval(-0x1.32690AAC2472DP-40, -0x8.706EBDCF39C88P-792)^2 === Interval(0x0.0000000000000P+0, 0x1.6EBF489D48CA5P-80) + + @test interval(-0x5.0145AF0C53324P-200, -0x2.F5A0CB3301856P-204)^2 === Interval(0x8.C23056BA480A8P-408, 0x1.90CBA74D12CF4P-396) + + @test interval(0xF.4077C7E8CD6A0P-268, 0x3.753426098AC5AP-80)^2 === Interval(0xE.89E458947EFA8P-532, 0xB.F4E1999D73020P-160) + + @test interval(-0xB.B25F8D8BB7FB8P-376, -0x2.017A332F9B05CP-916)^2 === Interval(0x0.0000000000000P+0, 0x8.8D07F2E827770P-748) + + @test interval(-0xD.947CA427FDFE0P-592, +0xE.3BE493B5BC8E8P-16)^2 === Interval(0x0.0000000000000P+0, 0xC.A9B03500DD578P-28) + + @test interval(-0x9.C46198B2471F0P-336, -0x1.65ED85DF2D4B7P-576)^2 === Interval(0x0.0000000000000P+0, 0x5.F6582538F0F44P-668) + + @test interval(-0x3.2C867C027DB44P-936, +0x6.1883EA827AB6CP-388)^2 === Interval(0x0.0000000000000P+0, 0x2.52887FE100FF0P-772) + + @test interval(-0x3.560EF91C47DEAP-492, +0x5.413664DD17ABCP-20)^2 === Interval(0x0.0000000000000P+0, 0x1.B9CBC9B69E7BFP-36) + + @test interval(-0x8.36BFCD74A6D68P-304, -0x3.2C20EB130D510P-836)^2 === Interval(0x0.0000000000000P+0, 0x4.377B251ABDCC0P-604) + + @test interval(-0x6.BCEC84603958CP-500, -0x1.068B13DA99666P-760)^2 === Interval(0x0.0000000000000P+0, 0x2.D668271745A42P-996) + + @test interval(-0x1.2789C2D583BCDP-568, -0x1.F2BD89DAD0665P-780)^2 === Interval(0x0.0000000000000P+0, 0x4.0000000000000P-1076) + + @test interval(-0xC.FE4E8D857E3E0P-548, +0x1.580844B9DC45CP-780)^2 === Interval(0x0.0000000000000P+0, 0x4.0000000000000P-1076) + + @test interval(-0xC.508D29ACB01B8P-52, +0x1.B1E6B793078DDP-664)^2 === Interval(0x0.0000000000000P+0, 0x9.7A69470135FA8P-100) + + @test interval(-0xA.12F7783880A78P-124, -0x3.765DF69EE106EP-548)^2 === Interval(0x0.0000000000000P+0, 0x6.57CBD208B34ACP-244) + + @test interval(-0x6.3A58D52FDF844P-896, -0x1.039E2518CF503P-1008)^2 === Interval(0x0.0000000000000P+0, 0x4.0000000000000P-1076) + + @test interval(-0xB.DD3171FDEEC18P-168, +0x1.069E434EE9E0FP-740)^2 === Interval(0x0.0000000000000P+0, 0x8.CC15E342FC8D8P-332) + + @test interval(-0x3.CF0053257533AP-776, -0x1.7883A587654E5P-928)^2 === Interval(0x0.0000000000000P+0, 0x4.0000000000000P-1076) + + @test interval(0x1.455801D3D2B63P-704, 0x3.A4C915783D07AP-28)^2 === Interval(0x0.0000000000000P+0, 0xD.46C8C24634FC8P-56) + + @test interval(-0x2.097D06F4DE3E2P-376, +0x2.2E7561FD9255EP-772)^2 === Interval(0x0.0000000000000P+0, 0x4.264E23607BEA8P-752) + + @test interval(-0x1.7E13DBB66E5A3P-84, -0x6.BC8F45D6A8F48P-540)^2 === Interval(0x0.0000000000000P+0, 0x2.3A3F453ECAFB4P-168) + + @test interval(-0x4.1F50C5F2CDA54P-276, -0x3.DF16F79756422P-496)^2 === Interval(0xE.FCF2D2F52B4C0P-992, 0x1.0FE5AD9038BC9P-548) + + @test interval(-0x7.ECC4C5EEC4CACP-328, -0x2.E02E1DB7A08F6P-876)^2 === Interval(0x0.0000000000000P+0, 0x3.ECDBE373EAC94P-652) + + @test interval(-0xC.1BC7A4C89D440P-256, +0x2.A7F56252D1D34P-608)^2 === Interval(0x0.0000000000000P+0, 0x9.29DBB2B42A988P-508) + + @test interval(-0xB.CE50D7B2F2868P-236, -0xE.6B08988339B80P-432)^2 === Interval(0xC.FE1B0DE21E568P-860, 0x8.B6138BE0C5B78P-468) + +end + diff --git a/test/test_ITF1788/ieee1788-constructors.jl b/test/test_ITF1788/ieee1788-constructors.jl new file mode 100644 index 000000000..2330082f2 --- /dev/null +++ b/test/test_ITF1788/ieee1788-constructors.jl @@ -0,0 +1,114 @@ +@testset "IEEE1788.a" begin + + @test interval(-Inf,Inf) === entireinterval() + +end + +@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 @decorated("[1,1E3]_COM") === DecoratedInterval(Interval(1.0, 1000.0), com) + +end + +@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 + +@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]") === emptyinterval() + +end + +@testset "IEEE1788.e" begin + + @test isnai(DecoratedInterval(2,1)) + +end + +@testset "IEEE1788.e" begin + + @test @decorated("[ ]") === DecoratedInterval(emptyinterval(), trv) + + @test @decorated("[entire]") === DecoratedInterval(Interval(-Inf, +Inf), dac) + + @test @decorated("[1.e-3, 1.1e-3]") === DecoratedInterval(Interval(0x4.189374BC6A7ECP-12, 0x4.816F0068DB8BCP-12), com) + + @test @decorated("[-Inf, 2/3]") === DecoratedInterval(Interval(-Inf, +0xA.AAAAAAAAAAAB0P-4), dac) + + @test @decorated("[0x1.3p-1,]") === DecoratedInterval(Interval(0x1.3p-1, Inf), dac) + + @test @decorated("[,]") === DecoratedInterval(entireinterval(), dac) + + @test @decorated("3.56?1") === DecoratedInterval(Interval(0x3.8CCCCCCCCCCCCP+0, 0x3.91EB851EB8520P+0), com) + + @test @decorated("3.56?1e2") === DecoratedInterval(Interval(355.0, 357.0), com) + + @test @decorated("3.560?2") === DecoratedInterval(Interval(0x3.8ED916872B020P+0, 0x3.8FDF3B645A1CCP+0), com) + + @test @decorated("3.56?") === DecoratedInterval(Interval(0x3.8E147AE147AE0P+0, 0x3.90A3D70A3D70CP+0), com) + + @test @decorated("3.560?2u") === DecoratedInterval(Interval(0x3.8F5C28F5C28F4P+0, 0x3.8FDF3B645A1CCP+0), com) + + @test @decorated("-10?") === DecoratedInterval(Interval(-10.5, -9.5), com) + + @test @decorated("-10?u") === DecoratedInterval(Interval(-10.0, -9.5), com) + + @test @decorated("-10?12") === DecoratedInterval(Interval(-22.0, 2.0), com) + + @test @decorated("-10??u") === DecoratedInterval(Interval(-10.0, Inf), dac) + + @test @decorated("-10??") === DecoratedInterval(Interval(-Inf, Inf), dac) + + @test isnai(@decorated("[nai]")) + + @test @decorated("3.56?1_def") === DecoratedInterval(Interval(0x3.8CCCCCCCCCCCCP+0, 0x3.91EB851EB8520P+0), def) + +end + +@testset "IEEE1788.f" begin + + @test @interval("[]") === emptyinterval() + + @test @interval("[empty]") === emptyinterval() + + @test @interval("[ empty ]") === emptyinterval() + + @test @interval("[,]") === entireinterval() + + @test @interval("[ entire ]") === entireinterval() + +end + diff --git a/test/test_ITF1788/ieee1788-exceptions.jl b/test/test_ITF1788/ieee1788-exceptions.jl new file mode 100644 index 000000000..9046804b5 --- /dev/null +++ b/test/test_ITF1788/ieee1788-exceptions.jl @@ -0,0 +1,12 @@ +@testset "exceptions" begin + + @test_broken @interval("[+infinity]") === emptyinterval() + + @test interval(+Inf,-Inf) === emptyinterval() + + @test_broken interval(nai()) === emptyinterval() + + @test_broken @interval("[1.0000000000000001, 1.0000000000000002]") === Interval(1.0, 0x1.0000000000001p+0) + +end + diff --git a/test/test_ITF1788/libieeep1788_bool.jl b/test/test_ITF1788/libieeep1788_bool.jl new file mode 100644 index 000000000..fee20ec31 --- /dev/null +++ b/test/test_ITF1788/libieeep1788_bool.jl @@ -0,0 +1,868 @@ +@testset "minimal_is_empty_test" begin + + @test isempty(emptyinterval()) === true + + @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 + +@testset "minimal_is_empty_dec_test" begin + + @test isempty(nai()) === false + + @test isempty(DecoratedInterval(emptyinterval(), trv)) === true + + @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 + +@testset "minimal_is_entire_test" begin + + @test isentire(emptyinterval()) === false + + @test isentire(interval(-Inf,+Inf)) === true + + @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 + +@testset "minimal_is_entire_dec_test" begin + + @test isentire(nai()) === false + + @test isentire(DecoratedInterval(emptyinterval(), trv)) === false + + @test isentire(DecoratedInterval(interval(-Inf,+Inf), trv)) === true + + @test isentire(DecoratedInterval(interval(-Inf,+Inf), def)) === true + + @test isentire(DecoratedInterval(interval(-Inf,+Inf), dac)) === true + + @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 + +@testset "minimal_is_nai_dec_test" begin + + @test isnai(nai()) === true + + @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 + +@testset "minimal_equal_test" begin + + @test ==(interval(1.0,2.0), interval(1.0,2.0)) === true + + @test ==(interval(1.0,2.1), interval(1.0,2.0)) === false + + @test ==(emptyinterval(), emptyinterval()) === true + + @test ==(emptyinterval(), interval(1.0,2.0)) === false + + @test ==(interval(-Inf,+Inf), interval(-Inf,+Inf)) === true + + @test ==(interval(1.0,2.4), interval(-Inf,+Inf)) === false + + @test ==(interval(1.0,Inf), interval(1.0,Inf)) === true + + @test ==(interval(1.0,2.4), interval(1.0,Inf)) === false + + @test ==(interval(-Inf,2.0), interval(-Inf,2.0)) === true + + @test ==(interval(-Inf,2.4), interval(-Inf,2.0)) === false + + @test ==(interval(-2.0,0.0), interval(-2.0,0.0)) === true + + @test ==(interval(-0.0,2.0), interval(0.0,2.0)) === true + + @test ==(interval(-0.0,-0.0), interval(0.0,0.0)) === true + + @test ==(interval(-0.0,0.0), interval(0.0,0.0)) === true + + @test ==(interval(0.0,-0.0), interval(0.0,0.0)) === true + +end + +@testset "minimal_equal_dec_test" begin + + @test ==(DecoratedInterval(interval(1.0,2.0), def), DecoratedInterval(interval(1.0,2.0), trv)) === true + + @test ==(DecoratedInterval(interval(1.0,2.1), trv), DecoratedInterval(interval(1.0,2.0), trv)) === false + + @test ==(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(emptyinterval(), trv)) === true + + @test ==(DecoratedInterval(emptyinterval(), trv), nai()) === false + + @test ==(nai(), DecoratedInterval(emptyinterval(), trv)) === false + + @test ==(nai(), nai()) === false + + @test ==(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(1.0,2.0), trv)) === false + + @test ==(nai(), DecoratedInterval(interval(1.0,2.0), trv)) === false + + @test ==(DecoratedInterval(interval(-Inf,+Inf), def), DecoratedInterval(interval(-Inf,+Inf), trv)) === true + + @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)) === true + + @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)) === true + + @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)) === true + + @test ==(DecoratedInterval(interval(-0.0,2.0), def), DecoratedInterval(interval(0.0,2.0), trv)) === true + + @test ==(DecoratedInterval(interval(-0.0,-0.0), trv), DecoratedInterval(interval(0.0,0.0), trv)) === true + + @test ==(DecoratedInterval(interval(-0.0,0.0), def), DecoratedInterval(interval(0.0,0.0), trv)) === true + + @test ==(DecoratedInterval(interval(0.0,-0.0), trv), DecoratedInterval(interval(0.0,0.0), trv)) === true + +end + +@testset "minimal_subset_test" begin + + @test issubset(emptyinterval(), emptyinterval()) === true + + @test issubset(emptyinterval(), interval(0.0,4.0)) === true + + @test issubset(emptyinterval(), interval(-0.0,4.0)) === true + + @test issubset(emptyinterval(), interval(-0.1,1.0)) === true + + @test issubset(emptyinterval(), interval(-0.1,0.0)) === true + + @test issubset(emptyinterval(), interval(-0.1,-0.0)) === true + + @test issubset(emptyinterval(), interval(-Inf,+Inf)) === true + + @test issubset(interval(0.0,4.0), emptyinterval()) === false + + @test issubset(interval(-0.0,4.0), emptyinterval()) === false + + @test issubset(interval(-0.1,1.0), emptyinterval()) === false + + @test issubset(interval(-Inf,+Inf), emptyinterval()) === false + + @test issubset(interval(0.0,4.0), interval(-Inf,+Inf)) === true + + @test issubset(interval(-0.0,4.0), interval(-Inf,+Inf)) === true + + @test issubset(interval(-0.1,1.0), interval(-Inf,+Inf)) === true + + @test issubset(interval(-Inf,+Inf), interval(-Inf,+Inf)) === true + + @test issubset(interval(1.0,2.0), interval(1.0,2.0)) === true + + @test issubset(interval(1.0,2.0), interval(0.0,4.0)) === true + + @test issubset(interval(1.0,2.0), interval(-0.0,4.0)) === true + + @test issubset(interval(0.1,0.2), interval(0.0,4.0)) === true + + @test issubset(interval(0.1,0.2), interval(-0.0,4.0)) === true + + @test issubset(interval(-0.1,-0.1), interval(-4.0, 3.4)) === true + + @test issubset(interval(0.0,0.0), interval(-0.0,-0.0)) === true + + @test issubset(interval(-0.0,-0.0), interval(0.0,0.0)) === true + + @test issubset(interval(-0.0,0.0), interval(0.0,0.0)) === true + + @test issubset(interval(-0.0,0.0), interval(0.0,-0.0)) === true + + @test issubset(interval(0.0,-0.0), interval(0.0,0.0)) === true + + @test issubset(interval(0.0,-0.0), interval(-0.0,0.0)) === true + +end + +@testset "minimal_subset_dec_test" begin + + @test issubset(nai(), nai()) === false + + @test issubset(nai(), DecoratedInterval(emptyinterval(), trv)) === false + + @test issubset(nai(), DecoratedInterval(interval(0.0,4.0), trv)) === false + + @test issubset(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(0.0,4.0), trv)) === true + + @test issubset(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-0.0,4.0), def)) === true + + @test issubset(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-0.1,1.0), trv)) === true + + @test issubset(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-0.1,0.0), trv)) === true + + @test issubset(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-0.1,-0.0), trv)) === true + + @test issubset(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-Inf,+Inf), trv)) === true + + @test issubset(DecoratedInterval(interval(0.0,4.0), trv), DecoratedInterval(emptyinterval(), trv)) === false + + @test issubset(DecoratedInterval(interval(-0.0,4.0), def), DecoratedInterval(emptyinterval(), trv)) === false + + @test issubset(DecoratedInterval(interval(-0.1,1.0), trv), DecoratedInterval(emptyinterval(), trv)) === false + + @test issubset(DecoratedInterval(interval(-Inf,+Inf), trv), DecoratedInterval(emptyinterval(), trv)) === false + + @test issubset(DecoratedInterval(interval(0.0,4.0), trv), DecoratedInterval(interval(-Inf,+Inf), trv)) === true + + @test issubset(DecoratedInterval(interval(-0.0,4.0), trv), DecoratedInterval(interval(-Inf,+Inf), trv)) === true + + @test issubset(DecoratedInterval(interval(-0.1,1.0), trv), DecoratedInterval(interval(-Inf,+Inf), trv)) === true + + @test issubset(DecoratedInterval(interval(-Inf,+Inf), trv), DecoratedInterval(interval(-Inf,+Inf), trv)) === true + + @test issubset(DecoratedInterval(interval(1.0,2.0), trv), DecoratedInterval(interval(1.0,2.0), trv)) === true + + @test issubset(DecoratedInterval(interval(1.0,2.0), trv), DecoratedInterval(interval(0.0,4.0), trv)) === true + + @test issubset(DecoratedInterval(interval(1.0,2.0), def), DecoratedInterval(interval(-0.0,4.0), def)) === true + + @test issubset(DecoratedInterval(interval(0.1,0.2), trv), DecoratedInterval(interval(0.0,4.0), trv)) === true + + @test issubset(DecoratedInterval(interval(0.1,0.2), trv), DecoratedInterval(interval(-0.0,4.0), def)) === true + + @test issubset(DecoratedInterval(interval(-0.1,-0.1), trv), DecoratedInterval(interval(-4.0, 3.4), trv)) === true + + @test issubset(DecoratedInterval(interval(0.0,0.0), trv), DecoratedInterval(interval(-0.0,-0.0), trv)) === true + + @test issubset(DecoratedInterval(interval(-0.0,-0.0), trv), DecoratedInterval(interval(0.0,0.0), def)) === true + + @test issubset(DecoratedInterval(interval(-0.0,0.0), trv), DecoratedInterval(interval(0.0,0.0), trv)) === true + + @test issubset(DecoratedInterval(interval(-0.0,0.0), trv), DecoratedInterval(interval(0.0,-0.0), trv)) === true + + @test issubset(DecoratedInterval(interval(0.0,-0.0), def), DecoratedInterval(interval(0.0,0.0), trv)) === true + + @test issubset(DecoratedInterval(interval(0.0,-0.0), trv), DecoratedInterval(interval(-0.0,0.0), trv)) === true + +end + +@testset "minimal_less_test" begin + + @test ≤(emptyinterval(), emptyinterval()) === true + + @test ≤(interval(1.0,2.0), emptyinterval()) === false + + @test ≤(emptyinterval(), interval(1.0,2.0)) === false + + @test ≤(interval(-Inf,+Inf), interval(-Inf,+Inf)) === true + + @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)) === true + + @test ≤(interval(0.0,2.0), interval(-0.0,2.0)) === true + + @test ≤(interval(0.0,2.0), interval(1.0,2.0)) === true + + @test ≤(interval(-0.0,2.0), interval(1.0,2.0)) === true + + @test ≤(interval(1.0,2.0), interval(1.0,2.0)) === true + + @test ≤(interval(1.0,2.0), interval(3.0,4.0)) === true + + @test ≤(interval(1.0,3.5), interval(3.0,4.0)) === true + + @test ≤(interval(1.0,4.0), interval(3.0,4.0)) === true + + @test ≤(interval(-2.0,-1.0), interval(-2.0,-1.0)) === true + + @test ≤(interval(-3.0,-1.5), interval(-2.0,-1.0)) === true + + @test ≤(interval(0.0,0.0), interval(-0.0,-0.0)) === true + + @test ≤(interval(-0.0,-0.0), interval(0.0,0.0)) === true + + @test ≤(interval(-0.0,0.0), interval(0.0,0.0)) === true + + @test ≤(interval(-0.0,0.0), interval(0.0,-0.0)) === true + + @test ≤(interval(0.0,-0.0), interval(0.0,0.0)) === true + + @test ≤(interval(0.0,-0.0), interval(-0.0,0.0)) === true + +end + +@testset "minimal_less_dec_test" begin + + @test ≤(nai(), nai()) === false + + @test ≤(DecoratedInterval(emptyinterval(), trv), nai()) === false + + @test ≤(DecoratedInterval(interval(1.0,2.0), trv), nai()) === false + + @test ≤(nai(), DecoratedInterval(interval(1.0,2.0), def)) === false + + @test ≤(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(emptyinterval(), trv)) === true + + @test ≤(DecoratedInterval(interval(1.0,2.0), trv), DecoratedInterval(emptyinterval(), trv)) === false + + @test ≤(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(1.0,2.0), trv)) === false + + @test ≤(DecoratedInterval(interval(-Inf,+Inf), trv), DecoratedInterval(interval(-Inf,+Inf), trv)) === true + + @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)) === true + + @test ≤(DecoratedInterval(interval(0.0,2.0), trv), DecoratedInterval(interval(-0.0,2.0), trv)) === true + + @test ≤(DecoratedInterval(interval(0.0,2.0), def), DecoratedInterval(interval(1.0,2.0), def)) === true + + @test ≤(DecoratedInterval(interval(-0.0,2.0), trv), DecoratedInterval(interval(1.0,2.0), trv)) === true + + @test ≤(DecoratedInterval(interval(1.0,2.0), trv), DecoratedInterval(interval(1.0,2.0), trv)) === true + + @test ≤(DecoratedInterval(interval(1.0,2.0), trv), DecoratedInterval(interval(3.0,4.0), def)) === true + + @test ≤(DecoratedInterval(interval(1.0,3.5), trv), DecoratedInterval(interval(3.0,4.0), trv)) === true + + @test ≤(DecoratedInterval(interval(1.0,4.0), trv), DecoratedInterval(interval(3.0,4.0), trv)) === true + + @test ≤(DecoratedInterval(interval(-2.0,-1.0), trv), DecoratedInterval(interval(-2.0,-1.0), trv)) === true + + @test ≤(DecoratedInterval(interval(-3.0,-1.5), trv), DecoratedInterval(interval(-2.0,-1.0), trv)) === true + + @test ≤(DecoratedInterval(interval(0.0,0.0), trv), DecoratedInterval(interval(-0.0,-0.0), trv)) === true + + @test ≤(DecoratedInterval(interval(-0.0,-0.0), trv), DecoratedInterval(interval(0.0,0.0), def)) === true + + @test ≤(DecoratedInterval(interval(-0.0,0.0), trv), DecoratedInterval(interval(0.0,0.0), trv)) === true + + @test ≤(DecoratedInterval(interval(-0.0,0.0), trv), DecoratedInterval(interval(0.0,-0.0), trv)) === true + + @test ≤(DecoratedInterval(interval(0.0,-0.0), def), DecoratedInterval(interval(0.0,0.0), trv)) === true + + @test ≤(DecoratedInterval(interval(0.0,-0.0), trv), DecoratedInterval(interval(-0.0,0.0), trv)) === true + +end + +@testset "minimal_precedes_test" begin + + @test precedes(emptyinterval(), interval(3.0,4.0)) === true + + @test precedes(interval(3.0,4.0), emptyinterval()) === true + + @test precedes(emptyinterval(), emptyinterval()) === true + + @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)) === true + + @test precedes(interval(1.0,3.0), interval(3.0,4.0)) === true + + @test precedes(interval(-3.0, -1.0), interval(-1.0,0.0)) === true + + @test precedes(interval(-3.0, -1.0), interval(-1.0,-0.0)) === true + + @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)) === true + + @test precedes(interval(-0.0,-0.0), interval(0.0,0.0)) === true + + @test precedes(interval(-0.0,0.0), interval(0.0,0.0)) === true + + @test precedes(interval(-0.0,0.0), interval(0.0,-0.0)) === true + + @test precedes(interval(0.0,-0.0), interval(0.0,0.0)) === true + + @test precedes(interval(0.0,-0.0), interval(-0.0,0.0)) === true + +end + +@testset "minimal_precedes_dec_test" begin + + @test precedes(nai(), DecoratedInterval(interval(3.0,4.0), def)) === false + + @test precedes(DecoratedInterval(interval(3.0,4.0), trv), nai()) === false + + @test precedes(nai(), DecoratedInterval(emptyinterval(), trv)) === false + + @test precedes(nai(), nai()) === false + + @test precedes(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(3.0,4.0), def)) === true + + @test precedes(DecoratedInterval(interval(3.0,4.0), trv), DecoratedInterval(emptyinterval(), trv)) === true + + @test precedes(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(emptyinterval(), trv)) === true + + @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)) === true + + @test precedes(DecoratedInterval(interval(1.0,3.0), trv), DecoratedInterval(interval(3.0,4.0), def)) === true + + @test precedes(DecoratedInterval(interval(-3.0, -1.0), def), DecoratedInterval(interval(-1.0,0.0), trv)) === true + + @test precedes(DecoratedInterval(interval(-3.0, -1.0), trv), DecoratedInterval(interval(-1.0,-0.0), trv)) === true + + @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)) === true + + @test precedes(DecoratedInterval(interval(-0.0,-0.0), trv), DecoratedInterval(interval(0.0,0.0), def)) === true + + @test precedes(DecoratedInterval(interval(-0.0,0.0), trv), DecoratedInterval(interval(0.0,0.0), trv)) === true + + @test precedes(DecoratedInterval(interval(-0.0,0.0), def), DecoratedInterval(interval(0.0,-0.0), trv)) === true + + @test precedes(DecoratedInterval(interval(0.0,-0.0), trv), DecoratedInterval(interval(0.0,0.0), trv)) === true + + @test precedes(DecoratedInterval(interval(0.0,-0.0), trv), DecoratedInterval(interval(-0.0,0.0), trv)) === true + +end + +@testset "minimal_interior_test" begin + + @test isinterior(emptyinterval(), emptyinterval()) === true + + @test isinterior(emptyinterval(), interval(0.0,4.0)) === true + + @test isinterior(interval(0.0,4.0), emptyinterval()) === false + + @test isinterior(interval(-Inf,+Inf), interval(-Inf,+Inf)) === true + + @test isinterior(interval(0.0,4.0), interval(-Inf,+Inf)) === true + + @test isinterior(emptyinterval(), interval(-Inf,+Inf)) === true + + @test isinterior(interval(-Inf,+Inf), interval(0.0,4.0)) === false + + @test isinterior(interval(0.0,4.0), interval(0.0,4.0)) === false + + @test isinterior(interval(1.0,2.0), interval(0.0,4.0)) === true + + @test isinterior(interval(-2.0,2.0), interval(-2.0,4.0)) === false + + @test isinterior(interval(-0.0,-0.0), interval(-2.0,4.0)) === true + + @test isinterior(interval(0.0,0.0), interval(-2.0,4.0)) === true + + @test isinterior(interval(0.0,0.0), interval(-0.0,-0.0)) === false + + @test isinterior(interval(0.0,4.4), interval(0.0,4.0)) === false + + @test isinterior(interval(-1.0,-1.0), interval(0.0,4.0)) === false + + @test isinterior(interval(2.0,2.0), interval(-2.0,-1.0)) === false + +end + +@testset "minimal_interior_dec_test" begin + + @test isinterior(nai(), nai()) === false + + @test isinterior(nai(), DecoratedInterval(emptyinterval(), trv)) === false + + @test isinterior(nai(), DecoratedInterval(interval(0.0,4.0), trv)) === false + + @test isinterior(DecoratedInterval(interval(0.0,4.0), def), nai()) === false + + @test isinterior(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(emptyinterval(), trv)) === true + + @test isinterior(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(0.0,4.0), trv)) === true + + @test isinterior(DecoratedInterval(interval(0.0,4.0), def), DecoratedInterval(emptyinterval(), trv)) === false + + @test isinterior(DecoratedInterval(interval(-Inf,+Inf), trv), DecoratedInterval(interval(-Inf,+Inf), trv)) === true + + @test isinterior(DecoratedInterval(interval(0.0,4.0), trv), DecoratedInterval(interval(-Inf,+Inf), trv)) === true + + @test isinterior(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-Inf,+Inf), trv)) === true + + @test isinterior(DecoratedInterval(interval(-Inf,+Inf), 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 isinterior(DecoratedInterval(interval(1.0,2.0), def), DecoratedInterval(interval(0.0,4.0), trv)) === true + + @test isinterior(DecoratedInterval(interval(-2.0,2.0), trv), DecoratedInterval(interval(-2.0,4.0), def)) === false + + @test isinterior(DecoratedInterval(interval(-0.0,-0.0), trv), DecoratedInterval(interval(-2.0,4.0), trv)) === true + + @test isinterior(DecoratedInterval(interval(0.0,0.0), def), DecoratedInterval(interval(-2.0,4.0), trv)) === true + + @test isinterior(DecoratedInterval(interval(0.0,0.0), trv), DecoratedInterval(interval(-0.0,-0.0), trv)) === false + + @test isinterior(DecoratedInterval(interval(0.0,4.4), trv), DecoratedInterval(interval(0.0,4.0), trv)) === false + + @test isinterior(DecoratedInterval(interval(-1.0,-1.0), trv), DecoratedInterval(interval(0.0,4.0), def)) === false + + @test isinterior(DecoratedInterval(interval(2.0,2.0), def), DecoratedInterval(interval(-2.0,-1.0), trv)) === false + +end + +@testset "minimal_strictly_less_test" begin + + @test <(emptyinterval(), emptyinterval()) === true + + @test <(interval(1.0,2.0), emptyinterval()) === false + + @test <(emptyinterval(), interval(1.0,2.0)) === false + + @test <(interval(-Inf,+Inf), interval(-Inf,+Inf)) === true + + @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)) === true + + @test <(interval(1.0,3.5), interval(3.0,4.0)) === true + + @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)) === true + +end + +@testset "minimal_strictly_less_dec_test" begin + + @test <(nai(), nai()) === false + + @test <(DecoratedInterval(emptyinterval(), trv), nai()) === false + + @test <(DecoratedInterval(interval(1.0,2.0), trv), nai()) === false + + @test <(nai(), DecoratedInterval(interval(1.0,2.0), def)) === false + + @test <(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(emptyinterval(), trv)) === true + + @test <(DecoratedInterval(interval(1.0,2.0), trv), DecoratedInterval(emptyinterval(), trv)) === false + + @test <(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(1.0,2.0), def)) === false + + @test <(DecoratedInterval(interval(-Inf,+Inf), trv), DecoratedInterval(interval(-Inf,+Inf), trv)) === true + + @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)) === true + + @test <(DecoratedInterval(interval(1.0,3.5), def), DecoratedInterval(interval(3.0,4.0), trv)) === true + + @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)) === true + +end + +@testset "minimal_strictly_precedes_test" begin + + @test strictprecedes(emptyinterval(), interval(3.0,4.0)) === true + + @test strictprecedes(interval(3.0,4.0), emptyinterval()) === true + + @test strictprecedes(emptyinterval(), emptyinterval()) === true + + @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)) === true + + @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 + +@testset "minimal_strictly_precedes_dec_test" begin + + @test strictprecedes(nai(), DecoratedInterval(interval(3.0,4.0), trv)) === false + + @test strictprecedes(DecoratedInterval(interval(3.0,4.0), def), nai()) === false + + @test strictprecedes(nai(), DecoratedInterval(emptyinterval(), trv)) === false + + @test strictprecedes(nai(), nai()) === false + + @test strictprecedes(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(3.0,4.0), trv)) === true + + @test strictprecedes(DecoratedInterval(interval(3.0,4.0), def), DecoratedInterval(emptyinterval(), trv)) === true + + @test strictprecedes(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(emptyinterval(), trv)) === true + + @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)) === true + + @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 + +@testset "minimal_disjoint_test" begin + + @test isdisjoint(emptyinterval(), interval(3.0,4.0)) === true + + @test isdisjoint(interval(3.0,4.0), emptyinterval()) === true + + @test isdisjoint(emptyinterval(), emptyinterval()) === true + + @test isdisjoint(interval(3.0,4.0), interval(1.0,2.0)) === true + + @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 + +@testset "minimal_disjoint_dec_test" begin + + @test isdisjoint(nai(), DecoratedInterval(interval(3.0,4.0), def)) === false + + @test isdisjoint(DecoratedInterval(interval(3.0,4.0), trv), nai()) === false + + @test isdisjoint(DecoratedInterval(emptyinterval(), trv), nai()) === false + + @test isdisjoint(nai(), nai()) === false + + @test isdisjoint(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(3.0,4.0), def)) === true + + @test isdisjoint(DecoratedInterval(interval(3.0,4.0), trv), DecoratedInterval(emptyinterval(), trv)) === true + + @test isdisjoint(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(emptyinterval(), trv)) === true + + @test isdisjoint(DecoratedInterval(interval(3.0,4.0), trv), DecoratedInterval(interval(1.0,2.0), def)) === true + + @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 + diff --git a/test/test_ITF1788/libieeep1788_cancel.jl b/test/test_ITF1788/libieeep1788_cancel.jl new file mode 100644 index 000000000..e65bb4619 --- /dev/null +++ b/test/test_ITF1788/libieeep1788_cancel.jl @@ -0,0 +1,500 @@ +@testset "minimal_cancel_plus_test" begin + + @test cancelplus(interval(-Inf, -1.0), emptyinterval()) === entireinterval() + + @test cancelplus(interval(-1.0, Inf), emptyinterval()) === entireinterval() + + @test cancelplus(entireinterval(), emptyinterval()) === entireinterval() + + @test cancelplus(interval(-Inf, -1.0), interval(-5.0,1.0)) === entireinterval() + + @test cancelplus(interval(-1.0, Inf), interval(-5.0,1.0)) === entireinterval() + + @test cancelplus(entireinterval(), interval(-5.0,1.0)) === entireinterval() + + @test cancelplus(interval(-Inf, -1.0), entireinterval()) === entireinterval() + + @test cancelplus(interval(-1.0, Inf), entireinterval()) === entireinterval() + + @test cancelplus(emptyinterval(), interval(1.0, Inf)) === entireinterval() + + @test cancelplus(emptyinterval(), interval(-Inf,1.0)) === entireinterval() + + @test cancelplus(emptyinterval(), entireinterval()) === entireinterval() + + @test cancelplus(interval(-1.0,5.0), interval(1.0,Inf)) === entireinterval() + + @test cancelplus(interval(-1.0,5.0), interval(-Inf,1.0)) === entireinterval() + + @test cancelplus(interval(-1.0,5.0), entireinterval()) === entireinterval() + + @test cancelplus(entireinterval(), interval(1.0,Inf)) === entireinterval() + + @test cancelplus(entireinterval(), interval(-Inf,1.0)) === entireinterval() + + @test cancelplus(entireinterval(), entireinterval()) === entireinterval() + + @test cancelplus(interval(-5.0, -1.0), interval(1.0,5.1)) === entireinterval() + + @test cancelplus(interval(-5.0, -1.0), interval(0.9,5.0)) === entireinterval() + + @test cancelplus(interval(-5.0, -1.0), interval(0.9,5.1)) === entireinterval() + + @test cancelplus(interval(-10.0, 5.0), interval(-5.0,10.1)) === entireinterval() + + @test cancelplus(interval(-10.0, 5.0), interval(-5.1,10.0)) === entireinterval() + + @test cancelplus(interval(-10.0, 5.0), interval(-5.1,10.1)) === entireinterval() + + @test cancelplus(interval(1.0, 5.0), interval(-5.0,-0.9)) === entireinterval() + + @test cancelplus(interval(1.0, 5.0), interval(-5.1,-1.0)) === entireinterval() + + @test cancelplus(interval(1.0, 5.0), interval(-5.1,-0.9)) === entireinterval() + + @test cancelplus(interval(-10.0, -1.0), emptyinterval()) === entireinterval() + + @test cancelplus(interval(-10.0, 5.0), emptyinterval()) === entireinterval() + + @test cancelplus(interval(1.0, 5.0), emptyinterval()) === entireinterval() + + @test cancelplus(emptyinterval(), emptyinterval()) === emptyinterval() + + @test cancelplus(emptyinterval(), interval(1.0,10.0)) === emptyinterval() + + @test cancelplus(emptyinterval(), interval(-5.0,10.0)) === emptyinterval() + + @test cancelplus(emptyinterval(), interval(-5.0,-1.0)) === emptyinterval() + + @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() + + @test cancelplus(interval(-0x1.FFFFFFFFFFFFEP+1023,0x1.FFFFFFFFFFFFFp1023), interval(-0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023)) === entireinterval() + + @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() + +end + +@testset "minimal_cancel_plus_dec_test" begin + + @test cancelplus(DecoratedInterval(interval(-Inf, -1.0), dac), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-1.0, Inf), def), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(entireinterval(), def), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-Inf, -1.0), dac), DecoratedInterval(interval(-5.0,1.0), com)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-1.0, Inf), trv), DecoratedInterval(interval(-5.0,1.0), def)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-5.0,1.0), def)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-Inf, -1.0), dac), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-1.0, Inf), def), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(1.0, Inf), def)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-Inf,1.0), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-1.0,5.0), dac), DecoratedInterval(interval(1.0,Inf), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-1.0,5.0), def), DecoratedInterval(interval(-Inf,1.0), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-1.0,5.0), com), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(1.0,Inf), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-Inf,1.0), def)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(entireinterval(), dac), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-5.0, -1.0), com), DecoratedInterval(interval(1.0,5.1), def)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-5.0, -1.0), dac), DecoratedInterval(interval(0.9,5.0), def)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-5.0, -1.0), def), DecoratedInterval(interval(0.9,5.1), def)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-10.0, 5.0), trv), DecoratedInterval(interval(-5.0,10.1), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-10.0, 5.0), com), DecoratedInterval(interval(-5.1,10.0), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-10.0, 5.0), dac), DecoratedInterval(interval(-5.1,10.1), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(1.0, 5.0), def), DecoratedInterval(interval(-5.0,-0.9), com)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(1.0, 5.0), trv), DecoratedInterval(interval(-5.1,-1.0), com)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(1.0, 5.0), dac), DecoratedInterval(interval(-5.1,-0.9), com)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-10.0, -1.0), trv), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-10.0, 5.0), def), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(1.0, 5.0), com), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test cancelplus(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(1.0,10.0), dac)) === DecoratedInterval(emptyinterval(), trv) + + @test cancelplus(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-5.0,10.0), def)) === DecoratedInterval(emptyinterval(), trv) + + @test cancelplus(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-5.0,-1.0), com)) === DecoratedInterval(emptyinterval(), 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 cancelplus(DecoratedInterval(interval(-5.1,-1.0), com), DecoratedInterval(interval(1.0,5.0), dac)) === 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 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 cancelplus(DecoratedInterval(interval(-5.0,-1.0), dac), DecoratedInterval(interval(1.0,5.0), com)) === 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 cancelplus(DecoratedInterval(interval(-10.0, 5.1), def), DecoratedInterval(interval(-5.0,10.0), def)) === 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 cancelplus(DecoratedInterval(interval(-10.0, 5.0), def), DecoratedInterval(interval(-5.0,10.0), com)) === 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 cancelplus(DecoratedInterval(interval(1.0, 5.1), trv), DecoratedInterval(interval(-5.0,-1.0), def)) === 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 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 cancelplus(DecoratedInterval(interval(1.0, 5.0), dac), DecoratedInterval(interval(-5.0,-1.0), dac)) === 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 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 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 cancelplus(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), com), DecoratedInterval(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), com)) === 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 cancelplus(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), dac), DecoratedInterval(interval(-0x1.FFFFFFFFFFFFEP+1023,0x1.FFFFFFFFFFFFFp1023), com)) === 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 cancelplus(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFEP+1023), com), DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), com)) === DecoratedInterval(entireinterval(), trv) + + @test cancelplus(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFEP+1023,0x1.FFFFFFFFFFFFFp1023), com), DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), com)) === DecoratedInterval(entireinterval(), 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 cancelplus(DecoratedInterval(interval(-0x1P+0,0x1.FFFFFFFFFFFFEP-53), def), DecoratedInterval(interval(-0x1P+0,0x1.FFFFFFFFFFFFFP-53), com)) === DecoratedInterval(entireinterval(), trv) + +end + +@testset "minimal_cancel_minus_test" begin + + @test cancelminus(interval(-Inf, -1.0), emptyinterval()) === entireinterval() + + @test cancelminus(interval(-1.0, Inf), emptyinterval()) === entireinterval() + + @test cancelminus(entireinterval(), emptyinterval()) === entireinterval() + + @test cancelminus(interval(-Inf, -1.0), interval(-1.0,5.0)) === entireinterval() + + @test cancelminus(interval(-1.0, Inf), interval(-1.0,5.0)) === entireinterval() + + @test cancelminus(entireinterval(), interval(-1.0,5.0)) === entireinterval() + + @test cancelminus(interval(-Inf, -1.0), entireinterval()) === entireinterval() + + @test cancelminus(interval(-1.0, Inf), entireinterval()) === entireinterval() + + @test cancelminus(emptyinterval(), interval(-Inf, -1.0)) === entireinterval() + + @test cancelminus(emptyinterval(), interval(-1.0, Inf)) === entireinterval() + + @test cancelminus(emptyinterval(), entireinterval()) === entireinterval() + + @test cancelminus(interval(-1.0,5.0), interval(-Inf, -1.0)) === entireinterval() + + @test cancelminus(interval(-1.0,5.0), interval(-1.0, Inf)) === entireinterval() + + @test cancelminus(interval(-1.0,5.0), entireinterval()) === entireinterval() + + @test cancelminus(entireinterval(), interval(-Inf, -1.0)) === entireinterval() + + @test cancelminus(entireinterval(), interval(-1.0, Inf)) === entireinterval() + + @test cancelminus(entireinterval(), entireinterval()) === entireinterval() + + @test cancelminus(interval(-5.0, -1.0), interval(-5.1,-1.0)) === entireinterval() + + @test cancelminus(interval(-5.0, -1.0), interval(-5.0,-0.9)) === entireinterval() + + @test cancelminus(interval(-5.0, -1.0), interval(-5.1,-0.9)) === entireinterval() + + @test cancelminus(interval(-10.0, 5.0), interval(-10.1, 5.0)) === entireinterval() + + @test cancelminus(interval(-10.0, 5.0), interval(-10.0, 5.1)) === entireinterval() + + @test cancelminus(interval(-10.0, 5.0), interval(-10.1, 5.1)) === entireinterval() + + @test cancelminus(interval(1.0, 5.0), interval(0.9, 5.0)) === entireinterval() + + @test cancelminus(interval(1.0, 5.0), interval(1.0, 5.1)) === entireinterval() + + @test cancelminus(interval(1.0, 5.0), interval(0.9, 5.1)) === entireinterval() + + @test cancelminus(interval(-10.0, -1.0), emptyinterval()) === entireinterval() + + @test cancelminus(interval(-10.0, 5.0), emptyinterval()) === entireinterval() + + @test cancelminus(interval(1.0, 5.0), emptyinterval()) === entireinterval() + + @test cancelminus(emptyinterval(), emptyinterval()) === emptyinterval() + + @test cancelminus(emptyinterval(), interval(-10.0, -1.0)) === emptyinterval() + + @test cancelminus(emptyinterval(), interval(-10.0, 5.0)) === emptyinterval() + + @test cancelminus(emptyinterval(), interval(1.0, 5.0)) === emptyinterval() + + @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() + + @test cancelminus(interval(-0x1.FFFFFFFFFFFFEP+1023,0x1.FFFFFFFFFFFFFp1023), interval(-0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023)) === entireinterval() + + @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() + + @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() + +end + +@testset "minimal_cancel_minus_dec_test" begin + + @test cancelminus(DecoratedInterval(interval(-Inf, -1.0), dac), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-1.0, Inf), def), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(entireinterval(), dac), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-Inf, -1.0), trv), DecoratedInterval(interval(-1.0,5.0), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-1.0, Inf), dac), DecoratedInterval(interval(-1.0,5.0), com)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-1.0,5.0), def)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-Inf, -1.0), def), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-1.0, Inf), trv), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-Inf, -1.0), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-1.0, Inf), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(entireinterval(), def)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-1.0,5.0), dac), DecoratedInterval(interval(-Inf, -1.0), def)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-1.0,5.0), def), DecoratedInterval(interval(-1.0, Inf), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-1.0,5.0), com), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-Inf, -1.0), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-1.0, Inf), def)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(entireinterval(), dac), DecoratedInterval(entireinterval(), def)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-5.0, -1.0), com), DecoratedInterval(interval(-5.1,-1.0), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-5.0, -1.0), dac), DecoratedInterval(interval(-5.0,-0.9), def)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-5.0, -1.0), def), DecoratedInterval(interval(-5.1,-0.9), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-10.0, 5.0), trv), DecoratedInterval(interval(-10.1, 5.0), com)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-10.0, 5.0), com), DecoratedInterval(interval(-10.0, 5.1), com)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-10.0, 5.0), dac), DecoratedInterval(interval(-10.1, 5.1), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(1.0, 5.0), def), DecoratedInterval(interval(0.9, 5.0), def)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(1.0, 5.0), trv), DecoratedInterval(interval(1.0, 5.1), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(1.0, 5.0), com), DecoratedInterval(interval(0.9, 5.1), dac)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-10.0, -1.0), com), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-10.0, 5.0), dac), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(1.0, 5.0), def), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test cancelminus(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-10.0, -1.0), com)) === DecoratedInterval(emptyinterval(), trv) + + @test cancelminus(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-10.0, 5.0), dac)) === DecoratedInterval(emptyinterval(), trv) + + @test cancelminus(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(1.0, 5.0), def)) === DecoratedInterval(emptyinterval(), 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 cancelminus(DecoratedInterval(interval(-5.1,-1.0), dac), DecoratedInterval(interval(-5.0, -1.0), com)) === 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 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 cancelminus(DecoratedInterval(interval(-5.0,-1.0), com), DecoratedInterval(interval(-5.0, -1.0), dac)) === 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 cancelminus(DecoratedInterval(interval(-10.0, 5.1), def), DecoratedInterval(interval(-10.0, 5.0), dac)) === 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 cancelminus(DecoratedInterval(interval(-10.0, 5.0), com), DecoratedInterval(interval(-10.0, 5.0), def)) === 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 cancelminus(DecoratedInterval(interval(-0.0, 5.1), def), DecoratedInterval(interval(0.0, 5.0), def)) === 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 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 cancelminus(DecoratedInterval(interval(1.0, 5.0), dac), DecoratedInterval(interval(1.0, 5.0), com)) === 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 cancelminus(DecoratedInterval(interval(-5.0, 0.0), trv), DecoratedInterval(interval(-0.0, 5.0), trv)) === 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 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 cancelminus(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), com), DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,-0x1.FFFFFFFFFFFFFp1023), com)) === 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 cancelminus(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), com), DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFEP+1023), com)) === 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 cancelminus(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFEP+1023), com), DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), com)) === DecoratedInterval(entireinterval(), trv) + + @test cancelminus(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFEP+1023,0x1.FFFFFFFFFFFFFp1023), com), DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), com)) === DecoratedInterval(entireinterval(), 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 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 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 cancelminus(DecoratedInterval(interval(0x1P-1022,0x1.0000000000001P-1022), def), DecoratedInterval(interval(0x1P-1022,0x1.0000000000002P-1022), com)) === DecoratedInterval(entireinterval(), 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 cancelminus(DecoratedInterval(interval(-0x1P+0,0x1.FFFFFFFFFFFFEP-53), def), DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFP-53,0x1P+0), dac)) === DecoratedInterval(entireinterval(), trv) + +end + diff --git a/test/test_ITF1788/libieeep1788_class.jl b/test/test_ITF1788/libieeep1788_class.jl new file mode 100644 index 000000000..3bf405ba2 --- /dev/null +++ b/test/test_ITF1788/libieeep1788_class.jl @@ -0,0 +1,451 @@ +@testset "minimal_nums_to_interval_test" begin + + @test interval(-1.0,1.0) === Interval(-1.0,1.0) + + @test interval(-Inf,1.0) === Interval(-Inf,1.0) + + @test interval(-1.0,Inf) === Interval(-1.0,Inf) + + @test interval(-Inf,Inf) === Interval(-Inf,Inf) + + @test interval(NaN,NaN) === emptyinterval() + + @test interval(1.0,-1.0) === emptyinterval() + + @test interval(-Inf,-Inf) === emptyinterval() + + @test interval(Inf,Inf) === emptyinterval() + +end + +@testset "minimal_nums_to_decorated_interval_test" begin + + @test DecoratedInterval(-1.0,1.0) === DecoratedInterval(Interval(-1.0,1.0), com) + + @test DecoratedInterval(-Inf,1.0) === DecoratedInterval(Interval(-Inf,1.0), dac) + + @test DecoratedInterval(-1.0,Inf) === DecoratedInterval(Interval(-1.0,Inf), dac) + + @test DecoratedInterval(-Inf,Inf) === DecoratedInterval(Interval(-Inf,Inf), dac) + + @test isnai(DecoratedInterval(NaN,NaN)) + + @test isnai(DecoratedInterval(1.0,-1.0)) + + @test isnai(DecoratedInterval(-Inf,-Inf)) + + @test isnai(DecoratedInterval(Inf,Inf)) + +end + +@testset "minimal_text_to_interval_test" begin + + @test @interval("[ Empty ]") === emptyinterval() + + @test @interval("[ Empty ]_trv") === emptyinterval() + + @test @interval("[ ]") === emptyinterval() + + @test @interval("[ ]_trv") === emptyinterval() + + @test @interval("[,]") === Interval(-Inf,Inf) + + @test_broken @interval("[,]_trv") === emptyinterval() + + @test @interval("[ entire ]") === Interval(-Inf,Inf) + + @test_broken @interval("[ ENTIRE ]_dac") === emptyinterval() + + @test_broken @interval("[ ENTIRE ]") === Interval(-Inf,Inf) + + @test_broken @interval("[ -inf , INF ]") === Interval(-Inf,Inf) + + @test_broken @interval("[ -inf, INF ]_def") === emptyinterval() + + @test @interval("[-1.0,1.0]") === Interval(-1.0,1.0) + + @test @interval("[ -1.0 , 1.0 ]") === Interval(-1.0,1.0) + + @test @interval("[ -1.0 , 1.0]") === Interval(-1.0,1.0) + + @test @interval("[-1,]") === Interval(-1.0,Inf) + + @test_broken @interval("[-1.0, +inf]") === Interval(-1.0,Inf) + + @test @interval("[-1.0, +infinity]") === Interval(-1.0,Inf) + + @test @interval("[-Inf, 1.000 ]") === Interval(-Inf,1.0) + + @test_broken @interval("[-Infinity, 1.000 ]") === Interval(-Inf,1.0) + + @test_broken @interval("[1.0E+400 ]") === Interval(0x1.fffffffffffffp+1023,Inf) + + @test @interval("[ -4/2, 10/5 ]") === Interval(-2.0,2.0) + + @test @interval("[ -1/10, 1/10 ]") === Interval(-0.1,0.1) + + @test @interval("0.0?") === Interval(-0.05,0.05) + + @test @interval("0.0?u") === Interval(0.0,0.05) + + @test @interval("0.0?d") === Interval(-0.05,0.0) + + @test @interval("2.5?") === Interval(0x1.3999999999999p+1,0x1.4666666666667p+1) + + @test @interval("2.5?u") === Interval(2.5,0x1.4666666666667p+1) + + @test @interval("2.5?d") === Interval(0x1.3999999999999p+1,2.5) + + @test @interval("0.000?5") === Interval(-0.005,0.005) + + @test @interval("0.000?5u") === Interval(0.0,0.005) + + @test @interval("0.000?5d") === Interval(-0.005,0.0) + + @test @interval("2.500?5") === Interval(0x1.3f5c28f5c28f5p+1,0x1.40a3d70a3d70bp+1) + + @test @interval("2.500?5u") === Interval(2.5,0x1.40a3d70a3d70bp+1) + + @test @interval("2.500?5d") === Interval(0x1.3f5c28f5c28f5p+1,2.5) + + @test @interval("0.0??") === Interval(-Inf,Inf) + + @test @interval("0.0??u") === Interval(0.0,Inf) + + @test @interval("0.0??d") === Interval(-Inf,0.0) + + @test @interval("2.5??") === Interval(-Inf,Inf) + + @test @interval("2.5??u") === Interval(2.5,Inf) + + @test @interval("2.5??d") === Interval(-Inf,2.5) + + @test_broken @interval("2.500?5e+27") === Interval(0x1.01fa19a08fe7fp+91,0x1.0302cc4352683p+91) + + @test @interval("2.500?5ue4") === Interval(0x1.86ap+14,0x1.8768p+14) + + @test @interval("2.500?5de-5") === Interval(0x1.a2976f1cee4d5p-16,0x1.a36e2eb1c432dp-16) + + @test @interval("10?3") === Interval(7.0,13.0) + + @test_broken @interval("10?3e380") === Interval(0x1.fffffffffffffp+1023,Inf) + + @test_broken @interval("1.0000000000000001?1") === Interval(1.0,0x1.0000000000001p+0) + + @test_broken @interval("10?1800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") === Interval(-Inf,Inf) + + @test_broken @interval("[ Nai ]") === emptyinterval() + + @test_broken @interval("[ Nai ]_ill") === emptyinterval() + + @test_broken @interval("[ Nai ]_trv") === emptyinterval() + + @test @interval("[ Empty ]_ill") === emptyinterval() + + @test @interval("[ ]_com") === emptyinterval() + + @test_broken @interval("[,]_com") === emptyinterval() + + @test_broken @interval("[ Entire ]_com") === emptyinterval() + + @test_broken @interval("[ -inf , INF ]_com") === emptyinterval() + + @test_broken @interval("[ -1.0 , 1.0]_ill") === emptyinterval() + + @test_broken @interval("[ -1.0 , 1.0]_fooo") === emptyinterval() + + @test_broken @interval("[ -1.0 , 1.0]_da") === emptyinterval() + + @test_broken @interval("[-1.0,]_com") === emptyinterval() + + @test_broken @interval("[-Inf, 1.000 ]_ill") === emptyinterval() + + @test_broken @interval("[-I nf, 1.000 ]") === emptyinterval() + + @test_broken @interval("[-Inf, 1.0 00 ]") === emptyinterval() + + @test_broken @interval("[-Inf ]") === emptyinterval() + + @test_broken @interval("[Inf , INF]") === emptyinterval() + + @test_broken @interval("[ foo ]") === emptyinterval() + + @test_broken @interval("[1.0000000000000002,1.0000000000000001]") === Interval(1.0,0x1.0000000000001p+0) + + @test @interval("[10000000000000001/10000000000000000,10000000000000002/10000000000000001]") === Interval(1.0,0x1.0000000000001p+0) + + @test_broken @interval("[0x1.00000000000002p0,0x1.00000000000001p0]") === Interval(1.0,0x1.0000000000001p+0) + +end + +@testset "minimal_text_to_decorated_interval_test" begin + + @test @decorated("[ Empty ]") === DecoratedInterval(emptyinterval(), trv) + + @test @decorated("[ Empty ]_trv") === DecoratedInterval(emptyinterval(), trv) + + @test @decorated("[ ]") === DecoratedInterval(emptyinterval(), trv) + + @test @decorated("[ ]_trv") === DecoratedInterval(emptyinterval(), trv) + + @test @decorated("[,]") === DecoratedInterval(entireinterval(), dac) + + @test @decorated("[,]_trv") === DecoratedInterval(entireinterval(), trv) + + @test @decorated("[ entire ]") === DecoratedInterval(entireinterval(), dac) + + @test_skip @decorated("[ ENTIRE ]_dac") === DecoratedInterval(entireinterval(), dac) + + @test_skip @decorated("[ -inf , INF ]") === DecoratedInterval(entireinterval(), dac) + + @test_skip @decorated("[ -inf, INF ]_def") === DecoratedInterval(entireinterval(), def) + + @test @decorated("[-1.0,1.0]") === DecoratedInterval(Interval(-1.0,1.0), com) + + @test @decorated("[ -1.0 , 1.0 ]_com") === DecoratedInterval(Interval(-1.0,1.0), com) + + @test @decorated("[ -1.0 , 1.0]_trv") === DecoratedInterval(Interval(-1.0,1.0), trv) + + @test @decorated("[-1,]") === DecoratedInterval(Interval(-1.0,Inf), dac) + + @test_skip @decorated("[-1.0, +inf]_def") === DecoratedInterval(Interval(-1.0,Inf), def) + + @test @decorated("[-1.0, +infinity]_def") === DecoratedInterval(Interval(-1.0,Inf), def) + + @test @decorated("[-Inf, 1.000 ]") === DecoratedInterval(Interval(-Inf,1.0), dac) + + @test_skip @decorated("[-Infinity, 1.000 ]_trv") === DecoratedInterval(Interval(-Inf,1.0), trv) + + @test_skip @decorated("[1.0E+400 ]_com") === DecoratedInterval(Interval(0x1.fffffffffffffp+1023,Inf), dac) + + @test @decorated("[ -4/2, 10/5 ]_com") === DecoratedInterval(Interval(-2.0,2.0), com) + + @test @decorated("[ -1/10, 1/10 ]_com") === DecoratedInterval(Interval(-0.1,0.1), com) + + @test @decorated("0.0?") === DecoratedInterval(Interval(-0.05,0.05), com) + + @test @decorated("0.0?u_trv") === DecoratedInterval(Interval(0.0,0.05), trv) + + @test @decorated("0.0?d_dac") === DecoratedInterval(Interval(-0.05,0.0), dac) + + @test @decorated("2.5?") === DecoratedInterval(Interval(0x1.3999999999999p+1,0x1.4666666666667p+1), com) + + @test @decorated("2.5?u") === DecoratedInterval(Interval(2.5,0x1.4666666666667p+1), com) + + @test @decorated("2.5?d_trv") === DecoratedInterval(Interval(0x1.3999999999999p+1,2.5), trv) + + @test @decorated("0.000?5") === DecoratedInterval(Interval(-0.005,0.005), com) + + @test @decorated("0.000?5u_def") === DecoratedInterval(Interval(0.0,0.005), def) + + @test @decorated("0.000?5d") === DecoratedInterval(Interval(-0.005,0.0), com) + + @test @decorated("2.500?5") === DecoratedInterval(Interval(0x1.3f5c28f5c28f5p+1,0x1.40a3d70a3d70bp+1), com) + + @test @decorated("2.500?5u") === DecoratedInterval(Interval(2.5,0x1.40a3d70a3d70bp+1), com) + + @test @decorated("2.500?5d") === DecoratedInterval(Interval(0x1.3f5c28f5c28f5p+1,2.5), com) + + @test @decorated("0.0??_dac") === DecoratedInterval(Interval(-Inf,Inf), dac) + + @test @decorated("0.0??u_trv") === DecoratedInterval(Interval(0.0,Inf), trv) + + @test @decorated("0.0??d") === DecoratedInterval(Interval(-Inf,0.0), dac) + + @test @decorated("2.5??") === DecoratedInterval(Interval(-Inf,Inf), dac) + + @test @decorated("2.5??u_def") === DecoratedInterval(Interval(2.5,Inf), def) + + @test @decorated("2.5??d_dac") === DecoratedInterval(Interval(-Inf,2.5), dac) + + @test_skip @decorated("2.500?5e+27") === DecoratedInterval(Interval(0x1.01fa19a08fe7fp+91,0x1.0302cc4352683p+91), com) + + @test @decorated("2.500?5ue4_def") === DecoratedInterval(Interval(0x1.86ap+14,0x1.8768p+14), def) + + @test_skip @decorated("2.500?5de-5") === DecoratedInterval(Interval(0x1.a2976f1cee4d5p-16,0x1.a36e2eb1c432dp-16), com) + + @test_skip isnai(@decorated("[ Nai ]")) + + @test_skip @decorated("10?1800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_com") === DecoratedInterval(Interval(-Inf,Inf), dac) + + @test @decorated("10?3_com") === DecoratedInterval(Interval(7.0,13.0), com) + + @test_skip @decorated("10?3e380_com") === DecoratedInterval(Interval(0x1.fffffffffffffp+1023,Inf), dac) + + @test_skip isnai(@decorated("[ Nai ]_ill")) + + @test_skip isnai(@decorated("[ Nai ]_trv")) + + @test_skip isnai(@decorated("[ Empty ]_ill")) + + @test_skip isnai(@decorated("[ ]_com")) + + @test_skip isnai(@decorated("[,]_com")) + + @test_skip isnai(@decorated("[ Entire ]_com")) + + @test_skip isnai(@decorated("[ -inf , INF ]_com")) + + @test_skip isnai(@decorated("[ -1.0 , 1.0]_ill")) + + @test_skip isnai(@decorated("[ -1.0 , 1.0]_fooo")) + + @test_skip isnai(@decorated("[ -1.0 , 1.0]_da")) + + @test_skip isnai(@decorated("[-1.0,]_com")) + + @test_skip isnai(@decorated("[-Inf, 1.000 ]_ill")) + + @test_skip isnai(@decorated("[-I nf, 1.000 ]")) + + @test_skip isnai(@decorated("[-Inf, 1.0 00 ]")) + + @test_skip isnai(@decorated("[-Inf ]")) + + @test_skip isnai(@decorated("[Inf , INF]")) + + @test_skip isnai(@decorated("[ foo ]")) + + @test_skip isnai(@decorated("0.0??_com")) + + @test_skip isnai(@decorated("0.0??u_ill")) + + @test_skip isnai(@decorated("0.0??d_com")) + + @test_skip isnai(@decorated("0.0??_com")) + + @test_skip isnai(@decorated("[1.0,2.0")) + + @test_broken @decorated("[1.0000000000000002,1.0000000000000001]") === DecoratedInterval(Interval(1.0,0x1.0000000000001p+0), com) + + @test @decorated("[10000000000000001/10000000000000000,10000000000000002/10000000000000001]") === DecoratedInterval(Interval(1.0,0x1.0000000000001p+0), com) + + @test_broken @decorated("[0x1.00000000000002p0,0x1.00000000000001p0]") === DecoratedInterval(Interval(1.0,0x1.0000000000001p+0), com) + +end + +@testset "minimal_interval_part_test" begin + + @test interval(DecoratedInterval(interval(-0x1.99999A842549Ap+4,0x1.9999999999999P-4), trv)) === Interval(-0x1.99999A842549Ap+4,0x1.9999999999999P-4) + + @test interval(DecoratedInterval(interval(-0x1.99999C0000000p+4,0x1.9999999999999P-4), com)) === Interval(-0x1.99999C0000000p+4,0x1.9999999999999P-4) + + @test interval(DecoratedInterval(interval(-0x1.99999A842549Ap+4,0x1.99999A0000000p-4), dac)) === Interval(-0x1.99999A842549Ap+4,0x1.99999A0000000p-4) + + @test interval(DecoratedInterval(interval(-0x1.99999C0000000p+4,0x1.99999A0000000p-4), def)) === Interval(-0x1.99999C0000000p+4,0x1.99999A0000000p-4) + + @test interval(DecoratedInterval(interval(-0x0.0000000000001p-1022,-0x0.0000000000001p-1022), trv)) === Interval(-0x0.0000000000001p-1022,-0x0.0000000000001p-1022) + + @test interval(DecoratedInterval(interval(-0x0.0000000000001p-1022,0x0.0000000000001p-1022), trv)) === Interval(-0x0.0000000000001p-1022,0x0.0000000000001p-1022) + + @test interval(DecoratedInterval(interval(0x0.0000000000001p-1022,0x0.0000000000001p-1022), trv)) === Interval(0x0.0000000000001p-1022,0x0.0000000000001p-1022) + + @test interval(DecoratedInterval(interval(-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023), trv)) === Interval(-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023) + + @test interval(DecoratedInterval(interval(-0x1.fffffffffffffp+1023,0x1.fffffffffffffp+1023), trv)) === Interval(-0x1.fffffffffffffp+1023,0x1.fffffffffffffp+1023) + + @test interval(DecoratedInterval(interval(0x1.fffffffffffffp+1023,0x1.fffffffffffffp+1023), trv)) === Interval(0x1.fffffffffffffp+1023,0x1.fffffffffffffp+1023) + + @test interval(DecoratedInterval(interval(-Inf,Inf), trv)) === Interval(-Inf,Inf) + + @test interval(DecoratedInterval(emptyinterval(), trv)) === emptyinterval() + + @test interval(DecoratedInterval(interval(-0x1.99999C0000000p+4,0x1.9999999999999P-4), com)) === Interval(-0x1.99999C0000000p+4,0x1.9999999999999P-4) + + @test_broken interval(nai()) === emptyinterval() + +end + +@testset "minimal_new_dec_test" begin + + @test DecoratedInterval(interval(-0x1.99999A842549Ap+4,0x1.9999999999999P-4)) === DecoratedInterval(Interval(-0x1.99999A842549Ap+4,0x1.9999999999999P-4), com) + + @test DecoratedInterval(interval(-0x1.99999C0000000p+4,0x1.9999999999999P-4)) === DecoratedInterval(Interval(-0x1.99999C0000000p+4,0x1.9999999999999P-4), com) + + @test DecoratedInterval(interval(-0x1.99999A842549Ap+4,0x1.99999A0000000p-4)) === DecoratedInterval(Interval(-0x1.99999A842549Ap+4,0x1.99999A0000000p-4), com) + + @test DecoratedInterval(interval(-0x1.99999C0000000p+4,0x1.99999A0000000p-4)) === DecoratedInterval(Interval(-0x1.99999C0000000p+4,0x1.99999A0000000p-4), com) + + @test DecoratedInterval(interval(-0x0.0000000000001p-1022,-0x0.0000000000001p-1022)) === DecoratedInterval(Interval(-0x0.0000000000001p-1022,-0x0.0000000000001p-1022), com) + + @test DecoratedInterval(interval(-0x0.0000000000001p-1022,0x0.0000000000001p-1022)) === DecoratedInterval(Interval(-0x0.0000000000001p-1022,0x0.0000000000001p-1022), com) + + @test DecoratedInterval(interval(0x0.0000000000001p-1022,0x0.0000000000001p-1022)) === DecoratedInterval(Interval(0x0.0000000000001p-1022,0x0.0000000000001p-1022), com) + + @test DecoratedInterval(interval(-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023)) === DecoratedInterval(Interval(-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023), com) + + @test DecoratedInterval(interval(-0x1.fffffffffffffp+1023,0x1.fffffffffffffp+1023)) === DecoratedInterval(Interval(-0x1.fffffffffffffp+1023,0x1.fffffffffffffp+1023), com) + + @test DecoratedInterval(interval(0x1.fffffffffffffp+1023,0x1.fffffffffffffp+1023)) === DecoratedInterval(Interval(0x1.fffffffffffffp+1023,0x1.fffffffffffffp+1023), com) + + @test DecoratedInterval(interval(-Inf,Inf)) === DecoratedInterval(Interval(-Inf,Inf), dac) + + @test DecoratedInterval(emptyinterval()) === DecoratedInterval(emptyinterval(), trv) + + @test DecoratedInterval(interval(-0x1.99999C0000000p+4,0x1.9999999999999P-4)) === DecoratedInterval(Interval(-0x1.99999C0000000p+4,0x1.9999999999999P-4), com) + +end + +@testset "minimal_set_dec_test" begin + + @test DecoratedInterval(interval(-0x1.99999A842549Ap+4,0x1.9999999999999P-4), trv) === DecoratedInterval(Interval(-0x1.99999A842549Ap+4,0x1.9999999999999P-4), trv) + + @test DecoratedInterval(interval(-0x1.99999C0000000p+4,0x1.9999999999999P-4), com) === DecoratedInterval(Interval(-0x1.99999C0000000p+4,0x1.9999999999999P-4), com) + + @test DecoratedInterval(interval(-0x1.99999A842549Ap+4,0x1.99999A0000000p-4), dac) === DecoratedInterval(Interval(-0x1.99999A842549Ap+4,0x1.99999A0000000p-4), dac) + + @test DecoratedInterval(interval(-0x1.99999C0000000p+4,0x1.99999A0000000p-4), def) === DecoratedInterval(Interval(-0x1.99999C0000000p+4,0x1.99999A0000000p-4), def) + + @test DecoratedInterval(interval(-0x0.0000000000001p-1022,-0x0.0000000000001p-1022), trv) === DecoratedInterval(Interval(-0x0.0000000000001p-1022,-0x0.0000000000001p-1022), trv) + + @test DecoratedInterval(interval(-0x0.0000000000001p-1022,0x0.0000000000001p-1022), def) === DecoratedInterval(Interval(-0x0.0000000000001p-1022,0x0.0000000000001p-1022), def) + + @test DecoratedInterval(interval(0x0.0000000000001p-1022,0x0.0000000000001p-1022), dac) === DecoratedInterval(Interval(0x0.0000000000001p-1022,0x0.0000000000001p-1022), dac) + + @test DecoratedInterval(interval(-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023), com) === DecoratedInterval(Interval(-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023), com) + + @test DecoratedInterval(interval(-0x1.fffffffffffffp+1023,0x1.fffffffffffffp+1023), def) === DecoratedInterval(Interval(-0x1.fffffffffffffp+1023,0x1.fffffffffffffp+1023), def) + + @test DecoratedInterval(interval(0x1.fffffffffffffp+1023,0x1.fffffffffffffp+1023), trv) === DecoratedInterval(Interval(0x1.fffffffffffffp+1023,0x1.fffffffffffffp+1023), trv) + + @test DecoratedInterval(interval(-Inf,Inf), dac) === DecoratedInterval(Interval(-Inf,Inf), dac) + + @test DecoratedInterval(emptyinterval(), trv) === DecoratedInterval(emptyinterval(), trv) + + @test DecoratedInterval(interval(-0x1.99999C0000000p+4,0x1.9999999999999P-4), com) === DecoratedInterval(Interval(-0x1.99999C0000000p+4,0x1.9999999999999P-4), com) + + @test DecoratedInterval(emptyinterval(), def) === DecoratedInterval(emptyinterval(), trv) + + @test DecoratedInterval(emptyinterval(), dac) === DecoratedInterval(emptyinterval(), trv) + + @test DecoratedInterval(emptyinterval(), com) === DecoratedInterval(emptyinterval(), trv) + + @test_broken DecoratedInterval(interval(1.0,Inf), com) === DecoratedInterval(Interval(1.0,Inf), dac) + + @test_broken DecoratedInterval(interval(-Inf,3.0), com) === DecoratedInterval(Interval(-Inf,3.0), dac) + + @test_broken DecoratedInterval(interval(-Inf,Inf), com) === DecoratedInterval(Interval(-Inf,Inf), dac) + + @test_broken isnai(DecoratedInterval(emptyinterval(), ill)) + + @test_broken isnai(DecoratedInterval(interval(-Inf,3.0), ill)) + + @test_broken isnai(DecoratedInterval(interval(-1.0,3.0), ill)) + +end + +@testset "minimal_decoration_part_test" begin + + @test decoration(nai()) === ill + + @test decoration(DecoratedInterval(emptyinterval(), trv)) === trv + + @test decoration(DecoratedInterval(interval(-1.0,3.0), trv)) === trv + + @test decoration(DecoratedInterval(interval(-1.0,3.0), def)) === def + + @test decoration(DecoratedInterval(interval(-1.0,3.0), dac)) === dac + + @test decoration(DecoratedInterval(interval(-1.0,3.0), com)) === com + +end diff --git a/test/test_ITF1788/libieeep1788_elem.jl b/test/test_ITF1788/libieeep1788_elem.jl new file mode 100644 index 000000000..8ba96b7a8 --- /dev/null +++ b/test/test_ITF1788/libieeep1788_elem.jl @@ -0,0 +1,7956 @@ +@testset "minimal_pos_test" begin + + @test +(interval(1.0,2.0)) === Interval(1.0,2.0) + + @test +(emptyinterval()) === emptyinterval() + + @test +(entireinterval()) === entireinterval() + + @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 + +@testset "minimal_pos_dec_test" begin + + @test isnai(+(nai())) + + @test +(DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test +(DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), dac) + + @test +(DecoratedInterval(interval(1.0, 2.0), com)) === DecoratedInterval(Interval(1.0, 2.0), com) + +end + +@testset "minimal_neg_test" begin + + @test -(interval(1.0,2.0)) === Interval(-2.0,-1.0) + + @test -(emptyinterval()) === emptyinterval() + + @test -(entireinterval()) === entireinterval() + + @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 + +@testset "minimal_neg_dec_test" begin + + @test isnai(-(nai())) + + @test -(DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test -(DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), dac) + + @test -(DecoratedInterval(interval(1.0, 2.0), com)) === DecoratedInterval(Interval(-2.0, -1.0), com) + +end + +@testset "minimal_add_test" begin + + @test +(emptyinterval(), emptyinterval()) === emptyinterval() + + @test +(interval(-1.0,1.0), emptyinterval()) === emptyinterval() + + @test +(emptyinterval(), interval(-1.0,1.0)) === emptyinterval() + + @test +(emptyinterval(), entireinterval()) === emptyinterval() + + @test +(entireinterval(), emptyinterval()) === emptyinterval() + + @test +(entireinterval(), interval(-Inf,1.0)) === entireinterval() + + @test +(entireinterval(), interval(-1.0,1.0)) === entireinterval() + + @test +(entireinterval(), interval(-1.0,Inf)) === entireinterval() + + @test +(entireinterval(), entireinterval()) === entireinterval() + + @test +(interval(-Inf,1.0), entireinterval()) === entireinterval() + + @test +(interval(-1.0,1.0), entireinterval()) === entireinterval() + + @test +(interval(-1.0,Inf), entireinterval()) === entireinterval() + + @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() + + @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() + + @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() + + @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 + +@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 +(DecoratedInterval(interval(1.0,2.0), com), DecoratedInterval(interval(5.0,7.0), def)) === 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 +(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,2.0), com), DecoratedInterval(interval(-0.1, 5.0), com)) === DecoratedInterval(Interval(-Inf,7.0), dac) + + @test +(DecoratedInterval(interval(1.0,2.0), trv), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test isnai(+(nai(), DecoratedInterval(interval(1.0,2.0), trv))) + +end + +@testset "minimal_sub_test" begin + + @test -(emptyinterval(), emptyinterval()) === emptyinterval() + + @test -(interval(-1.0,1.0), emptyinterval()) === emptyinterval() + + @test -(emptyinterval(), interval(-1.0,1.0)) === emptyinterval() + + @test -(emptyinterval(), entireinterval()) === emptyinterval() + + @test -(entireinterval(), emptyinterval()) === emptyinterval() + + @test -(entireinterval(), interval(-Inf,1.0)) === entireinterval() + + @test -(entireinterval(), interval(-1.0,1.0)) === entireinterval() + + @test -(entireinterval(), interval(-1.0,Inf)) === entireinterval() + + @test -(entireinterval(), entireinterval()) === entireinterval() + + @test -(interval(-Inf,1.0), entireinterval()) === entireinterval() + + @test -(interval(-1.0,1.0), entireinterval()) === entireinterval() + + @test -(interval(-1.0,Inf), entireinterval()) === entireinterval() + + @test -(interval(-Inf,2.0), interval(-Inf,4.0)) === entireinterval() + + @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() + + @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() + + @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 + +@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 -(DecoratedInterval(interval(1.0,2.0), com), DecoratedInterval(interval(5.0,7.0), def)) === 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 -(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,2.0), com), DecoratedInterval(interval(-1.0, 5.0), com)) === DecoratedInterval(Interval(-Inf,3.0), dac) + + @test -(DecoratedInterval(interval(1.0,2.0), trv), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test isnai(-(nai(), DecoratedInterval(interval(1.0,2.0), trv))) + +end + +@testset "minimal_mul_test" begin + + @test *(emptyinterval(), emptyinterval()) === emptyinterval() + + @test *(interval(-1.0,1.0), emptyinterval()) === emptyinterval() + + @test *(emptyinterval(), interval(-1.0,1.0)) === emptyinterval() + + @test *(emptyinterval(), entireinterval()) === emptyinterval() + + @test *(entireinterval(), emptyinterval()) === emptyinterval() + + @test *(interval(0.0,0.0), emptyinterval()) === emptyinterval() + + @test *(emptyinterval(), interval(0.0,0.0)) === emptyinterval() + + @test *(interval(-0.0,-0.0), emptyinterval()) === emptyinterval() + + @test *(emptyinterval(), interval(-0.0,-0.0)) === emptyinterval() + + @test *(entireinterval(), interval(0.0,0.0)) === Interval(0.0,0.0) + + @test *(entireinterval(), interval(-0.0,-0.0)) === Interval(0.0,0.0) + + @test *(entireinterval(), interval(-5.0, -1.0)) === entireinterval() + + @test *(entireinterval(), interval(-5.0, 3.0)) === entireinterval() + + @test *(entireinterval(), interval(1.0, 3.0)) === entireinterval() + + @test *(entireinterval(), interval(-Inf, -1.0)) === entireinterval() + + @test *(entireinterval(), interval(-Inf, 3.0)) === entireinterval() + + @test *(entireinterval(), interval(-5.0, Inf)) === entireinterval() + + @test *(entireinterval(), interval(1.0, Inf)) === entireinterval() + + @test *(entireinterval(), entireinterval()) === entireinterval() + + @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() + + @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() + + @test *(interval(1.0,Inf), interval(-5.0, Inf)) === entireinterval() + + @test *(interval(1.0,Inf), interval(1.0, Inf)) === Interval(1.0,Inf) + + @test *(interval(1.0,Inf), entireinterval()) === entireinterval() + + @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() + + @test *(interval(-1.0,Inf), interval(1.0, 3.0)) === Interval(-3.0,Inf) + + @test *(interval(-1.0,Inf), interval(-Inf, -1.0)) === entireinterval() + + @test *(interval(-1.0,Inf), interval(-Inf, 3.0)) === entireinterval() + + @test *(interval(-1.0,Inf), interval(-5.0, Inf)) === entireinterval() + + @test *(interval(-1.0,Inf), interval(1.0, Inf)) === entireinterval() + + @test *(interval(-1.0,Inf), entireinterval()) === entireinterval() + + @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() + + @test *(interval(-Inf,3.0), interval(1.0, 3.0)) === Interval(-Inf,9.0) + + @test *(interval(-Inf,3.0), interval(-Inf, -1.0)) === entireinterval() + + @test *(interval(-Inf,3.0), interval(-Inf, 3.0)) === entireinterval() + + @test *(interval(-Inf,3.0), interval(-5.0, Inf)) === entireinterval() + + @test *(interval(-Inf,3.0), interval(1.0, Inf)) === entireinterval() + + @test *(interval(-Inf,3.0), entireinterval()) === entireinterval() + + @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() + + @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() + + @test *(interval(-Inf,-3.0), interval(-5.0, Inf)) === entireinterval() + + @test *(interval(-Inf,-3.0), interval(1.0, Inf)) === Interval(-Inf,-3.0) + + @test *(interval(-Inf,-3.0), entireinterval()) === entireinterval() + + @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()) === 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()) === 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()) === entireinterval() + + @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) + + @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) + + @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() + + @test *(interval(-1.0,5.0), interval(-Inf, 3.0)) === entireinterval() + + @test *(interval(-1.0,5.0), interval(-5.0, Inf)) === entireinterval() + + @test *(interval(-1.0,5.0), interval(1.0, Inf)) === entireinterval() + + @test *(interval(-1.0,5.0), entireinterval()) === entireinterval() + + @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()) === entireinterval() + + @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 + +@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 *(DecoratedInterval(interval(1.0,2.0), com), DecoratedInterval(interval(5.0,7.0), def)) === 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 *(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,2.0), com), DecoratedInterval(interval(-1.0, 5.0), com)) === DecoratedInterval(Interval(-Inf,0x1.FFFFFFFFFFFFFp1023), dac) + + @test *(DecoratedInterval(interval(1.0,2.0), trv), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test isnai(*(nai(), DecoratedInterval(interval(1.0,2.0), trv))) + +end + +@testset "minimal_div_test" begin + + @test /(emptyinterval(), emptyinterval()) === emptyinterval() + + @test /(interval(-1.0,1.0), emptyinterval()) === emptyinterval() + + @test /(emptyinterval(), interval(-1.0,1.0)) === emptyinterval() + + @test /(emptyinterval(), interval(0.1,1.0)) === emptyinterval() + + @test /(emptyinterval(), interval(-1.0,-0.1)) === emptyinterval() + + @test /(emptyinterval(), entireinterval()) === emptyinterval() + + @test /(entireinterval(), emptyinterval()) === emptyinterval() + + @test /(interval(0.0,0.0), emptyinterval()) === emptyinterval() + + @test /(emptyinterval(), interval(0.0,0.0)) === emptyinterval() + + @test /(interval(-0.0,-0.0), emptyinterval()) === emptyinterval() + + @test /(emptyinterval(), interval(-0.0,-0.0)) === emptyinterval() + + @test /(entireinterval(), interval(-5.0, -3.0)) === entireinterval() + + @test /(entireinterval(), interval(3.0, 5.0)) === entireinterval() + + @test /(entireinterval(), interval(-Inf, -3.0)) === entireinterval() + + @test /(entireinterval(), interval(3.0,Inf)) === entireinterval() + + @test /(entireinterval(), interval(0.0,0.0)) === emptyinterval() + + @test /(entireinterval(), interval(-0.0,-0.0)) === emptyinterval() + + @test /(entireinterval(), interval(-3.0, 0.0)) === entireinterval() + + @test /(entireinterval(), interval(-3.0, -0.0)) === entireinterval() + + @test /(entireinterval(), interval(-3.0, 3.0)) === entireinterval() + + @test /(entireinterval(), interval(0.0, 3.0)) === entireinterval() + + @test /(entireinterval(), interval(-Inf, 0.0)) === entireinterval() + + @test /(entireinterval(), interval(-0.0, 3.0)) === entireinterval() + + @test /(entireinterval(), interval(-Inf, -0.0)) === entireinterval() + + @test /(entireinterval(), interval(-Inf, 3.0)) === entireinterval() + + @test /(entireinterval(), interval(-3.0, Inf)) === entireinterval() + + @test /(entireinterval(), interval(0.0, Inf)) === entireinterval() + + @test /(entireinterval(), interval(-0.0, Inf)) === entireinterval() + + @test /(entireinterval(), entireinterval()) === entireinterval() + + @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)) === emptyinterval() + + @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)) === emptyinterval() + + @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() + + @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() + + @test /(interval(-30.0,-15.0), interval(-3.0, Inf)) === entireinterval() + + @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()) === entireinterval() + + @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)) === emptyinterval() + + @test /(interval(-30.0,15.0), interval(-0.0,-0.0)) === emptyinterval() + + @test /(interval(-30.0,15.0), interval(-3.0, 0.0)) === entireinterval() + + @test /(interval(-30.0,15.0), interval(-3.0, -0.0)) === entireinterval() + + @test /(interval(-30.0,15.0), interval(-3.0, 3.0)) === entireinterval() + + @test /(interval(-30.0,15.0), interval(0.0, 3.0)) === entireinterval() + + @test /(interval(-30.0,15.0), interval(-Inf, 0.0)) === entireinterval() + + @test /(interval(-30.0,15.0), interval(-0.0, 3.0)) === entireinterval() + + @test /(interval(-30.0,15.0), interval(-Inf, -0.0)) === entireinterval() + + @test /(interval(-30.0,15.0), interval(-Inf, 3.0)) === entireinterval() + + @test /(interval(-30.0,15.0), interval(-3.0, Inf)) === entireinterval() + + @test /(interval(-30.0,15.0), interval(0.0, Inf)) === entireinterval() + + @test /(interval(-30.0,15.0), interval(-0.0, Inf)) === entireinterval() + + @test /(interval(-30.0,15.0), entireinterval()) === entireinterval() + + @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)) === emptyinterval() + + @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)) === emptyinterval() + + @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() + + @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() + + @test /(interval(15.0,30.0), interval(-3.0, Inf)) === entireinterval() + + @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()) === entireinterval() + + @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)) === emptyinterval() + + @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)) === emptyinterval() + + @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()) === 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)) === emptyinterval() + + @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)) === emptyinterval() + + @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()) === 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)) === emptyinterval() + + @test /(interval(-Inf,-15.0), interval(-3.0, 0.0)) === Interval(5.0,Inf) + + @test /(interval(-Inf,-15.0), interval(-0.0,-0.0)) === emptyinterval() + + @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() + + @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() + + @test /(interval(-Inf,-15.0), interval(-3.0, Inf)) === entireinterval() + + @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()) === entireinterval() + + @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)) === emptyinterval() + + @test /(interval(-Inf,15.0), interval(-3.0, 0.0)) === entireinterval() + + @test /(interval(-Inf,15.0), interval(-0.0,-0.0)) === emptyinterval() + + @test /(interval(-Inf,15.0), interval(-3.0, -0.0)) === entireinterval() + + @test /(interval(-Inf,15.0), interval(-3.0, 3.0)) === entireinterval() + + @test /(interval(-Inf,15.0), interval(0.0, 3.0)) === entireinterval() + + @test /(interval(-Inf,15.0), interval(-Inf, 0.0)) === entireinterval() + + @test /(interval(-Inf,15.0), interval(-0.0, 3.0)) === entireinterval() + + @test /(interval(-Inf,15.0), interval(-Inf, -0.0)) === entireinterval() + + @test /(interval(-Inf,15.0), interval(-Inf, 3.0)) === entireinterval() + + @test /(interval(-Inf,15.0), interval(-3.0, Inf)) === entireinterval() + + @test /(interval(-Inf,15.0), interval(0.0, Inf)) === entireinterval() + + @test /(interval(-Inf,15.0), interval(-0.0, Inf)) === entireinterval() + + @test /(interval(-Inf,15.0), entireinterval()) === entireinterval() + + @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)) === emptyinterval() + + @test /(interval(-15.0,Inf), interval(-3.0, 0.0)) === entireinterval() + + @test /(interval(-15.0,Inf), interval(-0.0,-0.0)) === emptyinterval() + + @test /(interval(-15.0,Inf), interval(-3.0, -0.0)) === entireinterval() + + @test /(interval(-15.0,Inf), interval(-3.0, 3.0)) === entireinterval() + + @test /(interval(-15.0,Inf), interval(0.0, 3.0)) === entireinterval() + + @test /(interval(-15.0,Inf), interval(-Inf, 0.0)) === entireinterval() + + @test /(interval(-15.0,Inf), interval(-0.0, 3.0)) === entireinterval() + + @test /(interval(-15.0,Inf), interval(-Inf, -0.0)) === entireinterval() + + @test /(interval(-15.0,Inf), interval(-Inf, 3.0)) === entireinterval() + + @test /(interval(-15.0,Inf), interval(-3.0, Inf)) === entireinterval() + + @test /(interval(-15.0,Inf), interval(0.0, Inf)) === entireinterval() + + @test /(interval(-15.0,Inf), interval(-0.0, Inf)) === entireinterval() + + @test /(interval(-15.0,Inf), entireinterval()) === entireinterval() + + @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)) === emptyinterval() + + @test /(interval(15.0,Inf), interval(-3.0, 0.0)) === Interval(-Inf,-5.0) + + @test /(interval(15.0,Inf), interval(-0.0,-0.0)) === emptyinterval() + + @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() + + @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() + + @test /(interval(15.0,Inf), interval(-3.0, Inf)) === entireinterval() + + @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()) === entireinterval() + + @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)) === emptyinterval() + + @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)) === emptyinterval() + + @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() + + @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() + + @test /(interval(-30.0,0.0), interval(-3.0, Inf)) === entireinterval() + + @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()) === entireinterval() + + @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)) === emptyinterval() + + @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)) === emptyinterval() + + @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() + + @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() + + @test /(interval(-30.0,-0.0), interval(-3.0, Inf)) === entireinterval() + + @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()) === entireinterval() + + @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)) === emptyinterval() + + @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)) === emptyinterval() + + @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() + + @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() + + @test /(interval(0.0,30.0), interval(-3.0, Inf)) === entireinterval() + + @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()) === entireinterval() + + @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)) === emptyinterval() + + @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)) === emptyinterval() + + @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() + + @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() + + @test /(interval(-0.0,30.0), interval(-3.0, Inf)) === entireinterval() + + @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()) === entireinterval() + + @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)) === emptyinterval() + + @test /(interval(-Inf,0.0), interval(-3.0, 0.0)) === Interval(0.0,Inf) + + @test /(interval(-Inf,0.0), interval(-0.0,-0.0)) === emptyinterval() + + @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() + + @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() + + @test /(interval(-Inf,0.0), interval(-3.0, Inf)) === entireinterval() + + @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()) === entireinterval() + + @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)) === emptyinterval() + + @test /(interval(-Inf,-0.0), interval(-3.0, 0.0)) === Interval(0.0,Inf) + + @test /(interval(-Inf,-0.0), interval(-0.0,-0.0)) === emptyinterval() + + @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() + + @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() + + @test /(interval(-Inf,-0.0), interval(-3.0, Inf)) === entireinterval() + + @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()) === entireinterval() + + @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)) === emptyinterval() + + @test /(interval(0.0,Inf), interval(-3.0, 0.0)) === Interval(-Inf,0.0) + + @test /(interval(0.0,Inf), interval(-0.0,-0.0)) === emptyinterval() + + @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() + + @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() + + @test /(interval(0.0,Inf), interval(-3.0, Inf)) === entireinterval() + + @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()) === entireinterval() + + @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)) === emptyinterval() + + @test /(interval(-0.0,Inf), interval(-3.0, 0.0)) === Interval(-Inf,0.0) + + @test /(interval(-0.0,Inf), interval(-0.0,-0.0)) === emptyinterval() + + @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() + + @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() + + @test /(interval(-0.0,Inf), interval(-3.0, Inf)) === entireinterval() + + @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()) === entireinterval() + + @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 + +@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 /(DecoratedInterval(interval(-200.0,-1.0), com), DecoratedInterval(interval(0x0.0000000000001p-1022, 10.0), com)) === 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 /(DecoratedInterval(interval(1.0,3.0), def), DecoratedInterval(interval(-Inf, -10.0), dac)) === DecoratedInterval(Interval(-0x1.3333333333334P-2,0.0), def) + + @test /(DecoratedInterval(interval(1.0,2.0), trv), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test isnai(/(nai(), DecoratedInterval(interval(1.0,2.0), trv))) + +end + +@testset "minimal_recip_test" begin + + @test inv(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 inv(interval(-Inf, -10.0)) === Interval(-0x1.999999999999AP-4,0.0) + + @test inv(interval(10.0,Inf)) === Interval(0.0,0x1.999999999999AP-4) + + @test inv(interval(0.0,0.0)) === emptyinterval() + + @test inv(interval(-0.0,-0.0)) === emptyinterval() + + @test inv(interval(-10.0, 0.0)) === Interval(-Inf,-0x1.9999999999999P-4) + + @test inv(interval(-10.0, -0.0)) === Interval(-Inf,-0x1.9999999999999P-4) + + @test inv(interval(-10.0, 10.0)) === entireinterval() + + @test inv(interval(0.0, 10.0)) === Interval(0x1.9999999999999P-4,Inf) + + @test inv(interval(-0.0, 10.0)) === Interval(0x1.9999999999999P-4,Inf) + + @test inv(interval(-Inf, 0.0)) === Interval(-Inf,0.0) + + @test inv(interval(-Inf, -0.0)) === Interval(-Inf,0.0) + + @test inv(interval(-Inf, 10.0)) === entireinterval() + + @test inv(interval(-10.0, Inf)) === entireinterval() + + @test inv(interval(0.0, Inf)) === Interval(0.0,Inf) + + @test inv(interval(-0.0, Inf)) === Interval(0.0,Inf) + + @test inv(entireinterval()) === entireinterval() + +end + +@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 inv(DecoratedInterval(interval(-Inf, -10.0), dac)) === 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 inv(DecoratedInterval(interval(0.0,0.0), com)) === DecoratedInterval(emptyinterval(), trv) + + @test inv(DecoratedInterval(interval(-10.0, 0.0), com)) === DecoratedInterval(Interval(-Inf,-0x1.9999999999999P-4), trv) + + @test inv(DecoratedInterval(interval(-10.0, Inf), dac)) === DecoratedInterval(entireinterval(), trv) + + @test inv(DecoratedInterval(interval(-0.0, Inf), dac)) === DecoratedInterval(Interval(0.0,Inf), trv) + + @test inv(DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), trv) + +end + +@testset "minimal_sqr_test" begin + + @test emptyinterval()^2 === emptyinterval() + + @test entireinterval()^2 === Interval(0.0,Inf) + + @test interval(-Inf,-0x0.0000000000001p-1022)^2 === Interval(0.0,Inf) + + @test interval(-1.0,1.0)^2 === Interval(0.0,1.0) + + @test interval(0.0,1.0)^2 === Interval(0.0,1.0) + + @test interval(-0.0,1.0)^2 === Interval(0.0,1.0) + + @test interval(-5.0,3.0)^2 === Interval(0.0,25.0) + + @test interval(-5.0,0.0)^2 === Interval(0.0,25.0) + + @test interval(-5.0,-0.0)^2 === Interval(0.0,25.0) + + @test interval(0x1.999999999999AP-4,0x1.999999999999AP-4)^2 === 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.FFFFFFFFFFFFP+0)^2 === Interval(0x1.FFFFFFFFFFFEP+1,0x1.FFFFFFFFFFFE1P+1) + +end + +@testset "minimal_sqr_dec_test" begin + + @test DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,-0x0.0000000000001p-1022), com)^2 === DecoratedInterval(Interval(0.0,Inf), dac) + + @test DecoratedInterval(interval(-1.0,1.0), def)^2 === DecoratedInterval(Interval(0.0,1.0), def) + + @test DecoratedInterval(interval(-5.0,3.0), com)^2 === 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) + +end + +@testset "minimal_sqrt_test" begin + + @test sqrt(emptyinterval()) === emptyinterval() + + @test sqrt(entireinterval()) === Interval(0.0,Inf) + + @test sqrt(interval(-Inf,-0x0.0000000000001p-1022)) === emptyinterval() + + @test sqrt(interval(-1.0,1.0)) === Interval(0.0,1.0) + + @test sqrt(interval(0.0,1.0)) === Interval(0.0,1.0) + + @test sqrt(interval(-0.0,1.0)) === Interval(0.0,1.0) + + @test sqrt(interval(-5.0,25.0)) === Interval(0.0,5.0) + + @test sqrt(interval(0.0,25.0)) === Interval(0.0,5.0) + + @test sqrt(interval(-0.0,25.0)) === Interval(0.0,5.0) + + @test sqrt(interval(-5.0,Inf)) === Interval(0.0,Inf) + + @test sqrt(interval(0x1.999999999999AP-4,0x1.999999999999AP-4)) === Interval(0x1.43D136248490FP-2,0x1.43D136248491P-2) + + @test sqrt(interval(-0x1.FFFFFFFFFFFFP+0,0x1.999999999999AP-4)) === Interval(0.0,0x1.43D136248491P-2) + + @test sqrt(interval(0x1.999999999999AP-4,0x1.FFFFFFFFFFFFP+0)) === Interval(0x1.43D136248490FP-2,0x1.6A09E667F3BC7P+0) + +end + +@testset "minimal_sqrt_dec_test" begin + + @test sqrt(DecoratedInterval(interval(1.0,4.0), com)) === DecoratedInterval(Interval(1.0,2.0), com) + + @test sqrt(DecoratedInterval(interval(-5.0,25.0), com)) === DecoratedInterval(Interval(0.0,5.0), trv) + + @test sqrt(DecoratedInterval(interval(0.0,25.0), def)) === DecoratedInterval(Interval(0.0,5.0), def) + + @test sqrt(DecoratedInterval(interval(-5.0,Inf), dac)) === DecoratedInterval(Interval(0.0,Inf), trv) + +end + +@testset "minimal_fma_test" begin + + @test fma(emptyinterval(), emptyinterval(), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,1.0), emptyinterval(), emptyinterval()) === emptyinterval() + + @test fma(emptyinterval(), interval(-1.0,1.0), emptyinterval()) === emptyinterval() + + @test fma(emptyinterval(), entireinterval(), emptyinterval()) === emptyinterval() + + @test fma(entireinterval(), emptyinterval(), emptyinterval()) === emptyinterval() + + @test fma(interval(0.0,0.0), emptyinterval(), emptyinterval()) === emptyinterval() + + @test fma(interval(-0.0,-0.0), emptyinterval(), emptyinterval()) === emptyinterval() + + @test fma(emptyinterval(), interval(0.0,0.0), emptyinterval()) === emptyinterval() + + @test fma(emptyinterval(), interval(-0.0,-0.0), emptyinterval()) === emptyinterval() + + @test fma(entireinterval(), interval(0.0,0.0), emptyinterval()) === emptyinterval() + + @test fma(entireinterval(), interval(-0.0,-0.0), emptyinterval()) === emptyinterval() + + @test fma(entireinterval(), interval(-5.0, -1.0), emptyinterval()) === emptyinterval() + + @test fma(entireinterval(), interval(-5.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(entireinterval(), interval(1.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(entireinterval(), interval(-Inf, -1.0), emptyinterval()) === emptyinterval() + + @test fma(entireinterval(), interval(-Inf, 3.0), emptyinterval()) === emptyinterval() + + @test fma(entireinterval(), interval(-5.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(entireinterval(), interval(1.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(entireinterval(), entireinterval(), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,Inf), interval(0.0,0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,Inf), interval(-0.0,-0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,Inf), interval(-5.0, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,Inf), interval(-5.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,Inf), interval(1.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,Inf), interval(-Inf, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,Inf), interval(-Inf, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,Inf), interval(-5.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,Inf), interval(1.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,Inf), entireinterval(), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,Inf), interval(0.0,0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,Inf), interval(-0.0,-0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,Inf), interval(-5.0, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,Inf), interval(-5.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,Inf), interval(1.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,Inf), interval(-Inf, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,Inf), interval(-Inf, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,Inf), interval(-5.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,Inf), interval(1.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,Inf), entireinterval(), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,3.0), interval(0.0,0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,3.0), interval(-0.0,-0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,3.0), interval(-5.0, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,3.0), interval(-5.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,3.0), interval(1.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,3.0), interval(-Inf, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,3.0), interval(-Inf, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,3.0), interval(-5.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,3.0), interval(1.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,3.0), entireinterval(), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,-3.0), interval(0.0,0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,-3.0), interval(-0.0,-0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,-3.0), interval(-5.0, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,-3.0), interval(-5.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,-3.0), interval(1.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,-3.0), interval(-Inf, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,-3.0), interval(-Inf, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,-3.0), interval(-5.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,-3.0), interval(1.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(-Inf,-3.0), entireinterval(), emptyinterval()) === emptyinterval() + + @test fma(interval(0.0,0.0), interval(0.0,0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(0.0,0.0), interval(-0.0,-0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(0.0,0.0), interval(-5.0, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(0.0,0.0), interval(-5.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(0.0,0.0), interval(1.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(0.0,0.0), interval(-Inf, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(0.0,0.0), interval(-Inf, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(0.0,0.0), interval(-5.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(0.0,0.0), interval(1.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(0.0,0.0), entireinterval(), emptyinterval()) === emptyinterval() + + @test fma(interval(-0.0,-0.0), interval(0.0,0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-0.0,-0.0), interval(-0.0,-0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-0.0,-0.0), interval(-5.0, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-0.0,-0.0), interval(-5.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-0.0,-0.0), interval(1.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-0.0,-0.0), interval(-Inf, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-0.0,-0.0), interval(-Inf, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-0.0,-0.0), interval(-5.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(-0.0,-0.0), interval(1.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(-0.0,-0.0), entireinterval(), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,5.0), interval(0.0,0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,5.0), interval(-0.0,-0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,5.0), interval(-5.0, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,5.0), interval(-5.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,5.0), interval(1.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,5.0), interval(-Inf, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,5.0), interval(-Inf, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,5.0), interval(-5.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,5.0), interval(1.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(1.0,5.0), entireinterval(), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,5.0), interval(0.0,0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,5.0), interval(-0.0,-0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,5.0), interval(-5.0, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,5.0), interval(-5.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-10.0,2.0), interval(-5.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,5.0), interval(-1.0, 10.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-2.0,2.0), interval(-5.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,5.0), interval(1.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,5.0), interval(-Inf, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,5.0), interval(-Inf, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,5.0), interval(-5.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,5.0), interval(1.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(-1.0,5.0), entireinterval(), emptyinterval()) === emptyinterval() + + @test fma(interval(-10.0,-5.0), interval(0.0,0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-10.0,-5.0), interval(-0.0,-0.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-10.0,-5.0), interval(-5.0, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-10.0,-5.0), interval(-5.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-10.0,-5.0), interval(1.0, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-10.0,-5.0), interval(-Inf, -1.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-10.0,-5.0), interval(-Inf, 3.0), emptyinterval()) === emptyinterval() + + @test fma(interval(-10.0,-5.0), interval(-5.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(-10.0,-5.0), interval(1.0, Inf), emptyinterval()) === emptyinterval() + + @test fma(interval(-10.0,-5.0), entireinterval(), emptyinterval()) === emptyinterval() + + @test fma(emptyinterval(), emptyinterval(), interval(-Inf,2.0)) === emptyinterval() + + @test fma(interval(-1.0,1.0), emptyinterval(), interval(-Inf,2.0)) === emptyinterval() + + @test fma(emptyinterval(), interval(-1.0,1.0), interval(-Inf,2.0)) === emptyinterval() + + @test fma(emptyinterval(), entireinterval(), interval(-Inf,2.0)) === emptyinterval() + + @test fma(entireinterval(), emptyinterval(), interval(-Inf,2.0)) === emptyinterval() + + @test fma(interval(0.0,0.0), emptyinterval(), interval(-Inf,2.0)) === emptyinterval() + + @test fma(interval(-0.0,-0.0), emptyinterval(), interval(-Inf,2.0)) === emptyinterval() + + @test fma(emptyinterval(), interval(0.0,0.0), interval(-Inf,2.0)) === emptyinterval() + + @test fma(emptyinterval(), interval(-0.0,-0.0), interval(-Inf,2.0)) === emptyinterval() + + @test fma(entireinterval(), interval(0.0,0.0), interval(-Inf,2.0)) === Interval(-Inf,2.0) + + @test fma(entireinterval(), interval(-0.0,-0.0), interval(-Inf,2.0)) === Interval(-Inf,2.0) + + @test fma(entireinterval(), interval(-5.0, -1.0), interval(-Inf,2.0)) === entireinterval() + + @test fma(entireinterval(), interval(-5.0, 3.0), interval(-Inf,2.0)) === entireinterval() + + @test fma(entireinterval(), interval(1.0, 3.0), interval(-Inf,2.0)) === entireinterval() + + @test fma(entireinterval(), interval(-Inf, -1.0), interval(-Inf,2.0)) === entireinterval() + + @test fma(entireinterval(), interval(-Inf, 3.0), interval(-Inf,2.0)) === entireinterval() + + @test fma(entireinterval(), interval(-5.0, Inf), interval(-Inf,2.0)) === entireinterval() + + @test fma(entireinterval(), interval(1.0, Inf), interval(-Inf,2.0)) === entireinterval() + + @test fma(entireinterval(), entireinterval(), interval(-Inf,2.0)) === entireinterval() + + @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() + + @test fma(interval(1.0,Inf), interval(1.0, 3.0), interval(-Inf,2.0)) === entireinterval() + + @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() + + @test fma(interval(1.0,Inf), interval(-5.0, Inf), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(1.0,Inf), interval(1.0, Inf), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(1.0,Inf), entireinterval(), interval(-Inf,2.0)) === entireinterval() + + @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() + + @test fma(interval(-1.0,Inf), interval(1.0, 3.0), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(-Inf, -1.0), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(-Inf, 3.0), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(-5.0, Inf), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(1.0, Inf), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(-1.0,Inf), entireinterval(), interval(-Inf,2.0)) === entireinterval() + + @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() + + @test fma(interval(-Inf,3.0), interval(-5.0, 3.0), interval(-Inf,2.0)) === entireinterval() + + @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() + + @test fma(interval(-Inf,3.0), interval(-Inf, 3.0), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(-5.0, Inf), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(1.0, Inf), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(-Inf,3.0), entireinterval(), interval(-Inf,2.0)) === entireinterval() + + @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() + + @test fma(interval(-Inf,-3.0), interval(-5.0, 3.0), interval(-Inf,2.0)) === entireinterval() + + @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() + + @test fma(interval(-Inf,-3.0), interval(-Inf, 3.0), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(-Inf,-3.0), interval(-5.0, Inf), interval(-Inf,2.0)) === entireinterval() + + @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(), interval(-Inf,2.0)) === entireinterval() + + @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(), 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(), 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() + + @test fma(interval(1.0,5.0), interval(1.0, Inf), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(1.0,5.0), entireinterval(), interval(-Inf,2.0)) === entireinterval() + + @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) + + @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) + + @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() + + @test fma(interval(-1.0,5.0), interval(-Inf, 3.0), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(-5.0, Inf), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(1.0, Inf), interval(-Inf,2.0)) === entireinterval() + + @test fma(interval(-1.0,5.0), entireinterval(), interval(-Inf,2.0)) === entireinterval() + + @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() + + @test fma(interval(-10.0,-5.0), interval(-Inf, 3.0), interval(-Inf,2.0)) === entireinterval() + + @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(), interval(-Inf,2.0)) === entireinterval() + + @test fma(emptyinterval(), emptyinterval(), interval(-2.0,2.0)) === emptyinterval() + + @test fma(interval(-1.0,1.0), emptyinterval(), interval(-2.0,2.0)) === emptyinterval() + + @test fma(emptyinterval(), interval(-1.0,1.0), interval(-2.0,2.0)) === emptyinterval() + + @test fma(emptyinterval(), entireinterval(), interval(-2.0,2.0)) === emptyinterval() + + @test fma(entireinterval(), emptyinterval(), interval(-2.0,2.0)) === emptyinterval() + + @test fma(interval(0.0,0.0), emptyinterval(), interval(-2.0,2.0)) === emptyinterval() + + @test fma(interval(-0.0,-0.0), emptyinterval(), interval(-2.0,2.0)) === emptyinterval() + + @test fma(emptyinterval(), interval(0.0,0.0), interval(-2.0,2.0)) === emptyinterval() + + @test fma(emptyinterval(), interval(-0.0,-0.0), interval(-2.0,2.0)) === emptyinterval() + + @test fma(entireinterval(), interval(0.0,0.0), interval(-2.0,2.0)) === Interval(-2.0,2.0) + + @test fma(entireinterval(), interval(-0.0,-0.0), interval(-2.0,2.0)) === Interval(-2.0,2.0) + + @test fma(entireinterval(), interval(-5.0, -1.0), interval(-2.0,2.0)) === entireinterval() + + @test fma(entireinterval(), interval(-5.0, 3.0), interval(-2.0,2.0)) === entireinterval() + + @test fma(entireinterval(), interval(1.0, 3.0), interval(-2.0,2.0)) === entireinterval() + + @test fma(entireinterval(), interval(-Inf, -1.0), interval(-2.0,2.0)) === entireinterval() + + @test fma(entireinterval(), interval(-Inf, 3.0), interval(-2.0,2.0)) === entireinterval() + + @test fma(entireinterval(), interval(-5.0, Inf), interval(-2.0,2.0)) === entireinterval() + + @test fma(entireinterval(), interval(1.0, Inf), interval(-2.0,2.0)) === entireinterval() + + @test fma(entireinterval(), entireinterval(), interval(-2.0,2.0)) === entireinterval() + + @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() + + @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() + + @test fma(interval(1.0,Inf), interval(-5.0, Inf), interval(-2.0,2.0)) === entireinterval() + + @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(), interval(-2.0,2.0)) === entireinterval() + + @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() + + @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() + + @test fma(interval(-1.0,Inf), interval(-Inf, 3.0), interval(-2.0,2.0)) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(-5.0, Inf), interval(-2.0,2.0)) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(1.0, Inf), interval(-2.0,2.0)) === entireinterval() + + @test fma(interval(-1.0,Inf), entireinterval(), interval(-2.0,2.0)) === entireinterval() + + @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() + + @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() + + @test fma(interval(-Inf,3.0), interval(-Inf, 3.0), interval(-2.0,2.0)) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(-5.0, Inf), interval(-2.0,2.0)) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(1.0, Inf), interval(-2.0,2.0)) === entireinterval() + + @test fma(interval(-Inf,3.0), entireinterval(), interval(-2.0,2.0)) === entireinterval() + + @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() + + @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() + + @test fma(interval(-Inf,-3.0), interval(-5.0, Inf), interval(-2.0,2.0)) === entireinterval() + + @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(), interval(-2.0,2.0)) === entireinterval() + + @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(), 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(), 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(), interval(-2.0,2.0)) === entireinterval() + + @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) + + @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) + + @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() + + @test fma(interval(-1.0,5.0), interval(-Inf, 3.0), interval(-2.0,2.0)) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(-5.0, Inf), interval(-2.0,2.0)) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(1.0, Inf), interval(-2.0,2.0)) === entireinterval() + + @test fma(interval(-1.0,5.0), entireinterval(), interval(-2.0,2.0)) === entireinterval() + + @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(), interval(-2.0,2.0)) === entireinterval() + + @test fma(emptyinterval(), emptyinterval(), interval(-2.0,Inf)) === emptyinterval() + + @test fma(interval(-1.0,1.0), emptyinterval(), interval(-2.0,Inf)) === emptyinterval() + + @test fma(emptyinterval(), interval(-1.0,1.0), interval(-2.0,Inf)) === emptyinterval() + + @test fma(emptyinterval(), entireinterval(), interval(-2.0,Inf)) === emptyinterval() + + @test fma(entireinterval(), emptyinterval(), interval(-2.0,Inf)) === emptyinterval() + + @test fma(interval(0.0,0.0), emptyinterval(), interval(-2.0,Inf)) === emptyinterval() + + @test fma(interval(-0.0,-0.0), emptyinterval(), interval(-2.0,Inf)) === emptyinterval() + + @test fma(emptyinterval(), interval(0.0,0.0), interval(-2.0,Inf)) === emptyinterval() + + @test fma(emptyinterval(), interval(-0.0,-0.0), interval(-2.0,Inf)) === emptyinterval() + + @test fma(entireinterval(), interval(0.0,0.0), interval(-2.0,Inf)) === Interval(-2.0,Inf) + + @test fma(entireinterval(), interval(-0.0,-0.0), interval(-2.0,Inf)) === Interval(-2.0,Inf) + + @test fma(entireinterval(), interval(-5.0, -1.0), interval(-2.0,Inf)) === entireinterval() + + @test fma(entireinterval(), interval(-5.0, 3.0), interval(-2.0,Inf)) === entireinterval() + + @test fma(entireinterval(), interval(1.0, 3.0), interval(-2.0,Inf)) === entireinterval() + + @test fma(entireinterval(), interval(-Inf, -1.0), interval(-2.0,Inf)) === entireinterval() + + @test fma(entireinterval(), interval(-Inf, 3.0), interval(-2.0,Inf)) === entireinterval() + + @test fma(entireinterval(), interval(-5.0, Inf), interval(-2.0,Inf)) === entireinterval() + + @test fma(entireinterval(), interval(1.0, Inf), interval(-2.0,Inf)) === entireinterval() + + @test fma(entireinterval(), entireinterval(), interval(-2.0,Inf)) === entireinterval() + + @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() + + @test fma(interval(1.0,Inf), interval(-5.0, 3.0), interval(-2.0,Inf)) === entireinterval() + + @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() + + @test fma(interval(1.0,Inf), interval(-Inf, 3.0), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(1.0,Inf), interval(-5.0, Inf), interval(-2.0,Inf)) === entireinterval() + + @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(), interval(-2.0,Inf)) === entireinterval() + + @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() + + @test fma(interval(-1.0,Inf), interval(-5.0, 3.0), interval(-2.0,Inf)) === entireinterval() + + @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() + + @test fma(interval(-1.0,Inf), interval(-Inf, 3.0), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(-5.0, Inf), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(1.0, Inf), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(-1.0,Inf), entireinterval(), interval(-2.0,Inf)) === entireinterval() + + @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() + + @test fma(interval(-Inf,3.0), interval(1.0, 3.0), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(-Inf, -1.0), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(-Inf, 3.0), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(-5.0, Inf), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(1.0, Inf), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(-Inf,3.0), entireinterval(), interval(-2.0,Inf)) === entireinterval() + + @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() + + @test fma(interval(-Inf,-3.0), interval(1.0, 3.0), interval(-2.0,Inf)) === entireinterval() + + @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() + + @test fma(interval(-Inf,-3.0), interval(-5.0, Inf), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(-Inf,-3.0), interval(1.0, Inf), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(-Inf,-3.0), entireinterval(), interval(-2.0,Inf)) === entireinterval() + + @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(), 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(), 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() + + @test fma(interval(1.0,5.0), interval(-Inf, 3.0), interval(-2.0,Inf)) === entireinterval() + + @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(), interval(-2.0,Inf)) === entireinterval() + + @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(-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) + + @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() + + @test fma(interval(-1.0,5.0), interval(-Inf, 3.0), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(-5.0, Inf), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(1.0, Inf), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(-1.0,5.0), entireinterval(), interval(-2.0,Inf)) === entireinterval() + + @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() + + @test fma(interval(-10.0,-5.0), interval(1.0, Inf), interval(-2.0,Inf)) === entireinterval() + + @test fma(interval(-10.0,-5.0), entireinterval(), interval(-2.0,Inf)) === entireinterval() + + @test fma(emptyinterval(), emptyinterval(), entireinterval()) === emptyinterval() + + @test fma(interval(-1.0,1.0), emptyinterval(), entireinterval()) === emptyinterval() + + @test fma(emptyinterval(), interval(-1.0,1.0), entireinterval()) === emptyinterval() + + @test fma(emptyinterval(), entireinterval(), entireinterval()) === emptyinterval() + + @test fma(entireinterval(), emptyinterval(), entireinterval()) === emptyinterval() + + @test fma(interval(0.0,0.0), emptyinterval(), entireinterval()) === emptyinterval() + + @test fma(interval(-0.0,-0.0), emptyinterval(), entireinterval()) === emptyinterval() + + @test fma(emptyinterval(), interval(0.0,0.0), entireinterval()) === emptyinterval() + + @test fma(emptyinterval(), interval(-0.0,-0.0), entireinterval()) === emptyinterval() + + @test fma(entireinterval(), interval(0.0,0.0), entireinterval()) === entireinterval() + + @test fma(entireinterval(), interval(-0.0,-0.0), entireinterval()) === entireinterval() + + @test fma(entireinterval(), interval(-5.0, -1.0), entireinterval()) === entireinterval() + + @test fma(entireinterval(), interval(-5.0, 3.0), entireinterval()) === entireinterval() + + @test fma(entireinterval(), interval(1.0, 3.0), entireinterval()) === entireinterval() + + @test fma(entireinterval(), interval(-Inf, -1.0), entireinterval()) === entireinterval() + + @test fma(entireinterval(), interval(-Inf, 3.0), entireinterval()) === entireinterval() + + @test fma(entireinterval(), interval(-5.0, Inf), entireinterval()) === entireinterval() + + @test fma(entireinterval(), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test fma(entireinterval(), entireinterval(), entireinterval()) === entireinterval() + + @test fma(interval(1.0,Inf), interval(0.0,0.0), entireinterval()) === entireinterval() + + @test fma(interval(1.0,Inf), interval(-0.0,-0.0), entireinterval()) === entireinterval() + + @test fma(interval(1.0,Inf), interval(-5.0, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(1.0,Inf), interval(-5.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(1.0,Inf), interval(1.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(1.0,Inf), interval(-Inf, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(1.0,Inf), interval(-Inf, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(1.0,Inf), interval(-5.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(1.0,Inf), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(1.0,Inf), entireinterval(), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(0.0,0.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(-0.0,-0.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(-5.0, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(-5.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(1.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(-Inf, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(-Inf, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(-5.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,Inf), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,Inf), entireinterval(), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(0.0,0.0), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(-0.0,-0.0), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(-5.0, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(-5.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(1.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(-Inf, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(-Inf, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(-5.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,3.0), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,3.0), entireinterval(), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,-3.0), interval(0.0,0.0), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,-3.0), interval(-0.0,-0.0), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,-3.0), interval(-5.0, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,-3.0), interval(-5.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,-3.0), interval(1.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,-3.0), interval(-Inf, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,-3.0), interval(-Inf, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,-3.0), interval(-5.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,-3.0), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(-Inf,-3.0), entireinterval(), entireinterval()) === entireinterval() + + @test fma(interval(0.0,0.0), interval(0.0,0.0), entireinterval()) === entireinterval() + + @test fma(interval(0.0,0.0), interval(-0.0,-0.0), entireinterval()) === entireinterval() + + @test fma(interval(0.0,0.0), interval(-5.0, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(0.0,0.0), interval(-5.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(0.0,0.0), interval(1.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(0.0,0.0), interval(-Inf, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(0.0,0.0), interval(-Inf, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(0.0,0.0), interval(-5.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(0.0,0.0), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(0.0,0.0), entireinterval(), entireinterval()) === entireinterval() + + @test fma(interval(-0.0,-0.0), interval(0.0,0.0), entireinterval()) === entireinterval() + + @test fma(interval(-0.0,-0.0), interval(-0.0,-0.0), entireinterval()) === entireinterval() + + @test fma(interval(-0.0,-0.0), interval(-5.0, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(-0.0,-0.0), interval(-5.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-0.0,-0.0), interval(1.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-0.0,-0.0), interval(-Inf, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(-0.0,-0.0), interval(-Inf, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-0.0,-0.0), interval(-5.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(-0.0,-0.0), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(-0.0,-0.0), entireinterval(), entireinterval()) === entireinterval() + + @test fma(interval(1.0,5.0), interval(0.0,0.0), entireinterval()) === entireinterval() + + @test fma(interval(1.0,5.0), interval(-0.0,-0.0), entireinterval()) === entireinterval() + + @test fma(interval(1.0,5.0), interval(-5.0, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(1.0,5.0), interval(-5.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(1.0,5.0), interval(1.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(1.0,5.0), interval(-Inf, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(1.0,5.0), interval(-Inf, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(1.0,5.0), interval(-5.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(1.0,5.0), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(1.0,5.0), entireinterval(), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(0.0,0.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(-0.0,-0.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(-5.0, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(-5.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-10.0,2.0), interval(-5.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(-1.0, 10.0), entireinterval()) === entireinterval() + + @test fma(interval(-2.0,2.0), interval(-5.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(1.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(-Inf, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(-Inf, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(-5.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,5.0), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(-1.0,5.0), entireinterval(), entireinterval()) === entireinterval() + + @test fma(interval(-10.0,-5.0), interval(0.0,0.0), entireinterval()) === entireinterval() + + @test fma(interval(-10.0,-5.0), interval(-0.0,-0.0), entireinterval()) === entireinterval() + + @test fma(interval(-10.0,-5.0), interval(-5.0, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(-10.0,-5.0), interval(-5.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-10.0,-5.0), interval(1.0, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-10.0,-5.0), interval(-Inf, -1.0), entireinterval()) === entireinterval() + + @test fma(interval(-10.0,-5.0), interval(-Inf, 3.0), entireinterval()) === entireinterval() + + @test fma(interval(-10.0,-5.0), interval(-5.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(-10.0,-5.0), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test fma(interval(-10.0,-5.0), entireinterval(), entireinterval()) === entireinterval() + + @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 + +@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 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 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) + +end + +@testset "minimal_pown_test" begin + + @test ^(emptyinterval(), 0) === emptyinterval() + + @test ^(entireinterval(), 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 ^(emptyinterval(), 2) === emptyinterval() + + @test ^(entireinterval(), 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 ^(emptyinterval(), 8) === emptyinterval() + + @test ^(entireinterval(), 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 ^(emptyinterval(), 1) === emptyinterval() + + @test ^(entireinterval(), 1) === entireinterval() + + @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 ^(emptyinterval(), 3) === emptyinterval() + + @test ^(entireinterval(), 3) === entireinterval() + + @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 ^(emptyinterval(), 7) === emptyinterval() + + @test ^(entireinterval(), 7) === entireinterval() + + @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 ^(emptyinterval(), -2) === emptyinterval() + + @test ^(entireinterval(), -2) === Interval(0.0,Inf) + + @test ^(interval(0.0,0.0), -2) === emptyinterval() + + @test ^(interval(-0.0,-0.0), -2) === emptyinterval() + + @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 ^(emptyinterval(), -8) === emptyinterval() + + @test ^(entireinterval(), -8) === Interval(0.0,Inf) + + @test ^(interval(0.0,0.0), -8) === emptyinterval() + + @test ^(interval(-0.0,-0.0), -8) === emptyinterval() + + @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 ^(emptyinterval(), -1) === emptyinterval() + + @test ^(entireinterval(), -1) === entireinterval() + + @test ^(interval(0.0,0.0), -1) === emptyinterval() + + @test ^(interval(-0.0,-0.0), -1) === emptyinterval() + + @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() + + @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 ^(emptyinterval(), -3) === emptyinterval() + + @test ^(entireinterval(), -3) === entireinterval() + + @test ^(interval(0.0,0.0), -3) === emptyinterval() + + @test ^(interval(-0.0,-0.0), -3) === emptyinterval() + + @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() + + @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 ^(emptyinterval(), -7) === emptyinterval() + + @test ^(entireinterval(), -7) === entireinterval() + + @test ^(interval(0.0,0.0), -7) === emptyinterval() + + @test ^(interval(-0.0,-0.0), -7) === emptyinterval() + + @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() + + @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 + +@testset "minimal_pown_dec_test" begin + + @test ^(DecoratedInterval(interval(-5.0,10.0), com), 0) === DecoratedInterval(Interval(1.0,1.0), com) + + @test ^(DecoratedInterval(interval(-Inf,15.0), dac), 0) === DecoratedInterval(Interval(1.0,1.0), dac) + + @test ^(DecoratedInterval(interval(-3.0,5.0), def), 2) === DecoratedInterval(Interval(0.0,25.0), def) + + @test ^(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,2.0), com), 2) === DecoratedInterval(Interval(0.0,Inf), dac) + + @test ^(DecoratedInterval(interval(-3.0,5.0), dac), 3) === DecoratedInterval(Interval(-27.0,125.0), dac) + + @test ^(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,2.0), com), 3) === 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 ^(DecoratedInterval(interval(-5.0,-3.0), def), -2) === 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 ^(DecoratedInterval(interval(3.0,5.0), dac), -3) === DecoratedInterval(Interval(0x1.0624DD2F1A9FBP-7 ,0x1.2F684BDA12F69P-5), dac) + + @test ^(DecoratedInterval(interval(-3.0,5.0), com), -3) === DecoratedInterval(entireinterval(), trv) + +end + +@testset "minimal_pow_test" begin + + @test ^(emptyinterval(), emptyinterval()) === emptyinterval() + + @test ^(emptyinterval(), entireinterval()) === emptyinterval() + + @test ^(emptyinterval(), interval(-Inf,-1.0)) === emptyinterval() + + @test ^(emptyinterval(), interval(-Inf,0.0)) === emptyinterval() + + @test ^(emptyinterval(), interval(-Inf,-0.0)) === emptyinterval() + + @test ^(emptyinterval(), interval(0.0,Inf)) === emptyinterval() + + @test ^(emptyinterval(), interval(-0.0,Inf)) === emptyinterval() + + @test ^(emptyinterval(), interval(1.0,Inf)) === emptyinterval() + + @test ^(emptyinterval(), interval(-3.0,5.0)) === emptyinterval() + + @test ^(emptyinterval(), interval(0.0,0.0)) === emptyinterval() + + @test ^(emptyinterval(), interval(-0.0,-0.0)) === emptyinterval() + + @test ^(emptyinterval(), interval(-5.0,-5.0)) === emptyinterval() + + @test ^(emptyinterval(), interval(5.0,5.0)) === emptyinterval() + + @test ^(interval(0.1,0.5), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @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()) === 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), emptyinterval()) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(0.0,0.0)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-0.0,-0.0)) === emptyinterval() + + @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()) === Interval(0.0,0.0) + + @test ^(interval(0.0,0.0), interval(-1.0,0.0)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-1.0,-0.0)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-2.5,0.0)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-2.5,-0.0)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-Inf,0.0)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-Inf,-0.0)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-0.1,-0.1)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-1.0,-0.1)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-2.5,-0.1)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-Inf,-0.1)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-1.0,-1.0)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-2.5,-1.0)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-Inf,-1.0)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-Inf,-2.5)) === emptyinterval() + + @test ^(interval(0.0,0.0), interval(-2.5,-2.5)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), emptyinterval()) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(0.0,0.0)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-0.0,-0.0)) === emptyinterval() + + @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()) === Interval(0.0,0.0) + + @test ^(interval(-0.0,-0.0), interval(-1.0,0.0)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-1.0,-0.0)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-2.5,0.0)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-2.5,-0.0)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-Inf,0.0)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-Inf,-0.0)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-0.1,-0.1)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-1.0,-0.1)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-2.5,-0.1)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-Inf,-0.1)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-1.0,-1.0)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-2.5,-1.0)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-Inf,-1.0)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-Inf,-2.5)) === emptyinterval() + + @test ^(interval(-0.0,-0.0), interval(-2.5,-2.5)) === emptyinterval() + + @test ^(interval(-0.0,0.0), emptyinterval()) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(0.0,0.0)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-0.0,-0.0)) === emptyinterval() + + @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()) === Interval(0.0,0.0) + + @test ^(interval(-0.0,0.0), interval(-1.0,0.0)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-1.0,-0.0)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-2.5,0.0)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-2.5,-0.0)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-Inf,0.0)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-Inf,-0.0)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-0.1,-0.1)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-1.0,-0.1)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-2.5,-0.1)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-Inf,-0.1)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-1.0,-1.0)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-2.5,-1.0)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-Inf,-1.0)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-Inf,-2.5)) === emptyinterval() + + @test ^(interval(-0.0,0.0), interval(-2.5,-2.5)) === emptyinterval() + + @test ^(interval(0.0,-0.0), emptyinterval()) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(0.0,0.0)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-0.0,-0.0)) === emptyinterval() + + @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()) === Interval(0.0,0.0) + + @test ^(interval(0.0,-0.0), interval(-1.0,0.0)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-1.0,-0.0)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-2.5,0.0)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-2.5,-0.0)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-Inf,0.0)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-Inf,-0.0)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-0.1,-0.1)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-1.0,-0.1)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-2.5,-0.1)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-Inf,-0.1)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-1.0,-1.0)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-2.5,-1.0)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-Inf,-1.0)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-Inf,-2.5)) === emptyinterval() + + @test ^(interval(0.0,-0.0), interval(-2.5,-2.5)) === emptyinterval() + + @test ^(interval(-1.0,0.0), emptyinterval()) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(0.0,0.0)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-0.0,-0.0)) === emptyinterval() + + @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()) === Interval(0.0,0.0) + + @test ^(interval(-1.0,0.0), interval(-1.0,0.0)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-1.0,-0.0)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-2.5,0.0)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-2.5,-0.0)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-Inf,0.0)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-Inf,-0.0)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-0.1,-0.1)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-1.0,-0.1)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-2.5,-0.1)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-Inf,-0.1)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-1.0,-1.0)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-2.5,-1.0)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-Inf,-1.0)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-Inf,-2.5)) === emptyinterval() + + @test ^(interval(-1.0,0.0), interval(-2.5,-2.5)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), emptyinterval()) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(0.0,0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-0.0,-0.0)) === emptyinterval() + + @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()) === Interval(0.0,0.0) + + @test ^(interval(-1.0,-0.0), interval(-1.0,0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-1.0,-0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-2.5,0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-2.5,-0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-Inf,0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-Inf,-0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-0.1,-0.1)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-1.0,-0.1)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-2.5,-0.1)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-Inf,-0.1)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-1.0,-1.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-2.5,-1.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-Inf,-1.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-Inf,-2.5)) === emptyinterval() + + @test ^(interval(-1.0,-0.0), interval(-2.5,-2.5)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), emptyinterval()) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(0.0,0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-0.0,-0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(0.0,1.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-0.0,1.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(0.0,2.5)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-0.0,2.5)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(0.0,Inf)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-0.0,Inf)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(0.1,0.1)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(0.1,1.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(0.1,2.5)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(0.1,Inf)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(1.0,1.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(1.0,2.5)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(1.0,Inf)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(2.5,2.5)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(2.5,Inf)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-0.1,0.1)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-0.1,1.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-0.1,2.5)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-0.1,Inf)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-1.0,0.1)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-1.0,1.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-1.0,2.5)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-1.0,Inf)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-2.5,0.1)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-2.5,1.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-2.5,2.5)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-2.5,Inf)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-Inf,0.1)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-Inf,1.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-Inf,2.5)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), entireinterval()) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-1.0,0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-1.0,-0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-2.5,0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-2.5,-0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-Inf,0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-Inf,-0.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-0.1,-0.1)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-1.0,-0.1)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-2.5,-0.1)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-Inf,-0.1)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-1.0,-1.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-2.5,-1.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-Inf,-1.0)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-Inf,-2.5)) === emptyinterval() + + @test ^(interval(-1.0,-0.1), interval(-2.5,-2.5)) === emptyinterval() + +end + +@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 ^(DecoratedInterval(interval(0.1,0.5), com), DecoratedInterval(interval(0.1,0.1), def)) === 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 ^(DecoratedInterval(interval(0.1,0.5), com), DecoratedInterval(interval(-2.5,Inf), dac)) === 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 ^(DecoratedInterval(interval(0.1,1.0), com), DecoratedInterval(interval(0.0,2.5), com)) === 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 ^(DecoratedInterval(interval(0.1,1.0), trv), DecoratedInterval(interval(-2.5,1.0), def)) === 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 ^(DecoratedInterval(interval(0.5,1.5), def), DecoratedInterval(interval(-2.5,0.1), trv)) === 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 ^(DecoratedInterval(interval(0.5,Inf), dac), DecoratedInterval(interval(0.1,0.1), com)) === 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 ^(DecoratedInterval(interval(1.0,1.5), com), DecoratedInterval(interval(-0.1,0.1), def)) === 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 ^(DecoratedInterval(interval(1.0,Inf), dac), DecoratedInterval(interval(1.0,1.0), dac)) === 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 ^(DecoratedInterval(interval(1.1,1.5), def), DecoratedInterval(interval(1.0,2.5), com)) === 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 ^(DecoratedInterval(interval(1.1,Inf), dac), DecoratedInterval(interval(0.1,Inf), dac)) === 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 ^(DecoratedInterval(interval(1.1,Inf), trv), DecoratedInterval(interval(-Inf,-1.0), def)) === 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 ^(DecoratedInterval(interval(0.0,0.5), com), DecoratedInterval(interval(2.5,Inf), dac)) === 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 ^(DecoratedInterval(interval(0.0,1.0), com), DecoratedInterval(interval(0.0,0.0), com)) === 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 ^(DecoratedInterval(interval(0.0,1.0), dac), DecoratedInterval(interval(1.0,2.5), com)) === 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 ^(DecoratedInterval(interval(0.0,1.0), def), DecoratedInterval(entireinterval(), def)) === 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 ^(DecoratedInterval(interval(0.0,1.0), com), DecoratedInterval(interval(-Inf,0.0), dac)) === 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 ^(DecoratedInterval(interval(0.0,1.5), com), DecoratedInterval(interval(0.0,2.5), com)) === 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 ^(DecoratedInterval(interval(0.0,1.5), dac), DecoratedInterval(interval(-1.0,0.0), com)) === 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 ^(DecoratedInterval(interval(0.0,Inf), dac), DecoratedInterval(interval(0.1,0.1), com)) === 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 ^(DecoratedInterval(interval(0.0,Inf), trv), DecoratedInterval(interval(-Inf,-1.0), def)) === 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 ^(DecoratedInterval(interval(-0.0,0.5), com), DecoratedInterval(interval(0.0,Inf), dac)) === 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 ^(DecoratedInterval(interval(-0.0,0.5), dac), DecoratedInterval(interval(2.5,2.5), com)) === 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 ^(DecoratedInterval(interval(-0.0,0.5), com), DecoratedInterval(interval(-Inf,-0.1), def)) === 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 ^(DecoratedInterval(interval(-0.0,1.0), com), DecoratedInterval(interval(2.5,2.5), dac)) === 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 ^(DecoratedInterval(interval(-0.0,1.0), com), DecoratedInterval(entireinterval(), def)) === 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 ^(DecoratedInterval(interval(-0.0,1.0), dac), DecoratedInterval(interval(-Inf,-2.5), def)) === 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 ^(DecoratedInterval(interval(-0.0,1.5), def), DecoratedInterval(interval(-1.0,0.0), trv)) === 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 ^(DecoratedInterval(interval(-0.0,1.5), com), DecoratedInterval(interval(-2.5,-2.5), com)) === 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 ^(DecoratedInterval(interval(-0.0,Inf), dac), DecoratedInterval(interval(-0.1,Inf), dac)) === 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 ^(DecoratedInterval(interval(-0.0,Inf), trv), DecoratedInterval(interval(-Inf,0.0), def)) === 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 ^(DecoratedInterval(interval(-0.0,Inf), def), DecoratedInterval(interval(-Inf,-1.0), def)) === 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 ^(DecoratedInterval(interval(-0.1,0.5), com), DecoratedInterval(interval(-0.1,-0.1), com)) === 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 ^(DecoratedInterval(interval(-0.1,1.0), com), DecoratedInterval(interval(0.0,0.0), com)) === 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 ^(DecoratedInterval(interval(-0.1,1.0), def), DecoratedInterval(interval(-Inf,-1.0), def)) === 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 ^(DecoratedInterval(interval(-0.1,1.0), trv), DecoratedInterval(interval(-Inf,-2.5), trv)) === 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 ^(DecoratedInterval(interval(-0.1,1.5), com), DecoratedInterval(interval(2.5,2.5), dac)) === 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 ^(DecoratedInterval(interval(-0.1,1.5), com), DecoratedInterval(interval(-0.1,-0.1), com)) === 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 ^(DecoratedInterval(interval(-0.1,Inf), dac), DecoratedInterval(interval(-0.1,2.5), com)) === 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 ^(DecoratedInterval(interval(-0.1,Inf), dac), DecoratedInterval(interval(-2.5,-2.5), trv)) === 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 ^(DecoratedInterval(interval(0.0,0.0), com), DecoratedInterval(interval(-2.5,0.1), com)) === DecoratedInterval(Interval(0.0,0.0), trv) + + @test ^(DecoratedInterval(interval(0.0,0.0), dac), DecoratedInterval(interval(-1.0,0.0), def)) === DecoratedInterval(emptyinterval(), trv) + + @test ^(DecoratedInterval(interval(-1.0,-0.1), com), DecoratedInterval(interval(-0.1,1.0), def)) === DecoratedInterval(emptyinterval(), trv) + + @test ^(DecoratedInterval(interval(-1.0,-0.1), dac), DecoratedInterval(interval(-0.1,2.5), com)) === DecoratedInterval(emptyinterval(), trv) + + @test ^(DecoratedInterval(interval(-1.0,-0.1), def), DecoratedInterval(interval(-0.1,Inf), trv)) === DecoratedInterval(emptyinterval(), trv) + +end + +@testset "minimal_exp_test" begin + + @test exp(emptyinterval()) === emptyinterval() + + @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()) === 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 + +@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 exp(DecoratedInterval(interval(0.0,0x1.62E42FEFA39EP+9), def)) === DecoratedInterval(Interval(1.0,0x1.FFFFFFFFFC32BP+1023), def) + +end + +@testset "minimal_exp2_test" begin + + @test exp2(emptyinterval()) === emptyinterval() + + @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()) === 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 + +@testset "minimal_exp2_dec_test" begin + + @test exp2(DecoratedInterval(interval(1024.0,1024.0), com)) === 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) + +end + +@testset "minimal_exp10_test" begin + + @test exp10(emptyinterval()) === emptyinterval() + + @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()) === 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 + +@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 exp10(DecoratedInterval(interval(0x1.87F42B972949CP-1,0x1.8B55484710029P+6), def)) === DecoratedInterval(Interval(0x1.75014B7296807P+2,0x1.3EEC1D47DFB2BP+328), def) + +end + +@testset "minimal_log_test" begin + + @test log(emptyinterval()) === emptyinterval() + + @test log(interval(-Inf,0.0)) === emptyinterval() + + @test log(interval(-Inf,-0.0)) === emptyinterval() + + @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() + + @test log(interval(-0.0,Inf)) === entireinterval() + + @test log(entireinterval()) === entireinterval() + + @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 + +@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 log(DecoratedInterval(interval(0.0,1.0), com)) === 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) + +end + +@testset "minimal_log2_test" begin + + @test log2(emptyinterval()) === emptyinterval() + + @test log2(interval(-Inf,0.0)) === emptyinterval() + + @test log2(interval(-Inf,-0.0)) === emptyinterval() + + @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() + + @test log2(interval(-0.0,Inf)) === entireinterval() + + @test log2(entireinterval()) === entireinterval() + + @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 + +@testset "minimal_log2_dec_test" begin + + @test log2(DecoratedInterval(interval(0x0.0000000000001p-1022,0x1.FFFFFFFFFFFFFp1023), com)) === DecoratedInterval(Interval(-1074.0,1024.0), com) + + @test log2(DecoratedInterval(interval(0x0.0000000000001p-1022,Inf), dac)) === DecoratedInterval(Interval(-1074.0,Inf), dac) + + @test log2(DecoratedInterval(interval(2.0,32.0), def)) === DecoratedInterval(Interval(1.0,5.0), def) + + @test log2(DecoratedInterval(interval(0.0,0x1.FFFFFFFFFFFFFp1023), com)) === DecoratedInterval(Interval(-Inf,1024.0), trv) + +end + +@testset "minimal_log10_test" begin + + @test log10(emptyinterval()) === emptyinterval() + + @test log10(interval(-Inf,0.0)) === emptyinterval() + + @test log10(interval(-Inf,-0.0)) === emptyinterval() + + @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() + + @test log10(interval(-0.0,Inf)) === entireinterval() + + @test log10(entireinterval()) === entireinterval() + + @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 + +@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 log10(DecoratedInterval(interval(0.0,0x1.FFFFFFFFFFFFFp1023), dac)) === DecoratedInterval(Interval(-Inf,0x1.34413509F79FFP+8), trv) + +end + +@testset "minimal_sin_test" begin + + @test sin(emptyinterval()) === emptyinterval() + + @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()) === 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 + +@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 sin(DecoratedInterval(interval(-Inf,-0.0), trv)) === DecoratedInterval(Interval(-1.0,1.0), trv) + + @test sin(DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(-1.0,1.0), dac) + +end + +@testset "minimal_cos_test" begin + + @test cos(emptyinterval()) === emptyinterval() + + @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()) === 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 + +@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 cos(DecoratedInterval(interval(-Inf,-0.0), def)) === DecoratedInterval(Interval(-1.0,1.0), def) + + @test cos(DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(-1.0,1.0), dac) + +end + +@testset "minimal_tan_test" begin + + @test tan(emptyinterval()) === emptyinterval() + + @test tan(interval(0.0,Inf)) === entireinterval() + + @test tan(interval(-0.0,Inf)) === entireinterval() + + @test tan(interval(-Inf,0.0)) === entireinterval() + + @test tan(interval(-Inf,-0.0)) === entireinterval() + + @test tan(entireinterval()) === entireinterval() + + @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() + + @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() + + @test tan(interval(-0.0,0x1.921FB54442D19P+0)) === entireinterval() + + @test tan(interval(0.0,0x1.921FB54442D18P+1)) === entireinterval() + + @test tan(interval(-0.0,0x1.921FB54442D18P+1)) === entireinterval() + + @test tan(interval(0.0,0x1.921FB54442D19P+1)) === entireinterval() + + @test tan(interval(-0.0,0x1.921FB54442D19P+1)) === entireinterval() + + @test tan(interval(0x1P-51,0x1.921FB54442D18P+1)) === entireinterval() + + @test tan(interval(0x1P-51,0x1.921FB54442D19P+1)) === entireinterval() + + @test tan(interval(0x1P-52,0x1.921FB54442D18P+1)) === entireinterval() + + @test tan(interval(0x1P-52,0x1.921FB54442D19P+1)) === entireinterval() + + @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() + + @test tan(interval(-0x1.921FB54442D19P+0,0x1.921FB54442D18P+0)) === entireinterval() + + @test tan(interval(-0x1.921FB54442D19P+0,0x1.921FB54442D19P+0)) === entireinterval() + + @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() + + @test tan(interval(0x1.FAE147AE147AEP-1,0x1.028F5C28F5C29P+0)) === Interval(0x1.860FADCC59064P+0,0x1.979AD0628469DP+0) + +end + +@testset "minimal_tan_dec_test" begin + + @test tan(DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test tan(DecoratedInterval(interval(0.0,Inf), dac)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(-0.0,Inf), def)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(-Inf,0.0), trv)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(-Inf,-0.0), dac)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(0.0,0.0), com)) === DecoratedInterval(Interval(0.0,0.0), com) + + @test tan(DecoratedInterval(interval(-0.0,-0.0), def)) === 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 tan(DecoratedInterval(interval(0x1.921FB54442D19P+0,0x1.921FB54442D19P+0), def)) === DecoratedInterval(Interval(-0x1.617A15494767BP+52,-0x1.617A15494767AP+52), def) + + @test tan(DecoratedInterval(interval(0x1.921FB54442D18P+0,0x1.921FB54442D19P+0), dac)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(0x1.921FB54442D18P+1,0x1.921FB54442D18P+1), trv)) === 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 tan(DecoratedInterval(interval(0.0,0x1.921FB54442D18P+0), dac)) === 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 tan(DecoratedInterval(interval(0.0,0x1.921FB54442D19P+0), trv)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(-0.0,0x1.921FB54442D19P+0), def)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(0.0,0x1.921FB54442D18P+1), dac)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(-0.0,0x1.921FB54442D18P+1), com)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(0.0,0x1.921FB54442D19P+1), trv)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(-0.0,0x1.921FB54442D19P+1), def)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(0x1P-51,0x1.921FB54442D18P+1), dac)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(0x1P-51,0x1.921FB54442D19P+1), com)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(0x1P-52,0x1.921FB54442D18P+1), trv)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(0x1P-52,0x1.921FB54442D19P+1), def)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(-0x1.921FB54442D18P+0,0x1.921FB54442D18P+0), com)) === DecoratedInterval(Interval(-0x1.D02967C31CDB5P+53,0x1.D02967C31CDB5P+53), com) + + @test tan(DecoratedInterval(interval(-0x1.921FB54442D18P+0,0x1.921FB54442D19P+0), trv)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(-0x1.921FB54442D19P+0,0x1.921FB54442D18P+0), def)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(-0x1.921FB54442D19P+0,0x1.921FB54442D19P+0), dac)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(-0x1.555475A31A4BEP-2,0x1.999999999999AP-4), com)) === 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 tan(DecoratedInterval(interval(0x1.4E18E147AE148P+12,0x1.546028F5C28F6P+12), def)) === DecoratedInterval(entireinterval(), trv) + + @test tan(DecoratedInterval(interval(0x1.FAE147AE147AEP-1,0x1.028F5C28F5C29P+0), trv)) === DecoratedInterval(Interval(0x1.860FADCC59064P+0,0x1.979AD0628469DP+0), trv) + +end + +@testset "minimal_asin_test" begin + + @test asin(emptyinterval()) === emptyinterval() + + @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()) === 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)) === emptyinterval() + + @test asin(interval(0x1.0000000000001P+0,Inf)) === emptyinterval() + + @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 + +@testset "minimal_asin_dec_test" begin + + @test asin(DecoratedInterval(interval(0.0,Inf), dac)) === 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 asin(DecoratedInterval(interval(-1.0,1.0), com)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0,0x1.921FB54442D19P+0), com) + + @test asin(DecoratedInterval(entireinterval(), dac)) === 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) + +end + +@testset "minimal_acos_test" begin + + @test acos(emptyinterval()) === emptyinterval() + + @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()) === 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)) === emptyinterval() + + @test acos(interval(0x1.0000000000001P+0,Inf)) === emptyinterval() + + @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 + +@testset "minimal_acos_dec_test" begin + + @test acos(DecoratedInterval(interval(0.0,Inf), dac)) === 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 acos(DecoratedInterval(interval(-1.0,1.0), com)) === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+1), com) + + @test acos(DecoratedInterval(entireinterval(), dac)) === 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) + +end + +@testset "minimal_atan_test" begin + + @test atan(emptyinterval()) === emptyinterval() + + @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()) === 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 + +@testset "minimal_atan_dec_test" begin + + @test atan(DecoratedInterval(interval(0.0,Inf), dac)) === 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 atan(DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0,0x1.921FB54442D19P+0), dac) + + @test atan(DecoratedInterval(interval(1.0,0x1.4C2463567C5ACP+25), trv)) === 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) + +end + +@testset "minimal_atan2_test" begin + + @test atan(emptyinterval(), emptyinterval()) === emptyinterval() + + @test atan(emptyinterval(), entireinterval()) === emptyinterval() + + @test atan(emptyinterval(), interval(0.0, 0.0)) === emptyinterval() + + @test atan(emptyinterval(), interval(-0.0, 0.0)) === emptyinterval() + + @test atan(emptyinterval(), interval(0.0, -0.0)) === emptyinterval() + + @test atan(emptyinterval(), interval(-0.0, -0.0)) === emptyinterval() + + @test atan(emptyinterval(), interval(-2.0, -0.1)) === emptyinterval() + + @test atan(emptyinterval(), interval(-2.0, 0.0)) === emptyinterval() + + @test atan(emptyinterval(), interval(-2.0, -0.0)) === emptyinterval() + + @test atan(emptyinterval(), interval(-2.0, 1.0)) === emptyinterval() + + @test atan(emptyinterval(), interval(0.0, 1.0)) === emptyinterval() + + @test atan(emptyinterval(), interval(-0.0, 1.0)) === emptyinterval() + + @test atan(emptyinterval(), interval(0.1, 1.0)) === emptyinterval() + + @test atan(entireinterval(), emptyinterval()) === emptyinterval() + + @test atan(entireinterval(), entireinterval()) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(entireinterval(), interval(0.0, 0.0)) === Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0) + + @test atan(entireinterval(), interval(0.0, -0.0)) === Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0) + + @test atan(entireinterval(), interval(-0.0, 0.0)) === Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0) + + @test atan(entireinterval(), interval(-0.0, -0.0)) === Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0) + + @test atan(entireinterval(), interval(-2.0, -0.1)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(entireinterval(), interval(-2.0, 0.0)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(entireinterval(), interval(-2.0, -0.0)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(entireinterval(), interval(-2.0, 1.0)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(entireinterval(), interval(0.0, 1.0)) === Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0) + + @test atan(entireinterval(), interval(-0.0, 1.0)) === Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0) + + @test atan(entireinterval(), interval(0.1, 1.0)) === Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0.0, 0.0), emptyinterval()) === emptyinterval() + + @test atan(interval(0.0, 0.0), entireinterval()) === Interval(0.0,0x1.921FB54442D19P+1) + + @test atan(interval(0.0, 0.0), interval(0.0, 0.0)) === emptyinterval() + + @test atan(interval(0.0, 0.0), interval(-0.0, 0.0)) === emptyinterval() + + @test atan(interval(0.0, 0.0), interval(0.0, -0.0)) === emptyinterval() + + @test atan(interval(0.0, 0.0), interval(-0.0, -0.0)) === emptyinterval() + + @test atan(interval(0.0, 0.0), interval(-2.0, -0.1)) === Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(0.0, 0.0), interval(-2.0, 0.0)) === Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(0.0, 0.0), interval(-2.0, -0.0)) === Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(0.0, 0.0), interval(-2.0, 1.0)) === Interval(0.0,0x1.921FB54442D19P+1) + + @test atan(interval(0.0, 0.0), interval(0.0, 1.0)) === Interval(0.0,0.0) + + @test atan(interval(0.0, 0.0), interval(-0.0, 1.0)) === Interval(0.0,0.0) + + @test atan(interval(0.0, 0.0), interval(0.1, 1.0)) === Interval(0.0,0.0) + + @test atan(interval(-0.0, 0.0), emptyinterval()) === emptyinterval() + + @test atan(interval(-0.0, 0.0), entireinterval()) === Interval(0.0,0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, 0.0), interval(0.0, 0.0)) === emptyinterval() + + @test atan(interval(-0.0, 0.0), interval(-0.0, 0.0)) === emptyinterval() + + @test atan(interval(-0.0, 0.0), interval(0.0, -0.0)) === emptyinterval() + + @test atan(interval(-0.0, 0.0), interval(-0.0, -0.0)) === emptyinterval() + + @test atan(interval(-0.0, 0.0), interval(-2.0, -0.1)) === Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, 0.0), interval(-2.0, 0.0)) === Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, 0.0), interval(-2.0, -0.0)) === Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, 0.0), interval(-2.0, 1.0)) === Interval(0.0,0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, 0.0), interval(0.0, 1.0)) === Interval(0.0,0.0) + + @test atan(interval(-0.0, 0.0), interval(-0.0, 1.0)) === Interval(0.0,0.0) + + @test atan(interval(-0.0, 0.0), interval(0.1, 1.0)) === Interval(0.0,0.0) + + @test atan(interval(0.0, -0.0), emptyinterval()) === emptyinterval() + + @test atan(interval(0.0, -0.0), entireinterval()) === Interval(0.0,0x1.921FB54442D19P+1) + + @test atan(interval(0.0, -0.0), interval(0.0, 0.0)) === emptyinterval() + + @test atan(interval(0.0, -0.0), interval(-0.0, 0.0)) === emptyinterval() + + @test atan(interval(0.0, -0.0), interval(0.0, -0.0)) === emptyinterval() + + @test atan(interval(0.0, -0.0), interval(-0.0, -0.0)) === emptyinterval() + + @test atan(interval(0.0, -0.0), interval(-2.0, -0.1)) === Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(0.0, -0.0), interval(-2.0, 0.0)) === Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(0.0, -0.0), interval(-2.0, -0.0)) === Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(0.0, -0.0), interval(-2.0, 1.0)) === Interval(0.0,0x1.921FB54442D19P+1) + + @test atan(interval(0.0, -0.0), interval(0.0, 1.0)) === Interval(0.0,0.0) + + @test atan(interval(0.0, -0.0), interval(-0.0, 1.0)) === Interval(0.0,0.0) + + @test atan(interval(0.0, -0.0), interval(0.1, 1.0)) === Interval(0.0,0.0) + + @test atan(interval(-0.0, -0.0), emptyinterval()) === emptyinterval() + + @test atan(interval(-0.0, -0.0), entireinterval()) === Interval(0.0,0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, -0.0), interval(0.0, 0.0)) === emptyinterval() + + @test atan(interval(-0.0, -0.0), interval(-0.0, 0.0)) === emptyinterval() + + @test atan(interval(-0.0, -0.0), interval(0.0, -0.0)) === emptyinterval() + + @test atan(interval(-0.0, -0.0), interval(-0.0, -0.0)) === emptyinterval() + + @test atan(interval(-0.0, -0.0), interval(-2.0, -0.1)) === Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, -0.0), interval(-2.0, 0.0)) === Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, -0.0), interval(-2.0, -0.0)) === Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, -0.0), interval(-2.0, 1.0)) === Interval(0.0,0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, -0.0), interval(0.0, 1.0)) === Interval(0.0,0.0) + + @test atan(interval(-0.0, -0.0), interval(-0.0, 1.0)) === Interval(0.0,0.0) + + @test atan(interval(-0.0, -0.0), interval(0.1, 1.0)) === Interval(0.0,0.0) + + @test atan(interval(-2.0, -0.1), emptyinterval()) === emptyinterval() + + @test atan(interval(-2.0, -0.1), entireinterval()) === Interval(-0x1.921FB54442D19P+1,0.0) + + @test atan(interval(-2.0, -0.1), interval(0.0, 0.0)) === Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0) + + @test atan(interval(-2.0, -0.1), interval(0.0, -0.0)) === Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0) + + @test atan(interval(-2.0, -0.1), interval(-0.0, 0.0)) === Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0) + + @test atan(interval(-2.0, -0.1), interval(0.0, -0.0)) === Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0) + + @test atan(interval(-2.0, -0.1), interval(-2.0, -0.1)) === Interval(-0x1.8BBAABDE5E29CP+1, -0x1.9EE9C8100C211P+0) + + @test atan(interval(-2.0, -0.1), interval(-2.0, 0.0)) === Interval(-0x1.8BBAABDE5E29CP+1, -0x1.921FB54442D18P+0) + + @test atan(interval(-2.0, -0.1), interval(-2.0, -0.0)) === Interval(-0x1.8BBAABDE5E29CP+1, -0x1.921FB54442D18P+0) + + @test atan(interval(-2.0, -0.1), interval(-2.0, 1.0)) === Interval(-0x1.8BBAABDE5E29CP+1, -0x1.983E282E2CC4CP-4) + + @test atan(interval(-2.0, -0.1), interval(0.0, 1.0)) === Interval(-0x1.921FB54442D19P+0, -0x1.983E282E2CC4CP-4) + + @test atan(interval(-2.0, -0.1), interval(-0.0, 1.0)) === Interval(-0x1.921FB54442D19P+0, -0x1.983E282E2CC4CP-4) + + @test atan(interval(-2.0, -0.1), interval(0.1, 1.0)) === Interval(-0x1.8555A2787982P+0, -0x1.983E282E2CC4CP-4) + + @test atan(interval(-2.0, 0.0), emptyinterval()) === emptyinterval() + + @test atan(interval(-2.0, 0.0), entireinterval()) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, 0.0), interval(0.0, 0.0)) === Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0) + + @test atan(interval(-2.0, 0.0), interval(-0.0, 0.0)) === Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0) + + @test atan(interval(-2.0, 0.0), interval(0.0, -0.0)) === Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0) + + @test atan(interval(-2.0, 0.0), interval(-0.0, -0.0)) === Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0) + + @test atan(interval(-2.0, 0.0), interval(-2.0, -0.1)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, 0.0), interval(-2.0, 0.0)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, 0.0), interval(-2.0, -0.0)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, 0.0), interval(-2.0, 1.0)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, 0.0), interval(0.0, 1.0)) === Interval(-0x1.921FB54442D19P+0, 0.0) + + @test atan(interval(-2.0, 0.0), interval(-0.0, 1.0)) === Interval(-0x1.921FB54442D19P+0, 0.0) + + @test atan(interval(-2.0, 0.0), interval(0.1, 1.0)) === Interval(-0x1.8555A2787982P+0, 0.0) + + @test atan(interval(-2.0, -0.0), emptyinterval()) === emptyinterval() + + @test atan(interval(-2.0, -0.0), entireinterval()) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, -0.0), interval(0.0, 0.0)) === Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0) + + @test atan(interval(-2.0, -0.0), interval(-0.0, 0.0)) === Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0) + + @test atan(interval(-2.0, -0.0), interval(0.0, -0.0)) === Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0) + + @test atan(interval(-2.0, -0.0), interval(-0.0, -0.0)) === Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0) + + @test atan(interval(-2.0, -0.0), interval(-2.0, -0.1)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, -0.0), interval(-2.0, 0.0)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, -0.0), interval(-2.0, -0.0)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, -0.0), interval(-2.0, 1.0)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, -0.0), interval(0.0, 1.0)) === Interval(-0x1.921FB54442D19P+0, 0.0) + + @test atan(interval(-2.0, -0.0), interval(-0.0, 1.0)) === Interval(-0x1.921FB54442D19P+0, 0.0) + + @test atan(interval(-2.0, -0.0), interval(0.1, 1.0)) === Interval(-0x1.8555A2787982P+0, 0.0) + + @test atan(interval(-2.0, 1.0), emptyinterval()) === emptyinterval() + + @test atan(interval(-2.0, 1.0), entireinterval()) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, 1.0), interval(0.0, 0.0)) === Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(-2.0, 1.0), interval(-0.0, 0.0)) === Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(-2.0, 1.0), interval(0.0, -0.0)) === Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(-2.0, 1.0), interval(-0.0, -0.0)) === Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(-2.0, 1.0), interval(-2.0, -0.1)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, 1.0), interval(-2.0, 0.0)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, 1.0), interval(-2.0, -0.0)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, 1.0), interval(-2.0, 1.0)) === Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1) + + @test atan(interval(-2.0, 1.0), interval(0.0, 1.0)) === Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(-2.0, 1.0), interval(-0.0, 1.0)) === Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(-2.0, 1.0), interval(0.1, 1.0)) === Interval(-0x1.8555A2787982P+0, 0x1.789BD2C160054P+0) + + @test atan(interval(-0.0, 1.0), emptyinterval()) === emptyinterval() + + @test atan(interval(-0.0, 1.0), entireinterval()) === Interval(0.0, 0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, 1.0), interval(0.0, 0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(-0.0, 1.0), interval(-0.0, 0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(-0.0, 1.0), interval(0.0, -0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(-0.0, 1.0), interval(-0.0, -0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(-0.0, 1.0), interval(-2.0, -0.1)) === Interval(0x1.ABA397C7259DDP+0, 0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, 1.0), interval(-2.0, 0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, 1.0), interval(-2.0, -0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, 1.0), interval(-2.0, 1.0)) === Interval(0.0, 0x1.921FB54442D19P+1) + + @test atan(interval(-0.0, 1.0), interval(0.0, 1.0)) === Interval(0.0,0x1.921FB54442D19P+0) + + @test atan(interval(-0.0, 1.0), interval(-0.0, 1.0)) === Interval(0.0,0x1.921FB54442D19P+0) + + @test atan(interval(-0.0, 1.0), interval(0.1, 1.0)) === Interval(0.0, 0x1.789BD2C160054P+0) + + @test atan(interval(0.0, 1.0), emptyinterval()) === emptyinterval() + + @test atan(interval(0.0, 1.0), entireinterval()) === Interval(0.0, 0x1.921FB54442D19P+1) + + @test atan(interval(0.0, 1.0), interval(0.0, 0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0.0, 1.0), interval(-0.0, 0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0.0, 1.0), interval(0.0, -0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0.0, 1.0), interval(-0.0, -0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0.0, 1.0), interval(-2.0, -0.1)) === Interval(0x1.ABA397C7259DDP+0, 0x1.921FB54442D19P+1) + + @test atan(interval(0.0, 1.0), interval(-2.0, 0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+1) + + @test atan(interval(0.0, 1.0), interval(-2.0, -0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+1) + + @test atan(interval(0.0, 1.0), interval(-2.0, 1.0)) === Interval(0.0, 0x1.921FB54442D19P+1) + + @test atan(interval(0.0, 1.0), interval(0.0, 1.0)) === Interval(0.0,0x1.921FB54442D19P+0) + + @test atan(interval(0.0, 1.0), interval(-0.0, 1.0)) === Interval(0.0,0x1.921FB54442D19P+0) + + @test atan(interval(0.0, 1.0), interval(0.1, 1.0)) === Interval(0.0,0x1.789BD2C160054P+0) + + @test atan(interval(0.1, 1.0), emptyinterval()) === emptyinterval() + + @test atan(interval(0.1, 1.0), entireinterval()) === Interval(0.0, 0x1.921FB54442D19P+1) + + @test atan(interval(0.1, 1.0), interval(0.0, 0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0.1, 1.0), interval(-0.0, 0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0.1, 1.0), interval(0.0, -0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0.1, 1.0), interval(-0.0, -0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0) + + @test atan(interval(0.1, 1.0), interval(-2.0, -0.1)) === Interval(0x1.ABA397C7259DDP+0, 0x1.8BBAABDE5E29CP+1) + + @test atan(interval(0.1, 1.0), interval(-2.0, 0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.8BBAABDE5E29CP+1) + + @test atan(interval(0.1, 1.0), interval(-2.0, -0.0)) === Interval(0x1.921FB54442D18P+0, 0x1.8BBAABDE5E29CP+1) + + @test atan(interval(0.1, 1.0), interval(-2.0, 1.0)) === Interval(0x1.983E282E2CC4CP-4, 0x1.8BBAABDE5E29CP+1) + + @test atan(interval(0.1, 1.0), interval(0.0, 1.0)) === Interval(0x1.983E282E2CC4CP-4, 0x1.921FB54442D19P+0) + + @test atan(interval(0.1, 1.0), interval(-0.0, 1.0)) === Interval(0x1.983E282E2CC4CP-4, 0x1.921FB54442D19P+0) + + @test atan(interval(0.1, 1.0), interval(0.1, 1.0)) === Interval(0x1.983E282E2CC4CP-4, 0x1.789BD2C160054P+0) + +end + +@testset "minimal_atan2_dec_test" begin + + @test atan(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(0.0, 0.0), com)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-0.0, 0.0), dac)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(0.0, -0.0), def)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-0.0, -0.0), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-2.0, -0.1), com)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-2.0, 0.0), dac)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-2.0, -0.0), def)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-2.0, 1.0), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(0.0, 1.0), com)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-0.0, 1.0), dac)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(0.1, 1.0), def)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(entireinterval(), dac), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(entireinterval(), dac), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(0.0, 0.0), com)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(0.0, -0.0), def)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-0.0, 0.0), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-0.0, -0.0), trv)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-2.0, -0.1), com)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), def) + + @test atan(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-2.0, 0.0), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-2.0, -0.0), def)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-2.0, 1.0), trv)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(0.0, 1.0), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-0.0, 1.0), def)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(0.1, 1.0), com)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0), dac) + + @test atan(DecoratedInterval(interval(0.0, 0.0), com), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(0.0, 0.0), def), DecoratedInterval(interval(0.0, 0.0), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(0.0, 0.0), trv), DecoratedInterval(interval(-0.0, 0.0), dac)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(0.0, 0.0), com), DecoratedInterval(interval(0.0, -0.0), def)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(-0.0, -0.0), com)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(0.0, 0.0), com), DecoratedInterval(interval(-2.0, -0.1), dac)) === DecoratedInterval(Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1), dac) + + @test atan(DecoratedInterval(interval(0.0, 0.0), trv), DecoratedInterval(interval(-2.0, 0.0), com)) === DecoratedInterval(Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(0.0, 0.0), com), DecoratedInterval(interval(-2.0, -0.0), trv)) === DecoratedInterval(Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(-2.0, 1.0), def)) === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(0.0, 0.0), def), DecoratedInterval(interval(0.0, 1.0), com)) === DecoratedInterval(Interval(0.0,0.0), trv) + + @test atan(DecoratedInterval(interval(0.0, 0.0), trv), DecoratedInterval(interval(-0.0, 1.0), dac)) === DecoratedInterval(Interval(0.0,0.0), trv) + + @test atan(DecoratedInterval(interval(0.0, 0.0), com), DecoratedInterval(interval(0.1, 1.0), com)) === DecoratedInterval(Interval(0.0,0.0), com) + + @test atan(DecoratedInterval(interval(-0.0, 0.0), com), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-0.0, 0.0), dac), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-0.0, 0.0), def), DecoratedInterval(interval(0.0, 0.0), com)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-0.0, 0.0), trv), DecoratedInterval(interval(-0.0, 0.0), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-0.0, 0.0), com), DecoratedInterval(interval(0.0, -0.0), def)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-0.0, 0.0), dac), DecoratedInterval(interval(-0.0, -0.0), com)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-0.0, 0.0), dac), DecoratedInterval(interval(-2.0, -0.1), dac)) === DecoratedInterval(Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1), dac) + + @test atan(DecoratedInterval(interval(-0.0, 0.0), trv), DecoratedInterval(interval(-2.0, 0.0), com)) === DecoratedInterval(Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-0.0, 0.0), com), DecoratedInterval(interval(-2.0, -0.0), trv)) === DecoratedInterval(Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-0.0, 0.0), dac), DecoratedInterval(interval(-2.0, 1.0), def)) === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-0.0, 0.0), com), DecoratedInterval(interval(0.0, 1.0), com)) === DecoratedInterval(Interval(0.0,0.0), trv) + + @test atan(DecoratedInterval(interval(-0.0, 0.0), def), DecoratedInterval(interval(-0.0, 1.0), dac)) === DecoratedInterval(Interval(0.0,0.0), trv) + + @test atan(DecoratedInterval(interval(-0.0, 0.0), com), DecoratedInterval(interval(0.1, 1.0), com)) === DecoratedInterval(Interval(0.0,0.0), com) + + @test atan(DecoratedInterval(interval(0.0, -0.0), com), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(0.0, -0.0), dac), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(0.0, -0.0), def), DecoratedInterval(interval(0.0, 0.0), dac)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(0.0, -0.0), trv), DecoratedInterval(interval(-0.0, 0.0), com)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(0.0, -0.0), dac), DecoratedInterval(interval(0.0, -0.0), def)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(0.0, -0.0), com), DecoratedInterval(interval(-0.0, -0.0), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(0.0, -0.0), com), DecoratedInterval(interval(-2.0, -0.1), dac)) === DecoratedInterval(Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1), dac) + + @test atan(DecoratedInterval(interval(0.0, -0.0), def), DecoratedInterval(interval(-2.0, 0.0), com)) === DecoratedInterval(Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(0.0, -0.0), com), DecoratedInterval(interval(-2.0, -0.0), dac)) === DecoratedInterval(Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(0.0, -0.0), dac), DecoratedInterval(interval(-2.0, 1.0), com)) === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(0.0, -0.0), com), DecoratedInterval(interval(0.0, 1.0), trv)) === DecoratedInterval(Interval(0.0,0.0), trv) + + @test atan(DecoratedInterval(interval(0.0, -0.0), def), DecoratedInterval(interval(-0.0, 1.0), com)) === DecoratedInterval(Interval(0.0,0.0), trv) + + @test atan(DecoratedInterval(interval(0.0, -0.0), com), DecoratedInterval(interval(0.1, 1.0), def)) === DecoratedInterval(Interval(0.0,0.0), def) + + @test atan(DecoratedInterval(interval(-0.0, -0.0), com), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-0.0, -0.0), def), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-0.0, -0.0), dac), DecoratedInterval(interval(0.0, 0.0), com)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-0.0, -0.0), trv), DecoratedInterval(interval(-0.0, 0.0), def)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-0.0, -0.0), com), DecoratedInterval(interval(0.0, -0.0), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-0.0, -0.0), dac), DecoratedInterval(interval(-0.0, -0.0), com)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-0.0, -0.0), def), DecoratedInterval(interval(-2.0, -0.1), dac)) === DecoratedInterval(Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1), def) + + @test atan(DecoratedInterval(interval(-0.0, -0.0), trv), DecoratedInterval(interval(-2.0, 0.0), def)) === DecoratedInterval(Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-0.0, -0.0), dac), DecoratedInterval(interval(-2.0, -0.0), trv)) === DecoratedInterval(Interval(0x1.921FB54442D18P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-0.0, -0.0), def), DecoratedInterval(interval(-2.0, 1.0), com)) === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-0.0, -0.0), com), DecoratedInterval(interval(0.0, 1.0), com)) === DecoratedInterval(Interval(0.0,0.0), trv) + + @test atan(DecoratedInterval(interval(-0.0, -0.0), trv), DecoratedInterval(interval(-0.0, 1.0), dac)) === DecoratedInterval(Interval(0.0,0.0), trv) + + @test atan(DecoratedInterval(interval(-0.0, -0.0), com), DecoratedInterval(interval(0.1, 1.0), com)) === DecoratedInterval(Interval(0.0,0.0), com) + + @test atan(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.1), def), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1,0.0), def) + + @test atan(DecoratedInterval(interval(-2.0, -0.1), trv), DecoratedInterval(interval(0.0, 0.0), com)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.1), com), DecoratedInterval(interval(0.0, -0.0), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0), dac) + + @test atan(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(-0.0, 0.0), def)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0), def) + + @test atan(DecoratedInterval(interval(-2.0, -0.1), com), DecoratedInterval(interval(0.0, -0.0), trv)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.1), def), DecoratedInterval(interval(-2.0, -0.1), com)) === DecoratedInterval(Interval(-0x1.8BBAABDE5E29CP+1, -0x1.9EE9C8100C211P+0), def) + + @test atan(DecoratedInterval(interval(-2.0, -0.1), com), DecoratedInterval(interval(-2.0, 0.0), def)) === DecoratedInterval(Interval(-0x1.8BBAABDE5E29CP+1, -0x1.921FB54442D18P+0), def) + + @test atan(DecoratedInterval(interval(-2.0, -0.1), trv), DecoratedInterval(interval(-2.0, -0.0), dac)) === DecoratedInterval(Interval(-0x1.8BBAABDE5E29CP+1, -0x1.921FB54442D18P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.1), def), DecoratedInterval(interval(-2.0, 1.0), trv)) === DecoratedInterval(Interval(-0x1.8BBAABDE5E29CP+1, -0x1.983E282E2CC4CP-4), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.1), com), DecoratedInterval(interval(0.0, 1.0), def)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, -0x1.983E282E2CC4CP-4), def) + + @test atan(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(-0.0, 1.0), com)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, -0x1.983E282E2CC4CP-4), dac) + + @test atan(DecoratedInterval(interval(-2.0, -0.1), com), DecoratedInterval(interval(0.1, 1.0), com)) === DecoratedInterval(Interval(-0x1.8555A2787982P+0, -0x1.983E282E2CC4CP-4), com) + + @test atan(DecoratedInterval(interval(-2.0, 0.0), def), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-2.0, 0.0), def), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(0.0, 0.0), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, 0.0), trv), DecoratedInterval(interval(-0.0, 0.0), com)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, 0.0), com), DecoratedInterval(interval(0.0, -0.0), trv)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, 0.0), def), DecoratedInterval(interval(-0.0, -0.0), def)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, 0.0), com), DecoratedInterval(interval(-2.0, -0.1), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), def) + + @test atan(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(-2.0, 0.0), com)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-2.0, 0.0), com), DecoratedInterval(interval(-2.0, -0.0), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-2.0, 0.0), trv), DecoratedInterval(interval(-2.0, 1.0), com)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-2.0, 0.0), def), DecoratedInterval(interval(0.0, 1.0), def)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0.0), trv) + + @test atan(DecoratedInterval(interval(-2.0, 0.0), com), DecoratedInterval(interval(-0.0, 1.0), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0.0), trv) + + @test atan(DecoratedInterval(interval(-2.0, 0.0), com), DecoratedInterval(interval(0.1, 1.0), com)) === DecoratedInterval(Interval(-0x1.8555A2787982P+0, 0.0), com) + + @test atan(DecoratedInterval(interval(-2.0, -0.0), trv), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.0), dac), DecoratedInterval(entireinterval(), def)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.0), com), DecoratedInterval(interval(0.0, 0.0), com)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.0), def), DecoratedInterval(interval(-0.0, 0.0), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.0), dac), DecoratedInterval(interval(0.0, -0.0), def)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.0), com), DecoratedInterval(interval(-0.0, -0.0), trv)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, -0x1.921FB54442D18P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.0), def), DecoratedInterval(interval(-2.0, -0.1), com)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), def) + + @test atan(DecoratedInterval(interval(-2.0, -0.0), com), DecoratedInterval(interval(-2.0, 0.0), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.0), dac), DecoratedInterval(interval(-2.0, -0.0), def)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.0), def), DecoratedInterval(interval(-2.0, 1.0), trv)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.0), trv), DecoratedInterval(interval(0.0, 1.0), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0.0), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.0), com), DecoratedInterval(interval(-0.0, 1.0), com)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0.0), trv) + + @test atan(DecoratedInterval(interval(-2.0, -0.0), com), DecoratedInterval(interval(0.1, 1.0), com)) === DecoratedInterval(Interval(-0x1.8555A2787982P+0, 0.0), com) + + @test atan(DecoratedInterval(interval(-2.0, 1.0), def), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-2.0, 1.0), dac), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-2.0, 1.0), def), DecoratedInterval(interval(0.0, 0.0), def)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, 1.0), com), DecoratedInterval(interval(-0.0, 0.0), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, 1.0), trv), DecoratedInterval(interval(0.0, -0.0), trv)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, 1.0), com), DecoratedInterval(interval(-0.0, -0.0), com)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, 1.0), dac), DecoratedInterval(interval(-2.0, -0.1), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), def) + + @test atan(DecoratedInterval(interval(-2.0, 1.0), def), DecoratedInterval(interval(-2.0, 0.0), def)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-2.0, 1.0), trv), DecoratedInterval(interval(-2.0, -0.0), trv)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-2.0, 1.0), dac), DecoratedInterval(interval(-2.0, 1.0), com)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+1, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-2.0, 1.0), com), DecoratedInterval(interval(0.0, 1.0), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, 1.0), trv), DecoratedInterval(interval(-0.0, 1.0), dac)) === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(-2.0, 1.0), com), DecoratedInterval(interval(0.1, 1.0), com)) === DecoratedInterval(Interval(-0x1.8555A2787982P+0, 0x1.789BD2C160054P+0), com) + + @test atan(DecoratedInterval(interval(-0.0, 1.0), com), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(-0.0, 1.0), dac), DecoratedInterval(entireinterval(), def)) === DecoratedInterval(Interval(0.0, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-0.0, 1.0), def), DecoratedInterval(interval(0.0, 0.0), def)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(-0.0, 1.0), trv), DecoratedInterval(interval(-0.0, 0.0), trv)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(-0.0, 1.0), dac), DecoratedInterval(interval(0.0, -0.0), dac)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(-0.0, 1.0), com), DecoratedInterval(interval(-0.0, -0.0), def)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(-0.0, 1.0), com), DecoratedInterval(interval(-2.0, -0.1), com)) === DecoratedInterval(Interval(0x1.ABA397C7259DDP+0, 0x1.921FB54442D19P+1), dac) + + @test atan(DecoratedInterval(interval(-0.0, 1.0), def), DecoratedInterval(interval(-2.0, 0.0), com)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-0.0, 1.0), def), DecoratedInterval(interval(-2.0, -0.0), def)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-0.0, 1.0), dac), DecoratedInterval(interval(-2.0, 1.0), dac)) === DecoratedInterval(Interval(0.0, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(-0.0, 1.0), dac), DecoratedInterval(interval(0.0, 1.0), dac)) === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(-0.0, 1.0), trv), DecoratedInterval(interval(-0.0, 1.0), com)) === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(-0.0, 1.0), trv), DecoratedInterval(interval(0.1, 1.0), com)) === DecoratedInterval(Interval(0.0, 0x1.789BD2C160054P+0), trv) + + @test atan(DecoratedInterval(interval(0.0, 1.0), def), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(0.0, 1.0), dac), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(0.0, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(0.0, 1.0), dac), DecoratedInterval(interval(0.0, 0.0), def)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(0.0, 1.0), trv), DecoratedInterval(interval(-0.0, 0.0), trv)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(0.0, 1.0), trv), DecoratedInterval(interval(0.0, -0.0), dac)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(0.0, 1.0), def), DecoratedInterval(interval(-0.0, -0.0), com)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(0.0, 1.0), dac), DecoratedInterval(interval(-2.0, -0.1), dac)) === DecoratedInterval(Interval(0x1.ABA397C7259DDP+0, 0x1.921FB54442D19P+1), dac) + + @test atan(DecoratedInterval(interval(0.0, 1.0), def), DecoratedInterval(interval(-2.0, 0.0), trv)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(0.0, 1.0), dac), DecoratedInterval(interval(-2.0, -0.0), dac)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(0.0, 1.0), dac), DecoratedInterval(interval(-2.0, 1.0), def)) === DecoratedInterval(Interval(0.0, 0x1.921FB54442D19P+1), trv) + + @test atan(DecoratedInterval(interval(0.0, 1.0), dac), DecoratedInterval(interval(0.0, 1.0), trv)) === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(0.0, 1.0), dac), DecoratedInterval(interval(-0.0, 1.0), def)) === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(0.0, 1.0), com), DecoratedInterval(interval(0.1, 1.0), com)) === DecoratedInterval(Interval(0.0,0x1.789BD2C160054P+0), com) + + @test atan(DecoratedInterval(interval(0.1, 1.0), dac), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test atan(DecoratedInterval(interval(0.1, 1.0), dac), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(0.0, 0x1.921FB54442D19P+1), dac) + + @test atan(DecoratedInterval(interval(0.1, 1.0), def), DecoratedInterval(interval(0.0, 0.0), com)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0), def) + + @test atan(DecoratedInterval(interval(0.1, 1.0), trv), DecoratedInterval(interval(-0.0, 0.0), def)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(0.1, 1.0), trv), DecoratedInterval(interval(0.0, -0.0), def)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0), trv) + + @test atan(DecoratedInterval(interval(0.1, 1.0), dac), DecoratedInterval(interval(-0.0, -0.0), def)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.921FB54442D19P+0), def) + + @test atan(DecoratedInterval(interval(0.1, 1.0), com), DecoratedInterval(interval(-2.0, -0.1), trv)) === DecoratedInterval(Interval(0x1.ABA397C7259DDP+0, 0x1.8BBAABDE5E29CP+1), trv) + + @test atan(DecoratedInterval(interval(0.1, 1.0), com), DecoratedInterval(interval(-2.0, 0.0), dac)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.8BBAABDE5E29CP+1), dac) + + @test atan(DecoratedInterval(interval(0.1, 1.0), com), DecoratedInterval(interval(-2.0, -0.0), dac)) === DecoratedInterval(Interval(0x1.921FB54442D18P+0, 0x1.8BBAABDE5E29CP+1), dac) + + @test atan(DecoratedInterval(interval(0.1, 1.0), def), DecoratedInterval(interval(-2.0, 1.0), dac)) === DecoratedInterval(Interval(0x1.983E282E2CC4CP-4, 0x1.8BBAABDE5E29CP+1), def) + + @test atan(DecoratedInterval(interval(0.1, 1.0), def), DecoratedInterval(interval(0.0, 1.0), def)) === DecoratedInterval(Interval(0x1.983E282E2CC4CP-4, 0x1.921FB54442D19P+0), def) + + @test atan(DecoratedInterval(interval(0.1, 1.0), dac), DecoratedInterval(interval(-0.0, 1.0), def)) === DecoratedInterval(Interval(0x1.983E282E2CC4CP-4, 0x1.921FB54442D19P+0), def) + + @test atan(DecoratedInterval(interval(0.1, 1.0), dac), DecoratedInterval(interval(0.1, 1.0), def)) === DecoratedInterval(Interval(0x1.983E282E2CC4CP-4, 0x1.789BD2C160054P+0), def) + +end + +@testset "minimal_sinh_test" begin + + @test sinh(emptyinterval()) === emptyinterval() + + @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()) === entireinterval() + + @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 + +@testset "minimal_sinh_dec_test" begin + + @test sinh(DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), dac) + + @test sinh(DecoratedInterval(interval(0.0,Inf), dac)) === DecoratedInterval(Interval(0.0,Inf), dac) + + @test sinh(DecoratedInterval(interval(-Inf,0.0), def)) === 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 sinh(DecoratedInterval(interval(-0x1.FD219490EAAC1P+38,-0x1.1AF1C9D74F06DP+9), com)) === DecoratedInterval(Interval(-Inf,-0x1.53045B4F849DEP+815), dac) + +end + +@testset "minimal_cosh_test" begin + + @test cosh(emptyinterval()) === emptyinterval() + + @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()) === 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 + +@testset "minimal_cosh_dec_test" begin + + @test cosh(DecoratedInterval(interval(0.0,Inf), dac)) === DecoratedInterval(Interval(1.0,Inf), dac) + + @test cosh(DecoratedInterval(interval(-Inf,0.0), def)) === DecoratedInterval(Interval(1.0,Inf), def) + + @test cosh(DecoratedInterval(entireinterval(), def)) === 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 cosh(DecoratedInterval(interval(-0x1.FD219490EAAC1P+38,-0x1.1AF1C9D74F06DP+9), com)) === DecoratedInterval(Interval(0x1.53045B4F849DEP+815,Inf), dac) + +end + +@testset "minimal_tanh_test" begin + + @test tanh(emptyinterval()) === emptyinterval() + + @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()) === 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 + +@testset "minimal_tanh_dec_test" begin + + @test tanh(DecoratedInterval(interval(0.0,Inf), dac)) === DecoratedInterval(Interval(0.0,1.0), dac) + + @test tanh(DecoratedInterval(interval(-Inf,0.0), def)) === DecoratedInterval(Interval(-1.0,0.0), def) + + @test tanh(DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(-1.0,1.0), dac) + + @test tanh(DecoratedInterval(interval(1.0,0x1.2C903022DD7AAP+8), com)) === 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) + +end + +@testset "minimal_asinh_test" begin + + @test asinh(emptyinterval()) === emptyinterval() + + @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()) === entireinterval() + + @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 + +@testset "minimal_asinh_dec_test" begin + + @test asinh(DecoratedInterval(interval(0.0,Inf), dac)) === DecoratedInterval(Interval(0.0,Inf), dac) + + @test asinh(DecoratedInterval(interval(-Inf,0.0), trv)) === DecoratedInterval(Interval(-Inf,0.0), trv) + + @test asinh(DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), dac) + + @test asinh(DecoratedInterval(interval(1.0,0x1.2C903022DD7AAP+8), com)) === 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) + +end + +@testset "minimal_acosh_test" begin + + @test acosh(emptyinterval()) === emptyinterval() + + @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)) === emptyinterval() + + @test acosh(entireinterval()) === 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 + +@testset "minimal_acosh_dec_test" begin + + @test acosh(DecoratedInterval(interval(0.0,Inf), dac)) === DecoratedInterval(Interval(0.0,Inf), trv) + + @test acosh(DecoratedInterval(interval(1.0,Inf), dac)) === DecoratedInterval(Interval(0.0,Inf), dac) + + @test acosh(DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(0.0,Inf), trv) + + @test acosh(DecoratedInterval(interval(1.0,1.0), com)) === DecoratedInterval(Interval(0.0,0.0), com) + + @test acosh(DecoratedInterval(interval(0.9,1.0), com)) === 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 acosh(DecoratedInterval(interval(0.9,0x1.2C903022DD7AAP+8), com)) === 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) + +end + +@testset "minimal_atanh_test" begin + + @test atanh(emptyinterval()) === emptyinterval() + + @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)) === emptyinterval() + + @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)) === emptyinterval() + + @test atanh(interval(-1.0,1.0)) === entireinterval() + + @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)) === emptyinterval() + + @test atanh(interval(1.0,1.0)) === emptyinterval() + + @test atanh(entireinterval()) === entireinterval() + + @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 + +@testset "minimal_atanh_dec_test" begin + + @test atanh(DecoratedInterval(interval(0.0,Inf), dac)) === DecoratedInterval(Interval(0.0,Inf), trv) + + @test atanh(DecoratedInterval(interval(-Inf,0.0), def)) === DecoratedInterval(Interval(-Inf,0.0), trv) + + @test atanh(DecoratedInterval(interval(-1.0,1.0), com)) === DecoratedInterval(entireinterval(), trv) + + @test atanh(DecoratedInterval(interval(0.0,0.0), com)) === DecoratedInterval(Interval(0.0,0.0), com) + + @test atanh(DecoratedInterval(interval(1.0,1.0), def)) === DecoratedInterval(emptyinterval(), trv) + + @test atanh(DecoratedInterval(interval(0x1.4C0420F6F08CCP-2,0x1.FFFFFFFFFFFFFP-1), com)) === 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 atanh(DecoratedInterval(interval(-0x1.FFB88E9EB6307P-1,0x1.999999999999AP-4), def)) === 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) + +end + +@testset "minimal_sign_test" begin + + @test sign(emptyinterval()) === emptyinterval() + + @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()) === Interval(-1.0,1.0) + +end + +@testset "minimal_sign_dec_test" begin + + @test sign(DecoratedInterval(interval(1.0,2.0), com)) === DecoratedInterval(Interval(1.0,1.0), com) + + @test sign(DecoratedInterval(interval(-1.0,2.0), com)) === DecoratedInterval(Interval(-1.0,1.0), def) + + @test sign(DecoratedInterval(interval(-1.0,0.0), com)) === DecoratedInterval(Interval(-1.0,0.0), def) + + @test sign(DecoratedInterval(interval(0.0,2.0), com)) === DecoratedInterval(Interval(0.0,1.0), def) + + @test sign(DecoratedInterval(interval(-0.0,2.0), def)) === DecoratedInterval(Interval(0.0,1.0), def) + + @test sign(DecoratedInterval(interval(-5.0,-2.0), trv)) === DecoratedInterval(Interval(-1.0,-1.0), trv) + + @test sign(DecoratedInterval(interval(0.0,0.0), dac)) === DecoratedInterval(Interval(0.0,0.0), dac) + +end + +@testset "minimal_ceil_test" begin + + @test ceil(emptyinterval()) === emptyinterval() + + @test ceil(entireinterval()) === entireinterval() + + @test ceil(interval(1.1,2.0)) === Interval(2.0,2.0) + + @test ceil(interval(-1.1,2.0)) === Interval(-1.0,2.0) + + @test ceil(interval(-1.1,0.0)) === Interval(-1.0,0.0) + + @test ceil(interval(-1.1,-0.0)) === Interval(-1.0,0.0) + + @test ceil(interval(-1.1,-0.4)) === Interval(-1.0,0.0) + + @test ceil(interval(-1.9,2.2)) === Interval(-1.0,3.0) + + @test ceil(interval(-1.0,2.2)) === Interval(-1.0,3.0) + + @test ceil(interval(0.0,2.2)) === Interval(0.0,3.0) + + @test ceil(interval(-0.0,2.2)) === Interval(0.0,3.0) + + @test ceil(interval(-1.5,Inf)) === Interval(-1.0,Inf) + + @test ceil(interval(0x1.FFFFFFFFFFFFFp1023,Inf)) === Interval(0x1.FFFFFFFFFFFFFp1023,Inf) + + @test ceil(interval(-Inf,2.2)) === Interval(-Inf,3.0) + + @test ceil(interval(-Inf,-0x1.FFFFFFFFFFFFFp1023)) === Interval(-Inf,-0x1.FFFFFFFFFFFFFp1023) + +end + +@testset "minimal_ceil_dec_test" begin + + @test ceil(DecoratedInterval(interval(1.1,2.0), com)) === DecoratedInterval(Interval(2.0,2.0), dac) + + @test ceil(DecoratedInterval(interval(-1.1,2.0), com)) === DecoratedInterval(Interval(-1.0,2.0), def) + + @test ceil(DecoratedInterval(interval(-1.1,0.0), dac)) === DecoratedInterval(Interval(-1.0,0.0), def) + + @test ceil(DecoratedInterval(interval(-1.1,-0.0), trv)) === DecoratedInterval(Interval(-1.0,0.0), trv) + + @test ceil(DecoratedInterval(interval(-1.1,-0.4), dac)) === DecoratedInterval(Interval(-1.0,0.0), def) + + @test ceil(DecoratedInterval(interval(-1.9,2.2), com)) === DecoratedInterval(Interval(-1.0,3.0), def) + + @test ceil(DecoratedInterval(interval(-1.0,2.2), dac)) === DecoratedInterval(Interval(-1.0,3.0), def) + + @test ceil(DecoratedInterval(interval(0.0,2.2), trv)) === DecoratedInterval(Interval(0.0,3.0), trv) + + @test ceil(DecoratedInterval(interval(-0.0,2.2), def)) === DecoratedInterval(Interval(0.0,3.0), def) + + @test ceil(DecoratedInterval(interval(-1.5,Inf), trv)) === DecoratedInterval(Interval(-1.0,Inf), trv) + + @test ceil(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFp1023,Inf), dac)) === DecoratedInterval(Interval(0x1.FFFFFFFFFFFFFp1023,Inf), def) + + @test ceil(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), com)) === DecoratedInterval(Interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), dac) + + @test ceil(DecoratedInterval(interval(-Inf,2.2), trv)) === DecoratedInterval(Interval(-Inf,3.0), trv) + + @test ceil(DecoratedInterval(interval(-Inf,-0x1.FFFFFFFFFFFFFp1023), dac)) === DecoratedInterval(Interval(-Inf,-0x1.FFFFFFFFFFFFFp1023), def) + +end + +@testset "minimal_floor_test" begin + + @test floor(emptyinterval()) === emptyinterval() + + @test floor(entireinterval()) === entireinterval() + + @test floor(interval(1.1,2.0)) === Interval(1.0,2.0) + + @test floor(interval(-1.1,2.0)) === Interval(-2.0,2.0) + + @test floor(interval(-1.1,0.0)) === Interval(-2.0,0.0) + + @test floor(interval(-1.1,-0.0)) === Interval(-2.0,0.0) + + @test floor(interval(-1.1,-0.4)) === Interval(-2.0,-1.0) + + @test floor(interval(-1.9,2.2)) === Interval(-2.0,2.0) + + @test floor(interval(-1.0,2.2)) === Interval(-1.0,2.0) + + @test floor(interval(0.0,2.2)) === Interval(0.0,2.0) + + @test floor(interval(-0.0,2.2)) === Interval(0.0,2.0) + + @test floor(interval(-1.5,Inf)) === Interval(-2.0,Inf) + + @test floor(interval(-Inf,2.2)) === Interval(-Inf,2.0) + +end + +@testset "minimal_floor_dec_test" begin + + @test floor(DecoratedInterval(interval(1.1,2.0), com)) === DecoratedInterval(Interval(1.0,2.0), def) + + @test floor(DecoratedInterval(interval(-1.1,2.0), def)) === DecoratedInterval(Interval(-2.0,2.0), def) + + @test floor(DecoratedInterval(interval(-1.1,0.0), dac)) === DecoratedInterval(Interval(-2.0,0.0), def) + + @test floor(DecoratedInterval(interval(-1.2,-1.1), com)) === DecoratedInterval(Interval(-2.0,-2.0), com) + + @test floor(DecoratedInterval(interval(-1.1,-0.4), def)) === DecoratedInterval(Interval(-2.0,-1.0), def) + + @test floor(DecoratedInterval(interval(-1.9,2.2), com)) === DecoratedInterval(Interval(-2.0,2.0), def) + + @test floor(DecoratedInterval(interval(-1.0,2.2), trv)) === DecoratedInterval(Interval(-1.0,2.0), trv) + + @test floor(DecoratedInterval(interval(0.0,2.2), trv)) === DecoratedInterval(Interval(0.0,2.0), trv) + + @test floor(DecoratedInterval(interval(-0.0,2.2), com)) === DecoratedInterval(Interval(0.0,2.0), def) + + @test floor(DecoratedInterval(interval(-1.5,Inf), dac)) === DecoratedInterval(Interval(-2.0,Inf), def) + + @test floor(DecoratedInterval(interval(-Inf,2.2), trv)) === DecoratedInterval(Interval(-Inf,2.0), trv) + + @test floor(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,-0x1.FFFFFFFFFFFFFp1023), com)) === DecoratedInterval(Interval(-0x1.FFFFFFFFFFFFFp1023,-0x1.FFFFFFFFFFFFFp1023), dac) + +end + +@testset "minimal_trunc_test" begin + + @test trunc(emptyinterval()) === emptyinterval() + + @test trunc(entireinterval()) === entireinterval() + + @test trunc(interval(1.1,2.1)) === Interval(1.0,2.0) + + @test trunc(interval(-1.1,2.0)) === Interval(-1.0,2.0) + + @test trunc(interval(-1.1,0.0)) === Interval(-1.0,0.0) + + @test trunc(interval(-1.1,-0.0)) === Interval(-1.0,0.0) + + @test trunc(interval(-1.1,-0.4)) === Interval(-1.0,0.0) + + @test trunc(interval(-1.9,2.2)) === Interval(-1.0,2.0) + + @test trunc(interval(-1.0,2.2)) === Interval(-1.0,2.0) + + @test trunc(interval(0.0,2.2)) === Interval(0.0,2.0) + + @test trunc(interval(-0.0,2.2)) === Interval(0.0,2.0) + + @test trunc(interval(-1.5,Inf)) === Interval(-1.0,Inf) + + @test trunc(interval(-Inf,2.2)) === Interval(-Inf,2.0) + +end + +@testset "minimal_trunc_dec_test" begin + + @test trunc(DecoratedInterval(interval(1.1,2.1), com)) === DecoratedInterval(Interval(1.0,2.0), def) + + @test trunc(DecoratedInterval(interval(1.1,1.9), com)) === DecoratedInterval(Interval(1.0,1.0), com) + + @test trunc(DecoratedInterval(interval(-1.1,2.0), dac)) === DecoratedInterval(Interval(-1.0,2.0), def) + + @test trunc(DecoratedInterval(interval(-1.1,0.0), trv)) === DecoratedInterval(Interval(-1.0,0.0), trv) + + @test trunc(DecoratedInterval(interval(-1.1,-0.0), def)) === DecoratedInterval(Interval(-1.0,0.0), def) + + @test trunc(DecoratedInterval(interval(-1.1,-0.4), com)) === DecoratedInterval(Interval(-1.0,0.0), def) + + @test trunc(DecoratedInterval(interval(-1.9,2.2), def)) === DecoratedInterval(Interval(-1.0,2.0), def) + + @test trunc(DecoratedInterval(interval(-1.0,2.2), dac)) === DecoratedInterval(Interval(-1.0,2.0), def) + + @test trunc(DecoratedInterval(interval(-1.5,Inf), dac)) === DecoratedInterval(Interval(-1.0,Inf), def) + + @test trunc(DecoratedInterval(interval(-Inf,2.2), trv)) === DecoratedInterval(Interval(-Inf,2.0), trv) + + @test trunc(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), com)) === DecoratedInterval(Interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), dac) + + @test trunc(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFp1023,Inf), dac)) === DecoratedInterval(Interval(0x1.FFFFFFFFFFFFFp1023,Inf), def) + +end + +@testset "minimal_round_ties_to_even_test" begin + + @test round(emptyinterval()) === emptyinterval() + + @test round(entireinterval()) === entireinterval() + + @test round(interval(1.1,2.1)) === Interval(1.0,2.0) + + @test round(interval(-1.1,2.0)) === Interval(-1.0,2.0) + + @test round(interval(-1.1,-0.4)) === Interval(-1.0,0.0) + + @test round(interval(-1.1,0.0)) === Interval(-1.0,0.0) + + @test round(interval(-1.1,-0.0)) === Interval(-1.0,0.0) + + @test round(interval(-1.9,2.2)) === Interval(-2.0,2.0) + + @test round(interval(-1.0,2.2)) === Interval(-1.0,2.0) + + @test round(interval(1.5,2.1)) === Interval(2.0,2.0) + + @test round(interval(-1.5,2.0)) === Interval(-2.0,2.0) + + @test round(interval(-1.1,-0.5)) === Interval(-1.0,0.0) + + @test round(interval(-1.9,2.5)) === Interval(-2.0,2.0) + + @test round(interval(0.0,2.5)) === Interval(0.0,2.0) + + @test round(interval(-0.0,2.5)) === Interval(0.0,2.0) + + @test round(interval(-1.5,2.5)) === Interval(-2.0,2.0) + + @test round(interval(-1.5,Inf)) === Interval(-2.0,Inf) + + @test round(interval(-Inf,2.2)) === Interval(-Inf,2.0) + +end + +@testset "minimal_round_ties_to_even_dec_test" begin + + @test round(DecoratedInterval(interval(1.1,2.1), com)) === DecoratedInterval(Interval(1.0,2.0), def) + + @test round(DecoratedInterval(interval(-1.1,2.0), trv)) === DecoratedInterval(Interval(-1.0,2.0), trv) + + @test round(DecoratedInterval(interval(-1.6,-1.5), com)) === DecoratedInterval(Interval(-2.0,-2.0), dac) + + @test round(DecoratedInterval(interval(-1.6,-1.4), com)) === DecoratedInterval(Interval(-2.0,-1.0), def) + + @test round(DecoratedInterval(interval(-1.5,Inf), dac)) === DecoratedInterval(Interval(-2.0,Inf), def) + + @test round(DecoratedInterval(interval(-Inf,2.2), trv)) === DecoratedInterval(Interval(-Inf,2.0), trv) + +end + +@testset "minimal_round_ties_to_away_test" begin + + @test round(emptyinterval(), RoundNearestTiesAway) === emptyinterval() + + @test round(entireinterval(), RoundNearestTiesAway) === entireinterval() + + @test round(interval(1.1,2.1), RoundNearestTiesAway) === Interval(1.0,2.0) + + @test round(interval(-1.1,2.0), RoundNearestTiesAway) === 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), RoundNearestTiesAway) === Interval(-1.0,-0.0) + + @test round(interval(-1.1,-0.4), RoundNearestTiesAway) === Interval(-1.0,0.0) + + @test round(interval(-1.9,2.2), RoundNearestTiesAway) === Interval(-2.0,2.0) + + @test round(interval(-1.0,2.2), RoundNearestTiesAway) === Interval(-1.0,2.0) + + @test round(interval(0.5,2.1), RoundNearestTiesAway) === Interval(1.0,2.0) + + @test round(interval(-2.5,2.0), RoundNearestTiesAway) === Interval(-3.0,2.0) + + @test round(interval(-1.1,-0.5), RoundNearestTiesAway) === Interval(-1.0,-1.0) + + @test round(interval(-1.9,2.5), RoundNearestTiesAway) === Interval(-2.0,3.0) + + @test round(interval(-1.5,2.5), RoundNearestTiesAway) === 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), RoundNearestTiesAway) === Interval(0.0,3.0) + + @test round(interval(-1.5,Inf), RoundNearestTiesAway) === Interval(-2.0,Inf) + + @test round(interval(-Inf,2.2), RoundNearestTiesAway) === Interval(-Inf,2.0) + +end + +@testset "minimal_round_ties_to_away_dec_test" begin + + @test round(DecoratedInterval(interval(1.1,2.1), com), RoundNearestTiesAway) === 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 round(DecoratedInterval(interval(1.9,2.2), com), RoundNearestTiesAway) === 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 round(DecoratedInterval(interval(2.5,2.6), com), RoundNearestTiesAway) === DecoratedInterval(Interval(3.0,3.0), dac) + + @test round(DecoratedInterval(interval(-1.5,Inf), dac), RoundNearestTiesAway) === DecoratedInterval(Interval(-2.0,Inf), def) + + @test round(DecoratedInterval(interval(-Inf,2.2), def), RoundNearestTiesAway) === DecoratedInterval(Interval(-Inf,2.0), def) + +end + +@testset "minimal_abs_test" begin + + @test abs(emptyinterval()) === emptyinterval() + + @test abs(entireinterval()) === 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 + +@testset "minimal_abs_dec_test" begin + + @test abs(DecoratedInterval(interval(-1.1,2.0), com)) === DecoratedInterval(Interval(0.0,2.0), com) + + @test abs(DecoratedInterval(interval(-1.1,0.0), dac)) === DecoratedInterval(Interval(0.0,1.1), dac) + + @test abs(DecoratedInterval(interval(-1.1,-0.0), def)) === DecoratedInterval(Interval(0.0,1.1), def) + + @test abs(DecoratedInterval(interval(-1.1,-0.4), trv)) === DecoratedInterval(Interval(0.4,1.1), trv) + + @test abs(DecoratedInterval(interval(-1.9,0.2), dac)) === DecoratedInterval(Interval(0.0,1.9), dac) + + @test abs(DecoratedInterval(interval(0.0,0.2), def)) === DecoratedInterval(Interval(0.0,0.2), def) + + @test abs(DecoratedInterval(interval(-0.0,0.2), com)) === DecoratedInterval(Interval(0.0,0.2), com) + + @test abs(DecoratedInterval(interval(-1.5,Inf), dac)) === DecoratedInterval(Interval(0.0,Inf), dac) + +end + +@testset "minimal_min_test" begin + + @test min(emptyinterval(), interval(1.0,2.0)) === emptyinterval() + + @test min(interval(1.0,2.0), emptyinterval()) === emptyinterval() + + @test min(emptyinterval(), emptyinterval()) === emptyinterval() + + @test min(entireinterval(), interval(1.0,2.0)) === Interval(-Inf,2.0) + + @test min(interval(1.0,2.0), entireinterval()) === Interval(-Inf,2.0) + + @test min(entireinterval(), entireinterval()) === entireinterval() + + @test min(emptyinterval(), entireinterval()) === emptyinterval() + + @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()) === 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 + +@testset "minimal_min_dec_test" begin + + @test min(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(1.0,2.0), com)) === DecoratedInterval(Interval(-Inf,2.0), dac) + + @test min(DecoratedInterval(interval(-7.0,-5.0), trv), DecoratedInterval(interval(2.0,4.0), def)) === 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 min(DecoratedInterval(interval(-7.0,-0.0), com), DecoratedInterval(interval(2.0,4.0), com)) === DecoratedInterval(Interval(-7.0,0.0), com) + +end + +@testset "minimal_max_test" begin + + @test max(emptyinterval(), interval(1.0,2.0)) === emptyinterval() + + @test max(interval(1.0,2.0), emptyinterval()) === emptyinterval() + + @test max(emptyinterval(), emptyinterval()) === emptyinterval() + + @test max(entireinterval(), interval(1.0,2.0)) === Interval(1.0,Inf) + + @test max(interval(1.0,2.0), entireinterval()) === Interval(1.0,Inf) + + @test max(entireinterval(), entireinterval()) === entireinterval() + + @test max(emptyinterval(), entireinterval()) === emptyinterval() + + @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()) === 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 + +@testset "minimal_max_dec_test" begin + + @test max(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(1.0,2.0), com)) === DecoratedInterval(Interval(1.0,Inf), dac) + + @test max(DecoratedInterval(interval(-7.0,-5.0), trv), DecoratedInterval(interval(2.0,4.0), def)) === 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 max(DecoratedInterval(interval(3.0,3.5), com), DecoratedInterval(interval(2.0,4.0), com)) === DecoratedInterval(Interval(3.0,4.0), com) + +end + diff --git a/test/test_ITF1788/libieeep1788_mul_rev.jl b/test/test_ITF1788/libieeep1788_mul_rev.jl new file mode 100644 index 000000000..608a5ab54 --- /dev/null +++ b/test/test_ITF1788/libieeep1788_mul_rev.jl @@ -0,0 +1,701 @@ +@testset "minimal_mulRevToPair_test" begin + + @test mul_rev_to_pair(emptyinterval(), interval(1.0, 2.0))[1] === emptyinterval() && mul_rev_to_pair(emptyinterval(), interval(1.0, 2.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(1.0, 2.0), emptyinterval())[1] === emptyinterval() && mul_rev_to_pair(interval(1.0, 2.0), emptyinterval())[2] === emptyinterval() + + @test mul_rev_to_pair(emptyinterval(), emptyinterval())[1] === emptyinterval() && mul_rev_to_pair(emptyinterval(), emptyinterval())[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, -0.1), interval(-2.1, -0.4))[1] === Interval(0x1.999999999999AP-3, 0x1.5P+4) && mul_rev_to_pair(interval(-2.0, -0.1), interval(-2.1, -0.4))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 0.0), interval(-2.1, -0.4))[1] === Interval(0x1.999999999999AP-3, Inf) && mul_rev_to_pair(interval(-2.0, 0.0), interval(-2.1, -0.4))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 1.1), interval(-2.1, -0.4))[1] === Interval(-Inf, -0x1.745D1745D1745P-2) && mul_rev_to_pair(interval(-2.0, 1.1), interval(-2.1, -0.4))[2] === Interval(0x1.999999999999AP-3, Inf) + + @test mul_rev_to_pair(interval(0.0, 1.1), interval(-2.1, -0.4))[1] === Interval(-Inf, -0x1.745D1745D1745P-2) && mul_rev_to_pair(interval(0.0, 1.1), interval(-2.1, -0.4))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, 1.1), interval(-2.1, -0.4))[1] === Interval(-0x1.A400000000001P+7, -0x1.745D1745D1745P-2) && mul_rev_to_pair(interval(0.01, 1.1), interval(-2.1, -0.4))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 0.0), interval(-2.1, -0.4))[1] === emptyinterval() && mul_rev_to_pair(interval(0.0, 0.0), interval(-2.1, -0.4))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, -0.1), interval(-2.1, -0.4))[1] === Interval(0.0, 0x1.5P+4) && mul_rev_to_pair(interval(-Inf, -0.1), interval(-2.1, -0.4))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 0.0), interval(-2.1, -0.4))[1] === Interval(0.0, Inf) && mul_rev_to_pair(interval(-Inf, 0.0), interval(-2.1, -0.4))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 1.1), interval(-2.1, -0.4))[1] === Interval(-Inf, -0x1.745D1745D1745P-2) && mul_rev_to_pair(interval(-Inf, 1.1), interval(-2.1, -0.4))[2] === Interval(0.0, Inf) + + @test mul_rev_to_pair(interval(-2.0, Inf), interval(-2.1, -0.4))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(interval(-2.0, Inf), interval(-2.1, -0.4))[2] === Interval(0x1.999999999999AP-3, Inf) + + @test mul_rev_to_pair(interval(0.0, Inf), interval(-2.1, -0.4))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(interval(0.0, Inf), interval(-2.1, -0.4))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, Inf), interval(-2.1, -0.4))[1] === Interval(-0x1.A400000000001P+7, 0.0) && mul_rev_to_pair(interval(0.01, Inf), interval(-2.1, -0.4))[2] === emptyinterval() + + @test mul_rev_to_pair(entireinterval(), interval(-2.1, -0.4))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(entireinterval(), interval(-2.1, -0.4))[2] === Interval(0.0, Inf) + + @test mul_rev_to_pair(interval(-2.0, -0.1), interval(-2.1, 0.0))[1] === Interval(0.0, 0x1.5P+4) && mul_rev_to_pair(interval(-2.0, -0.1), interval(-2.1, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 0.0), interval(-2.1, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 0.0), interval(-2.1, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 1.1), interval(-2.1, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 1.1), interval(-2.1, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 1.1), interval(-2.1, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 1.1), interval(-2.1, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, 1.1), interval(-2.1, 0.0))[1] === Interval(-0x1.A400000000001P+7, 0.0) && mul_rev_to_pair(interval(0.01, 1.1), interval(-2.1, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 0.0), interval(-2.1, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 0.0), interval(-2.1, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, -0.1), interval(-2.1, 0.0))[1] === Interval(0.0, 0x1.5P+4) && mul_rev_to_pair(interval(-Inf, -0.1), interval(-2.1, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 0.0), interval(-2.1, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 0.0), interval(-2.1, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 1.1), interval(-2.1, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 1.1), interval(-2.1, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, Inf), interval(-2.1, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, Inf), interval(-2.1, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, Inf), interval(-2.1, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, Inf), interval(-2.1, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, Inf), interval(-2.1, 0.0))[1] === Interval(-0x1.A400000000001P+7, 0.0) && mul_rev_to_pair(interval(0.01, Inf), interval(-2.1, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(entireinterval(), interval(-2.1, 0.0))[1] === entireinterval() && mul_rev_to_pair(entireinterval(), interval(-2.1, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, -0.1), interval(-2.1, 0.12))[1] === Interval(-0x1.3333333333333P+0, 0x1.5P+4) && mul_rev_to_pair(interval(-2.0, -0.1), interval(-2.1, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 0.0), interval(-2.1, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 0.0), interval(-2.1, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 1.1), interval(-2.1, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 1.1), interval(-2.1, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 1.1), interval(-2.1, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 1.1), interval(-2.1, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, 1.1), interval(-2.1, 0.12))[1] === Interval(-0x1.A400000000001P+7 , 0x1.8P+3) && mul_rev_to_pair(interval(0.01, 1.1), interval(-2.1, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 0.0), interval(-2.1, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 0.0), interval(-2.1, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, -0.1), interval(-2.1, 0.12))[1] === Interval(-0x1.3333333333333P+0, 0x1.5P+4) && mul_rev_to_pair(interval(-Inf, -0.1), interval(-2.1, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 0.0), interval(-2.1, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 0.0), interval(-2.1, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 1.1), interval(-2.1, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 1.1), interval(-2.1, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, Inf), interval(-2.1, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, Inf), interval(-2.1, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, Inf), interval(-2.1, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, Inf), interval(-2.1, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, Inf), interval(-2.1, 0.12))[1] === Interval(-0x1.A400000000001P+7 , 0x1.8P+3) && mul_rev_to_pair(interval(0.01, Inf), interval(-2.1, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(entireinterval(), interval(-2.1, 0.12))[1] === entireinterval() && mul_rev_to_pair(entireinterval(), interval(-2.1, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, -0.1), interval(0.0, 0.12))[1] === Interval(-0x1.3333333333333P+0, 0.0) && mul_rev_to_pair(interval(-2.0, -0.1), interval(0.0, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 0.0), interval(0.0, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 0.0), interval(0.0, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 1.1), interval(0.0, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 1.1), interval(0.0, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 1.1), interval(0.0, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 1.1), interval(0.0, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, 1.1), interval(0.0, 0.12))[1] === Interval(0.0, 0x1.8P+3) && mul_rev_to_pair(interval(0.01, 1.1), interval(0.0, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 0.0), interval(0.0, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 0.0), interval(0.0, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, -0.1), interval(0.0, 0.12))[1] === Interval(-0x1.3333333333333P+0, 0.0) && mul_rev_to_pair(interval(-Inf, -0.1), interval(0.0, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 0.0), interval(0.0, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 0.0), interval(0.0, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 1.1), interval(0.0, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 1.1), interval(0.0, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, Inf), interval(0.0, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, Inf), interval(0.0, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, Inf), interval(0.0, 0.12))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, Inf), interval(0.0, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, Inf), interval(0.0, 0.12))[1] === Interval(0.0, 0x1.8P+3) && mul_rev_to_pair(interval(0.01, Inf), interval(0.0, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(entireinterval(), interval(0.0, 0.12))[1] === entireinterval() && mul_rev_to_pair(entireinterval(), interval(0.0, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, -0.1), interval(0.01, 0.12))[1] === Interval(-0x1.3333333333333P+0, -0x1.47AE147AE147BP-8) && mul_rev_to_pair(interval(-2.0, -0.1), interval(0.01, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 0.0), interval(0.01, 0.12))[1] === Interval(-Inf, -0x1.47AE147AE147BP-8) && mul_rev_to_pair(interval(-2.0, 0.0), interval(0.01, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 1.1), interval(0.01, 0.12))[1] === Interval(-Inf, -0x1.47AE147AE147BP-8) && mul_rev_to_pair(interval(-2.0, 1.1), interval(0.01, 0.12))[2] === Interval(0x1.29E4129E4129DP-7, Inf) + + @test mul_rev_to_pair(interval(0.0, 1.1), interval(0.01, 0.12))[1] === Interval(0x1.29E4129E4129DP-7, Inf) && mul_rev_to_pair(interval(0.0, 1.1), interval(0.01, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, 1.1), interval(0.01, 0.12))[1] === Interval(0x1.29E4129E4129DP-7, 0x1.8P+3) && mul_rev_to_pair(interval(0.01, 1.1), interval(0.01, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 0.0), interval(0.01, 0.12))[1] === emptyinterval() && mul_rev_to_pair(interval(0.0, 0.0), interval(0.01, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, -0.1), interval(0.01, 0.12))[1] === Interval(-0x1.3333333333333P+0, 0.0) && mul_rev_to_pair(interval(-Inf, -0.1), interval(0.01, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 0.0), interval(0.01, 0.12))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(interval(-Inf, 0.0), interval(0.01, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 1.1), interval(0.01, 0.12))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(interval(-Inf, 1.1), interval(0.01, 0.12))[2] === Interval(0x1.29E4129E4129DP-7, Inf) + + @test mul_rev_to_pair(interval(-2.0, Inf), interval(0.01, 0.12))[1] === Interval(-Inf, -0x1.47AE147AE147BP-8) && mul_rev_to_pair(interval(-2.0, Inf), interval(0.01, 0.12))[2] === Interval(0.0, Inf) + + @test mul_rev_to_pair(interval(0.0, Inf), interval(0.01, 0.12))[1] === Interval(0.0, Inf) && mul_rev_to_pair(interval(0.0, Inf), interval(0.01, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, Inf), interval(0.01, 0.12))[1] === Interval(0.0, 0x1.8P+3) && mul_rev_to_pair(interval(0.01, Inf), interval(0.01, 0.12))[2] === emptyinterval() + + @test mul_rev_to_pair(entireinterval(), interval(0.01, 0.12))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(entireinterval(), interval(0.01, 0.12))[2] === Interval(0.0, Inf) + + @test mul_rev_to_pair(interval(-2.0, -0.1), interval(0.0, 0.0))[1] === Interval(0.0, 0.0) && mul_rev_to_pair(interval(-2.0, -0.1), interval(0.0, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 0.0), interval(0.0, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 0.0), interval(0.0, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 1.1), interval(0.0, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 1.1), interval(0.0, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 1.1), interval(0.0, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 1.1), interval(0.0, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, 1.1), interval(0.0, 0.0))[1] === Interval(0.0, 0.0) && mul_rev_to_pair(interval(0.01, 1.1), interval(0.0, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 0.0), interval(0.0, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 0.0), interval(0.0, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, -0.1), interval(0.0, 0.0))[1] === Interval(0.0, 0.0) && mul_rev_to_pair(interval(-Inf, -0.1), interval(0.0, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 0.0), interval(0.0, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 0.0), interval(0.0, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 1.1), interval(0.0, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 1.1), interval(0.0, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, Inf), interval(0.0, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, Inf), interval(0.0, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, Inf), interval(0.0, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, Inf), interval(0.0, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, Inf), interval(0.0, 0.0))[1] === Interval(0.0, 0.0) && mul_rev_to_pair(interval(0.01, Inf), interval(0.0, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(entireinterval(), interval(0.0, 0.0))[1] === entireinterval() && mul_rev_to_pair(entireinterval(), interval(0.0, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, -0.1), interval(-Inf, -0.1))[1] === Interval(0x1.999999999999AP-5, Inf) && mul_rev_to_pair(interval(-2.0, -0.1), interval(-Inf, -0.1))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 0.0), interval(-Inf, -0.1))[1] === Interval(0x1.999999999999AP-5 , Inf) && mul_rev_to_pair(interval(-2.0, 0.0), interval(-Inf, -0.1))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 1.1), interval(-Inf, -0.1))[1] === Interval(-Inf , -0x1.745D1745D1745P-4) && mul_rev_to_pair(interval(-2.0, 1.1), interval(-Inf, -0.1))[2] === Interval(0x1.999999999999AP-5 , Inf) + + @test mul_rev_to_pair(interval(0.0, 1.1), interval(-Inf, -0.1))[1] === Interval(-Inf, -0x1.745D1745D1745P-4) && mul_rev_to_pair(interval(0.0, 1.1), interval(-Inf, -0.1))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, 1.1), interval(-Inf, -0.1))[1] === Interval(-Inf, -0x1.745D1745D1745P-4) && mul_rev_to_pair(interval(0.01, 1.1), interval(-Inf, -0.1))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 0.0), interval(-Inf, -0.1))[1] === emptyinterval() && mul_rev_to_pair(interval(0.0, 0.0), interval(-Inf, -0.1))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, -0.1), interval(-Inf, -0.1))[1] === Interval(0.0, Inf) && mul_rev_to_pair(interval(-Inf, -0.1), interval(-Inf, -0.1))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 0.0), interval(-Inf, -0.1))[1] === Interval(0.0, Inf) && mul_rev_to_pair(interval(-Inf, 0.0), interval(-Inf, -0.1))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 1.1), interval(-Inf, -0.1))[1] === Interval(-Inf, -0x1.745D1745D1745P-4) && mul_rev_to_pair(interval(-Inf, 1.1), interval(-Inf, -0.1))[2] === Interval(0.0, Inf) + + @test mul_rev_to_pair(interval(-2.0, Inf), interval(-Inf, -0.1))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(interval(-2.0, Inf), interval(-Inf, -0.1))[2] === Interval(0x1.999999999999AP-5 , Inf) + + @test mul_rev_to_pair(interval(0.0, Inf), interval(-Inf, -0.1))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(interval(0.0, Inf), interval(-Inf, -0.1))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, Inf), interval(-Inf, -0.1))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(interval(0.01, Inf), interval(-Inf, -0.1))[2] === emptyinterval() + + @test mul_rev_to_pair(entireinterval(), interval(-Inf, -0.1))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(entireinterval(), interval(-Inf, -0.1))[2] === Interval(0.0, Inf) + + @test mul_rev_to_pair(interval(-2.0, -0.1), interval(-Inf, 0.0))[1] === Interval(0.0, Inf) && mul_rev_to_pair(interval(-2.0, -0.1), interval(-Inf, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 0.0), interval(-Inf, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 0.0), interval(-Inf, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 1.1), interval(-Inf, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 1.1), interval(-Inf, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 1.1), interval(-Inf, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 1.1), interval(-Inf, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, 1.1), interval(-Inf, 0.0))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(interval(0.01, 1.1), interval(-Inf, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 0.0), interval(-Inf, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 0.0), interval(-Inf, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, -0.1), interval(-Inf, 0.0))[1] === Interval(0.0, Inf) && mul_rev_to_pair(interval(-Inf, -0.1), interval(-Inf, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 0.0), interval(-Inf, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 0.0), interval(-Inf, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 1.1), interval(-Inf, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 1.1), interval(-Inf, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, Inf), interval(-Inf, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, Inf), interval(-Inf, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, Inf), interval(-Inf, 0.0))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, Inf), interval(-Inf, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, Inf), interval(-Inf, 0.0))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(interval(0.01, Inf), interval(-Inf, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(entireinterval(), interval(-Inf, 0.0))[1] === entireinterval() && mul_rev_to_pair(entireinterval(), interval(-Inf, 0.0))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, -0.1), interval(-Inf, 0.3))[1] === Interval(-0x1.8P+1, Inf) && mul_rev_to_pair(interval(-2.0, -0.1), interval(-Inf, 0.3))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 0.0), interval(-Inf, 0.3))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 0.0), interval(-Inf, 0.3))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 1.1), interval(-Inf, 0.3))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 1.1), interval(-Inf, 0.3))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 1.1), interval(-Inf, 0.3))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 1.1), interval(-Inf, 0.3))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, 1.1), interval(-Inf, 0.3))[1] === Interval(-Inf, 0x1.EP+4) && mul_rev_to_pair(interval(0.01, 1.1), interval(-Inf, 0.3))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 0.0), interval(-Inf, 0.3))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 0.0), interval(-Inf, 0.3))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, -0.1), interval(-Inf, 0.3))[1] === Interval(-0x1.8P+1, Inf) && mul_rev_to_pair(interval(-Inf, -0.1), interval(-Inf, 0.3))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 0.0), interval(-Inf, 0.3))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 0.0), interval(-Inf, 0.3))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 1.1), interval(-Inf, 0.3))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 1.1), interval(-Inf, 0.3))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, Inf), interval(-Inf, 0.3))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, Inf), interval(-Inf, 0.3))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, Inf), interval(-Inf, 0.3))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, Inf), interval(-Inf, 0.3))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, Inf), interval(-Inf, 0.3))[1] === Interval(-Inf, 0x1.EP+4) && mul_rev_to_pair(interval(0.01, Inf), interval(-Inf, 0.3))[2] === emptyinterval() + + @test mul_rev_to_pair(entireinterval(), interval(-Inf, 0.3))[1] === entireinterval() && mul_rev_to_pair(entireinterval(), interval(-Inf, 0.3))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, -0.1), interval(-0.21, Inf))[1] === Interval(-Inf , 0x1.0CCCCCCCCCCCDP+1) && mul_rev_to_pair(interval(-2.0, -0.1), interval(-0.21, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 0.0), interval(-0.21, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 0.0), interval(-0.21, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 1.1), interval(-0.21, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 1.1), interval(-0.21, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 1.1), interval(-0.21, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 1.1), interval(-0.21, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, 1.1), interval(-0.21, Inf))[1] === Interval(-0x1.5P+4, Inf) && mul_rev_to_pair(interval(0.01, 1.1), interval(-0.21, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 0.0), interval(-0.21, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 0.0), interval(-0.21, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, -0.1), interval(-0.21, Inf))[1] === Interval(-Inf, 0x1.0CCCCCCCCCCCDP+1) && mul_rev_to_pair(interval(-Inf, -0.1), interval(-0.21, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 0.0), interval(-0.21, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 0.0), interval(-0.21, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 1.1), interval(-0.21, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 1.1), interval(-0.21, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, Inf), interval(-0.21, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, Inf), interval(-0.21, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, Inf), interval(-0.21, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, Inf), interval(-0.21, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, Inf), interval(-0.21, Inf))[1] === Interval(-0x1.5P+4, Inf) && mul_rev_to_pair(interval(0.01, Inf), interval(-0.21, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(entireinterval(), interval(-0.21, Inf))[1] === entireinterval() && mul_rev_to_pair(entireinterval(), interval(-0.21, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, -0.1), interval(0.0, Inf))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(interval(-2.0, -0.1), interval(0.0, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 0.0), interval(0.0, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 0.0), interval(0.0, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 1.1), interval(0.0, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 1.1), interval(0.0, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 1.1), interval(0.0, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 1.1), interval(0.0, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, 1.1), interval(0.0, Inf))[1] === Interval(0.0, Inf) && mul_rev_to_pair(interval(0.01, 1.1), interval(0.0, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 0.0), interval(0.0, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 0.0), interval(0.0, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, -0.1), interval(0.0, Inf))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(interval(-Inf, -0.1), interval(0.0, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 0.0), interval(0.0, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 0.0), interval(0.0, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 1.1), interval(0.0, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 1.1), interval(0.0, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, Inf), interval(0.0, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, Inf), interval(0.0, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, Inf), interval(0.0, Inf))[1] === entireinterval() && mul_rev_to_pair(interval(0.0, Inf), interval(0.0, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, Inf), interval(0.0, Inf))[1] === Interval(0.0, Inf) && mul_rev_to_pair(interval(0.01, Inf), interval(0.0, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(entireinterval(), interval(0.0, Inf))[1] === entireinterval() && mul_rev_to_pair(entireinterval(), interval(0.0, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, -0.1), interval(0.04, Inf))[1] === Interval(-Inf, -0x1.47AE147AE147BP-6) && mul_rev_to_pair(interval(-2.0, -0.1), interval(0.04, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 0.0), interval(0.04, Inf))[1] === Interval(-Inf, -0x1.47AE147AE147BP-6) && mul_rev_to_pair(interval(-2.0, 0.0), interval(0.04, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 1.1), interval(0.04, Inf))[1] === Interval(-Inf, -0x1.47AE147AE147BP-6) && mul_rev_to_pair(interval(-2.0, 1.1), interval(0.04, Inf))[2] === Interval(0x1.29E4129E4129DP-5, Inf) + + @test mul_rev_to_pair(interval(0.0, 1.1), interval(0.04, Inf))[1] === Interval(0x1.29E4129E4129DP-5, Inf) && mul_rev_to_pair(interval(0.0, 1.1), interval(0.04, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, 1.1), interval(0.04, Inf))[1] === Interval(0x1.29E4129E4129DP-5, Inf) && mul_rev_to_pair(interval(0.01, 1.1), interval(0.04, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 0.0), interval(0.04, Inf))[1] === emptyinterval() && mul_rev_to_pair(interval(0.0, 0.0), interval(0.04, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, -0.1), interval(0.04, Inf))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(interval(-Inf, -0.1), interval(0.04, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 0.0), interval(0.04, Inf))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(interval(-Inf, 0.0), interval(0.04, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 1.1), interval(0.04, Inf))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(interval(-Inf, 1.1), interval(0.04, Inf))[2] === Interval(0x1.29E4129E4129DP-5, Inf) + + @test mul_rev_to_pair(interval(-2.0, Inf), interval(0.04, Inf))[1] === Interval(-Inf, -0x1.47AE147AE147BP-6) && mul_rev_to_pair(interval(-2.0, Inf), interval(0.04, Inf))[2] === Interval(0.0, Inf) + + @test mul_rev_to_pair(interval(0.0, Inf), interval(0.04, Inf))[1] === Interval(0.0, Inf) && mul_rev_to_pair(interval(0.0, Inf), interval(0.04, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, Inf), interval(0.04, Inf))[1] === Interval(0.0, Inf) && mul_rev_to_pair(interval(0.01, Inf), interval(0.04, Inf))[2] === emptyinterval() + + @test mul_rev_to_pair(entireinterval(), interval(0.04, Inf))[1] === Interval(-Inf, 0.0) && mul_rev_to_pair(entireinterval(), interval(0.04, Inf))[2] === Interval(0.0, Inf) + + @test mul_rev_to_pair(interval(-2.0, -0.1), entireinterval())[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, -0.1), entireinterval())[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 0.0), entireinterval())[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 0.0), entireinterval())[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, 1.1), entireinterval())[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, 1.1), entireinterval())[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 1.1), entireinterval())[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 1.1), entireinterval())[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, 1.1), entireinterval())[1] === entireinterval() && mul_rev_to_pair(interval(0.01, 1.1), entireinterval())[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, 0.0), entireinterval())[1] === entireinterval() && mul_rev_to_pair(interval(0.0, 0.0), entireinterval())[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, -0.1), entireinterval())[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, -0.1), entireinterval())[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 0.0), entireinterval())[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 0.0), entireinterval())[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-Inf, 1.1), entireinterval())[1] === entireinterval() && mul_rev_to_pair(interval(-Inf, 1.1), entireinterval())[2] === emptyinterval() + + @test mul_rev_to_pair(interval(-2.0, Inf), entireinterval())[1] === entireinterval() && mul_rev_to_pair(interval(-2.0, Inf), entireinterval())[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.0, Inf), entireinterval())[1] === entireinterval() && mul_rev_to_pair(interval(0.0, Inf), entireinterval())[2] === emptyinterval() + + @test mul_rev_to_pair(interval(0.01, Inf), entireinterval())[1] === entireinterval() && mul_rev_to_pair(interval(0.01, Inf), entireinterval())[2] === emptyinterval() + + @test mul_rev_to_pair(entireinterval(), entireinterval())[1] === entireinterval() && mul_rev_to_pair(entireinterval(), entireinterval())[2] === emptyinterval() + +end + +@testset "minimal_mulRevToPair_dec_test" begin + + @test isnai(mul_rev_to_pair(nai(), DecoratedInterval(interval(1.0,2.0), def))[1]) && isnai(mul_rev_to_pair(nai(), DecoratedInterval(interval(1.0,2.0), def))[2]) + + @test isnai(mul_rev_to_pair(DecoratedInterval(interval(1.0,2.0), com), nai())[1]) && isnai(mul_rev_to_pair(DecoratedInterval(interval(1.0,2.0), com), nai())[2]) + + @test isnai(mul_rev_to_pair(nai(), nai())[1]) && isnai(mul_rev_to_pair(nai(), nai())[2]) + + @test mul_rev_to_pair(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(1.0, 2.0), def))[1] === DecoratedInterval(emptyinterval(), trv) && mul_rev_to_pair(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(1.0, 2.0), def))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(1.0, 2.0), com), DecoratedInterval(emptyinterval(), trv))[1] === DecoratedInterval(emptyinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(1.0, 2.0), com), DecoratedInterval(emptyinterval(), trv))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(emptyinterval(), trv))[1] === DecoratedInterval(emptyinterval(), trv) && mul_rev_to_pair(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(emptyinterval(), trv))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), com), DecoratedInterval(interval(-2.1, -0.4), com))[1] === DecoratedInterval(Interval(0x1.999999999999AP-3, 0x1.5P+4), com) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), com), DecoratedInterval(interval(-2.1, -0.4), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(-2.1, -0.4), com))[1] === DecoratedInterval(Interval(0x1.999999999999AP-3, Inf), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(-2.1, -0.4), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), com), DecoratedInterval(interval(-2.1, -0.4), dac))[1] === DecoratedInterval(Interval(-Inf, -0x1.745D1745D1745P-2), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), com), DecoratedInterval(interval(-2.1, -0.4), dac))[2] === DecoratedInterval(Interval(0x1.999999999999AP-3, Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), trv), DecoratedInterval(interval(-2.1, -0.4), def))[1] === DecoratedInterval(Interval(-Inf, -0x1.745D1745D1745P-2), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), trv), DecoratedInterval(interval(-2.1, -0.4), def))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), com), DecoratedInterval(interval(-2.1, -0.4), com))[1] === DecoratedInterval(Interval(-0x1.A400000000001P+7, -0x1.745D1745D1745P-2), com) && mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), com), DecoratedInterval(interval(-2.1, -0.4), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(-2.1, -0.4), def))[1] === DecoratedInterval(emptyinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(-2.1, -0.4), def))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(-2.1, -0.4), dac))[1] === DecoratedInterval(Interval(0.0, 0x1.5P+4), dac) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(-2.1, -0.4), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), def), DecoratedInterval(interval(-2.1, -0.4), com))[1] === DecoratedInterval(Interval(0.0, Inf), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), def), DecoratedInterval(interval(-2.1, -0.4), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), trv), DecoratedInterval(interval(-2.1, -0.4), def))[1] === DecoratedInterval(Interval(-Inf, -0x1.745D1745D1745P-2), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), trv), DecoratedInterval(interval(-2.1, -0.4), def))[2] === DecoratedInterval(Interval(0.0, Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(-2.1, -0.4), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(-2.1, -0.4), dac))[2] === DecoratedInterval(Interval(0x1.999999999999AP-3, Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), def), DecoratedInterval(interval(-2.1, -0.4), com))[1] === DecoratedInterval(Interval(-Inf, 0.0), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), def), DecoratedInterval(interval(-2.1, -0.4), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), def), DecoratedInterval(interval(-2.1, -0.4), def))[1] === DecoratedInterval(Interval(-0x1.A400000000001P+7, 0.0), def) && mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), def), DecoratedInterval(interval(-2.1, -0.4), def))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-2.1, -0.4), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), trv) && mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-2.1, -0.4), dac))[2] === DecoratedInterval(Interval(0.0, Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(-2.1, 0.0), com))[1] === DecoratedInterval(Interval(0.0, 0x1.5P+4), dac) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(-2.1, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(-2.1, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(-2.1, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(-2.1, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(-2.1, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(-2.1, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(-2.1, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(-2.1, 0.0), com))[1] === DecoratedInterval(Interval(-0x1.A400000000001P+7, 0.0), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(-2.1, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(-2.1, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(-2.1, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(-2.1, 0.0), com))[1] === DecoratedInterval(Interval(0.0, 0x1.5P+4), dac) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(-2.1, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(-2.1, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(-2.1, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(-2.1, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(-2.1, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(-2.1, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(-2.1, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(-2.1, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(-2.1, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(-2.1, 0.0), com))[1] === DecoratedInterval(Interval(-0x1.A400000000001P+7, 0.0), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(-2.1, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-2.1, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-2.1, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), def), DecoratedInterval(interval(-2.1, 0.12), dac))[1] === DecoratedInterval(Interval(-0x1.3333333333333P+0, 0x1.5P+4), def) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), def), DecoratedInterval(interval(-2.1, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), def), DecoratedInterval(interval(-2.1, 0.12), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), def), DecoratedInterval(interval(-2.1, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), def), DecoratedInterval(interval(-2.1, 0.12), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), def), DecoratedInterval(interval(-2.1, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), def), DecoratedInterval(interval(-2.1, 0.12), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), def), DecoratedInterval(interval(-2.1, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), def), DecoratedInterval(interval(-2.1, 0.12), dac))[1] === DecoratedInterval(Interval(-0x1.A400000000001P+7 , 0x1.8P+3), def) && mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), def), DecoratedInterval(interval(-2.1, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), def), DecoratedInterval(interval(-2.1, 0.12), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), def), DecoratedInterval(interval(-2.1, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), def), DecoratedInterval(interval(-2.1, 0.12), dac))[1] === DecoratedInterval(Interval(-0x1.3333333333333P+0, 0x1.5P+4), def) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), def), DecoratedInterval(interval(-2.1, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), def), DecoratedInterval(interval(-2.1, 0.12), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), def), DecoratedInterval(interval(-2.1, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), def), DecoratedInterval(interval(-2.1, 0.12), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), def), DecoratedInterval(interval(-2.1, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), def), DecoratedInterval(interval(-2.1, 0.12), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), def), DecoratedInterval(interval(-2.1, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), def), DecoratedInterval(interval(-2.1, 0.12), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), def), DecoratedInterval(interval(-2.1, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), def), DecoratedInterval(interval(-2.1, 0.12), dac))[1] === DecoratedInterval(Interval(-0x1.A400000000001P+7 , 0x1.8P+3), def) && mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), def), DecoratedInterval(interval(-2.1, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(entireinterval(), def), DecoratedInterval(interval(-2.1, 0.12), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(entireinterval(), def), DecoratedInterval(interval(-2.1, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), com), DecoratedInterval(interval(0.0, 0.12), com))[1] === DecoratedInterval(Interval(-0x1.3333333333333P+0, 0.0), com) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), com), DecoratedInterval(interval(0.0, 0.12), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), com), DecoratedInterval(interval(0.0, 0.12), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), com), DecoratedInterval(interval(0.0, 0.12), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), com), DecoratedInterval(interval(0.0, 0.12), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), com), DecoratedInterval(interval(0.0, 0.12), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), com), DecoratedInterval(interval(0.0, 0.12), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), com), DecoratedInterval(interval(0.0, 0.12), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), com), DecoratedInterval(interval(0.0, 0.12), com))[1] === DecoratedInterval(Interval(0.0, 0x1.8P+3), com) && mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), com), DecoratedInterval(interval(0.0, 0.12), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), com), DecoratedInterval(interval(0.0, 0.12), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), com), DecoratedInterval(interval(0.0, 0.12), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(0.0, 0.12), com))[1] === DecoratedInterval(Interval(-0x1.3333333333333P+0, 0.0), dac) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(0.0, 0.12), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(0.0, 0.12), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(0.0, 0.12), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(0.0, 0.12), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(0.0, 0.12), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(0.0, 0.12), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(0.0, 0.12), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(0.0, 0.12), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(0.0, 0.12), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(0.0, 0.12), com))[1] === DecoratedInterval(Interval(0.0, 0x1.8P+3), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(0.0, 0.12), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(0.0, 0.12), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(0.0, 0.12), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(0.01, 0.12), dac))[1] === DecoratedInterval(Interval(-0x1.3333333333333P+0, -0x1.47AE147AE147BP-8), dac) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(0.01, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(0.01, 0.12), dac))[1] === DecoratedInterval(Interval(-Inf, -0x1.47AE147AE147BP-8), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(0.01, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(0.01, 0.12), dac))[1] === DecoratedInterval(Interval(-Inf, -0x1.47AE147AE147BP-8), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(0.01, 0.12), dac))[2] === DecoratedInterval(Interval(0x1.29E4129E4129DP-7, Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(0.01, 0.12), dac))[1] === DecoratedInterval(Interval(0x1.29E4129E4129DP-7, Inf), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(0.01, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(0.01, 0.12), dac))[1] === DecoratedInterval(Interval(0x1.29E4129E4129DP-7, 0x1.8P+3), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(0.01, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(0.01, 0.12), dac))[1] === DecoratedInterval(emptyinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(0.01, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(0.01, 0.12), dac))[1] === DecoratedInterval(Interval(-0x1.3333333333333P+0, 0.0), dac) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(0.01, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(0.01, 0.12), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(0.01, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(0.01, 0.12), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(0.01, 0.12), dac))[2] === DecoratedInterval(Interval(0x1.29E4129E4129DP-7, Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(0.01, 0.12), dac))[1] === DecoratedInterval(Interval(-Inf, -0x1.47AE147AE147BP-8), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(0.01, 0.12), dac))[2] === DecoratedInterval(Interval(0.0, Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(0.01, 0.12), dac))[1] === DecoratedInterval(Interval(0.0, Inf), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(0.01, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(0.01, 0.12), dac))[1] === DecoratedInterval(Interval(0.0, 0x1.8P+3), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(0.01, 0.12), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(0.01, 0.12), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), trv) && mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(0.01, 0.12), dac))[2] === DecoratedInterval(Interval(0.0, Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), com), DecoratedInterval(interval(0.0, 0.0), com))[1] === DecoratedInterval(Interval(0.0, 0.0), com) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), com), DecoratedInterval(interval(0.0, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), com), DecoratedInterval(interval(0.0, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), com), DecoratedInterval(interval(0.0, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), com), DecoratedInterval(interval(0.0, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), com), DecoratedInterval(interval(0.0, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), com), DecoratedInterval(interval(0.0, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), com), DecoratedInterval(interval(0.0, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), com), DecoratedInterval(interval(0.0, 0.0), com))[1] === DecoratedInterval(Interval(0.0, 0.0), com) && mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), com), DecoratedInterval(interval(0.0, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), com), DecoratedInterval(interval(0.0, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), com), DecoratedInterval(interval(0.0, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(0.0, 0.0), com))[1] === DecoratedInterval(Interval(0.0, 0.0), dac) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(0.0, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(0.0, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(0.0, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(0.0, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(0.0, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(0.0, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(0.0, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(0.0, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(0.0, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(0.0, 0.0), com))[1] === DecoratedInterval(Interval(0.0, 0.0), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(0.0, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(0.0, 0.0), com))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(0.0, 0.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[1] === DecoratedInterval(Interval(0x1.999999999999AP-5, Inf), dac) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[1] === DecoratedInterval(Interval(0x1.999999999999AP-5 , Inf), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[1] === DecoratedInterval(Interval(-Inf , -0x1.745D1745D1745P-4), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[2] === DecoratedInterval(Interval(0x1.999999999999AP-5 , Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[1] === DecoratedInterval(Interval(-Inf, -0x1.745D1745D1745P-4), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[1] === DecoratedInterval(Interval(-Inf, -0x1.745D1745D1745P-4), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[1] === DecoratedInterval(emptyinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[1] === DecoratedInterval(Interval(0.0, Inf), dac) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[1] === DecoratedInterval(Interval(0.0, Inf), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[1] === DecoratedInterval(Interval(-Inf, -0x1.745D1745D1745P-4), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[2] === DecoratedInterval(Interval(0.0, Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[2] === DecoratedInterval(Interval(0x1.999999999999AP-5 , Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), trv) && mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-Inf, -0.1), dac))[2] === DecoratedInterval(Interval(0.0, Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[1] === DecoratedInterval(Interval(0.0, Inf), dac) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[1] === DecoratedInterval(Interval(0.0, Inf), dac) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-Inf, 0.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[1] === DecoratedInterval(Interval(-0x1.8P+1, Inf), dac) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[1] === DecoratedInterval(Interval(-Inf, 0x1.EP+4), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[1] === DecoratedInterval(Interval(-0x1.8P+1, Inf), dac) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[1] === DecoratedInterval(Interval(-Inf, 0x1.EP+4), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-Inf, 0.3), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(-0.21, Inf), dac))[1] === DecoratedInterval(Interval(-Inf , 0x1.0CCCCCCCCCCCDP+1), dac) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(-0.21, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(-0.21, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(-0.21, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(-0.21, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(-0.21, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(-0.21, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(-0.21, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(-0.21, Inf), dac))[1] === DecoratedInterval(Interval(-0x1.5P+4, Inf), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(-0.21, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(-0.21, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(-0.21, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(-0.21, Inf), dac))[1] === DecoratedInterval(Interval(-Inf, 0x1.0CCCCCCCCCCCDP+1), dac) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(-0.21, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(-0.21, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(-0.21, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(-0.21, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(-0.21, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(-0.21, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(-0.21, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(-0.21, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(-0.21, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(-0.21, Inf), dac))[1] === DecoratedInterval(Interval(-0x1.5P+4, Inf), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(-0.21, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-0.21, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(-0.21, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(0.0, Inf), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), dac) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(0.0, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(0.0, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(0.0, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(0.0, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(0.0, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(0.0, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(0.0, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(0.0, Inf), dac))[1] === DecoratedInterval(Interval(0.0, Inf), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(0.0, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(0.0, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(0.0, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(0.0, Inf), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), dac) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(0.0, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(0.0, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(0.0, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(0.0, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(0.0, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(0.0, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(0.0, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(0.0, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(0.0, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(0.0, Inf), dac))[1] === DecoratedInterval(Interval(0.0, Inf), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(0.0, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(0.0, Inf), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(0.0, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(0.04, Inf), dac))[1] === DecoratedInterval(Interval(-Inf, -0x1.47AE147AE147BP-6), dac) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(0.04, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(0.04, Inf), dac))[1] === DecoratedInterval(Interval(-Inf, -0x1.47AE147AE147BP-6), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(interval(0.04, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(0.04, Inf), dac))[1] === DecoratedInterval(Interval(-Inf, -0x1.47AE147AE147BP-6), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(interval(0.04, Inf), dac))[2] === DecoratedInterval(Interval(0x1.29E4129E4129DP-5, Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(0.04, Inf), dac))[1] === DecoratedInterval(Interval(0x1.29E4129E4129DP-5, Inf), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(interval(0.04, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(0.04, Inf), dac))[1] === DecoratedInterval(Interval(0x1.29E4129E4129DP-5, Inf), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(0.04, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(0.04, Inf), dac))[1] === DecoratedInterval(emptyinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(interval(0.04, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(0.04, Inf), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), dac) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(0.04, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(0.04, Inf), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(interval(0.04, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(0.04, Inf), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(interval(0.04, Inf), dac))[2] === DecoratedInterval(Interval(0x1.29E4129E4129DP-5, Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(0.04, Inf), dac))[1] === DecoratedInterval(Interval(-Inf, -0x1.47AE147AE147BP-6), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(interval(0.04, Inf), dac))[2] === DecoratedInterval(Interval(0.0, Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(0.04, Inf), dac))[1] === DecoratedInterval(Interval(0.0, Inf), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(interval(0.04, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(0.04, Inf), dac))[1] === DecoratedInterval(Interval(0.0, Inf), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(interval(0.04, Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(0.04, Inf), dac))[1] === DecoratedInterval(Interval(-Inf, 0.0), trv) && mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(interval(0.04, Inf), dac))[2] === DecoratedInterval(Interval(0.0, Inf), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(entireinterval(), dac))[1] === DecoratedInterval(entireinterval(), dac) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(entireinterval(), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(entireinterval(), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 0.0), dac), DecoratedInterval(entireinterval(), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(entireinterval(), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, 1.1), dac), DecoratedInterval(entireinterval(), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(entireinterval(), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 1.1), dac), DecoratedInterval(entireinterval(), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(entireinterval(), dac))[1] === DecoratedInterval(entireinterval(), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(entireinterval(), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(entireinterval(), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, 0.0), dac), DecoratedInterval(entireinterval(), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(entireinterval(), dac))[1] === DecoratedInterval(entireinterval(), dac) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(entireinterval(), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(entireinterval(), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 0.0), dac), DecoratedInterval(entireinterval(), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(entireinterval(), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-Inf, 1.1), dac), DecoratedInterval(entireinterval(), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(entireinterval(), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(-2.0, Inf), dac), DecoratedInterval(entireinterval(), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(entireinterval(), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(interval(0.0, Inf), dac), DecoratedInterval(entireinterval(), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(entireinterval(), dac))[1] === DecoratedInterval(entireinterval(), dac) && mul_rev_to_pair(DecoratedInterval(interval(0.01, Inf), dac), DecoratedInterval(entireinterval(), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(entireinterval(), dac))[1] === DecoratedInterval(entireinterval(), trv) && mul_rev_to_pair(DecoratedInterval(entireinterval(), dac), DecoratedInterval(entireinterval(), dac))[2] === DecoratedInterval(emptyinterval(), trv) + +end diff --git a/test/test_ITF1788/libieeep1788_num.jl b/test/test_ITF1788/libieeep1788_num.jl new file mode 100644 index 000000000..56b6ff922 --- /dev/null +++ b/test/test_ITF1788/libieeep1788_num.jl @@ -0,0 +1,432 @@ +@testset "minimal_inf_test" begin + + @test inf(emptyinterval()) === +Inf + + @test inf(interval(-Inf,+Inf)) === -Inf + + @test inf(interval(1.0,2.0)) === 1.0 + + @test inf(interval(-3.0,-2.0)) === -3.0 + + @test inf(interval(-Inf,2.0)) === -Inf + + @test inf(interval(-Inf,0.0)) === -Inf + + @test inf(interval(-Inf,-0.0)) === -Inf + + @test inf(interval(-2.0,Inf)) === -2.0 + + @test inf(interval(0.0,Inf)) === -0.0 + + @test inf(interval(-0.0,Inf)) === -0.0 + + @test inf(interval(-0.0,0.0)) === -0.0 + + @test inf(interval(0.0,-0.0)) === -0.0 + + @test inf(interval(0.0,0.0)) === -0.0 + + @test inf(interval(-0.0,-0.0)) === -0.0 + +end + +@testset "minimal_inf_dec_test" begin + + @test isnan(inf(nai())) + + @test inf(DecoratedInterval(emptyinterval(), trv)) === +Inf + + @test inf(DecoratedInterval(interval(-Inf,+Inf), def)) === -Inf + + @test inf(DecoratedInterval(interval(1.0,2.0), com)) === 1.0 + + @test inf(DecoratedInterval(interval(-3.0,-2.0), trv)) === -3.0 + + @test inf(DecoratedInterval(interval(-Inf,2.0), dac)) === -Inf + + @test inf(DecoratedInterval(interval(-Inf,0.0), def)) === -Inf + + @test inf(DecoratedInterval(interval(-Inf,-0.0), trv)) === -Inf + + @test inf(DecoratedInterval(interval(-2.0,Inf), trv)) === -2.0 + + @test inf(DecoratedInterval(interval(0.0,Inf), def)) === -0.0 + + @test inf(DecoratedInterval(interval(-0.0,Inf), trv)) === -0.0 + + @test inf(DecoratedInterval(interval(-0.0,0.0), dac)) === -0.0 + + @test inf(DecoratedInterval(interval(0.0,-0.0), trv)) === -0.0 + + @test inf(DecoratedInterval(interval(0.0,0.0), trv)) === -0.0 + + @test inf(DecoratedInterval(interval(-0.0,-0.0), trv)) === -0.0 + +end + +@testset "minimal_sup_test" begin + + @test sup(emptyinterval()) === -Inf + + @test sup(interval(-Inf,+Inf)) === +Inf + + @test sup(interval(1.0,2.0)) === 2.0 + + @test sup(interval(-3.0,-2.0)) === -2.0 + + @test sup(interval(-Inf,2.0)) === 2.0 + + @test sup(interval(-Inf,0.0)) === 0.0 + + @test sup(interval(-Inf,-0.0)) === 0.0 + + @test sup(interval(-2.0,Inf)) === Inf + + @test sup(interval(0.0,Inf)) === Inf + + @test sup(interval(-0.0,Inf)) === Inf + + @test sup(interval(-0.0,0.0)) === 0.0 + + @test sup(interval(0.0,-0.0)) === 0.0 + + @test sup(interval(0.0,0.0)) === 0.0 + + @test sup(interval(-0.0,-0.0)) === 0.0 + +end + +@testset "minimal_sup_dec_test" begin + + @test isnan(sup(nai())) + + @test sup(DecoratedInterval(emptyinterval(), trv)) === -Inf + + @test sup(DecoratedInterval(interval(-Inf,+Inf), def)) === +Inf + + @test sup(DecoratedInterval(interval(1.0,2.0), com)) === 2.0 + + @test sup(DecoratedInterval(interval(-3.0,-2.0), trv)) === -2.0 + + @test sup(DecoratedInterval(interval(-Inf,2.0), dac)) === 2.0 + + @test sup(DecoratedInterval(interval(-Inf,0.0), def)) === 0.0 + + @test sup(DecoratedInterval(interval(-Inf,-0.0), trv)) === 0.0 + + @test sup(DecoratedInterval(interval(-2.0,Inf), trv)) === Inf + + @test sup(DecoratedInterval(interval(0.0,Inf), def)) === Inf + + @test sup(DecoratedInterval(interval(-0.0,Inf), trv)) === Inf + + @test sup(DecoratedInterval(interval(-0.0,0.0), dac)) === +0.0 + + @test sup(DecoratedInterval(interval(0.0,-0.0), trv)) === +0.0 + + @test sup(DecoratedInterval(interval(0.0,0.0), trv)) === +0.0 + + @test sup(DecoratedInterval(interval(-0.0,-0.0), trv)) === +0.0 + +end + +@testset "minimal_mid_test" begin + + @test isnan(mid(emptyinterval())) + + @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(0.0,Inf)) === 0x1.FFFFFFFFFFFFFp1023 + + @test mid(interval(-Inf,1.2)) === -0x1.FFFFFFFFFFFFFp1023 + + @test_broken mid(interval(-0x0.0000000000002P-1022,0x0.0000000000001P-1022)) === 0.0 + + @test mid(interval(-0x0.0000000000001P-1022,0x0.0000000000002P-1022)) === 0.0 + + @test mid(interval(0x1.FFFFFFFFFFFFFP+1022,0x1.FFFFFFFFFFFFFP+1023)) === 0x1.7FFFFFFFFFFFFP+1023 + + @test mid(interval(0x0.0000000000001P-1022,0x0.0000000000003P-1022)) === 0x0.0000000000002P-1022 + +end + +@testset "minimal_mid_dec_test" begin + + @test isnan(mid(DecoratedInterval(emptyinterval(), trv))) + + @test isnan(mid(nai())) + + @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(0.0,Inf), trv)) === 0x1.FFFFFFFFFFFFFp1023 + + @test mid(DecoratedInterval(interval(-Inf,1.2), trv)) === -0x1.FFFFFFFFFFFFFp1023 + + @test_broken 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 + + @test mid(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFP+1022,0x1.FFFFFFFFFFFFFP+1023), trv)) === 0x1.7FFFFFFFFFFFFP+1023 + + @test mid(DecoratedInterval(interval(0x0.0000000000001P-1022,0x0.0000000000003P-1022), trv)) === 0x0.0000000000002P-1022 + +end + +@testset "minimal_rad_test" begin + + @test radius(interval(0.0,2.0)) === 1.0 + + @test radius(interval(2.0,2.0)) === 0.0 + + @test isnan(radius(emptyinterval())) + + @test radius(interval(-Inf,+Inf)) === Inf + + @test radius(interval(0.0,Inf)) === Inf + + @test radius(interval(-Inf, 1.2)) === Inf + + @test radius(interval(-0x0.0000000000002P-1022,0x0.0000000000001P-1022)) === 0x0.0000000000002P-1022 + + @test radius(interval(0x0.0000000000001P-1022,0x0.0000000000002P-1022)) === 0x0.0000000000001P-1022 + + @test radius(interval(0x1P+0,0x1.0000000000003P+0)) === 0x1P-51 + +end + +@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 isnan(radius(DecoratedInterval(emptyinterval(), trv))) + + @test isnan(radius(nai())) + + @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 + + @test radius(DecoratedInterval(interval(-0x0.0000000000002P-1022,0x0.0000000000001P-1022), trv)) === 0x0.0000000000002P-1022 + + @test radius(DecoratedInterval(interval(0x0.0000000000001P-1022,0x0.0000000000002P-1022), trv)) === 0x0.0000000000001P-1022 + + @test radius(DecoratedInterval(interval(0x1P+0,0x1.0000000000003P+0), trv)) === 0x1P-51 + +end + +@testset "minimal_mid_rad_test" begin + + @test isnan(midpoint_radius(emptyinterval())[1]) && isnan(midpoint_radius(emptyinterval())[2]) + + @test midpoint_radius(interval(-Inf,Inf))[1] === 0.0 && midpoint_radius(interval(-Inf,Inf))[2] === Inf + + @test midpoint_radius(interval(-0x1.FFFFFFFFFFFFFP+1023,0x1.FFFFFFFFFFFFFP+1023))[1] === 0.0 && midpoint_radius(interval(-0x1.FFFFFFFFFFFFFP+1023,0x1.FFFFFFFFFFFFFP+1023))[2] === 0x1.FFFFFFFFFFFFFP+1023 + + @test midpoint_radius(interval(0.0,2.0))[1] === 1.0 && midpoint_radius(interval(0.0,2.0))[2] === 1.0 + + @test midpoint_radius(interval(2.0,2.0))[1] === 2.0 && midpoint_radius(interval(2.0,2.0))[2] === 0.0 + + @test midpoint_radius(interval(-2.0,2.0))[1] === 0.0 && midpoint_radius(interval(-2.0,2.0))[2] === 2.0 + + @test midpoint_radius(interval(0.0,Inf))[1] === 0x1.FFFFFFFFFFFFFP+1023 && midpoint_radius(interval(0.0,Inf))[2] === Inf + + @test midpoint_radius(interval(-Inf, 1.2))[1] === -0x1.FFFFFFFFFFFFFP+1023 && midpoint_radius(interval(-Inf, 1.2))[2] === Inf + + @test_broken midpoint_radius(interval(-0x0.0000000000002P-1022,0x0.0000000000001P-1022))[1] === 0.0 && midpoint_radius(interval(-0x0.0000000000002P-1022,0x0.0000000000001P-1022))[2] === 0x0.0000000000002P-1022 + + @test midpoint_radius(interval(-0x0.0000000000001P-1022,0x0.0000000000002P-1022))[1] === 0.0 && midpoint_radius(interval(-0x0.0000000000001P-1022,0x0.0000000000002P-1022))[2] === 0x0.0000000000002P-1022 + + @test midpoint_radius(interval(0x1.FFFFFFFFFFFFFP+1022,0x1.FFFFFFFFFFFFFP+1023))[1] === 0x1.7FFFFFFFFFFFFP+1023 && midpoint_radius(interval(0x1.FFFFFFFFFFFFFP+1022,0x1.FFFFFFFFFFFFFP+1023))[2] === 0x1.0p+1022 + + @test midpoint_radius(interval(0x0.0000000000001P-1022,0x0.0000000000003P-1022))[1] === 0x0.0000000000002P-1022 && midpoint_radius(interval(0x0.0000000000001P-1022,0x0.0000000000003P-1022))[2] === 0x0.0000000000001P-1022 + +end + +@testset "minimal_mid_rad_dec_test" begin + + @test isnan(midpoint_radius(emptyinterval())[1]) && isnan(midpoint_radius(emptyinterval())[2]) + + @test isnan(midpoint_radius(nai())[1]) && isnan(midpoint_radius(nai())[2]) + + @test midpoint_radius(DecoratedInterval(interval(-Inf,Inf), def))[1] === 0.0 && midpoint_radius(DecoratedInterval(interval(-Inf,Inf), def))[2] === Inf + + @test midpoint_radius(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFP+1023,0x1.FFFFFFFFFFFFFP+1023), trv))[1] === 0.0 && midpoint_radius(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFP+1023,0x1.FFFFFFFFFFFFFP+1023), trv))[2] === 0x1.FFFFFFFFFFFFFP+1023 + + @test midpoint_radius(DecoratedInterval(interval(0.0,2.0), com))[1] === 1.0 && midpoint_radius(DecoratedInterval(interval(0.0,2.0), com))[2] === 1.0 + + @test midpoint_radius(DecoratedInterval(interval(2.0,2.0), dac))[1] === 2.0 && midpoint_radius(DecoratedInterval(interval(2.0,2.0), dac))[2] === 0.0 + + @test midpoint_radius(DecoratedInterval(interval(-2.0,2.0), trv))[1] === 0.0 && midpoint_radius(DecoratedInterval(interval(-2.0,2.0), trv))[2] === 2.0 + + @test midpoint_radius(DecoratedInterval(interval(0.0,Inf), trv))[1] === 0x1.FFFFFFFFFFFFFP+1023 && midpoint_radius(DecoratedInterval(interval(0.0,Inf), trv))[2] === Inf + + @test midpoint_radius(DecoratedInterval(interval(-Inf, 1.2), trv))[1] === -0x1.FFFFFFFFFFFFFP+1023 && midpoint_radius(DecoratedInterval(interval(-Inf, 1.2), trv))[2] === Inf + + @test_broken midpoint_radius(DecoratedInterval(interval(-0x0.0000000000002P-1022,0x0.0000000000001P-1022), trv))[1] === 0.0 && midpoint_radius(DecoratedInterval(interval(-0x0.0000000000002P-1022,0x0.0000000000001P-1022), trv))[2] === 0x0.0000000000002P-1022 + + @test midpoint_radius(DecoratedInterval(interval(-0x0.0000000000001P-1022,0x0.0000000000002P-1022), trv))[1] === 0.0 && midpoint_radius(DecoratedInterval(interval(-0x0.0000000000001P-1022,0x0.0000000000002P-1022), trv))[2] === 0x0.0000000000002P-1022 + + @test midpoint_radius(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFP+1022,0x1.FFFFFFFFFFFFFP+1023), trv))[1] === 0x1.7FFFFFFFFFFFFP+1023 && midpoint_radius(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFP+1022,0x1.FFFFFFFFFFFFFP+1023), trv))[2] === 0x1.0p+1022 + + @test midpoint_radius(DecoratedInterval(interval(0x0.0000000000001P-1022,0x0.0000000000003P-1022), trv))[1] === 0x0.0000000000002P-1022 && midpoint_radius(DecoratedInterval(interval(0x0.0000000000001P-1022,0x0.0000000000003P-1022), trv))[2] === 0x0.0000000000001P-1022 + +end + +@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 + + @test isnan(diam(emptyinterval())) + + @test diam(interval(0x1P+0,0x1.0000000000001P+0)) === 0x1P-52 + + @test diam(interval(0x1P-1022,0x1.0000000000001P-1022)) === 0x0.0000000000001P-1022 + +end + +@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 + + @test isnan(diam(DecoratedInterval(emptyinterval(), trv))) + + @test isnan(diam(nai())) + + @test diam(DecoratedInterval(interval(0x1P+0,0x1.0000000000001P+0), trv)) === 0x1P-52 + + @test diam(DecoratedInterval(interval(0x1P-1022,0x1.0000000000001P-1022), trv)) === 0x0.0000000000001P-1022 + +end + +@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 isnan(mag(emptyinterval())) + + @test mag(interval(-0.0,0.0)) === 0.0 + + @test mag(interval(-0.0,-0.0)) === 0.0 + +end + +@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 isnan(mag(DecoratedInterval(emptyinterval(), trv))) + + @test isnan(mag(nai())) + + @test mag(DecoratedInterval(interval(-0.0,0.0), trv)) === 0.0 + + @test mag(DecoratedInterval(interval(-0.0,-0.0), trv)) === 0.0 + +end + +@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 isnan(mig(emptyinterval())) + + @test mig(interval(-0.0,0.0)) === 0.0 + + @test mig(interval(-0.0,-0.0)) === 0.0 + +end + +@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 isnan(mig(DecoratedInterval(emptyinterval(), trv))) + + @test isnan(mig(nai())) + + @test mig(DecoratedInterval(interval(-0.0,0.0), trv)) === 0.0 + + @test mig(DecoratedInterval(interval(-0.0,-0.0), trv)) === 0.0 + +end + diff --git a/test/test_ITF1788/libieeep1788_overlap.jl b/test/test_ITF1788/libieeep1788_overlap.jl new file mode 100644 index 000000000..f60a13ed4 --- /dev/null +++ b/test/test_ITF1788/libieeep1788_overlap.jl @@ -0,0 +1,162 @@ +@testset "minimal_overlap_test" begin + + @test_broken MISSING_overlap(emptyinterval(), emptyinterval()) === bothEmpty + + @test_broken MISSING_overlap(emptyinterval(), interval(1.0,2.0)) === firstEmpty + + @test_broken MISSING_overlap(interval(1.0,2.0), emptyinterval()) === secondEmpty + + @test_broken MISSING_overlap(interval(-Inf,2.0), interval(3.0,Inf)) === before + + @test_broken MISSING_overlap(interval(-Inf,2.0), interval(3.0,4.0)) === before + + @test_broken MISSING_overlap(interval(2.0,2.0), interval(3.0,4.0)) === before + + @test_broken MISSING_overlap(interval(1.0,2.0), interval(3.0,4.0)) === before + + @test_broken MISSING_overlap(interval(1.0,2.0), interval(3.0,3.0)) === before + + @test_broken MISSING_overlap(interval(2.0,2.0), interval(3.0,3.0)) === before + + @test_broken MISSING_overlap(interval(2.0,2.0), interval(3.0,Inf)) === before + + @test_broken MISSING_overlap(interval(-Inf,2.0), interval(2.0,3.0)) === meets + + @test_broken MISSING_overlap(interval(1.0,2.0), interval(2.0,3.0)) === meets + + @test_broken MISSING_overlap(interval(1.0,2.0), interval(2.0,Inf)) === meets + + @test_broken MISSING_overlap(interval(1.0,2.0), interval(1.5,2.5)) === overlaps + + @test_broken MISSING_overlap(interval(1.0,2.0), interval(1.0,Inf)) === starts + + @test_broken MISSING_overlap(interval(1.0,2.0), interval(1.0,3.0)) === starts + + @test_broken MISSING_overlap(interval(1.0,1.0), interval(1.0,3.0)) === starts + + @test_broken MISSING_overlap(interval(1.0,2.0), entireinterval()) === containedBy + + @test_broken MISSING_overlap(interval(1.0,2.0), interval(-Inf,3.0)) === containedBy + + @test_broken MISSING_overlap(interval(1.0,2.0), interval(0.0,3.0)) === containedBy + + @test_broken MISSING_overlap(interval(2.0,2.0), interval(0.0,3.0)) === containedBy + + @test_broken MISSING_overlap(interval(2.0,2.0), interval(0.0,Inf)) === containedBy + + @test_broken MISSING_overlap(interval(1.0,2.0), interval(-Inf,2.0)) === finishes + + @test_broken MISSING_overlap(interval(1.0,2.0), interval(0.0,2.0)) === finishes + + @test_broken MISSING_overlap(interval(2.0,2.0), interval(0.0,2.0)) === finishes + + @test_broken MISSING_overlap(interval(1.0,2.0), interval(1.0,2.0)) === equals + + @test_broken MISSING_overlap(interval(1.0,1.0), interval(1.0,1.0)) === equals + + @test_broken MISSING_overlap(interval(-Inf,1.0), interval(-Inf,1.0)) === equals + + @test_broken MISSING_overlap(entireinterval(), entireinterval()) === equals + + @test_broken MISSING_overlap(interval(3.0,4.0), interval(2.0,2.0)) === after + + @test_broken MISSING_overlap(interval(3.0,4.0), interval(1.0,2.0)) === after + + @test_broken MISSING_overlap(interval(3.0,3.0), interval(1.0,2.0)) === after + + @test_broken MISSING_overlap(interval(3.0,3.0), interval(2.0,2.0)) === after + + @test_broken MISSING_overlap(interval(3.0,Inf), interval(2.0,2.0)) === after + + @test_broken MISSING_overlap(interval(2.0,3.0), interval(1.0,2.0)) === metBy + + @test_broken MISSING_overlap(interval(2.0,3.0), interval(-Inf,2.0)) === metBy + + @test_broken MISSING_overlap(interval(1.5,2.5), interval(1.0,2.0)) === overlappedBy + + @test_broken MISSING_overlap(interval(1.5,2.5), interval(-Inf,2.0)) === overlappedBy + + @test_broken MISSING_overlap(interval(1.0,Inf), interval(1.0,2.0)) === startedBy + + @test_broken MISSING_overlap(interval(1.0,3.0), interval(1.0,2.0)) === startedBy + + @test_broken MISSING_overlap(interval(1.0,3.0), interval(1.0,1.0)) === startedBy + + @test_broken MISSING_overlap(interval(-Inf,3.0), interval(1.0,2.0)) === contains + + @test_broken MISSING_overlap(entireinterval(), interval(1.0,2.0)) === contains + + @test_broken MISSING_overlap(interval(0.0,3.0), interval(1.0,2.0)) === contains + + @test_broken MISSING_overlap(interval(0.0,3.0), interval(2.0,2.0)) === contains + + @test_broken MISSING_overlap(interval(-Inf,2.0), interval(1.0,2.0)) === finishedBy + + @test_broken MISSING_overlap(interval(0.0,2.0), interval(1.0,2.0)) === finishedBy + + @test_broken MISSING_overlap(interval(0.0,2.0), interval(2.0,2.0)) === finishedBy + +end + +@testset "minimal_overlap_dec_test" begin + + @test_broken MISSING_overlap(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(emptyinterval(), trv)) === bothEmpty + + @test_broken MISSING_overlap(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(1.0,2.0), com)) === firstEmpty + + @test_broken MISSING_overlap(DecoratedInterval(interval(1.0,2.0), def), DecoratedInterval(emptyinterval(), trv)) === secondEmpty + + @test_broken MISSING_overlap(DecoratedInterval(interval(2.0,2.0), def), DecoratedInterval(interval(3.0,4.0), def)) === before + + @test_broken MISSING_overlap(DecoratedInterval(interval(1.0,2.0), dac), DecoratedInterval(interval(3.0,4.0), com)) === before + + @test_broken MISSING_overlap(DecoratedInterval(interval(1.0,2.0), com), DecoratedInterval(interval(3.0,3.0), trv)) === before + + @test_broken MISSING_overlap(DecoratedInterval(interval(2.0,2.0), trv), DecoratedInterval(interval(3.0,3.0), def)) === before + + @test_broken MISSING_overlap(DecoratedInterval(interval(1.0,2.0), def), DecoratedInterval(interval(2.0,3.0), def)) === meets + + @test_broken MISSING_overlap(DecoratedInterval(interval(1.0,2.0), dac), DecoratedInterval(interval(1.5,2.5), def)) === overlaps + + @test_broken MISSING_overlap(DecoratedInterval(interval(1.0,2.0), def), DecoratedInterval(interval(1.0,3.0), com)) === starts + + @test_broken MISSING_overlap(DecoratedInterval(interval(1.0,1.0), trv), DecoratedInterval(interval(1.0,3.0), def)) === starts + + @test_broken MISSING_overlap(DecoratedInterval(interval(1.0,2.0), def), DecoratedInterval(interval(0.0,3.0), dac)) === containedBy + + @test_broken MISSING_overlap(DecoratedInterval(interval(2.0,2.0), trv), DecoratedInterval(interval(0.0,3.0), def)) === containedBy + + @test_broken MISSING_overlap(DecoratedInterval(interval(1.0,2.0), trv), DecoratedInterval(interval(0.0,2.0), com)) === finishes + + @test_broken MISSING_overlap(DecoratedInterval(interval(2.0,2.0), def), DecoratedInterval(interval(0.0,2.0), dac)) === finishes + + @test_broken MISSING_overlap(DecoratedInterval(interval(1.0,2.0), def), DecoratedInterval(interval(1.0,2.0), def)) === equals + + @test_broken MISSING_overlap(DecoratedInterval(interval(1.0,1.0), dac), DecoratedInterval(interval(1.0,1.0), dac)) === equals + + @test_broken MISSING_overlap(DecoratedInterval(interval(3.0,4.0), trv), DecoratedInterval(interval(2.0,2.0), trv)) === after + + @test_broken MISSING_overlap(DecoratedInterval(interval(3.0,4.0), def), DecoratedInterval(interval(1.0,2.0), def)) === after + + @test_broken MISSING_overlap(DecoratedInterval(interval(3.0,3.0), com), DecoratedInterval(interval(1.0,2.0), dac)) === after + + @test_broken MISSING_overlap(DecoratedInterval(interval(3.0,3.0), def), DecoratedInterval(interval(2.0,2.0), trv)) === after + + @test_broken MISSING_overlap(DecoratedInterval(interval(2.0,3.0), def), DecoratedInterval(interval(1.0,2.0), trv)) === metBy + + @test_broken MISSING_overlap(DecoratedInterval(interval(1.5,2.5), com), DecoratedInterval(interval(1.0,2.0), com)) === overlappedBy + + @test_broken MISSING_overlap(DecoratedInterval(interval(1.0,3.0), dac), DecoratedInterval(interval(1.0,2.0), def)) === startedBy + + @test_broken MISSING_overlap(DecoratedInterval(interval(1.0,3.0), com), DecoratedInterval(interval(1.0,1.0), dac)) === startedBy + + @test_broken MISSING_overlap(DecoratedInterval(interval(0.0,3.0), com), DecoratedInterval(interval(1.0,2.0), dac)) === contains + + @test_broken MISSING_overlap(DecoratedInterval(interval(0.0,3.0), com), DecoratedInterval(interval(2.0,2.0), def)) === contains + + @test_broken MISSING_overlap(DecoratedInterval(interval(0.0,2.0), def), DecoratedInterval(interval(1.0,2.0), trv)) === finishedBy + + @test_broken MISSING_overlap(DecoratedInterval(interval(0.0,2.0), dac), DecoratedInterval(interval(2.0,2.0), def)) === finishedBy + +end + diff --git a/test/test_ITF1788/libieeep1788_rec_bool.jl b/test/test_ITF1788/libieeep1788_rec_bool.jl new file mode 100644 index 000000000..2263b3ba9 --- /dev/null +++ b/test/test_ITF1788/libieeep1788_rec_bool.jl @@ -0,0 +1,302 @@ +@testset "minimal_is_common_interval_test" begin + + @test iscommon(interval(-27.0,-27.0)) === true + + @test iscommon(interval(-27.0, 0.0)) === true + + @test iscommon(interval(0.0,0.0)) === true + + @test iscommon(interval(-0.0,-0.0)) === true + + @test iscommon(interval(-0.0,0.0)) === true + + @test iscommon(interval(0.0,-0.0)) === true + + @test iscommon(interval(5.0, 12.4)) === true + + @test iscommon(interval(-0x1.FFFFFFFFFFFFFp1023, 0x1.FFFFFFFFFFFFFp1023)) === true + + @test iscommon(entireinterval()) === false + + @test iscommon(emptyinterval()) === false + + @test iscommon(interval(-Inf, 0.0)) === false + + @test iscommon(interval(0.0, Inf)) === false + +end + +@testset "minimal_is_common_interval_dec_test" begin + + @test iscommon(DecoratedInterval(interval(-27.0,-27.0), com)) === true + + @test iscommon(DecoratedInterval(interval(-27.0, 0.0), com)) === true + + @test iscommon(DecoratedInterval(interval(0.0,0.0), com)) === true + + @test iscommon(DecoratedInterval(interval(-0.0,-0.0), com)) === true + + @test iscommon(DecoratedInterval(interval(-0.0,0.0), com)) === true + + @test iscommon(DecoratedInterval(interval(0.0,-0.0), com)) === true + + @test iscommon(DecoratedInterval(interval(5.0, 12.4), com)) === true + + @test iscommon(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023, 0x1.FFFFFFFFFFFFFp1023), com)) === true + + @test iscommon(DecoratedInterval(interval(-27.0,-27.0), trv)) === true + + @test iscommon(DecoratedInterval(interval(-27.0, 0.0), def)) === true + + @test iscommon(DecoratedInterval(interval(0.0,0.0), dac)) === true + + @test iscommon(DecoratedInterval(interval(-0.0,-0.0), trv)) === true + + @test iscommon(DecoratedInterval(interval(-0.0,0.0), def)) === true + + @test iscommon(DecoratedInterval(interval(0.0,-0.0), dac)) === true + + @test iscommon(DecoratedInterval(interval(5.0, 12.4), def)) === true + + @test iscommon(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023, 0x1.FFFFFFFFFFFFFp1023), trv)) === true + + @test iscommon(DecoratedInterval(entireinterval(), dac)) === false + + @test iscommon(nai()) === false + + @test iscommon(DecoratedInterval(emptyinterval(), trv)) === false + + @test iscommon(DecoratedInterval(interval(-Inf, 0.0), trv)) === false + + @test iscommon(DecoratedInterval(interval(0.0, Inf), def)) === false + +end + +@testset "minimal_is_singleton_test" begin + + @test isthin(interval(-27.0,-27.0)) === true + + @test isthin(interval(-2.0, -2.0)) === true + + @test isthin(interval(12.0,12.0)) === true + + @test isthin(interval(17.1, 17.1)) === true + + @test isthin(interval(-0.0,-0.0)) === true + + @test isthin(interval(0.0,0.0)) === true + + @test isthin(interval(-0.0, 0.0)) === true + + @test isthin(interval(0.0, -0.0)) === true + + @test isthin(emptyinterval()) === false + + @test isthin(entireinterval()) === 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 + +@testset "minimal_is_singleton_dec_test" begin + + @test isthin(DecoratedInterval(interval(-27.0,-27.0), def)) === true + + @test isthin(DecoratedInterval(interval(-2.0, -2.0), trv)) === true + + @test isthin(DecoratedInterval(interval(12.0,12.0), dac)) === true + + @test isthin(DecoratedInterval(interval(17.1, 17.1), com)) === true + + @test isthin(DecoratedInterval(interval(-0.0,-0.0), def)) === true + + @test isthin(DecoratedInterval(interval(0.0,0.0), com)) === true + + @test isthin(DecoratedInterval(interval(-0.0, 0.0), def)) === true + + @test isthin(DecoratedInterval(interval(0.0, -0.0), dac)) === true + + @test isthin(DecoratedInterval(emptyinterval(), trv)) === false + + @test isthin(nai()) === false + + @test isthin(DecoratedInterval(entireinterval(), 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 + +@testset "minimal_is_member_test" begin + + @test in(-27.0, interval(-27.0,-27.0)) === true + + @test in(-27.0, interval(-27.0, 0.0)) === true + + @test in(-7.0, interval(-27.0, 0.0)) === true + + @test in(0.0, interval(-27.0, 0.0)) === true + + @test in(-0.0, interval(0.0,0.0)) === true + + @test in(0.0, interval(0.0,0.0)) === true + + @test in(0.0, interval(-0.0,-0.0)) === true + + @test in(0.0, interval(-0.0,0.0)) === true + + @test in(0.0, interval(0.0,-0.0)) === true + + @test in(5.0, interval(5.0, 12.4)) === true + + @test in(6.3, interval(5.0, 12.4)) === true + + @test in(12.4, interval(5.0, 12.4)) === true + + @test in(0.0, entireinterval()) === true + + @test in(5.0, entireinterval()) === true + + @test in(6.3, entireinterval()) === true + + @test in(12.4, entireinterval()) === true + + @test in(0x1.FFFFFFFFFFFFFp1023, entireinterval()) === true + + @test in(-0x1.FFFFFFFFFFFFFp1023, entireinterval()) === true + + @test in(0x1.0p-1022, entireinterval()) === true + + @test in(-0x1.0p-1022, entireinterval()) === true + + @test in(-71.0, interval(-27.0, 0.0)) === false + + @test in(0.1, interval(-27.0, 0.0)) === false + + @test in(-0.01, interval(0.0,0.0)) === false + + @test in(0.000001, interval(0.0,0.0)) === false + + @test in(111110.0, interval(-0.0,-0.0)) === false + + @test in(4.9, interval(5.0, 12.4)) === false + + @test in(-6.3, interval(5.0, 12.4)) === false + + @test in(0.0, emptyinterval()) === false + + @test in(-4535.3, emptyinterval()) === false + + @test in(-Inf, emptyinterval()) === false + + @test in(Inf, emptyinterval()) === false + + @test in(NaN, emptyinterval()) === false + + @test in(-Inf, entireinterval()) === false + + @test in(Inf, entireinterval()) === false + + @test in(NaN, entireinterval()) === false + +end + +@testset "minimal_is_member_dec_test" begin + + @test in(-27.0, DecoratedInterval(interval(-27.0,-27.0), trv)) === true + + @test in(-27.0, DecoratedInterval(interval(-27.0, 0.0), def)) === true + + @test in(-7.0, DecoratedInterval(interval(-27.0, 0.0), dac)) === true + + @test in(0.0, DecoratedInterval(interval(-27.0, 0.0), com)) === true + + @test in(-0.0, DecoratedInterval(interval(0.0,0.0), trv)) === true + + @test in(0.0, DecoratedInterval(interval(0.0,0.0), def)) === true + + @test in(0.0, DecoratedInterval(interval(-0.0,-0.0), dac)) === true + + @test in(0.0, DecoratedInterval(interval(-0.0,0.0), com)) === true + + @test in(0.0, DecoratedInterval(interval(0.0,-0.0), trv)) === true + + @test in(5.0, DecoratedInterval(interval(5.0, 12.4), def)) === true + + @test in(6.3, DecoratedInterval(interval(5.0, 12.4), dac)) === true + + @test in(12.4, DecoratedInterval(interval(5.0, 12.4), com)) === true + + @test in(0.0, DecoratedInterval(entireinterval(), trv)) === true + + @test in(5.0, DecoratedInterval(entireinterval(), def)) === true + + @test in(6.3, DecoratedInterval(entireinterval(), dac)) === true + + @test in(12.4, DecoratedInterval(entireinterval(), trv)) === true + + @test in(0x1.FFFFFFFFFFFFFp1023, DecoratedInterval(entireinterval(), def)) === true + + @test in(-0x1.FFFFFFFFFFFFFp1023, DecoratedInterval(entireinterval(), dac)) === true + + @test in(0x1.0p-1022, DecoratedInterval(entireinterval(), trv)) === true + + @test in(-0x1.0p-1022, DecoratedInterval(entireinterval(), def)) === true + + @test in(-71.0, DecoratedInterval(interval(-27.0, 0.0), trv)) === false + + @test in(0.1, DecoratedInterval(interval(-27.0, 0.0), def)) === false + + @test in(-0.01, DecoratedInterval(interval(0.0,0.0), dac)) === false + + @test in(0.000001, DecoratedInterval(interval(0.0,0.0), com)) === false + + @test in(111110.0, DecoratedInterval(interval(-0.0,-0.0), trv)) === false + + @test in(4.9, DecoratedInterval(interval(5.0, 12.4), def)) === false + + @test in(-6.3, DecoratedInterval(interval(5.0, 12.4), dac)) === false + + @test in(0.0, DecoratedInterval(emptyinterval(), trv)) === false + + @test in(0.0, DecoratedInterval(emptyinterval(), trv)) === false + + @test in(-4535.3, DecoratedInterval(emptyinterval(), trv)) === false + + @test in(-4535.3, DecoratedInterval(emptyinterval(), trv)) === false + + @test in(-Inf, DecoratedInterval(emptyinterval(), trv)) === false + + @test in(-Inf, nai()) === false + + @test in(Inf, DecoratedInterval(emptyinterval(), trv)) === false + + @test in(Inf, nai()) === false + + @test in(NaN, DecoratedInterval(emptyinterval(), trv)) === false + + @test in(NaN, nai()) === false + + @test in(-Inf, DecoratedInterval(entireinterval(), trv)) === false + + @test in(Inf, DecoratedInterval(entireinterval(), def)) === false + + @test in(NaN, DecoratedInterval(entireinterval(), dac)) === false + +end + diff --git a/test/test_ITF1788/libieeep1788_reduction.jl b/test/test_ITF1788/libieeep1788_reduction.jl new file mode 100644 index 000000000..e8ff50ff6 --- /dev/null +++ b/test/test_ITF1788/libieeep1788_reduction.jl @@ -0,0 +1,46 @@ +@testset "minimal_sum_test" begin + + @test sum([1.0, 2.0, 3.0]) === 6.0 + + @test isnan(sum([1.0, 2.0, NaN, 3.0])) + + @test isnan(sum([1.0, -Inf, 2.0, Inf, 3.0])) + +end + +@testset "minimal_sum_abs_test" begin + + @test sum(abs.([1.0, -2.0, 3.0])) === 6.0 + + @test isnan(sum(abs.([1.0, -2.0, NaN, 3.0]))) + + @test sum(abs.([1.0, -Inf, 2.0, Inf, 3.0])) === Inf + +end + +@testset "minimal_sum_sqr_test" begin + + @test sum([1.0, 2.0, 3.0].^2) === 14.0 + + @test isnan(sum([1.0, 2.0, NaN, 3.0].^2)) + + @test sum([1.0, -Inf, 2.0, Inf, 3.0].^2) === Inf + +end + +@testset "minimal_dot_test" begin + + @test dot([1.0, 2.0, 3.0], [1.0, 2.0, 3.0]) === 14.0 + + @test_broken dot([0x10000000000001p0, 0x1p104], [0x0fffffffffffffp0, -1.0]) === -1.0 + + @test isnan(dot([1.0, 2.0, NaN, 3.0], [1.0, 2.0, 3.0, 4.0])) + + @test isnan(dot([1.0, 2.0, 3.0, 4.0], [1.0, 2.0, NaN, 3.0])) + + @test isnan(dot([1.0, 2.0, 0.0, 4.0], [1.0, 2.0, Inf, 3.0])) + + @test isnan(dot([1.0, 2.0, -Inf, 4.0], [1.0, 2.0, 0.0, 3.0])) + +end + diff --git a/test/test_ITF1788/libieeep1788_rev.jl b/test/test_ITF1788/libieeep1788_rev.jl new file mode 100644 index 000000000..45106cce1 --- /dev/null +++ b/test/test_ITF1788/libieeep1788_rev.jl @@ -0,0 +1,1687 @@ +@testset "minimal_sqr_rev_test" begin + + @test sqr_rev(emptyinterval())[2] === emptyinterval() + + @test sqr_rev(interval(-10.0,-1.0))[2] === emptyinterval() + + @test sqr_rev(interval(0.0,Inf))[2] === entireinterval() + + @test sqr_rev(interval(0.0,1.0))[2] === Interval(-1.0,1.0) + + @test sqr_rev(interval(-0.5,1.0))[2] === Interval(-1.0,1.0) + + @test sqr_rev(interval(-1000.0,1.0))[2] === Interval(-1.0,1.0) + + @test sqr_rev(interval(0.0,25.0))[2] === Interval(-5.0,5.0) + + @test sqr_rev(interval(-1.0,25.0))[2] === Interval(-5.0,5.0) + + @test sqr_rev(interval(0x1.47AE147AE147BP-7,0x1.47AE147AE147CP-7))[2] === Interval(-0x1.999999999999BP-4,0x1.999999999999BP-4) + + @test sqr_rev(interval(0.0,0x1.FFFFFFFFFFFE1P+1))[2] === Interval(-0x1.ffffffffffff1p+0,0x1.ffffffffffff1p+0) + +end + +@testset "minimal_sqr_rev_bin_test" begin + + @test sqr_rev(emptyinterval(), interval(-5.0,1.0))[2] === emptyinterval() + + @test sqr_rev(interval(-10.0,-1.0), interval(-5.0,1.0))[2] === emptyinterval() + + @test sqr_rev(interval(0.0,Inf), interval(-5.0,1.0))[2] === Interval(-5.0,1.0) + + @test sqr_rev(interval(0.0,1.0), interval(-0.1,1.0))[2] === Interval(-0.1,1.0) + + @test sqr_rev(interval(-0.5,1.0), interval(-0.1,1.0))[2] === Interval(-0.1,1.0) + + @test sqr_rev(interval(-1000.0,1.0), interval(-0.1,1.0))[2] === Interval(-0.1,1.0) + + @test sqr_rev(interval(0.0,25.0), interval(-4.1,6.0))[2] === Interval(-4.1,5.0) + + @test sqr_rev(interval(-1.0,25.0), interval(-4.1,7.0))[2] === Interval(-4.1,5.0) + + @test sqr_rev(interval(1.0,25.0), interval(0.0,7.0))[2] === Interval(1.0,5.0) + + @test sqr_rev(interval(0x1.47AE147AE147BP-7,0x1.47AE147AE147CP-7), interval(-0.1,Inf))[2] === Interval(-0.1,0x1.999999999999BP-4) + + @test sqr_rev(interval(0.0,0x1.FFFFFFFFFFFE1P+1), interval(-0.1,Inf))[2] === Interval(-0.1,0x1.ffffffffffff1p+0) + +end + +@testset "minimal_sqr_rev_dec_test" begin + + @test sqr_rev(DecoratedInterval(emptyinterval(), trv))[2] === DecoratedInterval(emptyinterval(), trv) + + @test sqr_rev(DecoratedInterval(interval(-10.0,-1.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test sqr_rev(DecoratedInterval(interval(0.0,Inf), dac))[2] === DecoratedInterval(entireinterval(), trv) + + @test sqr_rev(DecoratedInterval(interval(0.0,1.0), def))[2] === DecoratedInterval(Interval(-1.0,1.0), trv) + + @test sqr_rev(DecoratedInterval(interval(-0.5,1.0), dac))[2] === DecoratedInterval(Interval(-1.0,1.0), trv) + + @test sqr_rev(DecoratedInterval(interval(-1000.0,1.0), com))[2] === DecoratedInterval(Interval(-1.0,1.0), trv) + + @test sqr_rev(DecoratedInterval(interval(0.0,25.0), def))[2] === DecoratedInterval(Interval(-5.0,5.0), trv) + + @test sqr_rev(DecoratedInterval(interval(-1.0,25.0), dac))[2] === DecoratedInterval(Interval(-5.0,5.0), trv) + + @test sqr_rev(DecoratedInterval(interval(0x1.47AE147AE147BP-7,0x1.47AE147AE147CP-7), com))[2] === DecoratedInterval(Interval(-0x1.999999999999BP-4,0x1.999999999999BP-4), trv) + + @test sqr_rev(DecoratedInterval(interval(0.0,0x1.FFFFFFFFFFFE1P+1), def))[2] === DecoratedInterval(Interval(-0x1.ffffffffffff1p+0,0x1.ffffffffffff1p+0), trv) + +end + +@testset "minimal_sqr_rev_dec_bin_test" begin + + @test sqr_rev(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-5.0,1.0), def))[2] === DecoratedInterval(emptyinterval(), trv) + + @test sqr_rev(DecoratedInterval(interval(-10.0,-1.0), com), DecoratedInterval(interval(-5.0,1.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test sqr_rev(DecoratedInterval(interval(0.0,Inf), def), DecoratedInterval(interval(-5.0,1.0), dac))[2] === DecoratedInterval(Interval(-5.0,1.0), trv) + + @test sqr_rev(DecoratedInterval(interval(0.0,1.0), dac), DecoratedInterval(interval(-0.1,1.0), def))[2] === DecoratedInterval(Interval(-0.1,1.0), trv) + + @test sqr_rev(DecoratedInterval(interval(-0.5,1.0), def), DecoratedInterval(interval(-0.1,1.0), dac))[2] === DecoratedInterval(Interval(-0.1,1.0), trv) + + @test sqr_rev(DecoratedInterval(interval(-1000.0,1.0), com), DecoratedInterval(interval(-0.1,1.0), def))[2] === DecoratedInterval(Interval(-0.1,1.0), trv) + + @test sqr_rev(DecoratedInterval(interval(0.0,25.0), def), DecoratedInterval(interval(-4.1,6.0), com))[2] === DecoratedInterval(Interval(-4.1,5.0), trv) + + @test sqr_rev(DecoratedInterval(interval(-1.0,25.0), dac), DecoratedInterval(interval(-4.1,7.0), def))[2] === DecoratedInterval(Interval(-4.1,5.0), trv) + + @test sqr_rev(DecoratedInterval(interval(1.0,25.0), dac), DecoratedInterval(interval(0.0,7.0), def))[2] === DecoratedInterval(Interval(1.0,5.0), trv) + + @test sqr_rev(DecoratedInterval(interval(0x1.47AE147AE147BP-7,0x1.47AE147AE147CP-7), def), DecoratedInterval(interval(-0.1,Inf), dac))[2] === DecoratedInterval(Interval(-0.1,0x1.999999999999BP-4), trv) + + @test sqr_rev(DecoratedInterval(interval(0.0,0x1.FFFFFFFFFFFE1P+1), dac), DecoratedInterval(interval(-0.1,Inf), dac))[2] === DecoratedInterval(Interval(-0.1,0x1.ffffffffffff1p+0), trv) + +end + +@testset "minimal_abs_rev_test" begin + + @test abs_rev(emptyinterval())[2] === emptyinterval() + + @test abs_rev(interval(-1.1,-0.4))[2] === emptyinterval() + + @test abs_rev(interval(0.0,Inf))[2] === entireinterval() + + @test abs_rev(interval(1.1,2.1))[2] === Interval(-2.1,2.1) + + @test abs_rev(interval(-1.1,2.0))[2] === Interval(-2.0,2.0) + + @test abs_rev(interval(-1.1,0.0))[2] === Interval(0.0,0.0) + + @test abs_rev(interval(-1.9,0.2))[2] === Interval(-0.2,0.2) + + @test abs_rev(interval(0.0,0.2))[2] === Interval(-0.2,0.2) + + @test abs_rev(interval(-1.5,Inf))[2] === entireinterval() + +end + +@testset "minimal_abs_rev_bin_test" begin + + @test abs_rev(emptyinterval(), interval(-1.1,5.0))[2] === emptyinterval() + + @test abs_rev(interval(-1.1,-0.4), interval(-1.1,5.0))[2] === emptyinterval() + + @test abs_rev(interval(0.0,Inf), interval(-1.1,5.0))[2] === Interval(-1.1,5.0) + + @test abs_rev(interval(1.1,2.1), interval(-1.0,5.0))[2] === Interval(1.1,2.1) + + @test abs_rev(interval(-1.1,2.0), interval(-1.1,5.0))[2] === Interval(-1.1,2.0) + + @test abs_rev(interval(-1.1,0.0), interval(-1.1,5.0))[2] === Interval(0.0,0.0) + + @test abs_rev(interval(-1.9,0.2), interval(-1.1,5.0))[2] === Interval(-0.2,0.2) + +end + +@testset "minimal_abs_rev_dec_test" begin + + @test abs_rev(DecoratedInterval(emptyinterval(), trv))[2] === DecoratedInterval(emptyinterval(), trv) + + @test abs_rev(DecoratedInterval(interval(-1.1,-0.4), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test abs_rev(DecoratedInterval(interval(0.0,Inf), dac))[2] === DecoratedInterval(entireinterval(), trv) + + @test abs_rev(DecoratedInterval(interval(1.1,2.1), com))[2] === DecoratedInterval(Interval(-2.1,2.1), trv) + + @test abs_rev(DecoratedInterval(interval(-1.1,2.0), def))[2] === DecoratedInterval(Interval(-2.0,2.0), trv) + + @test abs_rev(DecoratedInterval(interval(-1.1,0.0), dac))[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test abs_rev(DecoratedInterval(interval(-1.9,0.2), com))[2] === DecoratedInterval(Interval(-0.2,0.2), trv) + + @test abs_rev(DecoratedInterval(interval(0.0,0.2), def))[2] === DecoratedInterval(Interval(-0.2,0.2), trv) + + @test abs_rev(DecoratedInterval(interval(-1.5,Inf), def))[2] === DecoratedInterval(entireinterval(), trv) + +end + +@testset "minimal_abs_rev_dec_bin_test" begin + + @test abs_rev(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-1.1,5.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test abs_rev(DecoratedInterval(interval(-1.1,-0.4), dac), DecoratedInterval(interval(-1.1,5.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test abs_rev(DecoratedInterval(interval(0.0,Inf), def), DecoratedInterval(interval(-1.1,5.0), def))[2] === DecoratedInterval(Interval(-1.1,5.0), trv) + + @test abs_rev(DecoratedInterval(interval(1.1,2.1), dac), DecoratedInterval(interval(-1.0,5.0), def))[2] === DecoratedInterval(Interval(1.1,2.1), trv) + + @test abs_rev(DecoratedInterval(interval(-1.1,2.0), com), DecoratedInterval(interval(-1.1,5.0), def))[2] === DecoratedInterval(Interval(-1.1,2.0), trv) + + @test abs_rev(DecoratedInterval(interval(-1.1,0.0), def), DecoratedInterval(interval(-1.1,5.0), def))[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test abs_rev(DecoratedInterval(interval(-1.9,0.2), dac), DecoratedInterval(interval(-1.1,5.0), def))[2] === DecoratedInterval(Interval(-0.2,0.2), trv) + +end + +@testset "minimal_pown_rev_test" begin + + @test power_rev(emptyinterval(), 0)[2] === emptyinterval() + + @test power_rev(interval(1.0,1.0), 0)[2] === entireinterval() + + @test power_rev(interval(-1.0,5.0), 0)[2] === entireinterval() + + @test power_rev(interval(-1.0,0.0), 0)[2] === emptyinterval() + + @test power_rev(interval(-1.0,-0.0), 0)[2] === emptyinterval() + + @test power_rev(interval(1.1,10.0), 0)[2] === emptyinterval() + + @test power_rev(emptyinterval(), 1)[2] === emptyinterval() + + @test power_rev(entireinterval(), 1)[2] === entireinterval() + + @test power_rev(interval(0.0,0.0), 1)[2] === Interval(0.0,0.0) + + @test power_rev(interval(-0.0,-0.0), 1)[2] === Interval(0.0,0.0) + + @test power_rev(interval(13.1,13.1), 1)[2] === Interval(13.1,13.1) + + @test power_rev(interval(-7451.145,-7451.145), 1)[2] === Interval(-7451.145,-7451.145) + + @test power_rev(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), 1)[2] === Interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023) + + @test power_rev(interval(-0x1.FFFFFFFFFFFFFp1023,-0x1.FFFFFFFFFFFFFp1023), 1)[2] === Interval(-0x1.FFFFFFFFFFFFFp1023,-0x1.FFFFFFFFFFFFFp1023) + + @test power_rev(interval(0.0,Inf), 1)[2] === Interval(0.0,Inf) + + @test power_rev(interval(-0.0,Inf), 1)[2] === Interval(0.0,Inf) + + @test power_rev(interval(-Inf,0.0), 1)[2] === Interval(-Inf,0.0) + + @test power_rev(interval(-Inf,-0.0), 1)[2] === Interval(-Inf,0.0) + + @test power_rev(interval(-324.3,2.5), 1)[2] === Interval(-324.3,2.5) + + @test power_rev(interval(0.01,2.33), 1)[2] === Interval(0.01,2.33) + + @test power_rev(interval(-1.9,-0.33), 1)[2] === Interval(-1.9,-0.33) + + @test power_rev(emptyinterval(), 2)[2] === emptyinterval() + + @test power_rev(interval(-5.0,-1.0), 2)[2] === emptyinterval() + + @test power_rev(interval(0.0,Inf), 2)[2] === entireinterval() + + @test power_rev(interval(-0.0,Inf), 2)[2] === entireinterval() + + @test power_rev(interval(0.0,0.0), 2)[2] === Interval(0.0,0.0) + + @test power_rev(interval(-0.0,-0.0), 2)[2] === Interval(0.0,0.0) + + @test power_rev(interval(0x1.573851EB851EBP+7,0x1.573851EB851ECP+7), 2)[2] === Interval(-0x1.a333333333334p+3,0x1.a333333333334p+3) + + @test power_rev(interval(0x1.A794A4E7CFAADP+25,0x1.A794A4E7CFAAEP+25), 2)[2] === Interval(-0x1.d1b251eb851edp+12,0x1.d1b251eb851edp+12) + + @test power_rev(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), 2)[2] === Interval(-0x1p+512,0x1p+512) + + @test power_rev(interval(0.0,0x1.9AD27D70A3D72P+16), 2)[2] === Interval(-0x1.444cccccccccep+8,0x1.444cccccccccep+8) + + @test power_rev(interval(-0.0,0x1.9AD27D70A3D72P+16), 2)[2] === Interval(-0x1.444cccccccccep+8,0x1.444cccccccccep+8) + + @test power_rev(interval(0x1.A36E2EB1C432CP-14,0x1.5B7318FC50482P+2), 2)[2] === Interval(-0x1.2a3d70a3d70a5p+1,0x1.2a3d70a3d70a5p+1) + + @test power_rev(interval(0x1.BE0DED288CE7P-4,0x1.CE147AE147AE1P+1), 2)[2] === Interval(-0x1.e666666666667p+0,0x1.e666666666667p+0) + + @test power_rev(emptyinterval(), 8)[2] === emptyinterval() + + @test power_rev(entireinterval(), 8)[2] === entireinterval() + + @test power_rev(interval(0.0,Inf), 8)[2] === entireinterval() + + @test power_rev(interval(-0.0,Inf), 8)[2] === entireinterval() + + @test power_rev(interval(0.0,0.0), 8)[2] === Interval(0.0,0.0) + + @test power_rev(interval(-0.0,-0.0), 8)[2] === Interval(0.0,0.0) + + @test power_rev(interval(0x1.9D8FD495853F5P+29,0x1.9D8FD495853F6P+29), 8)[2] === Interval(-0x1.a333333333334p+3,0x1.a333333333334p+3) + + @test power_rev(interval(0x1.DFB1BB622E70DP+102,0x1.DFB1BB622E70EP+102), 8)[2] === Interval(-0x1.d1b251eb851edp+12,0x1.d1b251eb851edp+12) + + @test power_rev(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), 8)[2] === Interval(-0x1p+128,0x1p+128) + + @test power_rev(interval(0.0,0x1.A87587109655P+66), 8)[2] === Interval(-0x1.444cccccccccep+8,0x1.444cccccccccep+8) + + @test power_rev(interval(-0.0,0x1.A87587109655P+66), 8)[2] === Interval(-0x1.444cccccccccep+8,0x1.444cccccccccep+8) + + @test power_rev(interval(0x1.CD2B297D889BDP-54,0x1.B253D9F33CE4DP+9), 8)[2] === Interval(-0x1.2a3d70a3d70a5p+1,0x1.2a3d70a3d70a5p+1) + + @test power_rev(interval(0x1.26F1FCDD502A3P-13,0x1.53ABD7BFC4FC6P+7), 8)[2] === Interval(-0x1.e666666666667p+0,0x1.e666666666667p+0) + + @test power_rev(emptyinterval(), 3)[2] === emptyinterval() + + @test power_rev(entireinterval(), 3)[2] === entireinterval() + + @test power_rev(interval(0.0,0.0), 3)[2] === Interval(0.0,0.0) + + @test power_rev(interval(-0.0,-0.0), 3)[2] === Interval(0.0,0.0) + + @test power_rev(interval(0x1.1902E978D4FDEP+11,0x1.1902E978D4FDFP+11), 3)[2] === Interval(0x1.a333333333332p+3,0x1.a333333333334p+3) + + @test power_rev(interval(-0x1.81460637B9A3DP+38,-0x1.81460637B9A3CP+38), 3)[2] === Interval(-0x1.d1b251eb851edp+12,-0x1.d1b251eb851ebp+12) + + @test power_rev(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), 3)[2] === Interval(0x1.428a2f98d728ap+341,0x1.428a2f98d728bp+341) + + @test power_rev(interval(-0x1.FFFFFFFFFFFFFp1023,-0x1.FFFFFFFFFFFFFp1023), 3)[2] === Interval(-0x1.428a2f98d728bp+341, -0x1.428a2f98d728ap+341) + + @test power_rev(interval(0.0,Inf), 3)[2] === Interval(0.0,Inf) + + @test power_rev(interval(-0.0,Inf), 3)[2] === Interval(0.0,Inf) + + @test power_rev(interval(-Inf,0.0), 3)[2] === Interval(-Inf,0.0) + + @test power_rev(interval(-Inf,-0.0), 3)[2] === Interval(-Inf,0.0) + + @test power_rev(interval(-0x1.0436D2F418938P+25,0x1.F4P+3), 3)[2] === Interval(-0x1.444cccccccccep+8,0x1.4p+1) + + @test power_rev(interval(0x1.0C6F7A0B5ED8DP-20,0x1.94C75E6362A6P+3), 3)[2] === Interval(0x1.47ae147ae147ap-7,0x1.2a3d70a3d70a5p+1) + + @test power_rev(interval(-0x1.B6F9DB22D0E55P+2,-0x1.266559F6EC5B1P-5), 3)[2] === Interval(-0x1.e666666666667p+0,-0x1.51eb851eb851ep-2) + + @test power_rev(emptyinterval(), 7)[2] === emptyinterval() + + @test power_rev(entireinterval(), 7)[2] === entireinterval() + + @test power_rev(interval(0.0,0.0), 7)[2] === Interval(0.0,0.0) + + @test power_rev(interval(-0.0,-0.0), 7)[2] === Interval(0.0,0.0) + + @test power_rev(interval(0x1.F91D1B185493BP+25,0x1.F91D1B185493CP+25), 7)[2] === Interval(0x1.a333333333332p+3,0x1.a333333333334p+3) + + @test power_rev(interval(-0x1.07B1DA32F9B59P+90,-0x1.07B1DA32F9B58P+90), 7)[2] === Interval(-0x1.d1b251eb851edp+12,-0x1.d1b251eb851ebp+12) + + @test power_rev(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), 7)[2] === Interval(0x1.381147622f886p+146,0x1.381147622f887p+146) + + @test power_rev(interval(-0x1.FFFFFFFFFFFFFp1023,-0x1.FFFFFFFFFFFFFp1023), 7)[2] === Interval(-0x1.381147622f887p+146,-0x1.381147622f886p+146) + + @test power_rev(interval(0.0,Inf), 7)[2] === Interval(0.0,Inf) + + @test power_rev(interval(-0.0,Inf), 7)[2] === Interval(0.0,Inf) + + @test power_rev(interval(-Inf,0.0), 7)[2] === Interval(-Inf,0.0) + + @test power_rev(interval(-Inf,-0.0), 7)[2] === Interval(-Inf,0.0) + + @test power_rev(interval(-0x1.4F109959E6D7FP+58,0x1.312DP+9), 7)[2] === Interval(-0x1.444cccccccccep+8,0x1.4p+1) + + @test power_rev(interval(0x1.6849B86A12B9BP-47,0x1.74D0373C76313P+8), 7)[2] === Interval(0x1.47ae147ae147ap-7,0x1.2a3d70a3d70a5p+1) + + @test power_rev(interval(-0x1.658C775099757P+6,-0x1.BEE30301BF47AP-12), 7)[2] === Interval(-0x1.e666666666667p+0,-0x1.51eb851eb851ep-2) + + @test power_rev(emptyinterval(), -2)[2] === emptyinterval() + + @test power_rev(interval(0.0,Inf), -2)[2] === entireinterval() + + @test power_rev(interval(-0.0,Inf), -2)[2] === entireinterval() + + @test power_rev(interval(0.0,0.0), -2)[2] === emptyinterval() + + @test power_rev(interval(-0.0,-0.0), -2)[2] === emptyinterval() + + @test power_rev(interval(-10.0,0.0), -2)[2] === emptyinterval() + + @test power_rev(interval(-10.0,-0.0), -2)[2] === emptyinterval() + + @test_broken power_rev(interval(0x1.7DE3A077D1568P-8,0x1.7DE3A077D1569P-8), -2)[2] === Interval(-0x1.a333333333334p+3,0x1.a333333333334p+3) + + @test_broken power_rev(interval(0x1.3570290CD6E14P-26,0x1.3570290CD6E15P-26), -2)[2] === Interval(-0x1.d1b251eb851edp+12,0x1.d1b251eb851edp+12) + + @test power_rev(interval(0x0P+0,0x0.0000000000001P-1022), -2)[2] === entireinterval() + + @test power_rev(interval(0x1.3F0C482C977C9P-17,Inf), -2)[2] === Interval(-0x1.444cccccccccep+8,0x1.444cccccccccep+8) + + @test power_rev(interval(0x1.793D85EF38E47P-3,0x1.388P+13), -2)[2] === Interval(-0x1.2a3d70a3d70a5p+1,0x1.2a3d70a3d70a5p+1) + + @test power_rev(interval(0x1.1BA81104F6C8P-2,0x1.25D8FA1F801E1P+3), -2)[2] === Interval(-0x1.e666666666667p+0,0x1.e666666666667p+0) + + @test power_rev(emptyinterval(), -8)[2] === emptyinterval() + + @test power_rev(interval(0.0,Inf), -8)[2] === entireinterval() + + @test power_rev(interval(-0.0,Inf), -8)[2] === entireinterval() + + @test power_rev(interval(0.0,0.0), -8)[2] === emptyinterval() + + @test power_rev(interval(-0.0,-0.0), -8)[2] === emptyinterval() + + @test_broken power_rev(interval(0x1.3CEF39247CA6DP-30,0x1.3CEF39247CA6EP-30), -8)[2] === Interval(-0x1.a333333333334p+3,0x1.a333333333334p+3) + + @test_broken power_rev(interval(0x1.113D9EF0A99ACP-103,0x1.113D9EF0A99ADP-103), -8)[2] === Interval(-0x1.d1b251eb851edp+12,0x1.d1b251eb851edp+12) + + @test power_rev(interval(0x0P+0,0x0.0000000000001P-1022), -8)[2] === entireinterval() + + @test power_rev(interval(0x1.34CC3764D1E0CP-67,Inf), -8)[2] === Interval(-0x1.444cccccccccep+8,0x1.444cccccccccep+8) + + @test power_rev(interval(0x1.2DC80DB11AB7CP-10,0x1.1C37937E08P+53), -8)[2] === Interval(-0x1.2a3d70a3d70a5p+1,0x1.2a3d70a3d70a5p+1) + + @test power_rev(interval(0x1.81E104E61630DP-8,0x1.BC64F21560E34P+12), -8)[2] === Interval(-0x1.e666666666667p+0,0x1.e666666666667p+0) + + @test power_rev(emptyinterval(), -1)[2] === emptyinterval() + + @test power_rev(entireinterval(), -1)[2] === entireinterval() + + @test power_rev(interval(0.0,0.0), -1)[2] === emptyinterval() + + @test power_rev(interval(-0.0,-0.0), -1)[2] === emptyinterval() + + @test power_rev(interval(0x1.38ABF82EE6986P-4,0x1.38ABF82EE6987P-4), -1)[2] === Interval(0x1.a333333333332p+3,0x1.a333333333335p+3) + + @test power_rev(interval(-0x1.197422C9048BFP-13,-0x1.197422C9048BEP-13), -1)[2] === Interval(-0x1.d1b251eb851eep+12,-0x1.d1b251eb851ebp+12) + + @test power_rev(interval(0x0.4P-1022,0x0.4000000000001P-1022), -1)[2] === Interval(0x1.ffffffffffff8p+1023,Inf) + + @test power_rev(interval(-0x0.4000000000001P-1022,-0x0.4P-1022), -1)[2] === Interval(-Inf,-0x1.ffffffffffff8p+1023) + + @test power_rev(interval(0.0,Inf), -1)[2] === Interval(0.0,Inf) + + @test power_rev(interval(-0.0,Inf), -1)[2] === Interval(0.0,Inf) + + @test power_rev(interval(-Inf,0.0), -1)[2] === Interval(-Inf,0.0) + + @test power_rev(interval(-Inf,-0.0), -1)[2] === Interval(-Inf,0.0) + + @test power_rev(interval(0x1.B77C278DBBE13P-2,0x1.9P+6), -1)[2] === Interval(0x1.47ae147ae147ap-7,0x1.2a3d70a3d70a5p+1) + + @test power_rev(interval(-0x1.83E0F83E0F83EP+1,-0x1.0D79435E50D79P-1), -1)[2] === Interval(-0x1.e666666666667p+0,-0x1.51eb851eb851ep-2) + + @test power_rev(emptyinterval(), -3)[2] === emptyinterval() + + @test power_rev(entireinterval(), -3)[2] === entireinterval() + + @test power_rev(interval(0.0,0.0), -3)[2] === emptyinterval() + + @test power_rev(interval(-0.0,-0.0), -3)[2] === emptyinterval() + + @test_broken power_rev(interval(0x1.D26DF4D8B1831P-12,0x1.D26DF4D8B1832P-12), -3)[2] === Interval(0x1.a333333333332p+3,0x1.a333333333334p+3) + + @test_broken power_rev(interval(-0x1.54347DED91B19P-39,-0x1.54347DED91B18P-39), -3)[2] === Interval(-0x1.d1b251eb851edp+12,-0x1.d1b251eb851ebp+12) + + @test power_rev(interval(0x0P+0,0x0.0000000000001P-1022), -3)[2] === Interval(0x1p+358,Inf) + + @test power_rev(interval(-0x0.0000000000001P-1022,-0x0P+0), -3)[2] === Interval(-Inf,-0x1p+358) + + @test power_rev(interval(0.0,Inf), -3)[2] === Interval(0.0,Inf) + + @test power_rev(interval(-0.0,Inf), -3)[2] === Interval(0.0,Inf) + + @test power_rev(interval(-Inf,0.0), -3)[2] === Interval(-Inf,0.0) + + @test power_rev(interval(-Inf,-0.0), -3)[2] === Interval(-Inf,0.0) + + @test power_rev(interval(0x1.43CFBA61AACABP-4,0x1.E848P+19), -3)[2] === Interval(0x1.47ae147ae147ap-7,0x1.2a3d70a3d70a5p+1) + + @test power_rev(interval(-0x1.BD393CE9E8E7CP+4,-0x1.2A95F6F7C066CP-3), -3)[2] === Interval(-0x1.e666666666667p+0,-0x1.51eb851eb851ep-2) + + @test power_rev(emptyinterval(), -7)[2] === emptyinterval() + + @test power_rev(entireinterval(), -7)[2] === entireinterval() + + @test power_rev(interval(0.0,0.0), -7)[2] === emptyinterval() + + @test power_rev(interval(-0.0,-0.0), -7)[2] === emptyinterval() + + @test_broken power_rev(interval(0x1.037D76C912DBCP-26,0x1.037D76C912DBDP-26), -7)[2] === Interval(0x1.a333333333332p+3,0x1.a333333333334p+3) + + @test_broken power_rev(interval(-0x1.F10F41FB8858FP-91,-0x1.F10F41FB8858EP-91), -7)[2] === Interval(-0x1.d1b251eb851edp+12,-0x1.d1b251eb851ebp+12) + + @test power_rev(interval(0x0P+0,0x0.0000000000001P-1022), -7)[2] === Interval(0x1.588cea3f093bcp+153,Inf) + + @test power_rev(interval(-0x0.0000000000001P-1022,-0x0P+0), -7)[2] === Interval(-Inf,-0x1.588cea3f093bcp+153) + + @test power_rev(interval(0.0,Inf), -7)[2] === Interval(0.0,Inf) + + @test power_rev(interval(-0.0,Inf), -7)[2] === Interval(0.0,Inf) + + @test power_rev(interval(-Inf,0.0), -7)[2] === Interval(-Inf,0.0) + + @test power_rev(interval(-Inf,-0.0), -7)[2] === Interval(-Inf,0.0) + + @test power_rev(interval(0x1.5F934D64162A9P-9,0x1.6BCC41E9P+46), -7)[2] === Interval(0x1.47ae147ae147ap-7,0x1.2a3d70a3d70a5p+1) + + @test power_rev(interval(-0x1.254CDD3711DDBP+11,-0x1.6E95C4A761E19P-7), -7)[2] === Interval(-0x1.e666666666667p+0,-0x1.51eb851eb851ep-2) + +end + +@testset "minimal_pown_rev_bin_test" begin + + @test power_rev(emptyinterval(), interval(1.0,1.0), 0)[2] === emptyinterval() + + @test power_rev(interval(1.0,1.0), interval(1.0,1.0), 0)[2] === Interval(1.0,1.0) + + @test power_rev(interval(-1.0,5.0), interval(-51.0,12.0), 0)[2] === Interval(-51.0,12.0) + + @test power_rev(interval(-1.0,0.0), interval(5.0,10.0), 0)[2] === emptyinterval() + + @test power_rev(interval(-1.0,-0.0), interval(-1.0,1.0), 0)[2] === emptyinterval() + + @test power_rev(interval(1.1,10.0), interval(1.0,41.0), 0)[2] === emptyinterval() + + @test power_rev(emptyinterval(), interval(0.0,100.1), 1)[2] === emptyinterval() + + @test power_rev(entireinterval(), interval(-5.1,10.0), 1)[2] === Interval(-5.1,10.0) + + @test power_rev(interval(0.0,0.0), interval(-10.0,5.1), 1)[2] === Interval(0.0,0.0) + + @test power_rev(interval(-0.0,-0.0), interval(1.0,5.0), 1)[2] === emptyinterval() + + @test power_rev(emptyinterval(), interval(5.0,17.1), 2)[2] === emptyinterval() + + @test power_rev(interval(-5.0,-1.0), interval(5.0,17.1), 2)[2] === emptyinterval() + + @test power_rev(interval(0.0,Inf), interval(5.6,27.544), 2)[2] === Interval(5.6,27.544) + + @test power_rev(interval(0.0,0.0), interval(1.0,2.0), 2)[2] === emptyinterval() + + @test power_rev(interval(0x1.A36E2EB1C432CP-14,0x1.5B7318FC50482P+2), interval(1.0,Inf), 2)[2] === Interval(1.0,0x1.2a3d70a3d70a5p+1) + + @test power_rev(interval(0x1.BE0DED288CE7P-4,0x1.CE147AE147AE1P+1), interval(-Inf,-1.0), 2)[2] === Interval(-0x1.e666666666667p+0,-1.0) + + @test power_rev(emptyinterval(), interval(-23.0,-1.0), 3)[2] === emptyinterval() + + @test power_rev(entireinterval(), interval(-23.0,-1.0), 3)[2] === Interval(-23.0,-1.0) + + @test power_rev(interval(0.0,0.0), interval(1.0,2.0), 3)[2] === emptyinterval() + + @test power_rev(interval(0x1.0C6F7A0B5ED8DP-20,0x1.94C75E6362A6P+3), interval(1.0,Inf), 3)[2] === Interval(1.0,0x1.2a3d70a3d70a5p+1) + + @test power_rev(interval(-0x1.B6F9DB22D0E55P+2,-0x1.266559F6EC5B1P-5), interval(-Inf,-1.0), 3)[2] === Interval(-0x1.e666666666667p+0,-1.0) + + @test power_rev(emptyinterval(), interval(-3.0,17.3), -2)[2] === emptyinterval() + + @test power_rev(interval(0.0,Inf), interval(-5.1,-0.1), -2)[2] === Interval(-5.1,-0.1) + + @test power_rev(interval(0.0,0.0), interval(27.2,55.1), -2)[2] === emptyinterval() + + @test power_rev(interval(0x1.3F0C482C977C9P-17,Inf), interval(-Inf,-0x1.FFFFFFFFFFFFFp1023), -2)[2] === emptyinterval() + + @test power_rev(interval(0x1.793D85EF38E47P-3,0x1.388P+13), interval(1.0,Inf), -2)[2] === Interval(1.0,0x1.2a3d70a3d70a5p+1) + + @test power_rev(interval(0x1.1BA81104F6C8P-2,0x1.25D8FA1F801E1P+3), interval(-Inf,-1.0), -2)[2] === Interval(-0x1.e666666666667p+0,-1.0) + + @test power_rev(emptyinterval(), interval(-5.1,55.5), -1)[2] === emptyinterval() + + @test power_rev(entireinterval(), interval(-5.1,55.5), -1)[2] === Interval(-5.1,55.5) + + @test power_rev(interval(0.0,0.0), interval(-5.1,55.5), -1)[2] === emptyinterval() + + @test power_rev(interval(-Inf,-0.0), interval(-1.0,1.0), -1)[2] === Interval(-1.0,0.0) + + @test power_rev(interval(0x1.B77C278DBBE13P-2,0x1.9P+6), interval(-1.0,0.0), -1)[2] === emptyinterval() + + @test power_rev(emptyinterval(), interval(-5.1,55.5), -3)[2] === emptyinterval() + + @test power_rev(entireinterval(), interval(-5.1,55.5), -3)[2] === Interval(-5.1,55.5) + + @test power_rev(interval(0.0,0.0), interval(-5.1,55.5), -3)[2] === emptyinterval() + + @test power_rev(interval(-Inf,0.0), interval(5.1,55.5), -3)[2] === emptyinterval() + + @test power_rev(interval(-Inf,-0.0), interval(-32.0,1.1), -3)[2] === Interval(-32.0,0.0) + +end + +@testset "minimal_pown_rev_dec_test" begin + + @test power_rev(DecoratedInterval(emptyinterval(), trv), 0)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(1.0,1.0), com), 0)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-1.0,5.0), dac), 0)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-1.0,0.0), def), 0)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-1.0,-0.0), dac), 0)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(1.1,10.0), com), 0)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), 1)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(entireinterval(), def), 1)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), com), 1)[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,-0.0), dac), 1)[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test power_rev(DecoratedInterval(interval(13.1,13.1), def), 1)[2] === DecoratedInterval(Interval(13.1,13.1), trv) + + @test power_rev(DecoratedInterval(interval(-7451.145,-7451.145), dac), 1)[2] === DecoratedInterval(Interval(-7451.145,-7451.145), trv) + + @test power_rev(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), com), 1)[2] === DecoratedInterval(Interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), trv) + + @test power_rev(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,-0x1.FFFFFFFFFFFFFp1023), com), 1)[2] === DecoratedInterval(Interval(-0x1.FFFFFFFFFFFFFp1023,-0x1.FFFFFFFFFFFFFp1023), trv) + + @test power_rev(DecoratedInterval(interval(0.0,Inf), dac), 1)[2] === DecoratedInterval(Interval(0.0,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,Inf), dac), 1)[2] === DecoratedInterval(Interval(0.0,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,0.0), def), 1)[2] === DecoratedInterval(Interval(-Inf,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,-0.0), def), 1)[2] === DecoratedInterval(Interval(-Inf,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-324.3,2.5), dac), 1)[2] === DecoratedInterval(Interval(-324.3,2.5), trv) + + @test power_rev(DecoratedInterval(interval(0.01,2.33), com), 1)[2] === DecoratedInterval(Interval(0.01,2.33), trv) + + @test power_rev(DecoratedInterval(interval(-1.9,-0.33), def), 1)[2] === DecoratedInterval(Interval(-1.9,-0.33), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), 2)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,Inf), dac), 2)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,Inf), def), 2)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), com), 2)[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,-0.0), dac), 2)[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test power_rev(DecoratedInterval(interval(0x1.573851EB851EBP+7,0x1.573851EB851ECP+7), def), 2)[2] === DecoratedInterval(Interval(-0x1.a333333333334p+3,0x1.a333333333334p+3), trv) + + @test power_rev(DecoratedInterval(interval(0x1.A794A4E7CFAADP+25,0x1.A794A4E7CFAAEP+25), def), 2)[2] === DecoratedInterval(Interval(-0x1.d1b251eb851edp+12,0x1.d1b251eb851edp+12), trv) + + @test power_rev(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), dac), 2)[2] === DecoratedInterval(Interval(-0x1p+512,0x1p+512), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0x1.9AD27D70A3D72P+16), dac), 2)[2] === DecoratedInterval(Interval(-0x1.444cccccccccep+8,0x1.444cccccccccep+8), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,0x1.9AD27D70A3D72P+16), def), 2)[2] === DecoratedInterval(Interval(-0x1.444cccccccccep+8,0x1.444cccccccccep+8), trv) + + @test power_rev(DecoratedInterval(interval(0x1.A36E2EB1C432CP-14,0x1.5B7318FC50482P+2), com), 2)[2] === DecoratedInterval(Interval(-0x1.2a3d70a3d70a5p+1,0x1.2a3d70a3d70a5p+1), trv) + + @test power_rev(DecoratedInterval(interval(0x1.BE0DED288CE7P-4,0x1.CE147AE147AE1P+1), def), 2)[2] === DecoratedInterval(Interval(-0x1.e666666666667p+0,0x1.e666666666667p+0), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), 8)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(entireinterval(), def), 8)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,Inf), dac), 8)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,Inf), dac), 8)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), def), 8)[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,-0.0), dac), 8)[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test power_rev(DecoratedInterval(interval(0x1.9D8FD495853F5P+29,0x1.9D8FD495853F6P+29), com), 8)[2] === DecoratedInterval(Interval(-0x1.a333333333334p+3,0x1.a333333333334p+3), trv) + + @test power_rev(DecoratedInterval(interval(0x1.DFB1BB622E70DP+102,0x1.DFB1BB622E70EP+102), dac), 8)[2] === DecoratedInterval(Interval(-0x1.d1b251eb851edp+12,0x1.d1b251eb851edp+12), trv) + + @test power_rev(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), def), 8)[2] === DecoratedInterval(Interval(-0x1p+128,0x1p+128), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0x1.A87587109655P+66), dac), 8)[2] === DecoratedInterval(Interval(-0x1.444cccccccccep+8,0x1.444cccccccccep+8), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,0x1.A87587109655P+66), def), 8)[2] === DecoratedInterval(Interval(-0x1.444cccccccccep+8,0x1.444cccccccccep+8), trv) + + @test power_rev(DecoratedInterval(interval(0x1.CD2B297D889BDP-54,0x1.B253D9F33CE4DP+9), com), 8)[2] === DecoratedInterval(Interval(-0x1.2a3d70a3d70a5p+1,0x1.2a3d70a3d70a5p+1), trv) + + @test power_rev(DecoratedInterval(interval(0x1.26F1FCDD502A3P-13,0x1.53ABD7BFC4FC6P+7), dac), 8)[2] === DecoratedInterval(Interval(-0x1.e666666666667p+0,0x1.e666666666667p+0), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), 3)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(entireinterval(), def), 3)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), dac), 3)[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,-0.0), def), 3)[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test power_rev(DecoratedInterval(interval(0x1.1902E978D4FDEP+11,0x1.1902E978D4FDFP+11), com), 3)[2] === DecoratedInterval(Interval(0x1.a333333333332p+3,0x1.a333333333334p+3), trv) + + @test power_rev(DecoratedInterval(interval(-0x1.81460637B9A3DP+38,-0x1.81460637B9A3CP+38), def), 3)[2] === DecoratedInterval(Interval(-0x1.d1b251eb851edp+12,-0x1.d1b251eb851ebp+12), trv) + + @test power_rev(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), dac), 3)[2] === DecoratedInterval(Interval(0x1.428a2f98d728ap+341,0x1.428a2f98d728bp+341), trv) + + @test power_rev(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,-0x1.FFFFFFFFFFFFFp1023), com), 3)[2] === DecoratedInterval(Interval(-0x1.428a2f98d728bp+341, -0x1.428a2f98d728ap+341), trv) + + @test power_rev(DecoratedInterval(interval(0.0,Inf), def), 3)[2] === DecoratedInterval(Interval(0.0,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,Inf), def), 3)[2] === DecoratedInterval(Interval(0.0,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,0.0), dac), 3)[2] === DecoratedInterval(Interval(-Inf,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,-0.0), def), 3)[2] === DecoratedInterval(Interval(-Inf,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-0x1.0436D2F418938P+25,0x1.F4P+3), com), 3)[2] === DecoratedInterval(Interval(-0x1.444cccccccccep+8,0x1.4p+1), trv) + + @test power_rev(DecoratedInterval(interval(0x1.0C6F7A0B5ED8DP-20,0x1.94C75E6362A6P+3), dac), 3)[2] === DecoratedInterval(Interval(0x1.47ae147ae147ap-7,0x1.2a3d70a3d70a5p+1), trv) + + @test power_rev(DecoratedInterval(interval(-0x1.B6F9DB22D0E55P+2,-0x1.266559F6EC5B1P-5), def), 3)[2] === DecoratedInterval(Interval(-0x1.e666666666667p+0,-0x1.51eb851eb851ep-2), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), 7)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(entireinterval(), def), 7)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), com), 7)[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,-0.0), dac), 7)[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test power_rev(DecoratedInterval(interval(0x1.F91D1B185493BP+25,0x1.F91D1B185493CP+25), def), 7)[2] === DecoratedInterval(Interval(0x1.a333333333332p+3,0x1.a333333333334p+3), trv) + + @test power_rev(DecoratedInterval(interval(-0x1.07B1DA32F9B59P+90,-0x1.07B1DA32F9B58P+90), dac), 7)[2] === DecoratedInterval(Interval(-0x1.d1b251eb851edp+12,-0x1.d1b251eb851ebp+12), trv) + + @test power_rev(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFp1023,0x1.FFFFFFFFFFFFFp1023), com), 7)[2] === DecoratedInterval(Interval(0x1.381147622f886p+146,0x1.381147622f887p+146), trv) + + @test power_rev(DecoratedInterval(interval(-0x1.FFFFFFFFFFFFFp1023,-0x1.FFFFFFFFFFFFFp1023), def), 7)[2] === DecoratedInterval(Interval(-0x1.381147622f887p+146,-0x1.381147622f886p+146), trv) + + @test power_rev(DecoratedInterval(interval(0.0,Inf), dac), 7)[2] === DecoratedInterval(Interval(0.0,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,Inf), dac), 7)[2] === DecoratedInterval(Interval(0.0,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,0.0), def), 7)[2] === DecoratedInterval(Interval(-Inf,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,-0.0), def), 7)[2] === DecoratedInterval(Interval(-Inf,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-0x1.4F109959E6D7FP+58,0x1.312DP+9), dac), 7)[2] === DecoratedInterval(Interval(-0x1.444cccccccccep+8,0x1.4p+1), trv) + + @test power_rev(DecoratedInterval(interval(0x1.6849B86A12B9BP-47,0x1.74D0373C76313P+8), com), 7)[2] === DecoratedInterval(Interval(0x1.47ae147ae147ap-7,0x1.2a3d70a3d70a5p+1), trv) + + @test power_rev(DecoratedInterval(interval(-0x1.658C775099757P+6,-0x1.BEE30301BF47AP-12), def), 7)[2] === DecoratedInterval(Interval(-0x1.e666666666667p+0,-0x1.51eb851eb851ep-2), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), -2)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,Inf), dac), -2)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,Inf), dac), -2)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), def), -2)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,-0.0), com), -2)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-10.0,0.0), dac), -2)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-10.0,-0.0), def), -2)[2] === DecoratedInterval(emptyinterval(), trv) + + @test_broken power_rev(DecoratedInterval(interval(0x1.7DE3A077D1568P-8,0x1.7DE3A077D1569P-8), dac), -2)[2] === DecoratedInterval(Interval(-0x1.a333333333334p+3,0x1.a333333333334p+3), trv) + + @test_broken power_rev(DecoratedInterval(interval(0x1.3570290CD6E14P-26,0x1.3570290CD6E15P-26), def), -2)[2] === DecoratedInterval(Interval(-0x1.d1b251eb851edp+12,0x1.d1b251eb851edp+12), trv) + + @test power_rev(DecoratedInterval(interval(0x0P+0,0x0.0000000000001P-1022), com), -2)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0x1.3F0C482C977C9P-17,Inf), dac), -2)[2] === DecoratedInterval(Interval(-0x1.444cccccccccep+8,0x1.444cccccccccep+8), trv) + + @test power_rev(DecoratedInterval(interval(0x1.793D85EF38E47P-3,0x1.388P+13), def), -2)[2] === DecoratedInterval(Interval(-0x1.2a3d70a3d70a5p+1,0x1.2a3d70a3d70a5p+1), trv) + + @test power_rev(DecoratedInterval(interval(0x1.1BA81104F6C8P-2,0x1.25D8FA1F801E1P+3), com), -2)[2] === DecoratedInterval(Interval(-0x1.e666666666667p+0,0x1.e666666666667p+0), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), -8)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,Inf), def), -8)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,Inf), dac), -8)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), def), -8)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,-0.0), dac), -8)[2] === DecoratedInterval(emptyinterval(), trv) + + @test_broken power_rev(DecoratedInterval(interval(0x1.3CEF39247CA6DP-30,0x1.3CEF39247CA6EP-30), com), -8)[2] === DecoratedInterval(Interval(-0x1.a333333333334p+3,0x1.a333333333334p+3), trv) + + @test_broken power_rev(DecoratedInterval(interval(0x1.113D9EF0A99ACP-103,0x1.113D9EF0A99ADP-103), def), -8)[2] === DecoratedInterval(Interval(-0x1.d1b251eb851edp+12,0x1.d1b251eb851edp+12), trv) + + @test power_rev(DecoratedInterval(interval(0x0P+0,0x0.0000000000001P-1022), dac), -8)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0x1.34CC3764D1E0CP-67,Inf), def), -8)[2] === DecoratedInterval(Interval(-0x1.444cccccccccep+8,0x1.444cccccccccep+8), trv) + + @test power_rev(DecoratedInterval(interval(0x1.2DC80DB11AB7CP-10,0x1.1C37937E08P+53), com), -8)[2] === DecoratedInterval(Interval(-0x1.2a3d70a3d70a5p+1,0x1.2a3d70a3d70a5p+1), trv) + + @test power_rev(DecoratedInterval(interval(0x1.81E104E61630DP-8,0x1.BC64F21560E34P+12), def), -8)[2] === DecoratedInterval(Interval(-0x1.e666666666667p+0,0x1.e666666666667p+0), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), -1)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(entireinterval(), def), -1)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), dac), -1)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,-0.0), dac), -1)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0x1.38ABF82EE6986P-4,0x1.38ABF82EE6987P-4), def), -1)[2] === DecoratedInterval(Interval(0x1.a333333333332p+3,0x1.a333333333335p+3), trv) + + @test power_rev(DecoratedInterval(interval(-0x1.197422C9048BFP-13,-0x1.197422C9048BEP-13), dac), -1)[2] === DecoratedInterval(Interval(-0x1.d1b251eb851eep+12,-0x1.d1b251eb851ebp+12), trv) + + @test power_rev(DecoratedInterval(interval(0x0.4P-1022,0x0.4000000000001P-1022), dac), -1)[2] === DecoratedInterval(Interval(0x1.ffffffffffff8p+1023,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-0x0.4000000000001P-1022,-0x0.4P-1022), def), -1)[2] === DecoratedInterval(Interval(-Inf,-0x1.ffffffffffff8p+1023), trv) + + @test power_rev(DecoratedInterval(interval(0.0,Inf), dac), -1)[2] === DecoratedInterval(Interval(0.0,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,Inf), dac), -1)[2] === DecoratedInterval(Interval(0.0,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,0.0), dac), -1)[2] === DecoratedInterval(Interval(-Inf,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,-0.0), def), -1)[2] === DecoratedInterval(Interval(-Inf,0.0), trv) + + @test power_rev(DecoratedInterval(interval(0x1.B77C278DBBE13P-2,0x1.9P+6), com), -1)[2] === DecoratedInterval(Interval(0x1.47ae147ae147ap-7,0x1.2a3d70a3d70a5p+1), trv) + + @test power_rev(DecoratedInterval(interval(-0x1.83E0F83E0F83EP+1,-0x1.0D79435E50D79P-1), com), -1)[2] === DecoratedInterval(Interval(-0x1.e666666666667p+0,-0x1.51eb851eb851ep-2), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), -3)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(entireinterval(), def), -3)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), def), -3)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,-0.0), dac), -3)[2] === DecoratedInterval(emptyinterval(), trv) + + @test_broken power_rev(DecoratedInterval(interval(0x1.D26DF4D8B1831P-12,0x1.D26DF4D8B1832P-12), com), -3)[2] === DecoratedInterval(Interval(0x1.a333333333332p+3,0x1.a333333333334p+3), trv) + + @test_broken power_rev(DecoratedInterval(interval(-0x1.54347DED91B19P-39,-0x1.54347DED91B18P-39), def), -3)[2] === DecoratedInterval(Interval(-0x1.d1b251eb851edp+12,-0x1.d1b251eb851ebp+12), trv) + + @test power_rev(DecoratedInterval(interval(0x0P+0,0x0.0000000000001P-1022), dac), -3)[2] === DecoratedInterval(Interval(0x1p+358,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-0x0.0000000000001P-1022,-0x0P+0), def), -3)[2] === DecoratedInterval(Interval(-Inf,-0x1p+358), trv) + + @test power_rev(DecoratedInterval(interval(0.0,Inf), dac), -3)[2] === DecoratedInterval(Interval(0.0,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,Inf), dac), -3)[2] === DecoratedInterval(Interval(0.0,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,0.0), def), -3)[2] === DecoratedInterval(Interval(-Inf,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,-0.0), def), -3)[2] === DecoratedInterval(Interval(-Inf,0.0), trv) + + @test power_rev(DecoratedInterval(interval(0x1.43CFBA61AACABP-4,0x1.E848P+19), com), -3)[2] === DecoratedInterval(Interval(0x1.47ae147ae147ap-7,0x1.2a3d70a3d70a5p+1), trv) + + @test power_rev(DecoratedInterval(interval(-0x1.BD393CE9E8E7CP+4,-0x1.2A95F6F7C066CP-3), def), -3)[2] === DecoratedInterval(Interval(-0x1.e666666666667p+0,-0x1.51eb851eb851ep-2), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), -7)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(entireinterval(), def), -7)[2] === DecoratedInterval(entireinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), com), -7)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,-0.0), def), -7)[2] === DecoratedInterval(emptyinterval(), trv) + + @test_broken power_rev(DecoratedInterval(interval(0x1.037D76C912DBCP-26,0x1.037D76C912DBDP-26), dac), -7)[2] === DecoratedInterval(Interval(0x1.a333333333332p+3,0x1.a333333333334p+3), trv) + + @test_broken power_rev(DecoratedInterval(interval(-0x1.F10F41FB8858FP-91,-0x1.F10F41FB8858EP-91), dac), -7)[2] === DecoratedInterval(Interval(-0x1.d1b251eb851edp+12,-0x1.d1b251eb851ebp+12), trv) + + @test power_rev(DecoratedInterval(interval(0x0P+0,0x0.0000000000001P-1022), def), -7)[2] === DecoratedInterval(Interval(0x1.588cea3f093bcp+153,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-0x0.0000000000001P-1022,-0x0P+0), def), -7)[2] === DecoratedInterval(Interval(-Inf,-0x1.588cea3f093bcp+153), trv) + + @test power_rev(DecoratedInterval(interval(0.0,Inf), dac), -7)[2] === DecoratedInterval(Interval(0.0,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,Inf), def), -7)[2] === DecoratedInterval(Interval(0.0,Inf), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,0.0), dac), -7)[2] === DecoratedInterval(Interval(-Inf,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,-0.0), def), -7)[2] === DecoratedInterval(Interval(-Inf,0.0), trv) + + @test power_rev(DecoratedInterval(interval(0x1.5F934D64162A9P-9,0x1.6BCC41E9P+46), com), -7)[2] === DecoratedInterval(Interval(0x1.47ae147ae147ap-7,0x1.2a3d70a3d70a5p+1), trv) + + @test power_rev(DecoratedInterval(interval(-0x1.254CDD3711DDBP+11,-0x1.6E95C4A761E19P-7), com), -7)[2] === DecoratedInterval(Interval(-0x1.e666666666667p+0,-0x1.51eb851eb851ep-2), trv) + +end + +@testset "minimal_pown_rev_dec_bin_test" begin + + @test power_rev(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(1.0,1.0), def), 0)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(1.0,1.0), dac), DecoratedInterval(interval(1.0,1.0), dac), 0)[2] === DecoratedInterval(Interval(1.0,1.0), trv) + + @test power_rev(DecoratedInterval(interval(-1.0,5.0), def), DecoratedInterval(interval(-51.0,12.0), dac), 0)[2] === DecoratedInterval(Interval(-51.0,12.0), trv) + + @test power_rev(DecoratedInterval(interval(-1.0,0.0), com), DecoratedInterval(interval(5.0,10.0), dac), 0)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-1.0,-0.0), dac), DecoratedInterval(interval(-1.0,1.0), def), 0)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(1.1,10.0), def), DecoratedInterval(interval(1.0,41.0), dac), 0)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(0.0,100.1), dac), 1)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(entireinterval(), def), DecoratedInterval(interval(-5.1,10.0), def), 1)[2] === DecoratedInterval(Interval(-5.1,10.0), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), com), DecoratedInterval(interval(-10.0,5.1), dac), 1)[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test power_rev(DecoratedInterval(interval(-0.0,-0.0), def), DecoratedInterval(interval(1.0,5.0), dac), 1)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(5.0,17.1), def), 2)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,Inf), dac), DecoratedInterval(interval(5.6,27.544), dac), 2)[2] === DecoratedInterval(Interval(5.6,27.544), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), def), DecoratedInterval(interval(1.0,2.0), def), 2)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0x1.A36E2EB1C432CP-14,0x1.5B7318FC50482P+2), com), DecoratedInterval(interval(1.0,Inf), def), 2)[2] === DecoratedInterval(Interval(1.0,0x1.2a3d70a3d70a5p+1), trv) + + @test power_rev(DecoratedInterval(interval(0x1.BE0DED288CE7P-4,0x1.CE147AE147AE1P+1), dac), DecoratedInterval(interval(-Inf,-1.0), def), 2)[2] === DecoratedInterval(Interval(-0x1.e666666666667p+0,-1.0), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-23.0,-1.0), dac), 3)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(entireinterval(), def), DecoratedInterval(interval(-23.0,-1.0), com), 3)[2] === DecoratedInterval(Interval(-23.0,-1.0), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), def), DecoratedInterval(interval(1.0,2.0), dac), 3)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0x1.0C6F7A0B5ED8DP-20,0x1.94C75E6362A6P+3), com), DecoratedInterval(interval(1.0,Inf), dac), 3)[2] === DecoratedInterval(Interval(1.0,0x1.2a3d70a3d70a5p+1), trv) + + @test power_rev(DecoratedInterval(interval(-0x1.B6F9DB22D0E55P+2,-0x1.266559F6EC5B1P-5), com), DecoratedInterval(interval(-Inf,-1.0), dac), 3)[2] === DecoratedInterval(Interval(-0x1.e666666666667p+0,-1.0), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-3.0,17.3), def), -2)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0.0,Inf), dac), DecoratedInterval(interval(-5.1,-0.1), dac), -2)[2] === DecoratedInterval(Interval(-5.1,-0.1), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), def), DecoratedInterval(interval(27.2,55.1), dac), -2)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0x1.3F0C482C977C9P-17,Inf), def), DecoratedInterval(interval(-Inf,-0x1.FFFFFFFFFFFFFp1023), dac), -2)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(0x1.793D85EF38E47P-3,0x1.388P+13), com), DecoratedInterval(interval(1.0,Inf), dac), -2)[2] === DecoratedInterval(Interval(1.0,0x1.2a3d70a3d70a5p+1), trv) + + @test power_rev(DecoratedInterval(interval(0x1.1BA81104F6C8P-2,0x1.25D8FA1F801E1P+3), com), DecoratedInterval(interval(-Inf,-1.0), dac), -2)[2] === DecoratedInterval(Interval(-0x1.e666666666667p+0,-1.0), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-5.1,55.5), def), -1)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(entireinterval(), def), DecoratedInterval(interval(-5.1,55.5), dac), -1)[2] === DecoratedInterval(Interval(-5.1,55.5), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), dac), DecoratedInterval(interval(-5.1,55.5), def), -1)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,-0.0), dac), DecoratedInterval(interval(-1.0,1.0), com), -1)[2] === DecoratedInterval(Interval(-1.0,0.0), trv) + + @test power_rev(DecoratedInterval(interval(0x1.B77C278DBBE13P-2,0x1.9P+6), def), DecoratedInterval(interval(-1.0,0.0), dac), -1)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-5.1,55.5), dac), -3)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(entireinterval(), def), DecoratedInterval(interval(-5.1,55.5), def), -3)[2] === DecoratedInterval(Interval(-5.1,55.5), trv) + + @test power_rev(DecoratedInterval(interval(0.0,0.0), def), DecoratedInterval(interval(-5.1,55.5), def), -3)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,0.0), dac), DecoratedInterval(interval(5.1,55.5), com), -3)[2] === DecoratedInterval(emptyinterval(), trv) + + @test power_rev(DecoratedInterval(interval(-Inf,-0.0), dac), DecoratedInterval(interval(-32.0,1.1), def), -3)[2] === DecoratedInterval(Interval(-32.0,0.0), trv) + +end + +@testset "minimal_sin_rev_test" begin + + @test sin_rev(emptyinterval())[2] === emptyinterval() + + @test sin_rev(interval(-2.0,-1.1))[2] === emptyinterval() + + @test sin_rev(interval(1.1, 2.0))[2] === emptyinterval() + + @test sin_rev(interval(-1.0,1.0))[2] === entireinterval() + + @test sin_rev(interval(0.0,0.0))[2] === entireinterval() + + @test sin_rev(interval(0x1.1A62633145C06P-53,0x1.1A62633145C07P-53))[2] === entireinterval() + +end + +@testset "minimal_sin_rev_bin_test" begin + + @test sin_rev(emptyinterval(), interval(-1.2,12.1))[2] === emptyinterval() + + @test sin_rev(interval(-2.0,-1.1), interval(-5.0, 5.0))[2] === emptyinterval() + + @test sin_rev(interval(1.1, 2.0), interval(-5.0, 5.0))[2] === emptyinterval() + + @test sin_rev(interval(-1.0,1.0), interval(-1.2,12.1))[2] === Interval(-1.2,12.1) + + @test sin_rev(interval(0.0,0.0), interval(-1.0,1.0))[2] === Interval(0.0,0.0) + + @test sin_rev(interval(-0.0,-0.0), interval(2.0,2.5))[2] === emptyinterval() + + @test sin_rev(interval(-0.0,-0.0), interval(3.0,3.5))[2] === Interval(0x1.921fb54442d18p+1,0x1.921fb54442d19p+1) + + @test sin_rev(interval(0x1.FFFFFFFFFFFFFP-1,0x1P+0), interval(1.57,1.58, ))[2] === Interval(0x1.921fb50442d18p+0,0x1.921fb58442d1ap+0) + + @test sin_rev(interval(0.0,0x1P+0), interval(-0.1,1.58))[2] === Interval(0.0,1.58) + + @test sin_rev(interval(0x1.1A62633145C06P-53,0x1.1A62633145C07P-53), interval(3.14,3.15))[2] === Interval(0x1.921FB54442D17P+1,0x1.921FB54442D19P+1) + + @test sin_rev(interval(-0x1.72CECE675D1FDP-52,-0x1.72CECE675D1FCP-52), interval(3.14,3.15))[2] === Interval(0x1.921FB54442D18P+1,0x1.921FB54442D1aP+1) + + @test sin_rev(interval(-0x1.72CECE675D1FDP-52,0x1.1A62633145C07P-53), interval(3.14,3.15))[2] === Interval(0x1.921FB54442D17P+1,0x1.921FB54442D1aP+1) + + @test sin_rev(interval(0.0,1.0), interval(-0.1,3.15))[2] === Interval(0.0,0x1.921FB54442D19P+1) + + @test sin_rev(interval(0.0,1.0), interval(-0.1,3.15))[2] === Interval(-0.0,0x1.921FB54442D19P+1) + + @test sin_rev(interval(-0x1.72CECE675D1FDP-52,1.0), interval(-0.1,3.15))[2] === Interval(-0x1.72cece675d1fep-52,0x1.921FB54442D1aP+1) + + @test sin_rev(interval(-0x1.72CECE675D1FDP-52,1.0), interval(0.0,3.15))[2] === Interval(0.0,0x1.921FB54442D1aP+1) + + @test sin_rev(interval(0x1.1A62633145C06P-53,0x1P+0), interval(3.14,3.15))[2] === Interval(3.14,0x1.921FB54442D19P+1) + + @test sin_rev(interval(-0x1.72CECE675D1FDP-52,0x1P+0), interval(1.57,3.15))[2] === Interval(1.57,0x1.921FB54442D1AP+1) + + @test sin_rev(interval(0x1.1A62633145C06P-53,0x1.1A62633145C07P-53), interval(-Inf,3.15))[2] === Interval(-Inf,0x1.921FB54442D19P+1) + + @test sin_rev(interval(-0x1.72CECE675D1FDP-52,-0x1.72CECE675D1FCP-52), interval(3.14,Inf))[2] === Interval(0x1.921FB54442D18P+1,Inf) + +end + +@testset "minimal_sin_rev_dec_test" begin + + @test sin_rev(DecoratedInterval(emptyinterval(), trv))[2] === DecoratedInterval(emptyinterval(), trv) + + @test sin_rev(DecoratedInterval(interval(-2.0,-1.1), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test sin_rev(DecoratedInterval(interval(1.1, 2.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test sin_rev(DecoratedInterval(interval(-1.0,1.0), com))[2] === DecoratedInterval(entireinterval(), trv) + + @test sin_rev(DecoratedInterval(interval(0.0,0.0), dac))[2] === DecoratedInterval(entireinterval(), trv) + + @test sin_rev(DecoratedInterval(interval(0x1.1A62633145C06P-53,0x1.1A62633145C07P-53), def))[2] === DecoratedInterval(entireinterval(), trv) + +end + +@testset "minimal_sin_rev_dec_bin_test" begin + + @test sin_rev(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-1.2,12.1), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test sin_rev(DecoratedInterval(interval(-2.0,-1.1), def), DecoratedInterval(interval(-5.0, 5.0), def))[2] === DecoratedInterval(emptyinterval(), trv) + + @test sin_rev(DecoratedInterval(interval(1.1, 2.0), dac), DecoratedInterval(interval(-5.0, 5.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test sin_rev(DecoratedInterval(interval(-1.0,1.0), com), DecoratedInterval(interval(-1.2,12.1), def))[2] === DecoratedInterval(Interval(-1.2,12.1), trv) + + @test sin_rev(DecoratedInterval(interval(0.0,0.0), dac), DecoratedInterval(interval(-1.0,1.0), def))[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test sin_rev(DecoratedInterval(interval(-0.0,-0.0), def), DecoratedInterval(interval(2.0,2.5), trv))[2] === DecoratedInterval(emptyinterval(), trv) + + @test sin_rev(DecoratedInterval(interval(-0.0,-0.0), def), DecoratedInterval(interval(3.0,3.5), dac))[2] === DecoratedInterval(Interval(0x1.921fb54442d18p+1,0x1.921fb54442d19p+1), trv) + + @test sin_rev(DecoratedInterval(interval(0x1.FFFFFFFFFFFFFP-1,0x1P+0), dac), DecoratedInterval(interval(1.57,1.58), dac))[2] === DecoratedInterval(Interval(0x1.921fb50442d18p+0,0x1.921fb58442d1ap+0), trv) + + @test sin_rev(DecoratedInterval(interval(0.0,0x1P+0), com), DecoratedInterval(interval(-0.1,1.58), dac))[2] === DecoratedInterval(Interval(0.0,1.58), trv) + + @test sin_rev(DecoratedInterval(interval(0x1.1A62633145C06P-53,0x1.1A62633145C07P-53), com), DecoratedInterval(interval(3.14,3.15), def))[2] === DecoratedInterval(Interval(0x1.921FB54442D17P+1,0x1.921FB54442D19P+1), trv) + + @test sin_rev(DecoratedInterval(interval(-0x1.72CECE675D1FDP-52,-0x1.72CECE675D1FCP-52), com), DecoratedInterval(interval(3.14,3.15), dac))[2] === DecoratedInterval(Interval(0x1.921FB54442D18P+1,0x1.921FB54442D1aP+1), trv) + + @test sin_rev(DecoratedInterval(interval(-0x1.72CECE675D1FDP-52,0x1.1A62633145C07P-53), dac), DecoratedInterval(interval(3.14,3.15), com))[2] === DecoratedInterval(Interval(0x1.921FB54442D17P+1,0x1.921FB54442D1aP+1), trv) + + @test sin_rev(DecoratedInterval(interval(0.0,1.0), def), DecoratedInterval(interval(-0.1,3.15), def))[2] === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+1), trv) + + @test sin_rev(DecoratedInterval(interval(0.0,1.0), dac), DecoratedInterval(interval(-0.1,3.15), com))[2] === DecoratedInterval(Interval(-0.0,0x1.921FB54442D19P+1), trv) + + @test sin_rev(DecoratedInterval(interval(-0x1.72CECE675D1FDP-52,1.0), def), DecoratedInterval(interval(-0.1,3.15), def))[2] === DecoratedInterval(Interval(-0x1.72cece675d1fep-52,0x1.921FB54442D1aP+1), trv) + + @test sin_rev(DecoratedInterval(interval(-0x1.72CECE675D1FDP-52,1.0), com), DecoratedInterval(interval(0.0,3.15), dac))[2] === DecoratedInterval(Interval(0.0,0x1.921FB54442D1aP+1), trv) + + @test sin_rev(DecoratedInterval(interval(0x1.1A62633145C06P-53,0x1P+0), def), DecoratedInterval(interval(3.14,3.15), com))[2] === DecoratedInterval(Interval(3.14,0x1.921FB54442D19P+1), trv) + + @test sin_rev(DecoratedInterval(interval(-0x1.72CECE675D1FDP-52,0x1P+0), dac), DecoratedInterval(interval(1.57,3.15), com))[2] === DecoratedInterval(Interval(1.57,0x1.921FB54442D1AP+1), trv) + + @test sin_rev(DecoratedInterval(interval(0x1.1A62633145C06P-53,0x1.1A62633145C07P-53), com), DecoratedInterval(interval(-Inf,3.15), dac))[2] === DecoratedInterval(Interval(-Inf,0x1.921FB54442D19P+1), trv) + + @test sin_rev(DecoratedInterval(interval(-0x1.72CECE675D1FDP-52,-0x1.72CECE675D1FCP-52), com), DecoratedInterval(interval(3.14,Inf), dac))[2] === DecoratedInterval(Interval(0x1.921FB54442D18P+1,Inf), trv) + +end + +@testset "minimal_cos_rev_test" begin + + @test cos_rev(emptyinterval())[2] === emptyinterval() + + @test cos_rev(interval(-2.0,-1.1))[2] === emptyinterval() + + @test cos_rev(interval(1.1, 2.0))[2] === emptyinterval() + + @test cos_rev(interval(-1.0,1.0))[2] === entireinterval() + + @test cos_rev(interval(0.0,0.0))[2] === entireinterval() + + @test cos_rev(interval(0x1.1A62633145C06P-53,0x1.1A62633145C07P-53))[2] === entireinterval() + +end + +@testset "minimal_cos_rev_bin_test" begin + + @test cos_rev(emptyinterval(), interval(-1.2,12.1))[2] === emptyinterval() + + @test cos_rev(interval(-2.0,-1.1), interval(-5.0, 5.0))[2] === emptyinterval() + + @test cos_rev(interval(1.1, 2.0), interval(-5.0, 5.0))[2] === emptyinterval() + + @test cos_rev(interval(-1.0,1.0), interval(-1.2,12.1))[2] === Interval(-1.2,12.1) + + @test cos_rev(interval(1.0,1.0), interval(-0.1,0.1))[2] === Interval(0.0,0.0) + + @test cos_rev(interval(-1.0,-1.0), interval(3.14,3.15))[2] === Interval(0x1.921fb54442d18p+1,0x1.921fb54442d1ap+1) + + @test cos_rev(interval(0x1.1A62633145C06P-54,0x1.1A62633145C07P-54), interval(1.57,1.58))[2] === Interval(0x1.921FB54442D17P+0,0x1.921FB54442D19P+0) + + @test cos_rev(interval(-0x1.72CECE675D1FDP-53,-0x1.72CECE675D1FCP-53), interval(1.57,1.58))[2] === Interval(0x1.921FB54442D18P+0,0x1.921FB54442D1AP+0) + + @test cos_rev(interval(-0x1.72CECE675D1FDP-53,0x1.1A62633145C07P-54), interval(1.57,1.58))[2] === Interval(0x1.921FB54442D17P+0,0x1.921FB54442D1aP+0) + + @test cos_rev(interval(0x1.1A62633145C06P-54,1.0), interval(-2.0,2.0))[2] === Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0) + + @test cos_rev(interval(0x1.1A62633145C06P-54,1.0), interval(0.0,2.0))[2] === Interval(0.0,0x1.921FB54442D19P+0) + + @test cos_rev(interval(-0x1.72CECE675D1FDP-53,1.0), interval(-0.1,1.5708))[2] === Interval(-0.1,0x1.921FB54442D1aP+0) + + @test cos_rev(interval(-0x1P+0,-0x1.FFFFFFFFFFFFFP-1), interval(3.14,3.15))[2] === Interval(0x1.921fb52442d18p+1,0x1.921fb56442d1ap+1) + + @test cos_rev(interval(-0x1P+0,-0x1.FFFFFFFFFFFFFP-1), interval(-3.15,-3.14))[2] === Interval(-0x1.921fb56442d1ap+1,-0x1.921fb52442d18p+1) + + @test cos_rev(interval(-0x1P+0,-0x1.FFFFFFFFFFFFFP-1), interval(9.42,9.45))[2] === Interval(0x1.2d97c7eb321d2p+3,0x1.2d97c7fb321d3p+3) + + @test cos_rev(interval(0x1.87996529F9D92P-1,1.0), interval(-1.0,0.1))[2] === Interval(-0x1.6666666666667p-1,0.1) + + @test cos_rev(interval(-0x1.AA22657537205P-2,0x1.14A280FB5068CP-1), interval(0.0,2.1))[2] === Interval(0x1.fffffffffffffp-1,0x1.0000000000001p+1) + + @test cos_rev(interval(0x1.1A62633145C06P-53,0x1.1A62633145C07P-53), interval(-Inf,1.58))[2] === Interval(-Inf,0x1.921FB54442D18P+0) + + @test cos_rev(interval(0x1.1A62633145C06P-53,0x1.1A62633145C07P-53), interval(-Inf,1.5))[2] === Interval(-Inf,-0x1.921FB54442D17P+0) + + @test cos_rev(interval(-0x1.72CECE675D1FDP-52,-0x1.72CECE675D1FCP-52), interval(-1.58,Inf))[2] === Interval(-0x1.921fb54442d1ap+0,Inf) + + @test cos_rev(interval(-0x1.72CECE675D1FDP-52,-0x1.72CECE675D1FCP-52), interval(-1.5,Inf))[2] === Interval(0x1.921fb54442d19p+0,Inf) + +end + +@testset "minimal_cos_rev_dec_test" begin + + @test cos_rev(DecoratedInterval(emptyinterval(), trv))[2] === DecoratedInterval(emptyinterval(), trv) + + @test cos_rev(DecoratedInterval(interval(-2.0,-1.1), def))[2] === DecoratedInterval(emptyinterval(), trv) + + @test cos_rev(DecoratedInterval(interval(1.1, 2.0), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test cos_rev(DecoratedInterval(interval(-1.0,1.0), com))[2] === DecoratedInterval(entireinterval(), trv) + + @test cos_rev(DecoratedInterval(interval(0.0,0.0), def))[2] === DecoratedInterval(entireinterval(), trv) + + @test cos_rev(DecoratedInterval(interval(0x1.1A62633145C06P-53,0x1.1A62633145C07P-53), dac))[2] === DecoratedInterval(entireinterval(), trv) + +end + +@testset "minimal_cos_rev_dec_bin_test" begin + + @test cos_rev(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-1.2,12.1), def))[2] === DecoratedInterval(emptyinterval(), trv) + + @test cos_rev(DecoratedInterval(interval(-2.0,-1.1), dac), DecoratedInterval(interval(-5.0, 5.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test cos_rev(DecoratedInterval(interval(1.1, 2.0), dac), DecoratedInterval(interval(-5.0, 5.0), com))[2] === DecoratedInterval(emptyinterval(), trv) + + @test cos_rev(DecoratedInterval(interval(-1.0,1.0), dac), DecoratedInterval(interval(-1.2,12.1), def))[2] === DecoratedInterval(Interval(-1.2,12.1), trv) + + @test cos_rev(DecoratedInterval(interval(1.0,1.0), def), DecoratedInterval(interval(-0.1,0.1), dac))[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test cos_rev(DecoratedInterval(interval(-1.0,-1.0), com), DecoratedInterval(interval(3.14,3.15), dac))[2] === DecoratedInterval(Interval(0x1.921fb54442d18p+1,0x1.921fb54442d1ap+1), trv) + + @test cos_rev(DecoratedInterval(interval(0x1.1A62633145C06P-54,0x1.1A62633145C07P-54), def), DecoratedInterval(interval(1.57,1.58), def))[2] === DecoratedInterval(Interval(0x1.921FB54442D17P+0,0x1.921FB54442D19P+0), trv) + + @test cos_rev(DecoratedInterval(interval(-0x1.72CECE675D1FDP-53,-0x1.72CECE675D1FCP-53), dac), DecoratedInterval(interval(1.57,1.58), dac))[2] === DecoratedInterval(Interval(0x1.921FB54442D18P+0,0x1.921FB54442D1AP+0), trv) + + @test cos_rev(DecoratedInterval(interval(-0x1.72CECE675D1FDP-53,0x1.1A62633145C07P-54), com), DecoratedInterval(interval(1.57,1.58), dac))[2] === DecoratedInterval(Interval(0x1.921FB54442D17P+0,0x1.921FB54442D1aP+0), trv) + + @test cos_rev(DecoratedInterval(interval(0x1.1A62633145C06P-54,1.0), def), DecoratedInterval(interval(-2.0,2.0), com))[2] === DecoratedInterval(Interval(-0x1.921FB54442D19P+0, 0x1.921FB54442D19P+0), trv) + + @test cos_rev(DecoratedInterval(interval(0x1.1A62633145C06P-54,1.0), dac), DecoratedInterval(interval(0.0,2.0), def))[2] === DecoratedInterval(Interval(0.0,0x1.921FB54442D19P+0), trv) + + @test cos_rev(DecoratedInterval(interval(-0x1.72CECE675D1FDP-53,1.0), def), DecoratedInterval(interval(-0.1,1.5708), dac))[2] === DecoratedInterval(Interval(-0.1,0x1.921FB54442D1aP+0), trv) + + @test cos_rev(DecoratedInterval(interval(-0x1P+0,-0x1.FFFFFFFFFFFFFP-1), dac), DecoratedInterval(interval(3.14,3.15), def))[2] === DecoratedInterval(Interval(0x1.921fb52442d18p+1,0x1.921fb56442d1ap+1), trv) + + @test cos_rev(DecoratedInterval(interval(-0x1P+0,-0x1.FFFFFFFFFFFFFP-1), def), DecoratedInterval(interval(-3.15,-3.14), com))[2] === DecoratedInterval(Interval(-0x1.921fb56442d1ap+1,-0x1.921fb52442d18p+1), trv) + + @test cos_rev(DecoratedInterval(interval(-0x1P+0,-0x1.FFFFFFFFFFFFFP-1), def), DecoratedInterval(interval(9.42,9.45), dac))[2] === DecoratedInterval(Interval(0x1.2d97c7eb321d2p+3,0x1.2d97c7fb321d3p+3), trv) + + @test cos_rev(DecoratedInterval(interval(0x1.87996529F9D92P-1,1.0), dac), DecoratedInterval(interval(-1.0,0.1), def))[2] === DecoratedInterval(Interval(-0x1.6666666666667p-1,0.1), trv) + + @test cos_rev(DecoratedInterval(interval(-0x1.AA22657537205P-2,0x1.14A280FB5068CP-1), com), DecoratedInterval(interval(0.0,2.1), dac))[2] === DecoratedInterval(Interval(0x1.fffffffffffffp-1,0x1.0000000000001p+1), trv) + + @test cos_rev(DecoratedInterval(interval(0x1.1A62633145C06P-53,0x1.1A62633145C07P-53), com), DecoratedInterval(interval(-Inf,1.58), dac))[2] === DecoratedInterval(Interval(-Inf,0x1.921FB54442D18P+0), trv) + + @test cos_rev(DecoratedInterval(interval(0x1.1A62633145C06P-53,0x1.1A62633145C07P-53), def), DecoratedInterval(interval(-Inf,1.5), dac))[2] === DecoratedInterval(Interval(-Inf,-0x1.921FB54442D17P+0), trv) + + @test cos_rev(DecoratedInterval(interval(-0x1.72CECE675D1FDP-52,-0x1.72CECE675D1FCP-52), dac), DecoratedInterval(interval(-1.58,Inf), dac))[2] === DecoratedInterval(Interval(-0x1.921fb54442d1ap+0,Inf), trv) + + @test cos_rev(DecoratedInterval(interval(-0x1.72CECE675D1FDP-52,-0x1.72CECE675D1FCP-52), def), DecoratedInterval(interval(-1.5,Inf), dac))[2] === DecoratedInterval(Interval(0x1.921fb54442d19p+0,Inf), trv) + +end + +@testset "minimal_tan_rev_test" begin + + @test tan_rev(emptyinterval())[2] === emptyinterval() + + @test tan_rev(interval(-1.0,1.0))[2] === entireinterval() + + @test tan_rev(interval(-156.0,-12.0))[2] === entireinterval() + + @test tan_rev(interval(0.0,0.0))[2] === entireinterval() + + @test tan_rev(interval(0x1.1A62633145C06P-53,0x1.1A62633145C07P-53))[2] === entireinterval() + +end + +@testset "minimal_tan_rev_bin_test" begin + + @test tan_rev(emptyinterval(), interval(-1.5708,1.5708))[2] === emptyinterval() + + @test tan_rev(entireinterval(), interval(-1.5708,1.5708))[2] === Interval(-1.5708,1.5708) + + @test tan_rev(interval(0.0,0.0), interval(-1.5708,1.5708))[2] === Interval(0.0,0.0) + + @test tan_rev(interval(0x1.D02967C31CDB4P+53,0x1.D02967C31CDB5P+53), interval(-1.5708,1.5708))[2] === Interval(-0x1.921fb54442d1bp+0,0x1.921fb54442d19p+0) + + @test tan_rev(interval(-0x1.1A62633145C07P-53,-0x1.1A62633145C06P-53), interval(3.14,3.15))[2] === Interval(0x1.921FB54442D17P+1,0x1.921FB54442D19P+1) + + @test tan_rev(interval(0x1.72CECE675D1FCP-52,0x1.72CECE675D1FDP-52), interval(-3.15,3.15))[2] === Interval(-0x1.921FB54442D19P+1,0x1.921FB54442D1aP+1) + + @test tan_rev(interval(-0x1.D02967C31p+53,0x1.D02967C31p+53), interval(-Inf,1.5707965))[2] === Interval(-Inf, +0x1.921FB82C2BD7Fp0) + + @test tan_rev(interval(-0x1.D02967C31p+53,0x1.D02967C31p+53), interval(-1.5707965,Inf))[2] === Interval(-0x1.921FB82C2BD7Fp0, +Inf) + + @test tan_rev(interval(-0x1.D02967C31p+53,0x1.D02967C31p+53), interval(-1.5707965,1.5707965))[2] === Interval(-0x1.921FB82C2BD7Fp0, +0x1.921FB82C2BD7Fp0) + + @test tan_rev(interval(-0x1.D02967C31CDB5P+53,0x1.D02967C31CDB5P+53), interval(-1.5707965,1.5707965))[2] === Interval(-1.5707965,1.5707965) + +end + +@testset "minimal_tan_rev_dec_test" begin + + @test tan_rev(DecoratedInterval(emptyinterval(), trv))[2] === DecoratedInterval(emptyinterval(), trv) + + @test tan_rev(DecoratedInterval(interval(-1.0,1.0), com))[2] === DecoratedInterval(entireinterval(), trv) + + @test tan_rev(DecoratedInterval(interval(-156.0,-12.0), dac))[2] === DecoratedInterval(entireinterval(), trv) + + @test tan_rev(DecoratedInterval(interval(0.0,0.0), def))[2] === DecoratedInterval(entireinterval(), trv) + + @test tan_rev(DecoratedInterval(interval(0x1.1A62633145C06P-53,0x1.1A62633145C07P-53), com))[2] === DecoratedInterval(entireinterval(), trv) + +end + +@testset "minimal_tan_rev_dec_bin_test" begin + + @test tan_rev(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(-1.5708,1.5708), def))[2] === DecoratedInterval(emptyinterval(), trv) + + @test tan_rev(DecoratedInterval(entireinterval(), def), DecoratedInterval(interval(-1.5708,1.5708), dac))[2] === DecoratedInterval(Interval(-1.5708,1.5708), trv) + + @test tan_rev(DecoratedInterval(interval(0.0,0.0), com), DecoratedInterval(interval(-1.5708,1.5708), def))[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test tan_rev(DecoratedInterval(interval(0x1.D02967C31CDB4P+53,0x1.D02967C31CDB5P+53), dac), DecoratedInterval(interval(-1.5708,1.5708), def))[2] === DecoratedInterval(Interval(-0x1.921fb54442d1bp+0,0x1.921fb54442d19p+0), trv) + + @test tan_rev(DecoratedInterval(interval(-0x1.1A62633145C07P-53,-0x1.1A62633145C06P-53), def), DecoratedInterval(interval(3.14,3.15), dac))[2] === DecoratedInterval(Interval(0x1.921FB54442D17P+1,0x1.921FB54442D19P+1), trv) + + @test tan_rev(DecoratedInterval(interval(0x1.72CECE675D1FCP-52,0x1.72CECE675D1FDP-52), com), DecoratedInterval(interval(-3.15,3.15), com))[2] === DecoratedInterval(Interval(-0x1.921FB54442D19P+1,0x1.921FB54442D1aP+1), trv) + + @test tan_rev(DecoratedInterval(interval(-0x1.D02967C31p+53,0x1.D02967C31p+53), def), DecoratedInterval(interval(-Inf,1.5707965), def))[2] === DecoratedInterval(Interval(-Inf,0x1.921FB82C2BD7Fp0), trv) + + @test tan_rev(DecoratedInterval(interval(-0x1.D02967C31p+53,0x1.D02967C31p+53), com), DecoratedInterval(interval(-1.5707965,Inf), dac))[2] === DecoratedInterval(Interval(-0x1.921FB82C2BD7Fp0,Inf), trv) + + @test tan_rev(DecoratedInterval(interval(-0x1.D02967C31p+53,0x1.D02967C31p+53), com), DecoratedInterval(interval(-1.5707965,1.5707965), com))[2] === DecoratedInterval(Interval(-0x1.921FB82C2BD7Fp0,0x1.921FB82C2BD7Fp0), trv) + + @test tan_rev(DecoratedInterval(interval(-0x1.D02967C31CDB5P+53,0x1.D02967C31CDB5P+53), dac), DecoratedInterval(interval(-1.5707965,1.5707965), def))[2] === DecoratedInterval(Interval(-1.5707965,1.5707965), trv) + +end + +@testset "minimal_cosh_rev_test" begin + + @test cosh_rev(emptyinterval())[2] === emptyinterval() + + @test cosh_rev(interval(1.0,Inf))[2] === entireinterval() + + @test cosh_rev(interval(0.0,Inf))[2] === entireinterval() + + @test cosh_rev(interval(1.0,1.0))[2] === Interval(0.0,0.0) + + @test cosh_rev(interval(0x1.8B07551D9F55P+0,0x1.89BCA168970C6P+432))[2] === Interval(-0x1.2C903022DD7ABP+8,0x1.2C903022DD7ABP+8) + +end + +@testset "minimal_cosh_rev_bin_test" begin + + @test cosh_rev(emptyinterval(), interval(0.0,Inf))[2] === emptyinterval() + + @test cosh_rev(interval(1.0,Inf), interval(0.0,Inf))[2] === Interval(0.0,Inf) + + @test cosh_rev(interval(0.0,Inf), interval(1.0,2.0))[2] === Interval(1.0,2.0) + + @test cosh_rev(interval(1.0,1.0), interval(1.0,Inf))[2] === emptyinterval() + + @test cosh_rev(interval(0x1.8B07551D9F55P+0,0x1.89BCA168970C6P+432), interval(-Inf,0.0))[2] === Interval(-0x1.2C903022DD7ABP+8,-0x1.fffffffffffffp-1) + +end + +@testset "minimal_cosh_rev_dec_test" begin + + @test cosh_rev(DecoratedInterval(emptyinterval(), trv))[2] === DecoratedInterval(emptyinterval(), trv) + + @test cosh_rev(DecoratedInterval(interval(1.0,Inf), dac))[2] === DecoratedInterval(entireinterval(), trv) + + @test cosh_rev(DecoratedInterval(interval(0.0,Inf), dac))[2] === DecoratedInterval(entireinterval(), trv) + + @test cosh_rev(DecoratedInterval(interval(1.0,1.0), def))[2] === DecoratedInterval(Interval(0.0,0.0), trv) + + @test cosh_rev(DecoratedInterval(interval(0x1.8B07551D9F55P+0,0x1.89BCA168970C6P+432), com))[2] === DecoratedInterval(Interval(-0x1.2C903022DD7ABP+8,0x1.2C903022DD7ABP+8), trv) + +end + +@testset "minimal_cosh_rev_dec_bin_test" begin + + @test cosh_rev(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(interval(0.0,Inf), dac))[2] === DecoratedInterval(emptyinterval(), trv) + + @test cosh_rev(DecoratedInterval(interval(1.0,Inf), def), DecoratedInterval(interval(0.0,Inf), dac))[2] === DecoratedInterval(Interval(0.0,Inf), trv) + + @test cosh_rev(DecoratedInterval(interval(0.0,Inf), def), DecoratedInterval(interval(1.0,2.0), com))[2] === DecoratedInterval(Interval(1.0,2.0), trv) + + @test cosh_rev(DecoratedInterval(interval(1.0,1.0), dac), DecoratedInterval(interval(1.0,Inf), def))[2] === DecoratedInterval(emptyinterval(), trv) + + @test cosh_rev(DecoratedInterval(interval(0x1.8B07551D9F55P+0,0x1.89BCA168970C6P+432), com), DecoratedInterval(interval(-Inf,0.0), dac))[2] === DecoratedInterval(Interval(-0x1.2C903022DD7ABP+8,-0x1.fffffffffffffp-1), trv) + +end + +@testset "minimal_mul_rev_test" begin + + @test mul_rev_IEEE1788(emptyinterval(), interval(1.0, 2.0)) === emptyinterval() + + @test mul_rev_IEEE1788(interval(1.0, 2.0), emptyinterval()) === emptyinterval() + + @test mul_rev_IEEE1788(emptyinterval(), emptyinterval()) === emptyinterval() + + @test mul_rev_IEEE1788(interval(-2.0, -0.1), interval(-2.1, -0.4)) === Interval(0x1.999999999999AP-3, 0x1.5P+4) + + @test mul_rev_IEEE1788(interval(-2.0, 0.0), interval(-2.1, -0.4)) === Interval(0x1.999999999999AP-3, Inf) + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), interval(-2.1, -0.4)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, 1.1), interval(-2.1, -0.4)) === Interval(-Inf, -0x1.745D1745D1745P-2) + + @test mul_rev_IEEE1788(interval(0.01, 1.1), interval(-2.1, -0.4)) === Interval(-0x1.A400000000001P+7, -0x1.745D1745D1745P-2) + + @test mul_rev_IEEE1788(interval(0.0, 0.0), interval(-2.1, -0.4)) === emptyinterval() + + @test mul_rev_IEEE1788(interval(-Inf, -0.1), interval(-2.1, -0.4)) === Interval(0.0, 0x1.5P+4) + + @test mul_rev_IEEE1788(interval(-Inf, 0.0), interval(-2.1, -0.4)) === Interval(0.0, Inf) + + @test mul_rev_IEEE1788(interval(-Inf, 1.1), interval(-2.1, -0.4)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, Inf), interval(-2.1, -0.4)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, Inf), interval(-2.1, -0.4)) === Interval(-Inf, 0.0) + + @test mul_rev_IEEE1788(interval(0.01, Inf), interval(-2.1, -0.4)) === Interval(-0x1.A400000000001P+7, 0.0) + + @test mul_rev_IEEE1788(entireinterval(), interval(-2.1, -0.4)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, -0.1), interval(-2.1, 0.0)) === Interval(0.0, 0x1.5P+4) + + @test mul_rev_IEEE1788(interval(-2.0, 0.0), interval(-2.1, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), interval(-2.1, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, 1.1), interval(-2.1, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, 1.1), interval(-2.1, 0.0)) === Interval(-0x1.A400000000001P+7, 0.0) + + @test mul_rev_IEEE1788(interval(0.0, 0.0), interval(-2.1, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, -0.1), interval(-2.1, 0.0)) === Interval(0.0, 0x1.5P+4) + + @test mul_rev_IEEE1788(interval(-Inf, 0.0), interval(-2.1, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, 1.1), interval(-2.1, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, Inf), interval(-2.1, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, Inf), interval(-2.1, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, Inf), interval(-2.1, 0.0)) === Interval(-0x1.A400000000001P+7, 0.0) + + @test mul_rev_IEEE1788(entireinterval(), interval(-2.1, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, -0.1), interval(-2.1, 0.12)) === Interval(-0x1.3333333333333P+0, 0x1.5P+4) + + @test mul_rev_IEEE1788(interval(-2.0, 0.0), interval(-2.1, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), interval(-2.1, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, 1.1), interval(-2.1, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, 1.1), interval(-2.1, 0.12)) === Interval(-0x1.A400000000001P+7 , 0x1.8P+3) + + @test mul_rev_IEEE1788(interval(0.0, 0.0), interval(-2.1, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, -0.1), interval(-2.1, 0.12)) === Interval(-0x1.3333333333333P+0, 0x1.5P+4) + + @test mul_rev_IEEE1788(interval(-Inf, 0.0), interval(-2.1, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, 1.1), interval(-2.1, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, Inf), interval(-2.1, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, Inf), interval(-2.1, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, Inf), interval(-2.1, 0.12)) === Interval(-0x1.A400000000001P+7 , 0x1.8P+3) + + @test mul_rev_IEEE1788(entireinterval(), interval(-2.1, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, -0.1), interval(0.0, 0.12)) === Interval(-0x1.3333333333333P+0, 0.0) + + @test mul_rev_IEEE1788(interval(-2.0, 0.0), interval(0.0, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), interval(0.0, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, 1.1), interval(0.0, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, 1.1), interval(0.0, 0.12)) === Interval(0.0, 0x1.8P+3) + + @test mul_rev_IEEE1788(interval(0.0, 0.0), interval(0.0, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, -0.1), interval(0.0, 0.12)) === Interval(-0x1.3333333333333P+0, 0.0) + + @test mul_rev_IEEE1788(interval(-Inf, 0.0), interval(0.0, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, 1.1), interval(0.0, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, Inf), interval(0.0, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, Inf), interval(0.0, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, Inf), interval(0.0, 0.12)) === Interval(0.0, 0x1.8P+3) + + @test mul_rev_IEEE1788(entireinterval(), interval(0.0, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, -0.1), interval(0.01, 0.12)) === Interval(-0x1.3333333333333P+0, -0x1.47AE147AE147BP-8) + + @test mul_rev_IEEE1788(interval(-2.0, 0.0), interval(0.01, 0.12)) === Interval(-Inf, -0x1.47AE147AE147BP-8) + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), interval(0.01, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, 1.1), interval(0.01, 0.12)) === Interval(0x1.29E4129E4129DP-7, Inf) + + @test mul_rev_IEEE1788(interval(0.01, 1.1), interval(0.01, 0.12)) === Interval(0x1.29E4129E4129DP-7, 0x1.8P+3) + + @test mul_rev_IEEE1788(interval(0.0, 0.0), interval(0.01, 0.12)) === emptyinterval() + + @test mul_rev_IEEE1788(interval(-Inf, -0.1), interval(0.01, 0.12)) === Interval(-0x1.3333333333333P+0, 0.0) + + @test mul_rev_IEEE1788(interval(-Inf, 0.0), interval(0.01, 0.12)) === Interval(-Inf, 0.0) + + @test mul_rev_IEEE1788(interval(-Inf, 1.1), interval(0.01, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, Inf), interval(0.01, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, Inf), interval(0.01, 0.12)) === Interval(0.0, Inf) + + @test mul_rev_IEEE1788(interval(0.01, Inf), interval(0.01, 0.12)) === Interval(0.0, 0x1.8P+3) + + @test mul_rev_IEEE1788(entireinterval(), interval(0.01, 0.12)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, -0.1), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test mul_rev_IEEE1788(interval(-2.0, 0.0), interval(0.0, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), interval(0.0, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, 1.1), interval(0.0, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, 1.1), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test mul_rev_IEEE1788(interval(0.0, 0.0), interval(0.0, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, -0.1), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test mul_rev_IEEE1788(interval(-Inf, 0.0), interval(0.0, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, 1.1), interval(0.0, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, Inf), interval(0.0, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, Inf), interval(0.0, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, Inf), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test mul_rev_IEEE1788(entireinterval(), interval(0.0, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, -0.1), interval(-Inf, -0.1)) === Interval(0x1.999999999999AP-5, Inf) + + @test mul_rev_IEEE1788(interval(-2.0, 0.0), interval(-Inf, -0.1)) === Interval(0x1.999999999999AP-5 , Inf) + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), interval(-Inf, -0.1)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, 1.1), interval(-Inf, -0.1)) === Interval(-Inf, -0x1.745D1745D1745P-4) + + @test mul_rev_IEEE1788(interval(0.01, 1.1), interval(-Inf, -0.1)) === Interval(-Inf, -0x1.745D1745D1745P-4) + + @test mul_rev_IEEE1788(interval(0.0, 0.0), interval(-Inf, -0.1)) === emptyinterval() + + @test mul_rev_IEEE1788(interval(-Inf, -0.1), interval(-Inf, -0.1)) === Interval(0.0, Inf) + + @test mul_rev_IEEE1788(interval(-Inf, 0.0), interval(-Inf, -0.1)) === Interval(0.0, Inf) + + @test mul_rev_IEEE1788(interval(-Inf, 1.1), interval(-Inf, -0.1)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, Inf), interval(-Inf, -0.1)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, Inf), interval(-Inf, -0.1)) === Interval(-Inf, 0.0) + + @test mul_rev_IEEE1788(interval(0.01, Inf), interval(-Inf, -0.1)) === Interval(-Inf, 0.0) + + @test mul_rev_IEEE1788(entireinterval(), interval(-Inf, -0.1)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, -0.1), interval(-Inf, 0.0)) === Interval(0.0, Inf) + + @test mul_rev_IEEE1788(interval(-2.0, 0.0), interval(-Inf, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), interval(-Inf, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, 1.1), interval(-Inf, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, 1.1), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test mul_rev_IEEE1788(interval(0.0, 0.0), interval(-Inf, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, -0.1), interval(-Inf, 0.0)) === Interval(0.0, Inf) + + @test mul_rev_IEEE1788(interval(-Inf, 0.0), interval(-Inf, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, 1.1), interval(-Inf, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, Inf), interval(-Inf, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, Inf), interval(-Inf, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test mul_rev_IEEE1788(entireinterval(), interval(-Inf, 0.0)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, -0.1), interval(-Inf, 0.3)) === Interval(-0x1.8P+1, Inf) + + @test mul_rev_IEEE1788(interval(-2.0, 0.0), interval(-Inf, 0.3)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), interval(-Inf, 0.3)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, 1.1), interval(-Inf, 0.3)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, 1.1), interval(-Inf, 0.3)) === Interval(-Inf, 0x1.EP+4) + + @test mul_rev_IEEE1788(interval(0.0, 0.0), interval(-Inf, 0.3)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, -0.1), interval(-Inf, 0.3)) === Interval(-0x1.8P+1, Inf) + + @test mul_rev_IEEE1788(interval(-Inf, 0.0), interval(-Inf, 0.3)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, 1.1), interval(-Inf, 0.3)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, Inf), interval(-Inf, 0.3)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, Inf), interval(-Inf, 0.3)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, Inf), interval(-Inf, 0.3)) === Interval(-Inf, 0x1.EP+4) + + @test mul_rev_IEEE1788(entireinterval(), interval(-Inf, 0.3)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, -0.1), interval(-0.21, Inf)) === Interval(-Inf , 0x1.0CCCCCCCCCCCDP+1) + + @test mul_rev_IEEE1788(interval(-2.0, 0.0), interval(-0.21, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), interval(-0.21, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, 1.1), interval(-0.21, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, 1.1), interval(-0.21, Inf)) === Interval(-0x1.5P+4, Inf) + + @test mul_rev_IEEE1788(interval(0.0, 0.0), interval(-0.21, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, -0.1), interval(-0.21, Inf)) === Interval(-Inf, 0x1.0CCCCCCCCCCCDP+1) + + @test mul_rev_IEEE1788(interval(-Inf, 0.0), interval(-0.21, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, 1.1), interval(-0.21, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, Inf), interval(-0.21, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, Inf), interval(-0.21, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, Inf), interval(-0.21, Inf)) === Interval(-0x1.5P+4, Inf) + + @test mul_rev_IEEE1788(entireinterval(), interval(-0.21, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, -0.1), interval(0.0, Inf)) === Interval(-Inf, 0.0) + + @test mul_rev_IEEE1788(interval(-2.0, 0.0), interval(0.0, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), interval(0.0, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, 1.1), interval(0.0, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, 1.1), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test mul_rev_IEEE1788(interval(0.0, 0.0), interval(0.0, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, -0.1), interval(0.0, Inf)) === Interval(-Inf, 0.0) + + @test mul_rev_IEEE1788(interval(-Inf, 0.0), interval(0.0, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, 1.1), interval(0.0, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, Inf), interval(0.0, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, Inf), interval(0.0, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test mul_rev_IEEE1788(entireinterval(), interval(0.0, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, -0.1), interval(0.04, Inf)) === Interval(-Inf, -0x1.47AE147AE147BP-6) + + @test mul_rev_IEEE1788(interval(-2.0, 0.0), interval(0.04, Inf)) === Interval(-Inf, -0x1.47AE147AE147BP-6) + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), interval(0.04, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, 1.1), interval(0.04, Inf)) === Interval(0x1.29E4129E4129DP-5, Inf) + + @test mul_rev_IEEE1788(interval(0.01, 1.1), interval(0.04, Inf)) === Interval(0x1.29E4129E4129DP-5, Inf) + + @test mul_rev_IEEE1788(interval(0.0, 0.0), interval(0.04, Inf)) === emptyinterval() + + @test mul_rev_IEEE1788(interval(-Inf, -0.1), interval(0.04, Inf)) === Interval(-Inf, 0.0) + + @test mul_rev_IEEE1788(interval(-Inf, 0.0), interval(0.04, Inf)) === Interval(-Inf, 0.0) + + @test mul_rev_IEEE1788(interval(-Inf, 1.1), interval(0.04, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, Inf), interval(0.04, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, Inf), interval(0.04, Inf)) === Interval(0.0, Inf) + + @test mul_rev_IEEE1788(interval(0.01, Inf), interval(0.04, Inf)) === Interval(0.0, Inf) + + @test mul_rev_IEEE1788(entireinterval(), interval(0.04, Inf)) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, -0.1), entireinterval()) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, 0.0), entireinterval()) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), entireinterval()) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, 1.1), entireinterval()) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, 1.1), entireinterval()) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, 0.0), entireinterval()) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, -0.1), entireinterval()) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, 0.0), entireinterval()) === entireinterval() + + @test mul_rev_IEEE1788(interval(-Inf, 1.1), entireinterval()) === entireinterval() + + @test mul_rev_IEEE1788(interval(-2.0, Inf), entireinterval()) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.0, Inf), entireinterval()) === entireinterval() + + @test mul_rev_IEEE1788(interval(0.01, Inf), entireinterval()) === entireinterval() + + @test mul_rev_IEEE1788(entireinterval(), entireinterval()) === entireinterval() + +end + +@testset "minimal_mul_rev_ten_test" begin + + @test mul_rev_IEEE1788(interval(-2.0, -0.1), interval(-2.1, -0.4), interval(-2.1, -0.4)) === emptyinterval() + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), interval(-2.1, -0.4), interval(-2.1, -0.4)) === Interval(-2.1, -0.4) + + @test mul_rev_IEEE1788(interval(0.01, 1.1), interval(-2.1, 0.0), interval(-2.1, 0.0)) === Interval(-2.1,0.0) + + @test mul_rev_IEEE1788(interval(-Inf, -0.1), interval(0.0, 0.12), interval(0.0, 0.12)) === Interval(0.0, 0.0) + + @test mul_rev_IEEE1788(interval(-2.0, 1.1), interval(0.04, Inf), interval(0.04, Inf)) === Interval(0.04, Inf) + +end + +@testset "minimal_mul_rev_dec_test" begin + + @test isnai(mul_rev_IEEE1788(nai(), DecoratedInterval(interval(1.0,2.0), dac))) + + @test isnai(mul_rev_IEEE1788(DecoratedInterval(interval(1.0,2.0), dac), nai())) + + @test isnai(mul_rev_IEEE1788(nai(), nai())) + + @test mul_rev_IEEE1788(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(-2.1, -0.4), dac)) === DecoratedInterval(Interval(0x1.999999999999AP-3, 0x1.5P+4), trv) + + @test mul_rev_IEEE1788(DecoratedInterval(interval(-2.0, -0.1), def), DecoratedInterval(interval(-2.1, 0.0), def)) === DecoratedInterval(Interval(0.0, 0x1.5P+4), trv) + + @test mul_rev_IEEE1788(DecoratedInterval(interval(-2.0, -0.1), com), DecoratedInterval(interval(-2.1, 0.12), dac)) === DecoratedInterval(Interval(-0x1.3333333333333P+0, 0x1.5P+4), trv) + + @test mul_rev_IEEE1788(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(0.0, 0.12), com)) === DecoratedInterval(Interval(-0x1.3333333333333P+0, 0.0), trv) + + @test mul_rev_IEEE1788(DecoratedInterval(interval(0.01, 1.1), def), DecoratedInterval(interval(0.01, 0.12), dac)) === DecoratedInterval(Interval(0x1.29E4129E4129DP-7, 0x1.8P+3), trv) + + @test mul_rev_IEEE1788(DecoratedInterval(interval(0.01, 1.1), dac), DecoratedInterval(interval(-Inf, 0.3), def)) === DecoratedInterval(Interval(-Inf, 0x1.EP+4), trv) + + @test mul_rev_IEEE1788(DecoratedInterval(interval(-Inf, -0.1), trv), DecoratedInterval(interval(-0.21, Inf), dac)) === DecoratedInterval(Interval(-Inf, 0x1.0CCCCCCCCCCCDP+1), trv) + +end + +@testset "minimal_mul_rev_dec_ten_test" begin + + @test mul_rev_IEEE1788(DecoratedInterval(interval(-2.0, -0.1), dac), DecoratedInterval(interval(-2.1, -0.4), dac), DecoratedInterval(interval(-2.1, -0.4), dac)) === DecoratedInterval(emptyinterval(), trv) + + @test mul_rev_IEEE1788(DecoratedInterval(interval(-2.0, 1.1), def), DecoratedInterval(interval(-2.1, -0.4), com), DecoratedInterval(interval(-2.1, -0.4), com)) === DecoratedInterval(Interval(-2.1, -0.4), trv) + + @test mul_rev_IEEE1788(DecoratedInterval(interval(0.01, 1.1), com), DecoratedInterval(interval(-2.1, 0.0), dac), DecoratedInterval(interval(-2.1, 0.0), dac)) === DecoratedInterval(Interval(-2.1,0.0), trv) + + @test mul_rev_IEEE1788(DecoratedInterval(interval(-Inf, -0.1), dac), DecoratedInterval(interval(0.0, 0.12), com), DecoratedInterval(interval(0.0, 0.12), com)) === DecoratedInterval(Interval(0.0, 0.0), trv) + + @test mul_rev_IEEE1788(DecoratedInterval(interval(-2.0, 1.1), def), DecoratedInterval(interval(0.04, Inf), dac), DecoratedInterval(interval(0.04, Inf), dac)) === DecoratedInterval(Interval(0.04, Inf), trv) + +end diff --git a/test/test_ITF1788/libieeep1788_set.jl b/test/test_ITF1788/libieeep1788_set.jl new file mode 100644 index 000000000..245aec879 --- /dev/null +++ b/test/test_ITF1788/libieeep1788_set.jl @@ -0,0 +1,56 @@ +@testset "minimal_intersection_test" begin + + @test intersect(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 intersect(interval(1.0,3.0), emptyinterval()) === emptyinterval() + + @test intersect(entireinterval(), emptyinterval()) === emptyinterval() + + @test intersect(interval(1.0,3.0), entireinterval()) === Interval(1.0,3.0) + +end + +@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 intersect(DecoratedInterval(interval(1.0,3.0), dac), DecoratedInterval(interval(3.0,4.0), def)) === DecoratedInterval(Interval(3.0,3.0), trv) + + @test intersect(DecoratedInterval(interval(1.0,3.0), def), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test intersect(DecoratedInterval(entireinterval(), dac), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test intersect(DecoratedInterval(interval(1.0,3.0), dac), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(Interval(1.0,3.0), trv) + +end + +@testset "minimal_convex_hull_test" begin + + @test hull(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 hull(interval(1.0,3.0), emptyinterval()) === Interval(1.0,3.0) + + @test hull(emptyinterval(), emptyinterval()) === emptyinterval() + + @test hull(interval(1.0,3.0), entireinterval()) === entireinterval() + +end + +@testset "minimal_convex_hull_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 hull(DecoratedInterval(interval(1.0,1.0), trv), DecoratedInterval(interval(2.1,4.0), trv)) === DecoratedInterval(Interval(1.0,4.0), trv) + + @test hull(DecoratedInterval(interval(1.0,3.0), trv), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(Interval(1.0,3.0), trv) + + @test hull(DecoratedInterval(emptyinterval(), trv), DecoratedInterval(emptyinterval(), trv)) === DecoratedInterval(emptyinterval(), trv) + + @test hull(DecoratedInterval(interval(1.0,3.0), trv), DecoratedInterval(entireinterval(), dac)) === DecoratedInterval(entireinterval(), trv) + +end + diff --git a/test/test_ITF1788/mpfi.jl b/test/test_ITF1788/mpfi.jl new file mode 100644 index 000000000..1e3c65c5f --- /dev/null +++ b/test/test_ITF1788/mpfi.jl @@ -0,0 +1,2992 @@ +@testset "mpfi_abs" begin + + @test abs(interval(-Inf, -7.0)) === Interval(+7.0, +Inf) + + @test abs(interval(-Inf, 0.0)) === Interval(0.0, +Inf) + + @test abs(interval(-Inf, 0.0)) === Interval(0.0, +Inf) + + @test abs(interval(-Inf, +8.0)) === Interval(0.0, +Inf) + + @test abs(entireinterval()) === Interval(0.0, +Inf) + + @test abs(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test abs(interval(0.0, +8.0)) === Interval(0.0, +8.0) + + @test abs(interval(0.0, +Inf)) === Interval(0.0, +Inf) + + @test abs(interval(0.0, +8.0)) === Interval(0.0, +8.0) + + @test abs(interval(0.0, +Inf)) === Interval(0.0, +Inf) + + @test abs(interval(0x123456789p-16, 0x123456799p-16)) === Interval(0x123456789p-16, 0x123456799p-16) + + @test abs(interval(-0x123456789p-16, 0x123456799p-16)) === Interval(0.0, 0x123456799p-16) + +end + +@testset "mpfi_acos" begin + + @test acos(interval(-1.0, 0.0)) === Interval(0x3243f6a8885a3p-49, 0x1921fb54442d19p-51) + + @test acos(interval(0.0, 0.0)) === Interval(0x3243f6a8885a3p-49, 0x1921fb54442d19p-52) + + @test acos(interval(0.0, +1.0)) === Interval(0.0, 0x1921fb54442d19p-52) + + @test acos(interval(-1.0, -0.5)) === Interval(0x10c152382d7365p-51, 0x1921fb54442d19p-51) + + @test acos(interval(-0.75, -0.25)) === Interval(0x1d2cf5c7c70f0bp-52, 0x4d6749be4edb1p-49) + + @test acos(interval(-0.5, 0.5)) === Interval(0x10c152382d7365p-52, 0x860a91c16b9b3p-50) + + @test acos(interval(0.25, 0.625)) === Interval(0x1ca94936b98a21p-53, 0x151700e0c14b25p-52) + + @test acos(interval(-1.0, 1.0)) === Interval(0.0, 0x1921fb54442d19p-51) + +end + +@testset "mpfi_acosh" begin + + @test acosh(interval(+1.0, +Inf)) === Interval(0.0, +Inf) + + @test acosh(interval(+1.5, +Inf)) === Interval(0x1ecc2caec51609p-53, +Inf) + + @test acosh(interval(1.0, 1.5)) === Interval(0.0, 0xf661657628b05p-52) + + @test acosh(interval(1.5, 1.5)) === Interval(0x1ecc2caec51609p-53, 0xf661657628b05p-52) + + @test acosh(interval(2.0, 1000.0)) === Interval(0x544909c66010dp-50, 0x799d4ba2a13b5p-48) + +end + +@testset "mpfi_add" begin + + @test +(interval(-Inf, -7.0), interval(-1.0, +8.0)) === Interval(-Inf, +1.0) + + @test +(interval(-Inf, 0.0), interval(+8.0, +Inf)) === entireinterval() + + @test +(interval(-Inf, +8.0), interval(0.0, +8.0)) === Interval(-Inf, +16.0) + + @test +(entireinterval(), interval(0.0, +8.0)) === entireinterval() + + @test +(interval(0.0, 0.0), interval(-Inf, -7.0)) === Interval(-Inf, -7.0) + + @test +(interval(0.0, +8.0), interval(-7.0, 0.0)) === Interval(-7.0, +8.0) + + @test +(interval(0.0, 0.0), interval(0.0, +8.0)) === Interval(0.0, +8.0) + + @test +(interval(0.0, +Inf), interval(0.0, +8.0)) === Interval(0.0, +Inf) + + @test +(interval(0.0, 0.0), interval(+8.0, +Inf)) === Interval(+8.0, +Inf) + + @test +(interval(0.0, 0.0), entireinterval()) === entireinterval() + + @test +(interval(0.0, +8.0), interval(0.0, +8.0)) === Interval(0.0, +16.0) + + @test +(interval(0.0, 0.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test +(interval(0.0, +Inf), interval(-7.0, +8.0)) === Interval(-7.0, +Inf) + + @test +(interval(-0.375, -0x10187p-256), interval(-0.125, 0x1p-240)) === Interval(-0x1p-1, -0x187p-256) + + @test +(interval(-0x1p-300, 0x123456p+28), interval(-0x10000000000000p-93, 0x789abcdp0)) === Interval(-0x10000000000001p-93, 0x123456789abcdp0) + + @test +(interval(-4.0, +7.0), interval(-0x123456789abcdp-17, 3e300)) === Interval(-0x123456791abcdp-17, 0x8f596b3002c1bp+947) + + @test +(interval(0x1000100010001p+8, 0x1p+60), interval(0x1000100010001p0, 3.0e300)) === Interval(+0x1010101010101p+8, 0x8f596b3002c1bp+947) + + @test +(interval(+4.0, +8.0), interval(-4.0, -2.0)) === Interval(0.0, +6.0) + + @test +(interval(+4.0, +8.0), interval(-9.0, -8.0)) === Interval(-5.0, 0.0) + +end + +@testset "mpfi_add_d" begin + + @test +(interval(-Inf, -7.0), interval(-0x170ef54646d497p-107, -0x170ef54646d497p-107)) === Interval(-Inf, -7.0) + + @test +(interval(-Inf, -7.0), interval(0.0, 0.0)) === Interval(-Inf, -7.0) + + @test +(interval(-Inf, -7.0), interval(0x170ef54646d497p-107, 0x170ef54646d497p-107)) === Interval(-Inf, -0x1bffffffffffffp-50) + + @test +(interval(-Inf, 0.0), interval(-0x170ef54646d497p-106, -0x170ef54646d497p-106)) === Interval(-Inf, -8.0e-17) + + @test +(interval(-Inf, 0.0), interval(0.0, 0.0)) === Interval(-Inf, 0.0) + + @test +(interval(-Inf, 0.0), interval(0x170ef54646d497p-106, 0x170ef54646d497p-106)) === Interval(-Inf, 0x170ef54646d497p-106) + + @test +(interval(-Inf, 8.0), interval(-0x16345785d8a00000p0, -0x16345785d8a00000p0)) === Interval(-Inf, -0x16345785d89fff00p0) + + @test +(interval(-Inf, 8.0), interval(0.0, 0.0)) === Interval(-Inf, 8.0) + + @test +(interval(-Inf, 8.0), interval(0x16345785d8a00000p0, 0x16345785d8a00000p0)) === Interval(-Inf, 0x16345785d8a00100p0) + + @test +(entireinterval(), interval(-0x170ef54646d497p-105, -0x170ef54646d497p-105)) === entireinterval() + + @test +(entireinterval(), interval(0.0e-17, 0.0e-17)) === entireinterval() + + @test +(entireinterval(), interval(+0x170ef54646d497p-105, +0x170ef54646d497p-105)) === entireinterval() + + @test +(interval(0.0, 0.0), interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109)) === Interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109) + + @test +(interval(0.0, 0.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test +(interval(0.0, 0.0), interval(0x170ef54646d497p-109, 0x170ef54646d497p-109)) === Interval(0x170ef54646d497p-109, 0x170ef54646d497p-109) + + @test +(interval(0.0, 8.0), interval(-0x114b37f4b51f71p-107, -0x114b37f4b51f71p-107)) === Interval(-0x114b37f4b51f71p-107, 8.0) + + @test +(interval(0.0, 8.0), interval(0.0, 0.0)) === Interval(0.0, 8.0) + + @test +(interval(0.0, 8.0), interval(0x114b37f4b51f7p-103, 0x114b37f4b51f7p-103)) === Interval(0x114b37f4b51f7p-103, 0x10000000000001p-49) + + @test +(interval(0.0, +Inf), interval(-0x50b45a75f7e81p-104, -0x50b45a75f7e81p-104)) === Interval(-0x50b45a75f7e81p-104, +Inf) + + @test +(interval(0.0, +Inf), interval(0.0, 0.0)) === Interval(0.0, +Inf) + + @test +(interval(0.0, +Inf), interval(0x142d169d7dfa03p-106, 0x142d169d7dfa03p-106)) === Interval(0x142d169d7dfa03p-106, +Inf) + + @test +(interval(-32.0, -17.0), interval(-0xfb53d14aa9c2fp-47, -0xfb53d14aa9c2fp-47)) === Interval(-0x1fb53d14aa9c2fp-47, -0x18353d14aa9c2fp-47) + + @test +(interval(-0xfb53d14aa9c2fp-47, -17.0), interval(0xfb53d14aa9c2fp-47, 0xfb53d14aa9c2fp-47)) === Interval(0.0, 0x7353d14aa9c2fp-47) + + @test +(interval(-32.0, -0xfb53d14aa9c2fp-48), interval(0xfb53d14aa9c2fp-48, 0xfb53d14aa9c2fp-48)) === Interval(-0x104ac2eb5563d1p-48, 0.0) + + @test +(interval(0x123456789abcdfp-48, 0x123456789abcdfp-4), interval(3.5, 3.5)) === Interval(0x15b456789abcdfp-48, 0x123456789abd17p-4) + + @test +(interval(0x123456789abcdfp-56, 0x123456789abcdfp-4), interval(3.5, 3.5)) === Interval(0x3923456789abcdp-52, 0x123456789abd17p-4) + + @test +(interval(-0xffp0, 0x123456789abcdfp-52), interval(256.5, 256.5)) === Interval(0x18p-4, 0x101a3456789abdp-44) + + @test +(interval(-0x1fffffffffffffp-52, -0x1p-550), interval(4097.5, 4097.5)) === Interval(0xfff8p-4, 0x10018p-4) + + @test +(interval(0x123456789abcdfp-48, 0x123456789abcdfp-4), interval(-3.5, -3.5)) === Interval(0xeb456789abcdfp-48, 0x123456789abca7p-4) + + @test +(interval(0x123456789abcdfp-56, 0x123456789abcdfp-4), interval(-3.5, -3.5)) === Interval(-0x36dcba98765434p-52, 0x123456789abca7p-4) + + @test +(interval(-0xffp0, 0x123456789abcdfp-52), interval(-256.5, -256.5)) === Interval(-0x1ff8p-4, -0xff5cba9876543p-44) + + @test +(interval(-0x1fffffffffffffp-52, -0x1p-550), interval(-4097.5, -4097.5)) === Interval(-0x10038p-4, -0x10018p-4) + +end + +@testset "mpfi_asin" begin + + @test asin(interval(-1.0, 0.0)) === Interval(-0x1921fb54442d19p-52, 0.0) + + @test asin(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test asin(interval(0.0, +1.0)) === Interval(0.0, 0x1921fb54442d19p-52) + + @test asin(interval(-1.0, -0.5)) === Interval(-0x1921fb54442d19p-52, -0x10c152382d7365p-53) + + @test asin(interval(-0.75, -0.25)) === Interval(-0x1b235315c680ddp-53, -0x102be9ce0b87cdp-54) + + @test asin(interval(-0.5, 0.5)) === Interval(-0x860a91c16b9b3p-52, 0x860a91c16b9b3p-52) + + @test asin(interval(0.25, 0.625)) === Interval(0x102be9ce0b87cdp-54, 0x159aad71ced00fp-53) + + @test asin(interval(-1.0, 1.0)) === Interval(-0x1921fb54442d19p-52, 0x1921fb54442d19p-52) + +end + +@testset "mpfi_asinh" begin + + @test asinh(interval(-Inf, -7.0)) === Interval(-Inf, -0x152728c91b5f1dp-51) + + @test asinh(interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test asinh(interval(-Inf, +8.0)) === Interval(-Inf, 0x58d8dc657eaf5p-49) + + @test asinh(entireinterval()) === entireinterval() + + @test asinh(interval(-1.0, 0.0)) === Interval(-0x1c34366179d427p-53, 0.0) + + @test asinh(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test asinh(interval(0.0, +1.0)) === Interval(0.0, 0x1c34366179d427p-53) + + @test asinh(interval(0.0, +8.0)) === Interval(0.0, 0x58d8dc657eaf5p-49) + + @test asinh(interval(0.0, +Inf)) === Interval(0.0, +Inf) + + @test asinh(interval(-6.0, -4.0)) === Interval(-0x4fbca919fe219p-49, -0x10c1f8a6e80eebp-51) + + @test asinh(interval(-2.0, -0.5)) === Interval(-0x2e32430627a11p-49, -0x1ecc2caec51609p-54) + + @test asinh(interval(-1.0, -0.5)) === Interval(-0x1c34366179d427p-53, -0x1ecc2caec51609p-54) + + @test asinh(interval(-0.75, -0.25)) === Interval(-0x162e42fefa39fp-49, -0xfd67d91ccf31bp-54) + + @test asinh(interval(-0.5, 0.5)) === Interval(-0xf661657628b05p-53, 0xf661657628b05p-53) + + @test asinh(interval(0.25, 0.625)) === Interval(0xfd67d91ccf31bp-54, 0x4b89d40b2fecdp-51) + + @test asinh(interval(-1.0, 1.0)) === Interval(-0x1c34366179d427p-53, 0x1c34366179d427p-53) + + @test asinh(interval(0.125, 17.0)) === Interval(0xff5685b4cb4b9p-55, 0xe1be0ba541ef7p-50) + + @test asinh(interval(17.0, 42.0)) === Interval(0x1c37c174a83dedp-51, 0x8dca6976ad6bdp-49) + + @test asinh(interval(-42.0, 17.0)) === Interval(-0x8dca6976ad6bdp-49, 0xe1be0ba541ef7p-50) + +end + +@testset "mpfi_atan" begin + + @test atan(interval(-Inf, -7.0)) === Interval(-0x1921fb54442d19p-52, -0x5b7315eed597fp-50) + + @test atan(interval(-Inf, 0.0)) === Interval(-0x1921fb54442d19p-52, 0.0) + + @test atan(interval(-Inf, +8.0)) === Interval(-0x1921fb54442d19p-52, 0xb924fd54cb511p-51) + + @test atan(entireinterval()) === Interval(-0x1921fb54442d19p-52, 0x1921fb54442d19p-52) + + @test atan(interval(-1.0, 0.0)) === Interval(-0x1921fb54442d19p-53, 0.0) + + @test atan(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test atan(interval(0.0, +1.0)) === Interval(0.0, 0x1921fb54442d19p-53) + + @test atan(interval(0.0, +8.0)) === Interval(0.0, 0xb924fd54cb511p-51) + + @test atan(interval(0.0, +Inf)) === Interval(0.0, 0x1921fb54442d19p-52) + + @test atan(interval(-6.0, -4.0)) === Interval(-0x167d8863bc99bdp-52, -0x54da32547a73fp-50) + + @test atan(interval(-2.0, -0.5)) === Interval(-0x11b6e192ebbe45p-52, -0x1dac670561bb4fp-54) + + @test atan(interval(-1.0, -0.5)) === Interval(-0x1921fb54442d19p-53, -0x1dac670561bb4fp-54) + + @test atan(interval(-0.75, -0.25)) === Interval(-0xa4bc7d1934f71p-52, -0x1f5b75f92c80ddp-55) + + @test atan(interval(-0.5, 0.5)) === Interval(-0x1dac670561bb5p-50, 0x1dac670561bb5p-50) + + @test atan(interval(0.25, 0.625)) === Interval(0x1f5b75f92c80ddp-55, 0x47802eaf7bfadp-51) + + @test atan(interval(-1.0, 1.0)) === Interval(-0x1921fb54442d19p-53, 0x1921fb54442d19p-53) + + @test atan(interval(0.125, 17.0)) === Interval(0x1fd5ba9aac2f6dp-56, 0x1831516233f561p-52) + + @test atan(interval(17.0, 42.0)) === Interval(0xc18a8b119fabp-47, 0x18c079f3350d27p-52) + + @test atan(interval(-42.0, 17.0)) === Interval(-0x18c079f3350d27p-52, 0x1831516233f561p-52) + +end + +@testset "mpfi_atan2" begin + + @test atan(interval(-Inf, -7.0), interval(-1.0, +8.0)) === Interval(-0x6d9cc4b34bd0dp-50, -0x1700a7c5784633p-53) + + @test atan(interval(-Inf, 0.0), interval(+8.0, +Inf)) === Interval(-0x1921fb54442d19p-52, 0.0) + + @test atan(interval(-Inf, +8.0), interval(0.0, +8.0)) === Interval(-0x1921fb54442d19p-52, 0x1921fb54442d19p-52) + + @test atan(entireinterval(), interval(0.0, +8.0)) === Interval(-0x1921fb54442d19p-52, 0x1921fb54442d19p-52) + + @test atan(interval(0.0, 0.0), interval(-Inf, -7.0)) === Interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51) + + @test atan(interval(0.0, +8.0), interval(-7.0, 0.0)) === Interval(0x3243f6a8885a3p-49, 0x1921fb54442d19p-51) + + @test atan(interval(0.0, 0.0), interval(0.0, +8.0)) === Interval(0.0, 0.0) + + @test atan(interval(0.0, +Inf), interval(0.0, +8.0)) === Interval(0.0, 0x1921fb54442d19p-52) + + @test atan(interval(0.0, 0.0), interval(+8.0, +Inf)) === Interval(0.0, 0.0) + + @test atan(interval(0.0, 0.0), entireinterval()) === Interval(0.0, 0x1921fb54442d19p-51) + + @test atan(interval(0.0, +8.0), interval(-7.0, +8.0)) === Interval(0.0, 0x1921fb54442d19p-51) + + @test atan(interval(0.0, 0.0), interval(0.0, 0.0)) === emptyinterval() + + @test atan(interval(0.0, +Inf), interval(0.0, +8.0)) === Interval(0.0, 0x1921fb54442d19p-52) + + @test atan(interval(-17.0, -5.0), interval(-4002.0, -1.0)) === Interval(-0x191f6c4c09a81bp-51, -0x1a12a5465464cfp-52) + + @test atan(interval(-17.0, -5.0), interval(1.0, 4002.0)) === Interval(-0x1831516233f561p-52, -0xa3c20ea13f5e5p-61) + + @test atan(interval(5.0, 17.0), interval(1.0, 4002.0)) === Interval(0xa3c20ea13f5e5p-61, 0x1831516233f561p-52) + + @test atan(interval(5.0, 17.0), interval(-4002.0, -1.0)) === Interval(0x1a12a5465464cfp-52, 0x191f6c4c09a81bp-51) + + @test atan(interval(-17.0, 5.0), interval(-4002.0, 1.0)) === Interval(-0x1921fb54442d19p-51, 0x1921fb54442d19p-51) + +end + +@testset "mpfi_atanh" begin + + @test atanh(interval(-1.0, 0.0)) === Interval(-Inf, 0.0) + + @test atanh(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test atanh(interval(0.0, +1.0)) === Interval(0.0, +Inf) + + @test atanh(interval(-1.0, -0.5)) === Interval(-Inf, -0x8c9f53d568185p-52) + + @test atanh(interval(-0.75, -0.25)) === Interval(-0x3e44e55c64b4bp-50, -0x1058aefa811451p-54) + + @test atanh(interval(-0.5, 0.5)) === Interval(-0x1193ea7aad030bp-53, 0x1193ea7aad030bp-53) + + @test atanh(interval(0.25, 0.625)) === Interval(0x1058aefa811451p-54, 0x2eec3bb76c2b3p-50) + + @test atanh(interval(-1.0, 1.0)) === entireinterval() + + @test atanh(interval(0.125, 1.0)) === Interval(0x1015891c9eaef7p-55, +Inf) + +end + +@testset "mpfi_bounded_p" begin + + @test iscommon(interval(-Inf, -8.0)) === false + + @test iscommon(interval(-Inf, 0.0)) === false + + @test iscommon(interval(-Inf, 5.0)) === false + + @test iscommon(entireinterval()) === false + + @test iscommon(interval(-8.0, 0.0)) === true + + @test iscommon(interval(0.0, 0.0)) === true + + @test iscommon(interval(0.0, 5.0)) === true + + @test iscommon(interval(0.0, +Inf)) === false + + @test iscommon(interval(5.0, +Inf)) === false + + @test iscommon(interval(-34.0, -17.0)) === true + + @test iscommon(interval(-8.0, -1.0)) === true + + @test iscommon(interval(-34.0, 17.0)) === true + + @test iscommon(interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) === true + + @test iscommon(interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) === true + + @test iscommon(interval(+8.0, +0x7fffffffffffbp+51)) === true + + @test iscommon(interval(+0x1fffffffffffffp-53, 2.0)) === true + +end + +@testset "mpfi_cbrt" begin + + @test cbrt(interval(-Inf, -125.0)) === Interval(-Inf, -5.0) + + @test cbrt(interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test cbrt(interval(-Inf, +64.0)) === Interval(-Inf, +4.0) + + @test cbrt(entireinterval()) === entireinterval() + + @test cbrt(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test cbrt(interval(0.0, +27.0)) === Interval(0.0, +3.0) + + @test cbrt(interval(0.0, +Inf)) === Interval(0.0, +Inf) + + @test cbrt(interval(0x40p0, 0x7dp0)) === Interval(4.0, 5.0) + + @test cbrt(interval(-0x1856e4be527197p-354, 0xd8p0)) === Interval(-0x2e5e58c0083b7bp-154, 6.0) + + @test cbrt(interval(0x141a9019a2184dp-1047, 0xc29c78c66ac0fp-678)) === Interval(0x2b8172e535d44dp-385, 0x24cbd1c55aaa1p-258) + +end + +@testset "mpfi_cos" begin + + @test cos(interval(-Inf, -7.0)) === Interval(-1.0, 1.0) + + @test cos(interval(-Inf, 0.0)) === Interval(-1.0, 1.0) + + @test cos(interval(-Inf, +8.0)) === Interval(-1.0, 1.0) + + @test cos(entireinterval()) === Interval(-1.0, 1.0) + + @test cos(interval(-1.0, 0.0)) === Interval(0x114a280fb5068bp-53, 1.0) + + @test cos(interval(0.0, 0.0)) === Interval(1.0, 1.0) + + @test cos(interval(0.0, +1.0)) === Interval(0x114a280fb5068bp-53, 1.0) + + @test cos(interval(0.0, +8.0)) === Interval(-1.0, 1.0) + + @test cos(interval(0.0, +Inf)) === Interval(-1.0, 1.0) + + @test cos(interval(-2.0, -0.5)) === Interval(-0x1aa22657537205p-54, 0x1c1528065b7d5p-49) + + @test cos(interval(-1.0, -0.25)) === Interval(0x114a280fb5068bp-53, 0xf80aa4fbef751p-52) + + @test cos(interval(-0.5, 0.5)) === Interval(0x1c1528065b7d4fp-53, 1.0) + + @test cos(interval(-4.5, 0.625)) === Interval(-1.0, 1.0) + + @test cos(interval(1.0, 0x3243f6a8885a3p-48)) === Interval(-1.0, 0x4528a03ed41a3p-51) + + @test cos(interval(0.125, 17.0)) === Interval(-1.0, 1.0) + + @test cos(interval(17.0, 42.0)) === Interval(-1.0, 1.0) + + @test cos(interval(-7.0, 1.0)) === Interval(-1.0, 1.0) + + @test cos(interval(-7.0, 0.0)) === Interval(-1.0, 1.0) + + @test cos(interval(-7.0, -1.0)) === Interval(-1.0, 1.0) + + @test cos(interval(-7.0, -2.0)) === Interval(-1.0, 1.0) + + @test cos(interval(-7.0, -3.0)) === Interval(-1.0, 1.0) + + @test cos(interval(-7.0, -4.0)) === Interval(-0x14eaa606db24c1p-53, 1.0) + + @test cos(interval(-7.0, -5.0)) === Interval(0x122785706b4ad9p-54, 1.0) + + @test cos(interval(-7.0, -6.0)) === Interval(0x181ff79ed92017p-53, 1.0) + + @test cos(interval(-7.0, -7.0)) === Interval(0x181ff79ed92017p-53, 0x181ff79ed92018p-53) + + @test cos(interval(-6.0, 1.0)) === Interval(-1.0, 1.0) + + @test cos(interval(-6.0, 0.0)) === Interval(-1.0, 1.0) + + @test cos(interval(-6.0, -1.0)) === Interval(-1.0, 0x1eb9b7097822f6p-53) + + @test cos(interval(-6.0, -2.0)) === Interval(-1.0, 0x1eb9b7097822f6p-53) + + @test cos(interval(-6.0, -3.0)) === Interval(-1.0, 0x1eb9b7097822f6p-53) + + @test cos(interval(-6.0, -4.0)) === Interval(-0x14eaa606db24c1p-53, 0x1eb9b7097822f6p-53) + + @test cos(interval(-6.0, -5.0)) === Interval(0x122785706b4ad9p-54, 0x1eb9b7097822f6p-53) + + @test cos(interval(-6.0, -6.0)) === Interval(0x1eb9b7097822f5p-53, 0x1eb9b7097822f6p-53) + + @test cos(interval(-5.0, 1.0)) === Interval(-1.0, 1.0) + + @test cos(interval(-5.0, 0.0)) === Interval(-1.0, 1.0) + + @test cos(interval(-5.0, -1.0)) === Interval(-1.0, 0x114a280fb5068cp-53) + + @test cos(interval(-5.0, -2.0)) === Interval(-1.0, 0x122785706b4adap-54) + + @test cos(interval(-5.0, -3.0)) === Interval(-1.0, 0x122785706b4adap-54) + + @test cos(interval(-5.0, -4.0)) === Interval(-0x14eaa606db24c1p-53, 0x122785706b4adap-54) + + @test cos(interval(-5.0, -5.0)) === Interval(0x122785706b4ad9p-54, 0x122785706b4adap-54) + + @test cos(interval(-4.0, 1.0)) === Interval(-1.0, 1.0) + + @test cos(interval(-4.0, 0.0)) === Interval(-1.0, 1.0) + + @test cos(interval(-4.0, -1.0)) === Interval(-1.0, 0x114a280fb5068cp-53) + + @test cos(interval(-4.0, -2.0)) === Interval(-1.0, -0x1aa22657537204p-54) + + @test cos(interval(-4.0, -3.0)) === Interval(-1.0, -0x14eaa606db24c0p-53) + + @test cos(interval(-4.0, -4.0)) === Interval(-0x14eaa606db24c1p-53, -0x14eaa606db24c0p-53) + +end + +@testset "mpfi_cosh" begin + + @test cosh(interval(-Inf, -7.0)) === Interval(0x11228949ba3a8bp-43, +Inf) + + @test cosh(interval(-Inf, 0.0)) === Interval(1.0, +Inf) + + @test cosh(interval(-Inf, +8.0)) === Interval(1.0, +Inf) + + @test cosh(entireinterval()) === Interval(1.0, +Inf) + + @test cosh(interval(-1.0, 0.0)) === Interval(1.0, 0x18b07551d9f551p-52) + + @test cosh(interval(0.0, 0.0)) === Interval(1.0, 1.0) + + @test cosh(interval(0.0, +1.0)) === Interval(1.0, 0x18b07551d9f551p-52) + + @test cosh(interval(0.0, +8.0)) === Interval(1.0, 0x1749eaa93f4e77p-42) + + @test cosh(interval(0.0, +Inf)) === Interval(1.0, +Inf) + + @test cosh(interval(-0.125, 0.0)) === Interval(1.0, 0x10200aac16db6fp-52) + + @test cosh(interval(0.0, 0x10000000000001p-53)) === Interval(1.0, 0x120ac1862ae8d1p-52) + + @test cosh(interval(-4.5, -0.625)) === Interval(0x99d310a496b6dp-51, 0x1681ceb0641359p-47) + + @test cosh(interval(1.0, 3.0)) === Interval(0x18b07551d9f55p-48, 0x1422a497d6185fp-49) + + @test cosh(interval(17.0, 0xb145bb71d3dbp-38)) === Interval(0x1709348c0ea503p-29, 0x3ffffffffffa34p+968) + +end + +@testset "mpfi_cot" begin + + @test cot(interval(-Inf, -7.0)) === entireinterval() + + @test cot(interval(-Inf, 0.0)) === entireinterval() + + @test cot(interval(-Inf, +8.0)) === entireinterval() + + @test cot(entireinterval()) === entireinterval() + + @test cot(interval(-8.0, 0.0)) === entireinterval() + + @test cot(interval(-3.0, 0.0)) === Interval(-Inf, 0xe07cf2eb32f0bp-49) + + @test cot(interval(-1.0, 0.0)) === Interval(-Inf, -0x148c05d04e1cfdp-53) + + @test cot(interval(0.0, +1.0)) === Interval(0x148c05d04e1cfdp-53, +Inf) + + @test cot(interval(0.0, +3.0)) === Interval(-0xe07cf2eb32f0bp-49, +Inf) + + @test cot(interval(0.0, +8.0)) === entireinterval() + + @test cot(interval(0.0, +Inf)) === entireinterval() + + @test cot(interval(-3.0, -2.0)) === Interval(0x1d4a42e92faa4dp-54, 0xe07cf2eb32f0bp-49) + + @test cot(interval(-3.0, -0x1921fb54442d19p-52)) === Interval(0x5cb3b399d747fp-103, 0xe07cf2eb32f0bp-49) + + @test cot(interval(-2.0, 0x1921fb54442d19p-52)) === entireinterval() + + @test cot(interval(0.125, 0.5)) === Interval(0xea4d6bf23e051p-51, 0x1fd549f047f2bbp-50) + + @test cot(interval(0.125, 0x1921fb54442d19p-52)) === Interval(-0x172cece675d1fdp-105, 0x1fd549f047f2bbp-50) + + @test cot(interval(0x1921fb54442d19p-52, 4.0)) === entireinterval() + + @test cot(interval(4.0, 0x3243f6a8885a3p-47)) === Interval(-0x1d02967c31cdb5p-1, 0x1ba35ba1c6b75dp-53) + + @test cot(interval(0x13a28c59d5433bp-44, 0x9d9462ceaa19dp-43)) === Interval(0x148c05d04e1fb7p-53, 0x1cefdde7c84c27p-4) + +end + +@testset "mpfi_coth" begin + + @test coth(interval(-Inf, -7.0)) === Interval(-0x100001be6c882fp-52, -1.0) + + @test coth(interval(-Inf, 0.0)) === Interval(-Inf, -1.0) + + @test coth(interval(-Inf, +8.0)) === entireinterval() + + @test coth(entireinterval()) === entireinterval() + + @test coth(interval(-8.0, 0.0)) === Interval(-Inf, -0x1000003c6ab7e7p-52) + + @test coth(interval(-3.0, 0.0)) === Interval(-Inf, -0x10145b3cc9964bp-52) + + @test coth(interval(-1.0, 0.0)) === Interval(-Inf, -0x150231499b6b1dp-52) + + @test coth(interval(0.0, 0.0)) === emptyinterval() + + @test coth(interval(0.0, +1.0)) === Interval(0x150231499b6b1dp-52, +Inf) + + @test coth(interval(0.0, +3.0)) === Interval(0x10145b3cc9964bp-52, +Inf) + + @test coth(interval(0.0, +8.0)) === Interval(0x1000003c6ab7e7p-52, +Inf) + + @test coth(interval(0.0, +Inf)) === Interval(1.0, +Inf) + + @test coth(interval(-3.0, 2.0)) === entireinterval() + + @test coth(interval(-10.0, -8.0)) === Interval(-0x1000003c6ab7e8p-52, -0x100000011b4865p-52) + + @test coth(interval(7.0, 17.0)) === Interval(0x1000000000000fp-52, 0x100001be6c882fp-52) + + @test coth(interval(0x10000000000001p-58, 0x10000000000001p-53)) === Interval(0x114fc6ceb099bdp-51, 0x10005554fa502fp-46) + +end + +@testset "mpfi_csc" begin + + @test csc(interval(-Inf, -7.0)) === entireinterval() + + @test csc(interval(-Inf, 0.0)) === entireinterval() + + @test csc(interval(-Inf, 8.0)) === entireinterval() + + @test csc(entireinterval()) === entireinterval() + + @test csc(interval(-8.0, 0.0)) === entireinterval() + + @test csc(interval(-3.0, 0.0)) === Interval(-Inf, -1.0) + + @test csc(interval(-1.0, 0.0)) === Interval(-Inf, -0x1303aa9620b223p-52) + + @test csc(interval(0.0, 0.0)) === emptyinterval() + + @test csc(interval(0.0, +1.0)) === Interval(0x1303aa9620b223p-52, +Inf) + + @test csc(interval(0.0, 3.0)) === Interval(1.0, +Inf) + + @test csc(interval(0.0, 8.0)) === entireinterval() + + @test csc(interval(0.0, +Inf)) === entireinterval() + + @test csc(interval(-6.0, 7.0)) === entireinterval() + + @test csc(interval(-6.0, 6.0)) === entireinterval() + + @test csc(interval(-6.0, 5.0)) === entireinterval() + + @test csc(interval(-6.0, 4.0)) === entireinterval() + + @test csc(interval(-6.0, 3.0)) === entireinterval() + + @test csc(interval(-6.0, 2.0)) === entireinterval() + + @test csc(interval(-6.0, 1.0)) === entireinterval() + + @test csc(interval(-6.0, 0.0)) === entireinterval() + + @test csc(interval(-6.0, -1.0)) === entireinterval() + + @test csc(interval(-6.0, -2.0)) === entireinterval() + + @test csc(interval(-6.0, -3.0)) === entireinterval() + + @test csc(interval(-6.0, -4.0)) === Interval(1.0, 0x1ca19615f903dap-51) + + @test csc(interval(-6.0, -5.0)) === Interval(0x10af73f9df86b7p-52, 0x1ca19615f903dap-51) + + @test csc(interval(-6.0, -6.0)) === Interval(0x1ca19615f903d9p-51, 0x1ca19615f903dap-51) + + @test csc(interval(-5.0, 7.0)) === entireinterval() + + @test csc(interval(-5.0, 6.0)) === entireinterval() + + @test csc(interval(-5.0, 5.0)) === entireinterval() + + @test csc(interval(-5.0, 4.0)) === entireinterval() + + @test csc(interval(-5.0, 3.0)) === entireinterval() + + @test csc(interval(-5.0, 2.0)) === entireinterval() + + @test csc(interval(-5.0, 1.0)) === entireinterval() + + @test csc(interval(-5.0, 0.0)) === entireinterval() + + @test csc(interval(-5.0, -1.0)) === entireinterval() + + @test csc(interval(-5.0, -2.0)) === entireinterval() + + @test csc(interval(-5.0, -3.0)) === entireinterval() + + @test csc(interval(-5.0, -4.0)) === Interval(1.0, 0x15243e8b2f4642p-52) + + @test csc(interval(-5.0, -5.0)) === Interval(0x10af73f9df86b7p-52, 0x10af73f9df86b8p-52) + + @test csc(interval(-4.0, 7.0)) === entireinterval() + + @test csc(interval(-4.0, 6.0)) === entireinterval() + + @test csc(interval(-4.0, 5.0)) === entireinterval() + + @test csc(interval(-4.0, 4.0)) === entireinterval() + + @test csc(interval(-4.0, 3.0)) === entireinterval() + + @test csc(interval(-4.0, 2.0)) === entireinterval() + + @test csc(interval(-4.0, 1.0)) === entireinterval() + + @test csc(interval(-4.0, 0.0)) === entireinterval() + + @test csc(interval(-4.0, -1.0)) === entireinterval() + + @test csc(interval(-4.0, -2.0)) === entireinterval() + + @test csc(interval(-4.0, -3.0)) === entireinterval() + + @test csc(interval(-4.0, -4.0)) === Interval(0x15243e8b2f4641p-52, 0x15243e8b2f4642p-52) + + @test csc(interval(-3.0, 7.0)) === entireinterval() + + @test csc(interval(-3.0, 6.0)) === entireinterval() + + @test csc(interval(-3.0, 5.0)) === entireinterval() + + @test csc(interval(-3.0, 4.0)) === entireinterval() + + @test csc(interval(-3.0, 3.0)) === entireinterval() + + @test csc(interval(-3.0, 2.0)) === entireinterval() + + @test csc(interval(-3.0, 1.0)) === entireinterval() + + @test csc(interval(-3.0, 0.0)) === Interval(-Inf, -1.0) + + @test csc(interval(-3.0, -1.0)) === Interval(-0x1c583c440ab0dap-50, -1.0) + + @test csc(interval(-3.0, -2.0)) === Interval(-0x1c583c440ab0dap-50, -0x119893a272f912p-52) + + @test csc(interval(-3.0, -3.0)) === Interval(-0x1c583c440ab0dap-50, -0x1c583c440ab0d9p-50) + + @test csc(interval(-2.0, 7.0)) === entireinterval() + + @test csc(interval(-2.0, 6.0)) === entireinterval() + + @test csc(interval(-2.0, 5.0)) === entireinterval() + + @test csc(interval(-2.0, 4.0)) === entireinterval() + + @test csc(interval(-2.0, 3.0)) === entireinterval() + + @test csc(interval(-2.0, 2.0)) === entireinterval() + + @test csc(interval(-2.0, 1.0)) === entireinterval() + + @test csc(interval(-2.0, 0.0)) === Interval(-Inf, -1.0) + + @test csc(interval(-2.0, -1.0)) === Interval(-0x1303aa9620b224p-52, -1.0) + + @test csc(interval(-2.0, -2.0)) === Interval(-0x119893a272f913p-52, -0x119893a272f912p-52) + + @test csc(interval(-1.0, 7.0)) === entireinterval() + + @test csc(interval(-1.0, 6.0)) === entireinterval() + + @test csc(interval(-1.0, 5.0)) === entireinterval() + + @test csc(interval(-1.0, 4.0)) === entireinterval() + + @test csc(interval(-1.0, 3.0)) === entireinterval() + + @test csc(interval(-1.0, 2.0)) === entireinterval() + + @test csc(interval(-1.0, 1.0)) === entireinterval() + + @test csc(interval(-1.0, 0.0)) === Interval(-Inf, -0x1303aa9620b223p-52) + + @test csc(interval(-1.0, -1.0)) === Interval(-0x1303aa9620b224p-52, -0x1303aa9620b223p-52) + + @test csc(interval(1.0, 7.0)) === entireinterval() + + @test csc(interval(1.0, 6.0)) === entireinterval() + + @test csc(interval(1.0, 5.0)) === entireinterval() + + @test csc(interval(1.0, 4.0)) === entireinterval() + + @test csc(interval(1.0, 3.0)) === Interval(1.0, 0x1c583c440ab0dap-50) + + @test csc(interval(1.0, 2.0)) === Interval(1.0, 0x1303aa9620b224p-52) + + @test csc(interval(1.0, 1.0)) === Interval(0x1303aa9620b223p-52, 0x1303aa9620b224p-52) + + @test csc(interval(2.0, 7.0)) === entireinterval() + + @test csc(interval(2.0, 6.0)) === entireinterval() + + @test csc(interval(2.0, 5.0)) === entireinterval() + + @test csc(interval(2.0, 4.0)) === entireinterval() + + @test csc(interval(2.0, 3.0)) === Interval(0x119893a272f912p-52, 0x1c583c440ab0dap-50) + + @test csc(interval(2.0, 2.0)) === Interval(0x119893a272f912p-52, 0x119893a272f913p-52) + + @test csc(interval(3.0, 7.0)) === entireinterval() + + @test csc(interval(3.0, 6.0)) === entireinterval() + + @test csc(interval(3.0, 5.0)) === entireinterval() + + @test csc(interval(3.0, 4.0)) === entireinterval() + + @test csc(interval(3.0, 3.0)) === Interval(0x1c583c440ab0d9p-50, 0x1c583c440ab0dap-50) + + @test csc(interval(4.0, 7.0)) === entireinterval() + + @test csc(interval(4.0, 6.0)) === Interval(-0x1ca19615f903dap-51, -1.0) + + @test csc(interval(4.0, 5.0)) === Interval(-0x15243e8b2f4642p-52, -1.0) + + @test csc(interval(4.0, 4.0)) === Interval(-0x15243e8b2f4642p-52, -0x15243e8b2f4641p-52) + + @test csc(interval(5.0, 7.0)) === entireinterval() + + @test csc(interval(5.0, 6.0)) === Interval(-0x1ca19615f903dap-51, -0x10af73f9df86b7p-52) + + @test csc(interval(5.0, 5.0)) === Interval(-0x10af73f9df86b8p-52, -0x10af73f9df86b7p-52) + + @test csc(interval(6.0, 7.0)) === entireinterval() + + @test csc(interval(6.0, 6.0)) === Interval(-0x1ca19615f903dap-51, -0x1ca19615f903d9p-51) + + @test csc(interval(7.0, 7.0)) === Interval(+0x185a86a4ceb06cp-52, +0x185a86a4ceb06dp-52) + +end + +@testset "mpfi_csch" begin + + @test csch(interval(-Inf, -7.0)) === Interval(-0x1de16d3cffcd54p-62, 0.0) + + @test csch(interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test csch(interval(-Inf, +8.0)) === entireinterval() + + @test csch(entireinterval()) === entireinterval() + + @test csch(interval(-8.0, 0.0)) === Interval(-Inf, -0x15fc212d92371ap-63) + + @test csch(interval(-3.0, 0.0)) === Interval(-Inf, -0x198de80929b901p-56) + + @test csch(interval(-1.0, 0.0)) === Interval(-Inf, -0x1b3ab8a78b90c0p-53) + + @test csch(interval(0.0, 0.0)) === emptyinterval() + + @test csch(interval(0.0, +1.0)) === Interval(0x1b3ab8a78b90c0p-53, +Inf) + + @test csch(interval(0.0, +3.0)) === Interval(0x198de80929b901p-56, +Inf) + + @test csch(interval(0.0, +8.0)) === Interval(0x15fc212d92371ap-63, +Inf) + + @test csch(interval(0.0, +Inf)) === Interval(0.0, +Inf) + + @test csch(interval(-3.0, 2.0)) === entireinterval() + + @test csch(interval(-10.0, -8.0)) === Interval(-0x15fc212d92371bp-63, -0x17cd79b63733a0p-66) + + @test csch(interval(7.0, 17.0)) === Interval(0x1639e3175a68a7p-76, 0x1de16d3cffcd54p-62) + + @test csch(interval(0x10000000000001p-58, 0x10000000000001p-53)) === Interval(0x1eb45dc88defeap-52, 0x3fff555693e722p-48) + +end + +@testset "mpfi_d_div" begin + + @test /(interval(-0x170ef54646d496p-107, -0x170ef54646d496p-107), interval(-Inf, -7.0)) === Interval(0.0, 0x1a5a3ce29a1787p-110) + + @test /(interval(0.0, 0.0), interval(-Inf, -7.0)) === Interval(0.0, 0.0) + + @test /(interval(0x170ef54646d496p-107, 0x170ef54646d496p-107), interval(-Inf, -7.0)) === Interval(-0x1a5a3ce29a1787p-110, 0.0) + + @test /(interval(-0x170ef54646d497p-106, -0x170ef54646d497p-106), interval(-Inf, 0.0)) === Interval(0.0, +Inf) + + @test /(interval(0.0, 0.0), interval(-Inf, 0.0)) === Interval(0.0, 0.0) + + @test /(interval(0x170ef54646d497p-106, 0x170ef54646d497p-106), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test /(interval(-0x16345785d8a00000p0, -0x16345785d8a00000p0), interval(-Inf, 8.0)) === entireinterval() + + @test /(interval(0.0, 0.0), interval(-Inf, 8.0)) === Interval(0.0, 0.0) + + @test /(interval(0x16345785d8a00000p0, 0x16345785d8a00000p0), interval(-Inf, 8.0)) === entireinterval() + + @test /(interval(-0x170ef54646d497p-105, -0x170ef54646d497p-105), entireinterval()) === entireinterval() + + @test /(interval(0.0e-17, 0.0e-17), entireinterval()) === Interval(0.0, 0.0) + + @test /(interval(+0x170ef54646d497p-105, +0x170ef54646d497p-105), entireinterval()) === entireinterval() + + @test /(interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109), interval(0.0, 0.0)) === emptyinterval() + + @test /(interval(0.0, 0.0), interval(0.0, 0.0)) === emptyinterval() + + @test /(interval(0x170ef54646d497p-109, 0x170ef54646d497p-109), interval(0.0, 0.0)) === emptyinterval() + + @test /(interval(-0x114b37f4b51f71p-107, -0x114b37f4b51f71p-107), interval(0.0, 7.0)) === Interval(-Inf, -0x13c3ada9f391a5p-110) + + @test /(interval(0.0, 0.0), interval(0.0, 7.0)) === Interval(0.0, 0.0) + + @test /(interval(0x114b37f4b51f71p-107, 0x114b37f4b51f71p-107), interval(0.0, 7.0)) === Interval(0x13c3ada9f391a5p-110, +Inf) + + @test /(interval(-0x50b45a75f7e81p-104, -0x50b45a75f7e81p-104), interval(0.0, +Inf)) === Interval(-Inf, 0.0) + + @test /(interval(0.0, 0.0), interval(0.0, +Inf)) === Interval(0.0, 0.0) + + @test /(interval(0x142d169d7dfa03p-106, 0x142d169d7dfa03p-106), interval(0.0, +Inf)) === Interval(0.0, +Inf) + + @test /(interval(-2.5, -2.5), interval(-8.0, 8.0)) === entireinterval() + + @test /(interval(-2.5, -2.5), interval(-8.0, -5.0)) === Interval(0x5p-4, 0.5) + + @test /(interval(-2.5, -2.5), interval(25.0, 40.0)) === Interval(-0x1999999999999ap-56, -0x1p-4) + + @test /(interval(-2.5, -2.5), interval(-16.0, -7.0)) === Interval(0x5p-5, 0x16db6db6db6db7p-54) + + @test /(interval(-2.5, -2.5), interval(11.0, 143.0)) === Interval(-0x1d1745d1745d18p-55, -0x11e6efe35b4cfap-58) + + @test /(interval(33.125, 33.125), interval(8.28125, 530.0)) === Interval(0x1p-4, 4.0) + + @test /(interval(33.125, 33.125), interval(-530.0, -496.875)) === Interval(-0x11111111111112p-56, -0x1p-4) + + @test /(interval(33.125, 33.125), interval(54.0, 265.0)) === Interval(0.125, 0x13a12f684bda13p-53) + + @test /(interval(33.125, 33.125), interval(52.0, 54.0)) === Interval(0x13a12f684bda12p-53, 0x14627627627628p-53) + +end + +@testset "mpfi_diam_abs" begin + + @test diam(interval(-Inf, -8.0)) === +Inf + + @test diam(interval(-Inf, 0.0)) === +Inf + + @test diam(interval(-Inf, 5.0)) === +Inf + + @test diam(entireinterval()) === +Inf + + @test diam(interval(-Inf, 0.0)) === +Inf + + @test diam(interval(-8.0, 0.0)) === +8.0 + + @test diam(interval(0.0, 0.0)) === 0.0 + + @test diam(interval(0.0, 5.0)) === +5.0 + + @test diam(interval(0.0, +Inf)) === +Inf + + @test diam(interval(-34.0, -17.0)) === 17.0 + +end + +@testset "mpfi_div" begin + + @test /(interval(-Inf, -7.0), interval(-1.0, +8.0)) === entireinterval() + + @test /(interval(-Inf, 0.0), interval(+8.0, +Inf)) === Interval(-Inf, 0.0) + + @test /(interval(-Inf, +8.0), interval(0.0, +8.0)) === entireinterval() + + @test /(entireinterval(), interval(0.0, +8.0)) === entireinterval() + + @test /(interval(0.0, 0.0), interval(-Inf, -7.0)) === Interval(0.0, 0.0) + + @test /(interval(0.0, +8.0), interval(-7.0, 0.0)) === Interval(-Inf, 0.0) + + @test /(interval(0.0, 0.0), interval(0.0, +8.0)) === Interval(0.0, 0.0) + + @test /(interval(0.0, +Inf), interval(0.0, +8.0)) === Interval(0.0, +Inf) + + @test /(interval(0.0, 0.0), interval(+8.0, +Inf)) === Interval(0.0, 0.0) + + @test /(interval(0.0, 0.0), entireinterval()) === Interval(0.0, 0.0) + + @test /(interval(0.0, +8.0), interval(-7.0, +8.0)) === entireinterval() + + @test /(interval(0.0, +Inf), interval(0.0, +8.0)) === Interval(0.0, +Inf) + + @test /(interval(-0x75bcd15p0, -0x754ep0), interval(-0x11ep0, -0x9p0)) === Interval(0x69p0, 0xd14fadp0) + + @test /(interval(-0x75bcd15p0, -0x1.489c07caba163p-4), interval(-0x2.e8e36e560704ap+4, -0x9p0)) === Interval(0x7.0ef61537b1704p-12, 0xd14fadp0) + + @test /(interval(-0x1.02f0415f9f596p+0, -0x754ep-16), interval(-0x11ep0, -0x7.62ce64fbacd2cp-8)) === Interval(0x69p-16, 0x2.30ee5eef9c36cp+4) + + @test /(interval(-0x1.02f0415f9f596p+0, -0x1.489c07caba163p-4), interval(-0x2.e8e36e560704ap+0, -0x7.62ce64fbacd2cp-8)) === Interval(0x7.0ef61537b1704p-8, 0x2.30ee5eef9c36cp+4) + + @test /(interval(-0xacbp+256, -0x6f9p0), interval(-0x7p0, 0.0)) === Interval(0xffp0, +Inf) + + @test /(interval(-0x100p0, -0xe.bb80d0a0824ep-4), interval(-0x1.7c6d760a831fap+0, 0.0)) === Interval(0x9.e9f24790445fp-4, +Inf) + + @test /(interval(-0x1.25f2d73472753p+0, -0x9.9a19fd3c1fc18p-4), interval(-0x9.3b0c8074ccc18p-4, +0x4.788df5d72af78p-4)) === entireinterval() + + @test /(interval(-100.0, -15.0), interval(0.0, +3.0)) === Interval(-Inf, -5.0) + + @test /(interval(-2.0, -0x1.25f2d73472753p+0), interval(0.0, +0x9.3b0c8074ccc18p-4)) === Interval(-Inf, -0x1.fd8457415f917p+0) + + @test /(interval(-0x123456789p0, -0x754ep+4), interval(0x40bp0, 0x11ep+4)) === Interval(-0x480b3bp0, -0x69p0) + + @test /(interval(-0xd.67775e4b8588p-4, -0x754ep-53), interval(0x4.887091874ffc8p+0, 0x11ep+201)) === Interval(-0x2.f5008d2df94ccp-4, -0x69p-254) + + @test /(interval(-0x123456789p0, -0x1.b0a62934c76e9p+0), interval(0x40bp-17, 0x2.761ec797697a4p-4)) === Interval(-0x480b3bp+17, -0xa.fc5e7338f3e4p+0) + + @test /(interval(-0xd.67775e4b8588p+0, -0x1.b0a62934c76e9p+0), interval(0x4.887091874ffc8p-4, 0x2.761ec797697a4p+4)) === Interval(-0x2.f5008d2df94ccp+4, -0xa.fc5e7338f3e4p-8) + + @test /(interval(-0x75bcd15p0, 0.0), interval(-0x90p0, -0x9p0)) === Interval(0.0, 0xd14fadp0) + + @test /(interval(-0x1.4298b2138f2a7p-4, 0.0), interval(-0x1p-8, -0xf.5e4900c9c19fp-12)) === Interval(0.0, 0x1.4fdb41a33d6cep+4) + + @test /(interval(-0xeeeeeeeeep0, 0.0), interval(-0xaaaaaaaaap0, 0.0)) === Interval(0.0, +Inf) + + @test /(interval(-0x1.25f2d73472753p+0, 0.0), interval(-0x9.3b0c8074ccc18p-4, +0x4.788df5d72af78p-4)) === entireinterval() + + @test /(interval(-0xeeeeeeeeep0, 0.0), interval(0.0, +0x3p0)) === Interval(-Inf, 0.0) + + @test /(interval(-0x75bcd15p0, 0.0), interval(0x9p0, 0x90p0)) === Interval(-0xd14fadp0, 0.0) + + @test /(interval(-0x1.4298b2138f2a7p-4, 0.0), interval(0xf.5e4900c9c19fp-12, 0x9p0)) === Interval(-0x1.4fdb41a33d6cep+4, 0.0) + + @test /(interval(-0x75bcd15p0, 0xa680p0), interval(-0xaf6p0, -0x9p0)) === Interval(-0x1280p0, 0xd14fadp0) + + @test /(interval(-0x12p0, 0x10p0), interval(-0xbbbbbbbbbbp0, -0x9p0)) === Interval(-0x1.c71c71c71c71dp0, 2.0) + + @test /(interval(-0x1p0, 0x754ep-16), interval(-0xccccccccccp0, -0x11ep0)) === Interval(-0x69p-16, 0xe.525982af70c9p-12) + + @test /(interval(-0xb.5b90b4d32136p-4, 0x6.e694ac6767394p+0), interval(-0xdddddddddddp0, -0xc.f459be9e80108p-4)) === Interval(-0x8.85e40b3c3f63p+0, 0xe.071cbfa1de788p-4) + + @test /(interval(-0xacbp+256, 0x6f9p0), interval(-0x7p0, 0.0)) === entireinterval() + + @test /(interval(-0x1.25f2d73472753p+0, +0x9.9a19fd3c1fc18p-4), interval(-0x9.3b0c8074ccc18p-4, +0x4.788df5d72af78p-4)) === entireinterval() + + @test /(interval(0.0, +15.0), interval(-3.0, +3.0)) === entireinterval() + + @test /(interval(-0x754ep0, 0xd0e9dc4p+12), interval(0x11ep0, 0xbbbp0)) === Interval(-0x69p0, 0xbaffep+12) + + @test /(interval(-0x10p0, 0xd0e9dc4p+12), interval(0x11ep0, 0xbbbp0)) === Interval(-0xe.525982af70c9p-8, 0xbaffep+12) + + @test /(interval(-0x754ep0, 0x1p+10), interval(0x11ep0, 0xbbbp0)) === Interval(-0x69p0, 0xe.525982af70c9p-2) + + @test /(interval(-0x1.18333622af827p+0, 0x2.14b836907297p+0), interval(0x1.263147d1f4bcbp+0, 0x111p0)) === Interval(-0xf.3d2f5db8ec728p-4, 0x1.cf8fa732de129p+0) + + @test /(interval(0.0, 0x75bcd15p0), interval(-0xap0, -0x9p0)) === Interval(-0xd14fadp0, 0.0) + + @test /(interval(0.0, 0x1.acbf1702af6edp+0), interval(-0x0.fp0, -0xe.3d7a59e2bdacp-4)) === Interval(-0x1.e1bb896bfda07p+0, 0.0) + + @test /(interval(0.0, 0xap0), interval(-0x9p0, 0.0)) === Interval(-Inf, 0.0) + + @test /(interval(0.0, 0xap0), interval(-1.0, +1.0)) === entireinterval() + + @test /(interval(0.0, 0x75bcd15p0), interval(+0x9p0, +0xap0)) === Interval(0.0, 0xd14fadp0) + + @test /(interval(0.0, 0x1.5f6b03dc8c66fp+0), interval(+0x2.39ad24e812dcep+0, 0xap0)) === Interval(0.0, 0x9.deb65b02baep-4) + + @test /(interval(0x754ep0, 0x75bcd15p0), interval(-0x11ep0, -0x9p0)) === Interval(-0xd14fadp0, -0x69p0) + + @test /(interval(0x754ep-16, 0x1.008a3accc766dp+4), interval(-0x11ep0, -0x2.497403b31d32ap+0)) === Interval(-0x7.02d3edfbc8b6p+0, -0x69p-16) + + @test /(interval(0x9.ac412ff1f1478p-4, 0x75bcd15p0), interval(-0x1.5232c83a0e726p+4, -0x9p0)) === Interval(-0xd14fadp0, -0x7.52680a49e5d68p-8) + + @test /(interval(0xe.1552a314d629p-4, 0x1.064c5adfd0042p+0), interval(-0x5.0d4d319a50b04p-4, -0x2.d8f51df1e322ep-4)) === Interval(-0x5.c1d97d57d81ccp+0, -0x2.c9a600c455f5ap+0) + + @test /(interval(0x754ep0, 0xeeeep0), interval(-0x11ep0, 0.0)) === Interval(-Inf, -0x69p0) + + @test /(interval(0x1.a9016514490e6p-4, 0xeeeep0), interval(-0xe.316e87be0b24p-4, 0.0)) === Interval(-Inf, -0x1.df1cc82e6a583p-4) + + @test /(interval(5.0, 6.0), interval(-0x5.0d4d319a50b04p-4, 0x2.d8f51df1e322ep-4)) === entireinterval() + + @test /(interval(0x754ep0, +0xeeeeep0), interval(0.0, +0x11ep0)) === Interval(0x69p0, +Inf) + + @test /(interval(0x1.7f03f2a978865p+0, 0xeeeeep0), interval(0.0, 0x1.48b08624606b9p+0)) === Interval(0x1.2a4fcda56843p+0, +Inf) + + @test /(interval(0x5efc1492p0, 0x1ba2dc763p0), interval(0x2fdd1fp0, 0x889b71p0)) === Interval(0xb2p0, 0x93dp0) + + @test /(interval(0x1.d7c06f9ff0706p-8, 0x1ba2dc763p0), interval(0x2fdd1fp-20, 0xe.3d7a59e2bdacp+0)) === Interval(0x2.120d75be74b54p-12, 0x93dp+20) + + @test /(interval(0x5.efc1492p-4, 0x1.008a3accc766dp+0), interval(0x2.497403b31d32ap+0, 0x8.89b71p+0)) === Interval(0xb.2p-8, 0x7.02d3edfbc8b6p-4) + + @test /(interval(0x8.440e7d65be6bp-8, 0x3.99982e9eae09ep+0), interval(0x8.29fa8d0659e48p-4, 0xc.13d2fd762e4a8p-4)) === Interval(0xa.f3518768b206p-8, 0x7.0e2acad54859cp+0) + +end + +@testset "mpfi_div_d" begin + + @test /(interval(-Inf, -7.0), interval(-7.0, -7.0)) === Interval(1.0, +Inf) + + @test /(interval(-Inf, -7.0), interval(0.0, 0.0)) === emptyinterval() + + @test /(interval(-Inf, -7.0), interval(7.0, 7.0)) === Interval(-Inf, -1.0) + + @test /(interval(-Inf, 0.0), interval(-0x170ef54646d497p-106, -0x170ef54646d497p-106)) === Interval(0.0, +Inf) + + @test /(interval(-Inf, 0.0), interval(0x170ef54646d497p-106, 0x170ef54646d497p-106)) === Interval(-Inf, 0.0) + + @test /(interval(-Inf, 8.0), interval(-3.0, -3.0)) === Interval(-0x15555555555556p-51, +Inf) + + @test /(interval(-Inf, 8.0), interval(0.0, 0.0)) === emptyinterval() + + @test /(interval(-Inf, 8.0), interval(3.0, 3.0)) === Interval(-Inf, 0x15555555555556p-51) + + @test /(entireinterval(), interval(-0x170ef54646d497p-105, -0x170ef54646d497p-105)) === entireinterval() + + @test /(entireinterval(), interval(0.0e-17, 0.0e-17)) === emptyinterval() + + @test /(entireinterval(), interval(+0x170ef54646d497p-105, +0x170ef54646d497p-105)) === entireinterval() + + @test /(interval(0.0, 0.0), interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109)) === Interval(0.0, 0.0) + + @test /(interval(0.0, 0.0), interval(0x170ef54646d497p-109, 0x170ef54646d497p-109)) === Interval(0.0, 0.0) + + @test /(interval(0.0, 8.0), interval(-0x114b37f4b51f71p-107, -0x114b37f4b51f71p-107)) === Interval(-0x1d9b1f5d20d556p+5, 0.0) + + @test /(interval(0.0, 8.0), interval(0x114b37f4b51f71p-107, 0x114b37f4b51f71p-107)) === Interval(0.0, 0x1d9b1f5d20d556p+5) + + @test /(interval(0.0, +Inf), interval(-0x50b45a75f7e81p-104, -0x50b45a75f7e81p-104)) === Interval(-Inf, 0.0) + + @test /(interval(0.0, +Inf), interval(0x142d169d7dfa03p-106, 0x142d169d7dfa03p-106)) === Interval(0.0, +Inf) + + @test /(interval(-0x10000000000001p-20, -0x10000000000001p-53), interval(-1.0, -1.0)) === Interval(0x10000000000001p-53, 0x10000000000001p-20) + + @test /(interval(-0x10000000000002p-20, -0x10000000000001p-53), interval(0x10000000000001p-53, 0x10000000000001p-53)) === Interval(-0x10000000000001p-19, -1.0) + + @test /(interval(-0x10000000000001p-20, -0x10000020000001p-53), interval(0x10000000000001p-53, 0x10000000000001p-53)) === Interval(-0x1p+33, -0x1000001fffffffp-52) + + @test /(interval(-0x10000000000002p-20, -0x10000020000001p-53), interval(0x10000000000001p-53, 0x10000000000001p-53)) === Interval(-0x10000000000001p-19, -0x1000001fffffffp-52) + + @test /(interval(-0x123456789abcdfp-53, 0x123456789abcdfp-7), interval(-0x123456789abcdfp0, -0x123456789abcdfp0)) === Interval(-0x1p-7, 0x1p-53) + + @test /(interval(-0x123456789abcdfp-53, 0x10000000000001p-53), interval(-0x123456789abcdfp0, -0x123456789abcdfp0)) === Interval(-0x1c200000000002p-106, 0x1p-53) + + @test /(interval(-1.0, 0x123456789abcdfp-7), interval(-0x123456789abcdfp0, -0x123456789abcdfp0)) === Interval(-0x1p-7, 0x1c200000000001p-105) + + @test /(interval(-1.0, 0x10000000000001p-53), interval(-0x123456789abcdfp0, -0x123456789abcdfp0)) === Interval(-0x1c200000000002p-106, 0x1c200000000001p-105) + +end + +@testset "mpfi_d_sub" begin + + @test -(interval(-0x170ef54646d497p-107, -0x170ef54646d497p-107), interval(-Inf, -7.0)) === Interval(0x1bffffffffffffp-50, +Inf) + + @test -(interval(0.0, 0.0), interval(-Inf, -7.0)) === Interval(7.0, +Inf) + + @test -(interval(0x170ef54646d497p-107, 0x170ef54646d497p-107), interval(-Inf, -7.0)) === Interval(7.0, +Inf) + + @test -(interval(-0x170ef54646d497p-96, -0x170ef54646d497p-96), interval(-Inf, 0.0)) === Interval(-0x170ef54646d497p-96, +Inf) + + @test -(interval(0.0, 0.0), interval(-Inf, 0.0)) === Interval(0.0, +Inf) + + @test -(interval(0x170ef54646d497p-96, 0x170ef54646d497p-96), interval(-Inf, 0.0)) === Interval(0x170ef54646d497p-96, +Inf) + + @test -(interval(-0x16345785d8a00000p0, -0x16345785d8a00000p0), interval(-Inf, 8.0)) === Interval(-0x16345785d8a00100p0, +Inf) + + @test -(interval(0.0, 0.0), interval(-Inf, 8.0)) === Interval(-8.0, +Inf) + + @test -(interval(0x16345785d8a00000p0, 0x16345785d8a00000p0), interval(-Inf, 8.0)) === Interval(0x16345785d89fff00p0, +Inf) + + @test -(interval(-0x170ef54646d497p-105, -0x170ef54646d497p-105), entireinterval()) === entireinterval() + + @test -(interval(0.0e-17, 0.0e-17), entireinterval()) === entireinterval() + + @test -(interval(0x170ef54646d497p-105, 0x170ef54646d497p-105), entireinterval()) === entireinterval() + + @test -(interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109), interval(0.0, 0.0)) === Interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109) + + @test -(interval(0.0, 0.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test -(interval(0x170ef54646d497p-109, 0x170ef54646d497p-109), interval(0.0, 0.0)) === Interval(0x170ef54646d497p-109, 0x170ef54646d497p-109) + + @test -(interval(-0x114b37f4b51f71p-107, -0x114b37f4b51f71p-107), interval(0.0, 8.0)) === Interval(-0x10000000000001p-49, -0x114b37f4b51f71p-107) + + @test -(interval(0.0, 0.0), interval(0.0, 8.0)) === Interval(-8.0, 0.0) + + @test -(interval(0x114b37f4b51f71p-107, 0x114b37f4b51f71p-107), interval(0.0, 8.0)) === Interval(-8.0, 0x114b37f4b51f71p-107) + + @test -(interval(-0x50b45a75f7e81p-104, -0x50b45a75f7e81p-104), interval(0.0, +Inf)) === Interval(-Inf, -0x50b45a75f7e81p-104) + + @test -(interval(0.0, 0.0), interval(0.0, +Inf)) === Interval(-Inf, 0.0) + + @test -(interval(-0x142d169d7dfa03p-106, -0x142d169d7dfa03p-106), interval(0.0, +Inf)) === Interval(-Inf, -0x142d169d7dfa03p-106) + + @test -(interval(-0xfb53d14aa9c2fp-47, -0xfb53d14aa9c2fp-47), interval(17.0, 32.0)) === Interval(-0x1fb53d14aa9c2fp-47, -0x18353d14aa9c2fp-47) + + @test -(interval(0xfb53d14aa9c2fp-47, 0xfb53d14aa9c2fp-47), interval(17.0, 0xfb53d14aa9c2fp-47)) === Interval(0.0, 0x7353d14aa9c2fp-47) + + @test -(interval(0xfb53d14aa9c2fp-48, 0xfb53d14aa9c2fp-48), interval(0xfb53d14aa9c2fp-48, 32.0)) === Interval(-0x104ac2eb5563d1p-48, 0.0) + + @test -(interval(3.5, 3.5), interval(-0x123456789abcdfp-4, -0x123456789abcdfp-48)) === Interval(0x15b456789abcdfp-48, 0x123456789abd17p-4) + + @test -(interval(3.5, 3.5), interval(-0x123456789abcdfp-4, -0x123456789abcdfp-56)) === Interval(0x3923456789abcdp-52, 0x123456789abd17p-4) + + @test -(interval(256.5, 256.5), interval(-0x123456789abcdfp-52, 0xffp0)) === Interval(0x18p-4, 0x101a3456789abdp-44) + + @test -(interval(4097.5, 4097.5), interval(0x1p-550, 0x1fffffffffffffp-52)) === Interval(0xfff8p-4, 0x10018p-4) + + @test -(interval(-3.5, -3.5), interval(-0x123456789abcdfp-4, -0x123456789abcdfp-48)) === Interval(0xeb456789abcdfp-48, 0x123456789abca7p-4) + + @test -(interval(-3.5, -3.5), interval(-0x123456789abcdfp-4, -0x123456789abcdfp-56)) === Interval(-0x36dcba98765434p-52, 0x123456789abca7p-4) + + @test -(interval(-256.5, -256.5), interval(-0x123456789abcdfp-52, 0xffp0)) === Interval(-0x1ff8p-4, -0xff5cba9876543p-44) + + @test -(interval(-4097.5, -4097.5), interval(0x1p-550, 0x1fffffffffffffp-52)) === Interval(-0x10038p-4, -0x10018p-4) + +end + +@testset "mpfi_exp" begin + + @test exp(interval(-Inf, -7.0)) === Interval(0.0, 0x1de16b9c24a98fp-63) + + @test exp(interval(-Inf, 0.0)) === Interval(0.0, 1.0) + + @test exp(interval(-Inf, +1.0)) === Interval(0.0, 0x15bf0a8b14576ap-51) + + @test exp(entireinterval()) === Interval(0.0, +Inf) + + @test exp(interval(0.0, 0.0)) === Interval(1.0, 1.0) + + @test exp(interval(0.0, +1.0)) === Interval(1.0, 0x15bf0a8b14576ap-51) + + @test exp(interval(0.0, +Inf)) === Interval(1.0, +Inf) + + @test exp(interval(-123.0, -17.0)) === Interval(0x1766b45dd84f17p-230, 0x1639e3175a689dp-77) + + @test exp(interval(-0.125, 0.25)) === Interval(0x1c3d6a24ed8221p-53, 0x148b5e3c3e8187p-52) + + @test exp(interval(-0.125, 0.0)) === Interval(0x1c3d6a24ed8221p-53, 1.0) + + @test exp(interval(0.0, 0.25)) === Interval(1.0, 0x148b5e3c3e8187p-52) + + @test exp(interval(0xap-47, 0xbp-47)) === Interval(0x10000000000140p-52, 0x10000000000161p-52) + +end + +@testset "mpfi_exp2" begin + + @test exp2(interval(-Inf, -1.0)) === Interval(0.0, 0.5) + + @test exp2(interval(-Inf, 0.0)) === Interval(0.0, 1.0) + + @test exp2(interval(-Inf, 1.0)) === Interval(0.0, 2.0) + + @test exp2(entireinterval()) === Interval(0.0, +Inf) + + @test exp2(interval(0.0, 0.0)) === Interval(1.0, 1.0) + + @test exp2(interval(0.0, +1.0)) === Interval(1.0, 2.0) + + @test exp2(interval(0.0, +Inf)) === Interval(1.0, +Inf) + + @test exp2(interval(-123.0, -17.0)) === Interval(0x1p-123, 0x1p-17) + + @test exp2(interval(-7.0, 7.0)) === Interval(0x1p-7, 0x1p+7) + + @test exp2(interval(-0.125, 0.25)) === Interval(0x1d5818dcfba487p-53, 0x1306fe0a31b716p-52) + + @test exp2(interval(-0.125, 0.0)) === Interval(0x1d5818dcfba487p-53, 1.0) + + @test exp2(interval(0.0, 0.25)) === Interval(1.0, 0x1306fe0a31b716p-52) + + @test exp2(interval(0xap-47, 0xbp-47)) === Interval(0x100000000000ddp-52, 0x100000000000f4p-52) + +end + +@testset "mpfi_expm1" begin + + @test expm1(interval(-Inf, -7.0)) === Interval(-1.0, -0x1ff887a518f6d5p-53) + + @test expm1(interval(-Inf, 0.0)) === Interval(-1.0, 0.0) + + @test expm1(interval(-Inf, 1.0)) === Interval(-1.0, 0x1b7e151628aed3p-52) + + @test expm1(entireinterval()) === Interval(-1.0, +Inf) + + @test expm1(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test expm1(interval(0.0, 1.0)) === Interval(0.0, 0x1b7e151628aed3p-52) + + @test expm1(interval(0.0, +Inf)) === Interval(0.0, +Inf) + + @test expm1(interval(-36.0, -36.0)) === Interval(-0x1ffffffffffffep-53, -0x1ffffffffffffdp-53) + + @test expm1(interval(-0.125, 0.25)) === Interval(-0x1e14aed893eef4p-56, 0x122d78f0fa061ap-54) + + @test expm1(interval(-0.125, 0.0)) === Interval(-0x1e14aed893eef4p-56, 0.0) + + @test expm1(interval(0.0, 0.25)) === Interval(0.0, 0x122d78f0fa061ap-54) + + @test expm1(interval(0xap-47, 0xbp-47)) === Interval(0x140000000000c8p-96, 0x160000000000f3p-96) + +end + +@testset "mpfi_hypot" begin + + @test hypot(interval(-Inf, -7.0), interval(-1.0, 8.0)) === Interval(7.0, +Inf) + + @test hypot(interval(-Inf, 0.0), interval(8.0, +Inf)) === Interval(8.0, +Inf) + + @test hypot(interval(-Inf, 8.0), interval(0.0, 8.0)) === Interval(0.0, +Inf) + + @test hypot(entireinterval(), interval(0.0, 8.0)) === Interval(0.0, +Inf) + + @test hypot(interval(0.0, 0.0), interval(-Inf, -7.0)) === Interval(7.0, +Inf) + + @test hypot(interval(0.0, 3.0), interval(-4.0, 0.0)) === Interval(0.0, 5.0) + + @test hypot(interval(0.0, 0.0), interval(0.0, 8.0)) === Interval(0.0, 8.0) + + @test hypot(interval(0.0, +Inf), interval(0.0, 8.0)) === Interval(0.0, +Inf) + + @test hypot(interval(0.0, 0.0), interval(8.0, +Inf)) === Interval(8.0, +Inf) + + @test hypot(interval(0.0, 0.0), entireinterval()) === Interval(0.0, +Inf) + + @test hypot(interval(0.0, 5.0), interval(0.0, 12.0)) === Interval(0.0, 13.0) + + @test hypot(interval(0.0, 0.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test hypot(interval(0.0, +Inf), interval(-7.0, 8.0)) === Interval(0.0, +Inf) + + @test hypot(interval(-12.0, -5.0), interval(-35.0, -12.0)) === Interval(13.0, 37.0) + + @test hypot(interval(6.0, 7.0), interval(1.0, 24.0)) === Interval(0x1854bfb363dc39p-50, 25.0) + + @test hypot(interval(-4.0, +7.0), interval(-25.0, 3.0)) === Interval(0.0, 0x19f625847a5899p-48) + + @test hypot(interval(0x1854bfb363dc39p-50, 0x19f625847a5899p-48), interval(0x1854bfb363dc39p-50, 0x19f625847a5899p-48)) === Interval(0x113463fa37014dp-49, 0x125b89092b8fc0p-47) + +end + +@testset "mpfi_intersect" begin + + @test intersect(interval(-Inf, -7.0), interval(-1.0, +8.0)) === emptyinterval() + + @test intersect(interval(-Inf, 0.0), interval(+8.0, +Inf)) === emptyinterval() + + @test intersect(interval(-Inf, +8.0), interval(0.0, +8.0)) === Interval(0.0, +8.0) + + @test intersect(entireinterval(), interval(0.0, +8.0)) === Interval(0.0, +8.0) + + @test intersect(interval(0.0, 0.0), interval(-Inf, -7.0)) === emptyinterval() + + @test intersect(interval(0.0, +8.0), interval(-7.0, 0.0)) === Interval(0.0, 0.0) + + @test intersect(interval(0.0, 0.0), interval(0.0, +8.0)) === Interval(0.0, 0.0) + + @test intersect(interval(0.0, +Inf), interval(0.0, +8.0)) === Interval(0.0, +8.0) + + @test intersect(interval(0.0, 0.0), interval(+8.0, +Inf)) === emptyinterval() + + @test intersect(interval(0.0, 0.0), entireinterval()) === Interval(0.0, 0.0) + + @test intersect(interval(0.0, +8.0), interval(-7.0, +8.0)) === Interval(0.0, +8.0) + + @test intersect(interval(0.0, 0.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test intersect(interval(0.0, +Inf), interval(0.0, +8.0)) === Interval(0.0, +8.0) + + @test intersect(interval(0x12p0, 0x90p0), interval(-0x0dp0, 0x34p0)) === Interval(0x12p0, 0x34p0) + +end + +@testset "mpfi_inv" begin + + @test inv(interval(-Inf, -.25)) === Interval(-4.0, 0.0) + + @test inv(interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test inv(interval(-Inf, +4.0)) === entireinterval() + + @test inv(entireinterval()) === entireinterval() + + @test inv(interval(0.0, 0.0)) === emptyinterval() + + @test inv(interval(0.0, +2.0)) === Interval(+.5, +Inf) + + @test inv(interval(0.0, +Inf)) === Interval(0.0, +Inf) + + @test inv(interval(-8.0, -2.0)) === Interval(-.5, -0.125) + + @test inv(interval(0x1p-4, 0x1440c131282cd9p-53)) === Interval(0x1947bfce1bc417p-52, 0x10p0) + + @test inv(interval(0x19f1a539c91fddp-55, +64.0)) === Interval(0.015625, 0x13bc205a76b3fdp-50) + + @test inv(interval(-0xae83b95effd69p-52, -0x63e3cb4ed72a3p-53)) === Interval(-0x1480a9b5772a23p-50, -0x177887d65484c9p-52) + +end + +@testset "mpfi_is_neg" begin + + @test precedes(interval(-Inf, -8.0), interval(0.0, 0.0)) === true + + @test precedes(interval(-Inf, 0.0), interval(0.0, 0.0)) === true + + @test precedes(interval(-Inf, 5.0), interval(0.0, 0.0)) === false + + @test precedes(entireinterval(), interval(0.0, 0.0)) === false + + @test precedes(interval(-8.0, 0.0), interval(0.0, 0.0)) === true + + @test precedes(interval(0.0, 0.0), interval(0.0, 0.0)) === true + + @test precedes(interval(0.0, 5.0), interval(0.0, 0.0)) === false + + @test precedes(interval(0.0, +Inf), interval(0.0, 0.0)) === false + + @test precedes(interval(5.0, +Inf), interval(0.0, 0.0)) === false + + @test precedes(interval(-34.0, -17.0), interval(0.0, 0.0)) === true + + @test precedes(interval(-8.0, -1.0), interval(0.0, 0.0)) === true + + @test precedes(interval(-34.0, 17.0), interval(0.0, 0.0)) === false + + @test precedes(interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51), interval(0.0, 0.0)) === false + + @test precedes(interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51), interval(0.0, 0.0)) === false + + @test precedes(interval(+8.0, +0x7fffffffffffbp+51), interval(0.0, 0.0)) === false + + @test precedes(interval(+0x1fffffffffffffp-53, 2.0), interval(0.0, 0.0)) === false + +end + +@testset "mpfi_is_nonneg" begin + + @test ≤(interval(0.0, 0.0), interval(-Inf, -8.0)) === false + + @test ≤(interval(0.0, 0.0), interval(-Inf, 0.0)) === false + + @test ≤(interval(0.0, 0.0), interval(-Inf, 5.0)) === false + + @test ≤(interval(0.0, 0.0), entireinterval()) === false + + @test ≤(interval(0.0, 0.0), interval(-8.0, 0.0)) === false + + @test ≤(interval(0.0, 0.0), interval(0.0, 0.0)) === true + + @test ≤(interval(0.0, 0.0), interval(0.0, 5.0)) === true + + @test ≤(interval(0.0, 0.0), interval(0.0, +Inf)) === true + + @test ≤(interval(0.0, 0.0), interval(5.0, +Inf)) === true + + @test ≤(interval(0.0, 0.0), interval(-34.0, -17.0)) === false + + @test ≤(interval(0.0, 0.0), interval(-8.0, -1.0)) === false + + @test ≤(interval(0.0, 0.0), interval(-34.0, 17.0)) === false + + @test ≤(interval(0.0, 0.0), interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) === false + + @test ≤(interval(0.0, 0.0), interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) === true + + @test ≤(interval(0.0, 0.0), interval(+8.0, +0x7fffffffffffbp+51)) === true + + @test ≤(interval(0.0, 0.0), interval(+0x1fffffffffffffp-53, 2.0)) === true + +end + +@testset "mpfi_is_nonpos" begin + + @test ≤(interval(-Inf, -8.0), interval(0.0, 0.0)) === true + + @test ≤(interval(-Inf, 0.0), interval(0.0, 0.0)) === true + + @test ≤(interval(-Inf, 5.0), interval(0.0, 0.0)) === false + + @test ≤(entireinterval(), interval(0.0, 0.0)) === false + + @test ≤(interval(-8.0, 0.0), interval(0.0, 0.0)) === true + + @test ≤(interval(0.0, 0.0), interval(0.0, 0.0)) === true + + @test ≤(interval(0.0, 5.0), interval(0.0, 0.0)) === false + + @test ≤(interval(0.0, +Inf), interval(0.0, 0.0)) === false + + @test ≤(interval(5.0, +Inf), interval(0.0, 0.0)) === false + + @test ≤(interval(-34.0, -17.0), interval(0.0, 0.0)) === true + + @test ≤(interval(-8.0, -1.0), interval(0.0, 0.0)) === true + + @test ≤(interval(-34.0, 17.0), interval(0.0, 0.0)) === false + + @test ≤(interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51), interval(0.0, 0.0)) === false + + @test ≤(interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51), interval(0.0, 0.0)) === false + + @test ≤(interval(8.0, 0x7fffffffffffbp+51), interval(0.0, 0.0)) === false + + @test ≤(interval(0x1fffffffffffffp-53, 2.0), interval(0.0, 0.0)) === false + +end + +@testset "mpfi_is_pos" begin + + @test precedes(interval(0.0, 0.0), interval(-Inf, -8.0)) === false + + @test precedes(interval(0.0, 0.0), interval(-Inf, 0.0)) === false + + @test precedes(interval(0.0, 0.0), interval(-Inf, 5.0)) === false + + @test precedes(interval(0.0, 0.0), entireinterval()) === false + + @test precedes(interval(0.0, 0.0), interval(-8.0, 0.0)) === false + + @test precedes(interval(0.0, 0.0), interval(0.0, 0.0)) === true + + @test precedes(interval(0.0, 0.0), interval(0.0, 5.0)) === true + + @test precedes(interval(0.0, 0.0), interval(0.0, +Inf)) === true + + @test precedes(interval(0.0, 0.0), interval(5.0, +Inf)) === true + + @test precedes(interval(0.0, 0.0), interval(-34.0, -17.0)) === false + + @test precedes(interval(0.0, 0.0), interval(-8.0, -1.0)) === false + + @test precedes(interval(0.0, 0.0), interval(-34.0, 17.0)) === false + + @test precedes(interval(0.0, 0.0), interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) === false + + @test precedes(interval(0.0, 0.0), interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) === true + + @test precedes(interval(0.0, 0.0), interval(+8.0, +0x7fffffffffffbp+51)) === true + + @test precedes(interval(0.0, 0.0), interval(+0x1fffffffffffffp-53, 2.0)) === true + +end + +@testset "mpfi_is_strictly_neg" begin + + @test strictprecedes(interval(-Inf, -8.0), interval(0.0, 0.0)) === true + + @test strictprecedes(interval(-Inf, 0.0), interval(0.0, 0.0)) === false + + @test strictprecedes(interval(-Inf, 5.0), interval(0.0, 0.0)) === false + + @test strictprecedes(entireinterval(), interval(0.0, 0.0)) === false + + @test strictprecedes(interval(-8.0, 0.0), interval(0.0, 0.0)) === false + + @test strictprecedes(interval(0.0, 0.0), interval(0.0, 0.0)) === false + + @test strictprecedes(interval(0.0, 5.0), interval(0.0, 0.0)) === false + + @test strictprecedes(interval(0.0, +Inf), interval(0.0, 0.0)) === false + + @test strictprecedes(interval(5.0, +Inf), interval(0.0, 0.0)) === false + + @test strictprecedes(interval(-34.0, -17.0), interval(0.0, 0.0)) === true + + @test strictprecedes(interval(-8.0, -1.0), interval(0.0, 0.0)) === true + + @test strictprecedes(interval(-34.0, 17.0), interval(0.0, 0.0)) === false + + @test strictprecedes(interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51), interval(0.0, 0.0)) === false + + @test strictprecedes(interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51), interval(0.0, 0.0)) === false + + @test strictprecedes(interval(+8.0, +0x7fffffffffffbp+51), interval(0.0, 0.0)) === false + + @test strictprecedes(interval(+0x1fffffffffffffp-53, 2.0), interval(0.0, 0.0)) === false + +end + +@testset "mpfi_is_strictly_pos" begin + + @test strictprecedes(interval(0.0, 0.0), interval(-Inf, -8.0)) === false + + @test strictprecedes(interval(0.0, 0.0), interval(-Inf, 0.0)) === false + + @test strictprecedes(interval(0.0, 0.0), interval(-Inf, 5.0)) === false + + @test strictprecedes(interval(0.0, 0.0), entireinterval()) === false + + @test strictprecedes(interval(0.0, 0.0), interval(-8.0, 0.0)) === false + + @test strictprecedes(interval(0.0, 0.0), interval(0.0, 0.0)) === false + + @test strictprecedes(interval(0.0, 0.0), interval(0.0, 5.0)) === false + + @test strictprecedes(interval(0.0, 0.0), interval(0.0, +Inf)) === false + + @test strictprecedes(interval(0.0, 0.0), interval(5.0, +Inf)) === true + + @test strictprecedes(interval(0.0, 0.0), interval(-34.0, -17.0)) === false + + @test strictprecedes(interval(0.0, 0.0), interval(-8.0, -1.0)) === false + + @test strictprecedes(interval(0.0, 0.0), interval(-34.0, 17.0)) === false + + @test strictprecedes(interval(0.0, 0.0), interval(-0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) === false + + @test strictprecedes(interval(0.0, 0.0), interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) === true + + @test strictprecedes(interval(0.0, 0.0), interval(+8.0, +0x7fffffffffffbp+51)) === true + + @test strictprecedes(interval(0.0, 0.0), interval(+0x1fffffffffffffp-53, 2.0)) === true + +end + +@testset "mpfi_log" begin + + @test log(interval(0.0, +1.0)) === Interval(-Inf, 0.0) + + @test log(interval(0.0, +Inf)) === entireinterval() + + @test log(interval(+1.0, +1.0)) === Interval(0.0, 0.0) + + @test log(interval(0x3a2a08c23afe3p-14, 0x1463ceb440d6bdp-14)) === Interval(0xc6dc8a2928579p-47, 0x1a9500bc7ffcc5p-48) + + @test log(interval(0xb616ab8b683b5p-52, +1.0)) === Interval(-0x2b9b8b1fb2fb9p-51, 0.0) + + @test log(interval(+1.0, 0x8ac74d932fae3p-21)) === Interval(0.0, 0x5380455576989p-46) + + @test log(interval(0x4c322657ec89bp-16, 0x4d68ba5f26bf1p-11)) === Interval(0xbdee7228cfedfp-47, 0x1b3913fc99f555p-48) + +end + +@testset "mpfi_log1p" begin + + @test log1p(interval(-1.0, 0.0)) === Interval(-Inf, 0.0) + + @test log1p(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test log1p(interval(0.0, 1.0)) === Interval(0.0, 0x162e42fefa39f0p-53) + + @test log1p(interval(0.0, +Inf)) === Interval(0.0, +Inf) + + @test log1p(interval(-0xb616ab8b683b5p-52, 0.0)) === Interval(-0x13e080325bab7bp-52, 0.0) + + @test log1p(interval(0.0, 0x8ac74d932fae3p-21)) === Interval(0.0, 0x14e0115561569cp-48) + + @test log1p(interval(0x4c322657ec89bp-16, 0x4d68ba5f26bf1p-11)) === Interval(0x17bdce451a337fp-48, 0x1b3913fc99f6fcp-48) + +end + +@testset "mpfi_log2" begin + + @test log2(interval(0.0, +1.0)) === Interval(-Inf, 0.0) + + @test log2(interval(0.0, +Inf)) === entireinterval() + + @test log2(interval(1.0, 1.0)) === Interval(0.0, 0.0) + + @test log2(interval(0xb616ab8b683b5p-52, 1.0)) === Interval(-0x1f74cb5d105b3ap-54, 0.0) + + @test log2(interval(1.0, 0x8ac74d932fae3p-21)) === Interval(0.0, 0x1e1ddc27c2c70fp-48) + + @test log2(interval(0x4c322657ec89bp-16, 0x4d68ba5f26bf1p-11)) === Interval(0x112035c9390c07p-47, 0x13a3208f61f10cp-47) + +end + +@testset "mpfi_log10" begin + + @test log10(interval(0.0, 1.0)) === Interval(-Inf, 0.0) + + @test log10(interval(0.0, +Inf)) === entireinterval() + + @test log10(interval(1.0, 1.0)) === Interval(0.0, 0.0) + + @test log10(interval(0x3a2a08c23afe3p-14, 0x1463ceb440d6bdp-14)) === Interval(0x159753104a9401p-49, 0x1716c01a04b570p-49) + + @test log10(interval(0xb616ab8b683b5p-52, 1.0)) === Interval(-0x12f043ec00f8d6p-55, 0.0) + + @test log10(interval(100.0, 0x8ac74d932fae3p-21)) === Interval(2.0, 0x1221cc590b9946p-49) + + @test log10(interval(0x4c322657ec89bp-16, 0x4d68ba5f26bf1p-11)) === Interval(0x149f1d70168f49p-49, 0x17a543a94fb65ep-49) + +end + +@testset "mpfi_mag" begin + + @test mag(interval(-Inf, -8.0)) === +Inf + + @test mag(interval(-Inf, 0.0)) === +Inf + + @test mag(interval(-Inf, 5.0)) === +Inf + + @test mag(entireinterval()) === +Inf + + @test mag(interval(-Inf, 0.0)) === +Inf + + @test mag(interval(-8.0, 0.0)) === +8.0 + + @test mag(interval(0.0, 0.0)) === +0.0 + + @test mag(interval(0.0, 5.0)) === +5.0 + + @test mag(interval(0.0, +Inf)) === +Inf + + @test mag(interval(-34.0, -17.0)) === 34.0 + +end + +@testset "mpfi_mid" begin + + @test mid(interval(-8.0, 0.0)) === -4.0 + + @test mid(interval(0.0, 0.0)) === +0.0 + + @test mid(interval(0.0, 5.0)) === +2.5 + + @test mid(interval(-34.0, -17.0)) === -0x33p-1 + + @test mid(interval(-34.0, 17.0)) === -8.5 + + @test mid(interval(0.0, +0x123456789abcdp-2)) === +0x123456789abcdp-3 + + @test mid(interval(0x1921fb54442d18p-51, 0x1921fb54442d19p-51)) === 0x1921fb54442d18p-51 + + @test mid(interval(-0x1921fb54442d19p-51, -0x1921fb54442d18p-51)) === -0x1921fb54442d18p-51 + + @test mid(interval(-4.0, -0x7fffffffffffdp-51)) === -0x27fffffffffffbp-52 + + @test mid(interval(-8.0, -0x7fffffffffffbp-51)) === -0x47fffffffffffbp-52 + + @test mid(interval(-0x1fffffffffffffp-53, 2.0)) === 0.5 + +end + +@testset "mpfi_mig" begin + + @test mig(interval(-Inf, -8.0)) === 8.0 + + @test mig(interval(-Inf, 0.0)) === +0.0 + + @test mig(interval(-Inf, 5.0)) === +0.0 + + @test mig(entireinterval()) === +0.0 + + @test mig(interval(-Inf, 0.0)) === +0.0 + + @test mig(interval(-8.0, 0.0)) === +0.0 + + @test mig(interval(0.0, 0.0)) === +0.0 + + @test mig(interval(0.0, 5.0)) === +0.0 + + @test mig(interval(0.0, +Inf)) === +0.0 + + @test mig(interval(-34.0, -17.0)) === 17.0 + +end + +@testset "mpfi_mul" begin + + @test *(interval(-Inf, -7.0), interval(-1.0, +8.0)) === entireinterval() + + @test *(interval(-Inf, 0.0), interval(+8.0, +Inf)) === Interval(-Inf, 0.0) + + @test *(interval(-Inf, +8.0), interval(0.0, +8.0)) === Interval(-Inf, +64.0) + + @test *(entireinterval(), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test *(entireinterval(), interval(0.0, +8.0)) === entireinterval() + + @test *(interval(0.0, 0.0), interval(-Inf, -7.0)) === Interval(0.0, 0.0) + + @test *(interval(0.0, +8.0), interval(-7.0, 0.0)) === Interval(-56.0, 0.0) + + @test *(interval(0.0, 0.0), interval(0.0, +8.0)) === Interval(0.0, 0.0) + + @test *(interval(0.0, +Inf), interval(0.0, +8.0)) === Interval(0.0, +Inf) + + @test *(interval(0.0, 0.0), interval(+8.0, +Inf)) === Interval(0.0, 0.0) + + @test *(interval(0.0, 0.0), entireinterval()) === Interval(0.0, 0.0) + + @test *(interval(0.0, +8.0), interval(-7.0, +8.0)) === Interval(-56.0, +64.0) + + @test *(interval(0.0, 0.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test *(interval(0.0, +Inf), interval(0.0, +8.0)) === Interval(0.0, +Inf) + + @test *(interval(-3.0, +7.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test *(interval(-0x0dp0, -0x09p0), interval(-0x04p0, -0x02p0)) === Interval(0x12p0, 0x34p0) + + @test *(interval(-0x0dp0, -0xd.f0e7927d247cp-4), interval(-0x04p0, -0xa.41084aff48f8p-8)) === Interval(0x8.ef3aa21dba748p-8, 0x34p0) + + @test *(interval(-0xe.26c9e9eb67b48p-4, -0x8.237d2eb8b1178p-4), interval(-0x5.8c899a0706d5p-4, -0x3.344e57a37b5e8p-4)) === Interval(0x1.a142a930de328p-4, 0x4.e86c3434cd924p-4) + + @test *(interval(-0x37p0, -0x07p0), interval(-0x01p0, 0x22p0)) === Interval(-0x74ep0, 0x37p0) + + @test *(interval(-0xe.063f267ed51ap-4, -0x0.33p0), interval(-0x01p0, 0x1.777ab178b4a1ep+0)) === Interval(-0x1.491df346a9f15p+0, 0xe.063f267ed51ap-4) + + @test *(interval(-0x1.cb540b71699a8p+4, -0x0.33p0), interval(-0x1.64dcaaa101f18p+0, 0x01p0)) === Interval(-0x1.cb540b71699a8p+4, 0x2.804cce4a3f42ep+4) + + @test *(interval(-0x1.cb540b71699a8p+4, -0x0.33p0), interval(-0x1.64dcaaa101f18p+0, 0x1.eb67a1a6ef725p+4)) === Interval(-0x3.71b422ce817f4p+8, 0x2.804cce4a3f42ep+4) + + @test *(interval(-0x123456789ap0, -0x01p0), interval(0x01p0, 0x10p0)) === Interval(-0x123456789a0p0, -0x01p0) + + @test *(interval(-0xb.6c67d3a37d54p-4, -0x0.8p0), interval(0x02p0, 0x2.0bee4e8bb3dfp+0)) === Interval(-0x1.7611a672948a5p+0, -0x01p0) + + @test *(interval(-0x04p0, -0xa.497d533c3b2ep-8), interval(0xb.d248df3373e68p-4, 0x04p0)) === Interval(-0x10p0, -0x7.99b990532d434p-8) + + @test *(interval(-0xb.6c67d3a37d54p-4, -0xa.497d533c3b2ep-8), interval(0xb.d248df3373e68p-4, 0x2.0bee4e8bb3dfp+0)) === Interval(-0x1.7611a672948a5p+0, -0x7.99b990532d434p-8) + + @test *(interval(-0x01p0, 0x11p0), interval(-0x07p0, -0x04p0)) === Interval(-0x77p0, 0x07p0) + + @test *(interval(-0x01p0, 0xe.ca7ddfdb8572p-4), interval(-0x2.3b46226145234p+0, -0x0.1p0)) === Interval(-0x2.101b41d3d48b8p+0, 0x2.3b46226145234p+0) + + @test *(interval(-0x1.1d069e75e8741p+8, 0x01p0), interval(-0x2.3b46226145234p+0, -0x0.1p0)) === Interval(-0x2.3b46226145234p+0, 0x2.7c0bd9877f404p+8) + + @test *(interval(-0xe.ca7ddfdb8572p-4, 0x1.1d069e75e8741p+8), interval(-0x2.3b46226145234p+0, -0x0.1p0)) === Interval(-0x2.7c0bd9877f404p+8, 0x2.101b41d3d48b8p+0) + + @test *(interval(-0x01p0, 0x10p0), interval(-0x02p0, 0x03p0)) === Interval(-0x20p0, 0x30p0) + + @test *(interval(-0x01p0, 0x2.db091cea593fap-4), interval(-0x2.6bff2625fb71cp-4, 0x1p-8)) === Interval(-0x6.ea77a3ee43de8p-8, 0x2.6bff2625fb71cp-4) + + @test *(interval(-0x01p0, 0x6.e211fefc216ap-4), interval(-0x1p-4, 0x1.8e3fe93a4ea52p+0)) === Interval(-0x1.8e3fe93a4ea52p+0, 0xa.b52fe22d72788p-4) + + @test *(interval(-0x1.15e079e49a0ddp+0, 0x1p-8), interval(-0x2.77fc84629a602p+0, 0x8.3885932f13fp-4)) === Interval(-0x8.ec5de73125be8p-4, 0x2.adfe651d3b19ap+0) + + @test *(interval(-0x07p0, 0x07p0), interval(0x13p0, 0x24p0)) === Interval(-0xfcp0, 0xfcp0) + + @test *(interval(-0xa.8071f870126cp-4, 0x10p0), interval(0x02p0, 0x2.3381083e7d3b4p+0)) === Interval(-0x1.71dc5b5607781p+0, 0x2.3381083e7d3b4p+4) + + @test *(interval(-0x01p0, 0x1.90aa487ecf153p+0), interval(0x01p-53, 0x1.442e2695ac81ap+0)) === Interval(-0x1.442e2695ac81ap+0, 0x1.fb5fbebd0cbc6p+0) + + @test *(interval(-0x1.c40db77f2f6fcp+0, 0x1.8eb70bbd94478p+0), interval(0x02p0, 0x3.45118635235c6p+0)) === Interval(-0x5.c61fcad908df4p+0, 0x5.17b7c49130824p+0) + + @test *(interval(0xcp0, 0x2dp0), interval(-0x679p0, -0xe5p0)) === Interval(-0x12345p0, -0xabcp0) + + @test *(interval(0xcp0, 0x1.1833fdcab4c4ap+10), interval(-0x2.4c0afc50522ccp+40, -0xe5p0)) === Interval(-0x2.83a3712099234p+50, -0xabcp0) + + @test *(interval(0xb.38f1fb0ef4308p+0, 0x2dp0), interval(-0x679p0, -0xa.4771d7d0c604p+0)) === Interval(-0x12345p0, -0x7.35b3c8400ade4p+4) + + @test *(interval(0xf.08367984ca1cp-4, 0xa.bcf6c6cbe341p+0), interval(-0x5.cbc445e9952c4p+0, -0x2.8ad05a7b988fep-8)) === Interval(-0x3.e3ce52d4a139cp+4, -0x2.637164cf2f346p-8) + + @test *(interval(0x01p0, 0xcp0), interval(-0xe5p0, 0x01p0)) === Interval(-0xabcp0, 0xcp0) + + @test *(interval(0x123p-52, 0x1.ec24910ac6aecp+0), interval(-0xa.a97267f56a9b8p-4, 0x1p+32)) === Interval(-0x1.47f2dbe4ef916p+0, 0x1.ec24910ac6aecp+32) + + @test *(interval(0x03p0, 0x7.2bea531ef4098p+0), interval(-0x01p0, 0xa.a97267f56a9b8p-4)) === Interval(-0x7.2bea531ef4098p+0, 0x4.c765967f9468p+0) + + @test *(interval(0x0.3p0, 0xa.a97267f56a9b8p-4), interval(-0x1.ec24910ac6aecp+0, 0x7.2bea531ef4098p+0)) === Interval(-0x1.47f2dbe4ef916p+0, 0x4.c765967f9468p+0) + + @test *(interval(0x3p0, 0x7p0), interval(0x5p0, 0xbp0)) === Interval(0xfp0, 0x4dp0) + + @test *(interval(0x2.48380232f6c16p+0, 0x7p0), interval(0x3.71cb6c53e68eep+0, 0xbp0)) === Interval(0x7.dc58fb323ad78p+0, 0x4dp0) + + @test *(interval(0x3p0, 0x3.71cb6c53e68eep+0), interval(0x5p-25, 0x2.48380232f6c16p+0)) === Interval(0xfp-25, 0x7.dc58fb323ad7cp+0) + + @test *(interval(0x3.10e8a605572p-4, 0x2.48380232f6c16p+0), interval(0xc.3d8e305214ecp-4, 0x2.9e7db05203c88p+0)) === Interval(0x2.587a32d02bc04p-4, 0x5.fa216b7c20c6cp+0) + +end + +@testset "mpfi_mul_d" begin + + @test *(interval(-Inf, -7.0), interval(-0x17p0, -0x17p0)) === Interval(+0xa1p0, +Inf) + + @test *(interval(-Inf, -7.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test *(interval(-Inf, -7.0), interval(0x170ef54646d497p-107, 0x170ef54646d497p-107)) === Interval(-Inf, -0xa168b4ebefd020p-107) + + @test *(interval(-Inf, 0.0), interval(-0x170ef54646d497p-106, -0x170ef54646d497p-106)) === Interval(0.0, +Inf) + + @test *(interval(-Inf, 0.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test *(interval(-Inf, 0.0), interval(0x170ef54646d497p-106, 0x170ef54646d497p-106)) === Interval(-Inf, 0.0) + + @test *(interval(-Inf, 8.0), interval(-0x16345785d8a00000p0, -0x16345785d8a00000p0)) === Interval(-0xb1a2bc2ec5000000p0, +Inf) + + @test *(interval(-Inf, 8.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test *(interval(-Inf, 8.0), interval(0x16345785d8a00000p0, 0x16345785d8a00000p0)) === Interval(-Inf, 0xb1a2bc2ec5000000p0) + + @test *(entireinterval(), interval(-0x170ef54646d497p-105, -0x170ef54646d497p-105)) === entireinterval() + + @test *(entireinterval(), interval(0.0e-17, 0.0e-17)) === Interval(0.0, 0.0) + + @test *(entireinterval(), interval(+0x170ef54646d497p-105, +0x170ef54646d497p-105)) === entireinterval() + + @test *(interval(0.0, 0.0), interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109)) === 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(0x170ef54646d497p-109, 0x170ef54646d497p-109)) === Interval(0.0, 0.0) + + @test *(interval(0.0, 7.0), interval(-0x114b37f4b51f71p-107, -0x114b37f4b51f71p-107)) === Interval(-0x790e87b0f3dc18p-107, 0.0) + + @test *(interval(0.0, 8.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test *(interval(0.0, 9.0), interval(0x114b37f4b51f71p-103, 0x114b37f4b51f71p-103)) === Interval(0.0, 0x9ba4f79a5e1b00p-103) + + @test *(interval(0.0, +Inf), interval(-0x50b45a75f7e81p-104, -0x50b45a75f7e81p-104)) === Interval(-Inf, 0.0) + + @test *(interval(0.0, +Inf), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test *(interval(0.0, +Inf), interval(0x142d169d7dfa03p-106, 0x142d169d7dfa03p-106)) === Interval(0.0, +Inf) + + @test *(interval(-0x1717170p0, -0xaaaaaaaaaaaaap-123), interval(-1.5, -1.5)) === Interval(0xfffffffffffffp-123, 0x22a2a28p0) + + @test *(interval(-0xaaaaaaaaaaaaap0, 0x1717170p+401), interval(-1.5, -1.5)) === Interval(-0x22a2a28p+401, 0xfffffffffffffp0) + + @test *(interval(0x10000000000010p0, 0x888888888888p+654), interval(-2.125, -2.125)) === Interval(-0x1222222222221p+654, -0x22000000000022p0) + + @test *(interval(-0x1717170p0, -0xaaaaaaaaaaaaap-123), interval(1.5, 1.5)) === Interval(-0x22a2a28p0, -0xfffffffffffffp-123) + + @test *(interval(-0xaaaaaaaaaaaaap0, 0x1717170p+401), interval(1.5, 1.5)) === Interval(-0xfffffffffffffp0, 0x22a2a28p+401) + + @test *(interval(0x10000000000010p0, 0x888888888888p+654), interval(2.125, 2.125)) === Interval(0x22000000000022p0, 0x1222222222221p+654) + + @test *(interval(-0x1717170p+36, -0x10000000000001p0), interval(-1.5, -1.5)) === Interval(0x18000000000001p0, 0x22a2a28p+36) + + @test *(interval(-0xaaaaaaaaaaaaap0, 0x10000000000001p0), interval(-1.5, -1.5)) === Interval(-0x18000000000002p0, 0xfffffffffffffp0) + + @test *(interval(0x10000000000010p0, 0x11111111111111p0), interval(-2.125, -2.125)) === Interval(-0x12222222222223p+1, -0x22000000000022p0) + + @test *(interval(-0x10000000000001p0, -0xaaaaaaaaaaaaap-123), interval(1.5, 1.5)) === Interval(-0x18000000000002p0, -0xfffffffffffffp-123) + + @test *(interval(-0xaaaaaaaaaaaabp0, 0x1717170p+401), interval(1.5, 1.5)) === Interval(-0x10000000000001p0, 0x22a2a28p+401) + + @test *(interval(0x10000000000001p0, 0x888888888888p+654), interval(2.125, 2.125)) === Interval(0x22000000000002p0, 0x1222222222221p+654) + + @test *(interval(-0x11717171717171p0, -0xaaaaaaaaaaaaap-123), interval(-1.5, -1.5)) === Interval(0xfffffffffffffp-123, 0x1a2a2a2a2a2a2ap0) + + @test *(interval(-0x10000000000001p0, 0x1717170p+401), interval(-1.5, -1.5)) === Interval(-0x22a2a28p+401, 0x18000000000002p0) + + @test *(interval(0x10000000000001p0, 0x888888888888p+654), interval(-2.125, -2.125)) === Interval(-0x1222222222221p+654, -0x22000000000002p0) + + @test *(interval(-0x1717170p0, -0x1aaaaaaaaaaaaap-123), interval(1.5, 1.5)) === Interval(-0x22a2a28p0, -0x27fffffffffffep-123) + + @test *(interval(-0xaaaaaaaaaaaaap0, 0x11717171717171p0), interval(1.5, 1.5)) === Interval(-0xfffffffffffffp0, 0x1a2a2a2a2a2a2ap0) + + @test *(interval(0x10000000000010p0, 0x18888888888889p0), interval(2.125, 2.125)) === Interval(0x22000000000022p0, 0x34222222222224p0) + + @test *(interval(-0x11717171717171p0, -0x10000000000001p0), interval(-1.5, -1.5)) === Interval(0x18000000000001p0, 0x1a2a2a2a2a2a2ap0) + + @test *(interval(-0x10000000000001p0, 0x10000000000001p0), interval(-1.5, -1.5)) === Interval(-0x18000000000002p0, 0x18000000000002p0) + + @test *(interval(0x10000000000001p0, 0x11111111111111p0), interval(-2.125, -2.125)) === Interval(-0x12222222222223p+1, -0x22000000000002p0) + + @test *(interval(-0x10000000000001p0, -0x1aaaaaaaaaaaaap-123), interval(1.5, 1.5)) === Interval(-0x18000000000002p0, -0x27fffffffffffep-123) + + @test *(interval(-0xaaaaaaaaaaaabp0, 0x11717171717171p0), interval(1.5, 1.5)) === Interval(-0x10000000000001p0, 0x1a2a2a2a2a2a2ap0) + + @test *(interval(0x10000000000001p0, 0x18888888888889p0), interval(2.125, 2.125)) === Interval(0x22000000000002p0, 0x34222222222224p0) + +end + +@testset "mpfi_neg" begin + + @test -(interval(-Inf, -7.0)) === Interval(+7.0, +Inf) + + @test -(interval(-Inf, 0.0)) === Interval(0.0, +Inf) + + @test -(interval(-Inf, +8.0)) === Interval(-8.0, +Inf) + + @test -(entireinterval()) === entireinterval() + + @test -(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test -(interval(0.0, +8.0)) === Interval(-8.0, 0.0) + + @test -(interval(0.0, +Inf)) === Interval(-Inf, 0.0) + + @test -(interval(0x123456789p-16, 0x123456799p-16)) === Interval(-0x123456799p-16, -0x123456789p-16) + +end + +@testset "mpfi_put_d" begin + + @test hull(interval(0.0, 0.0), interval(-8.0, -8.0)) === Interval(-8.0, 0.0) + + @test hull(interval(0.0, 0.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test hull(interval(+5.0, +5.0), interval(0.0, 0.0)) === Interval(0.0, +5.0) + +end + +@testset "mpfi_sec" begin + + @test sec(interval(-Inf, -7.0)) === entireinterval() + + @test sec(interval(-Inf, 0.0)) === entireinterval() + + @test sec(interval(-Inf, 8.0)) === entireinterval() + + @test sec(entireinterval()) === entireinterval() + + @test sec(interval(-8.0, 0.0)) === entireinterval() + + @test sec(interval(-3.0, 0.0)) === entireinterval() + + @test sec(interval(-1.0, 0.0)) === Interval(1.0, 0x1d9cf0f125cc2ap-52) + + @test sec(interval(0.0, 0.0)) === Interval(1.0, 1.0) + + @test sec(interval(0.0, +1.0)) === Interval(1.0, 0x1d9cf0f125cc2ap-52) + + @test sec(interval(0.0, 3.0)) === entireinterval() + + @test sec(interval(0.0, 8.0)) === entireinterval() + + @test sec(interval(0.0, +Inf)) === entireinterval() + + @test sec(interval(-6.0, 7.0)) === entireinterval() + + @test sec(interval(-6.0, 6.0)) === entireinterval() + + @test sec(interval(-6.0, 5.0)) === entireinterval() + + @test sec(interval(-6.0, 4.0)) === entireinterval() + + @test sec(interval(-6.0, 3.0)) === entireinterval() + + @test sec(interval(-6.0, 2.0)) === entireinterval() + + @test sec(interval(-6.0, 1.0)) === entireinterval() + + @test sec(interval(-6.0, 0.0)) === entireinterval() + + @test sec(interval(-6.0, -1.0)) === entireinterval() + + @test sec(interval(-6.0, -2.0)) === entireinterval() + + @test sec(interval(-6.0, -3.0)) === entireinterval() + + @test sec(interval(-6.0, -4.0)) === entireinterval() + + @test sec(interval(-6.0, -5.0)) === Interval(0x10a9e8f3e19df1p-52, 0x1c33db0464189bp-51) + + @test sec(interval(-6.0, -6.0)) === Interval(0x10a9e8f3e19df1p-52, 0x10a9e8f3e19df2p-52) + + @test sec(interval(-5.0, 7.0)) === entireinterval() + + @test sec(interval(-5.0, 6.0)) === entireinterval() + + @test sec(interval(-5.0, 5.0)) === entireinterval() + + @test sec(interval(-5.0, 4.0)) === entireinterval() + + @test sec(interval(-5.0, 3.0)) === entireinterval() + + @test sec(interval(-5.0, 2.0)) === entireinterval() + + @test sec(interval(-5.0, 1.0)) === entireinterval() + + @test sec(interval(-5.0, 0.0)) === entireinterval() + + @test sec(interval(-5.0, -1.0)) === entireinterval() + + @test sec(interval(-5.0, -2.0)) === entireinterval() + + @test sec(interval(-5.0, -3.0)) === entireinterval() + + @test sec(interval(-5.0, -4.0)) === entireinterval() + + @test sec(interval(-5.0, -5.0)) === Interval(0x1c33db0464189ap-51, 0x1c33db0464189bp-51) + + @test sec(interval(-4.0, 7.0)) === entireinterval() + + @test sec(interval(-4.0, 6.0)) === entireinterval() + + @test sec(interval(-4.0, 5.0)) === entireinterval() + + @test sec(interval(-4.0, 4.0)) === entireinterval() + + @test sec(interval(-4.0, 3.0)) === entireinterval() + + @test sec(interval(-4.0, 2.0)) === entireinterval() + + @test sec(interval(-4.0, 1.0)) === entireinterval() + + @test sec(interval(-4.0, 0.0)) === entireinterval() + + @test sec(interval(-4.0, -1.0)) === entireinterval() + + @test sec(interval(-4.0, -2.0)) === Interval(-0x133956fecf9e49p-51, -1.0) + + @test sec(interval(-4.0, -3.0)) === Interval(-0x187a6961d2485fp-52, -1.0) + + @test sec(interval(-4.0, -4.0)) === Interval(-0x187a6961d2485fp-52, -0x187a6961d2485ep-52) + + @test sec(interval(-3.0, 7.0)) === entireinterval() + + @test sec(interval(-3.0, 6.0)) === entireinterval() + + @test sec(interval(-3.0, 5.0)) === entireinterval() + + @test sec(interval(-3.0, 4.0)) === entireinterval() + + @test sec(interval(-3.0, 3.0)) === entireinterval() + + @test sec(interval(-3.0, 2.0)) === entireinterval() + + @test sec(interval(-3.0, 1.0)) === entireinterval() + + @test sec(interval(-3.0, 0.0)) === entireinterval() + + @test sec(interval(-3.0, -1.0)) === entireinterval() + + @test sec(interval(-3.0, -2.0)) === Interval(-0x133956fecf9e49p-51, -0x102967b457b245p-52) + + @test sec(interval(-3.0, -3.0)) === Interval(-0x102967b457b246p-52, -0x102967b457b245p-52) + + @test sec(interval(-2.0, 7.0)) === entireinterval() + + @test sec(interval(-2.0, 6.0)) === entireinterval() + + @test sec(interval(-2.0, 5.0)) === entireinterval() + + @test sec(interval(-2.0, 4.0)) === entireinterval() + + @test sec(interval(-2.0, 3.0)) === entireinterval() + + @test sec(interval(-2.0, 2.0)) === entireinterval() + + @test sec(interval(-2.0, 1.0)) === entireinterval() + + @test sec(interval(-2.0, 0.0)) === entireinterval() + + @test sec(interval(-2.0, -1.0)) === entireinterval() + + @test sec(interval(-2.0, -2.0)) === Interval(-0x133956fecf9e49p-51, -0x133956fecf9e48p-51) + + @test sec(interval(-1.0, 7.0)) === entireinterval() + + @test sec(interval(-1.0, 6.0)) === entireinterval() + + @test sec(interval(-1.0, 5.0)) === entireinterval() + + @test sec(interval(-1.0, 4.0)) === entireinterval() + + @test sec(interval(-1.0, 3.0)) === entireinterval() + + @test sec(interval(-1.0, 2.0)) === entireinterval() + + @test sec(interval(-1.0, 1.0)) === Interval(1.0, 0x1d9cf0f125cc2ap-52) + + @test sec(interval(-1.0, 0.0)) === Interval(1.0, 0x1d9cf0f125cc2ap-52) + + @test sec(interval(-1.0, -1.0)) === Interval(0x1d9cf0f125cc29p-52, 0x1d9cf0f125cc2ap-52) + + @test sec(interval(1.0, 7.0)) === entireinterval() + + @test sec(interval(1.0, 6.0)) === entireinterval() + + @test sec(interval(1.0, 5.0)) === entireinterval() + + @test sec(interval(1.0, 4.0)) === entireinterval() + + @test sec(interval(1.0, 3.0)) === entireinterval() + + @test sec(interval(1.0, 2.0)) === entireinterval() + + @test sec(interval(1.0, 1.0)) === Interval(0x1d9cf0f125cc29p-52, 0x1d9cf0f125cc2ap-52) + + @test sec(interval(2.0, 7.0)) === entireinterval() + + @test sec(interval(2.0, 6.0)) === entireinterval() + + @test sec(interval(2.0, 5.0)) === entireinterval() + + @test sec(interval(2.0, 4.0)) === Interval(-0x133956fecf9e49p-51, -1.0) + + @test sec(interval(2.0, 3.0)) === Interval(-0x133956fecf9e49p-51, -0x102967b457b245p-52) + + @test sec(interval(2.0, 2.0)) === Interval(-0x133956fecf9e49p-51, -0x133956fecf9e48p-51) + + @test sec(interval(3.0, 7.0)) === entireinterval() + + @test sec(interval(3.0, 6.0)) === entireinterval() + + @test sec(interval(3.0, 5.0)) === entireinterval() + + @test sec(interval(3.0, 4.0)) === Interval(-0x187a6961d2485fp-52, -1.0) + + @test sec(interval(3.0, 3.0)) === Interval(-0x102967b457b246p-52, -0x102967b457b245p-52) + + @test sec(interval(4.0, 7.0)) === entireinterval() + + @test sec(interval(4.0, 6.0)) === entireinterval() + + @test sec(interval(4.0, 5.0)) === entireinterval() + + @test sec(interval(4.0, 4.0)) === Interval(-0x187a6961d2485fp-52, -0x187a6961d2485ep-52) + + @test sec(interval(5.0, 7.0)) === Interval(1.0, 0x1c33db0464189bp-51) + + @test sec(interval(5.0, 6.0)) === Interval(0x10a9e8f3e19df1p-52, 0x1c33db0464189bp-51) + + @test sec(interval(5.0, 5.0)) === Interval(0x1c33db0464189ap-51, 0x1c33db0464189bp-51) + + @test sec(interval(6.0, 7.0)) === Interval(1.0, 0x153910a80e7db5p-52) + + @test sec(interval(6.0, 6.0)) === Interval(0x10a9e8f3e19df1p-52, 0x10a9e8f3e19df2p-52) + + @test sec(interval(7.0, 7.0)) === Interval(0x153910a80e7db4p-52, 0x153910a80e7db5p-52) + +end + +@testset "mpfi_sech" begin + + @test sech(interval(-Inf, -7.0)) === Interval(0.0, 0x1de169fb49b339p-62) + + @test sech(interval(-Inf, 0.0)) === Interval(0.0, 1.0) + + @test sech(interval(-Inf, +8.0)) === Interval(0.0, 1.0) + + @test sech(entireinterval()) === Interval(0.0, 1.0) + + @test sech(interval(-1.0, 0.0)) === Interval(0x14bcdc50ed6be7p-53, 1.0) + + @test sech(interval(0.0, 0.0)) === Interval(1.0, 1.0) + + @test sech(interval(0.0, +1.0)) === Interval(0x14bcdc50ed6be7p-53, 1.0) + + @test sech(interval(0.0, +8.0)) === Interval(0x15fc20da8e18dbp-63, 1.0) + + @test sech(interval(0.0, +Inf)) === Interval(0.0, 1.0) + + @test sech(interval(-0.125, 0.0)) === Interval(0x1fc069fe3f72bep-53, 1.0) + + @test sech(interval(0.0, 0x10000000000001p-53)) === Interval(0x1c60d1ff040dcfp-53, 1.0) + + @test sech(interval(-4.5, -0.625)) === Interval(0x16bf984a9a2355p-58, 0x1aa0b464a5e24ap-53) + + @test sech(interval(1.0, 3.0)) === Interval(0x196d8e17d88eb1p-56, 0x14bcdc50ed6be8p-53) + + @test sech(interval(17.0, 0xb145bb71d3dbp-38)) === Interval(0x10000000000173p-1074, 0x1639e3175a6893p-76) + +end + +@testset "mpfi_sin" begin + + @test sin(interval(-Inf, -7.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-Inf, 0.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-Inf, +8.0)) === Interval(-1.0, 1.0) + + @test sin(entireinterval()) === Interval(-1.0, 1.0) + + @test sin(interval(-1.0, 0.0)) === Interval(-0x1aed548f090cefp-53, 0.0) + + @test sin(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test sin(interval(0.0, +1.0)) === Interval(0.0, 0x1aed548f090cefp-53) + + @test sin(interval(0.0, +8.0)) === Interval(-1.0, 1.0) + + @test sin(interval(0.0, +Inf)) === Interval(-1.0, 1.0) + + @test sin(interval(0.125, 17.0)) === Interval(-1.0, 1.0) + + @test sin(interval(0x1921fb54442d18p-52, 0x1921fb54442d19p-52)) === Interval(0x1fffffffffffffp-53, 1.0) + + @test sin(interval(-2.0, -0.5)) === Interval(-1.0, -0x1eaee8744b05efp-54) + + @test sin(interval(-4.5, 0.625)) === Interval(-1.0, 0x1f47ed3dc74081p-53) + + @test sin(interval(-1.0, -0.25)) === Interval(-0x1aed548f090cefp-53, -0x1faaeed4f31576p-55) + + @test sin(interval(-0.5, 0.5)) === Interval(-0x1eaee8744b05f0p-54, 0x1eaee8744b05f0p-54) + + @test sin(interval(0x71p+76, 0x71p+76)) === Interval(0x1bde6c11cbfc46p-55, 0x1bde6c11cbfc47p-55) + + @test sin(interval(-7.0, 7.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-7.0, 6.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-7.0, 5.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-7.0, 4.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-7.0, 3.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-7.0, 2.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-7.0, 1.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-7.0, 0.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-7.0, -1.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-7.0, -2.0)) === Interval(-0x1d18f6ead1b446p-53, 1.0) + + @test sin(interval(-7.0, -3.0)) === Interval(-0x150608c26d0a09p-53, 1.0) + + @test sin(interval(-7.0, -4.0)) === Interval(-0x150608c26d0a09p-53, 1.0) + + @test sin(interval(-7.0, -5.0)) === Interval(-0x150608c26d0a09p-53, 0x1eaf81f5e09934p-53) + + @test sin(interval(-7.0, -6.0)) === Interval(-0x150608c26d0a09p-53, 0x11e1f18ab0a2c1p-54) + + @test sin(interval(-7.0, -7.0)) === Interval(-0x150608c26d0a09p-53, -0x150608c26d0a08p-53) + + @test sin(interval(-6.0, 7.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-6.0, 6.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-6.0, 5.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-6.0, 4.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-6.0, 3.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-6.0, 2.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-6.0, 1.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-6.0, 0.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-6.0, -1.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-6.0, -2.0)) === Interval(-0x1d18f6ead1b446p-53, 1.0) + + @test sin(interval(-6.0, -3.0)) === Interval(-0x1210386db6d55cp-55, 1.0) + + @test sin(interval(-6.0, -4.0)) === Interval(0x11e1f18ab0a2c0p-54, 1.0) + + @test sin(interval(-6.0, -5.0)) === Interval(0x11e1f18ab0a2c0p-54, 0x1eaf81f5e09934p-53) + + @test sin(interval(-6.0, -6.0)) === Interval(0x11e1f18ab0a2c0p-54, 0x11e1f18ab0a2c1p-54) + + @test sin(interval(-5.0, 7.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-5.0, 6.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-5.0, 5.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-5.0, 4.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-5.0, 3.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-5.0, 2.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-5.0, 1.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-5.0, 0.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-5.0, -1.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-5.0, -2.0)) === Interval(-0x1d18f6ead1b446p-53, 1.0) + + @test sin(interval(-5.0, -3.0)) === Interval(-0x1210386db6d55cp-55, 1.0) + + @test sin(interval(-5.0, -4.0)) === Interval(0x1837b9dddc1eaep-53, 1.0) + + @test sin(interval(-5.0, -5.0)) === Interval(0x1eaf81f5e09933p-53, 0x1eaf81f5e09934p-53) + + @test sin(interval(-4.0, 7.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-4.0, 6.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-4.0, 5.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-4.0, 4.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-4.0, 3.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-4.0, 2.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-4.0, 1.0)) === Interval(-1.0, 0x1aed548f090cefp-53) + + @test sin(interval(-4.0, 0.0)) === Interval(-1.0, 0x1837b9dddc1eafp-53) + + @test sin(interval(-4.0, -1.0)) === Interval(-1.0, 0x1837b9dddc1eafp-53) + + @test sin(interval(-4.0, -2.0)) === Interval(-0x1d18f6ead1b446p-53, 0x1837b9dddc1eafp-53) + + @test sin(interval(-4.0, -3.0)) === Interval(-0x1210386db6d55cp-55, 0x1837b9dddc1eafp-53) + + @test sin(interval(-4.0, -4.0)) === Interval(0x1837b9dddc1eaep-53, 0x1837b9dddc1eafp-53) + + @test sin(interval(-3.0, 7.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-3.0, 6.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-3.0, 5.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-3.0, 4.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-3.0, 3.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-3.0, 2.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-3.0, 1.0)) === Interval(-1.0, 0x1aed548f090cefp-53) + + @test sin(interval(-3.0, 0.0)) === Interval(-1.0, 0.0) + + @test sin(interval(-3.0, -1.0)) === Interval(-1.0, -0x1210386db6d55bp-55) + + @test sin(interval(-3.0, -2.0)) === Interval(-0x1d18f6ead1b446p-53, -0x1210386db6d55bp-55) + + @test sin(interval(-3.0, -3.0)) === Interval(-0x1210386db6d55cp-55, -0x1210386db6d55bp-55) + + @test sin(interval(-2.0, 7.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-2.0, 6.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-2.0, 5.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-2.0, 4.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-2.0, 3.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-2.0, 2.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-2.0, 1.0)) === Interval(-1.0, 0x1aed548f090cefp-53) + + @test sin(interval(-2.0, 0.0)) === Interval(-1.0, 0.0) + + @test sin(interval(-2.0, -1.0)) === Interval(-1.0, -0x1aed548f090ceep-53) + + @test sin(interval(-2.0, -2.0)) === Interval(-0x1d18f6ead1b446p-53, -0x1d18f6ead1b445p-53) + + @test sin(interval(-1.0, 7.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-1.0, 6.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-1.0, 5.0)) === Interval(-1.0, 1.0) + + @test sin(interval(-1.0, 4.0)) === Interval(-0x1aed548f090cefp-53, 1.0) + + @test sin(interval(-1.0, 3.0)) === Interval(-0x1aed548f090cefp-53, 1.0) + + @test sin(interval(-1.0, 2.0)) === Interval(-0x1aed548f090cefp-53, 1.0) + + @test sin(interval(-1.0, 1.0)) === Interval(-0x1aed548f090cefp-53, 0x1aed548f090cefp-53) + + @test sin(interval(-1.0, 0.0)) === Interval(-0x1aed548f090cefp-53, 0.0) + + @test sin(interval(-1.0, -1.0)) === Interval(-0x1aed548f090cefp-53, -0x1aed548f090ceep-53) + + @test sin(interval(1.0, 7.0)) === Interval(-1.0, 1.0) + + @test sin(interval(1.0, 6.0)) === Interval(-1.0, 1.0) + + @test sin(interval(1.0, 5.0)) === Interval(-1.0, 1.0) + + @test sin(interval(1.0, 4.0)) === Interval(-0x1837b9dddc1eafp-53, 1.0) + + @test sin(interval(1.0, 3.0)) === Interval(0x1210386db6d55bp-55, 1.0) + + @test sin(interval(1.0, 2.0)) === Interval(0x1aed548f090ceep-53, 1.0) + + @test sin(interval(1.0, 1.0)) === Interval(0x1aed548f090ceep-53, 0x1aed548f090cefp-53) + + @test sin(interval(2.0, 7.0)) === Interval(-1.0, 0x1d18f6ead1b446p-53) + + @test sin(interval(2.0, 6.0)) === Interval(-1.0, 0x1d18f6ead1b446p-53) + + @test sin(interval(2.0, 5.0)) === Interval(-1.0, 0x1d18f6ead1b446p-53) + + @test sin(interval(2.0, 4.0)) === Interval(-0x1837b9dddc1eafp-53, 0x1d18f6ead1b446p-53) + + @test sin(interval(2.0, 3.0)) === Interval(0x1210386db6d55bp-55, 0x1d18f6ead1b446p-53) + + @test sin(interval(2.0, 2.0)) === Interval(0x1d18f6ead1b445p-53, 0x1d18f6ead1b446p-53) + + @test sin(interval(3.0, 7.0)) === Interval(-1.0, 0x150608c26d0a09p-53) + + @test sin(interval(3.0, 6.0)) === Interval(-1.0, 0x1210386db6d55cp-55) + + @test sin(interval(3.0, 5.0)) === Interval(-1.0, 0x1210386db6d55cp-55) + + @test sin(interval(3.0, 4.0)) === Interval(-0x1837b9dddc1eafp-53, 0x1210386db6d55cp-55) + + @test sin(interval(3.0, 3.0)) === Interval(0x1210386db6d55bp-55, 0x1210386db6d55cp-55) + + @test sin(interval(4.0, 7.0)) === Interval(-1.0, 0x150608c26d0a09p-53) + + @test sin(interval(4.0, 6.0)) === Interval(-1.0, -0x11e1f18ab0a2c0p-54) + + @test sin(interval(4.0, 5.0)) === Interval(-1.0, -0x1837b9dddc1eaep-53) + + @test sin(interval(4.0, 4.0)) === Interval(-0x1837b9dddc1eafp-53, -0x1837b9dddc1eaep-53) + + @test sin(interval(5.0, 7.0)) === Interval(-0x1eaf81f5e09934p-53, 0x150608c26d0a09p-53) + + @test sin(interval(5.0, 6.0)) === Interval(-0x1eaf81f5e09934p-53, -0x11e1f18ab0a2c0p-54) + + @test sin(interval(5.0, 5.0)) === Interval(-0x1eaf81f5e09934p-53, -0x1eaf81f5e09933p-53) + + @test sin(interval(6.0, 7.0)) === Interval(-0x11e1f18ab0a2c1p-54, 0x150608c26d0a09p-53) + + @test sin(interval(6.0, 6.0)) === Interval(-0x11e1f18ab0a2c1p-54, -0x11e1f18ab0a2c0p-54) + + @test sin(interval(7.0, 7.0)) === Interval(0x150608c26d0a08p-53, 0x150608c26d0a09p-53) + +end + +@testset "mpfi_sinh" begin + + @test sinh(interval(-Inf, -7.0)) === Interval(-Inf, -0x1122876ba380c9p-43) + + @test sinh(interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test sinh(interval(-Inf, +8.0)) === Interval(-Inf, 0x1749ea514eca66p-42) + + @test sinh(entireinterval()) === entireinterval() + + @test sinh(interval(-1.0, 0.0)) === Interval(-0x12cd9fc44eb983p-52, 0.0) + + @test sinh(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test sinh(interval(0.0, +1.0)) === Interval(0.0, 0x12cd9fc44eb983p-52) + + @test sinh(interval(0.0, +8.0)) === Interval(0.0, 0x1749ea514eca66p-42) + + @test sinh(interval(0.0, +Inf)) === Interval(0.0, +Inf) + + @test sinh(interval(-0.125, 0.0)) === Interval(-0x100aaccd00d2f1p-55, 0.0) + + @test sinh(interval(0.0, 0x10000000000001p-53)) === Interval(0.0, 0x10acd00fe63b98p-53) + + @test sinh(interval(-4.5, -0.625)) === Interval(-0x168062ab5fa9fdp-47, -0x1553e795dc19ccp-53) + + @test sinh(interval(1.0, 3.0)) === Interval(0x12cd9fc44eb982p-52, 0x140926e70949aep-49) + +end + +@testset "mpfi_sqr" begin + + @test interval(-Inf, -7.0)^2 === Interval(+49.0, +Inf) + + @test interval(-Inf, 0.0)^2 === Interval(0.0, +Inf) + + @test interval(-Inf, +8.0)^2 === Interval(0.0, +Inf) + + @test entireinterval()^2 === Interval(0.0, +Inf) + + @test interval(0.0, 0.0)^2 === Interval(0.0, 0.0) + + @test interval(0.0, +8.0)^2 === Interval(0.0, +64.0) + + @test interval(0.0, +Inf)^2 === Interval(0.0, +Inf) + + @test interval(0x8.6374d8p-4, 0x3.f1d929p+8)^2 === Interval(0x4.65df11464764p-4, 0xf.8f918d688891p+16) + + @test interval(0x6.61485c33c0b14p+4, 0x123456p0)^2 === Interval(0x2.8b45c3cc03ea6p+12, 0x14b66cb0ce4p0) + + @test interval(-0x1.64722ad2480c9p+0, 0x1p0)^2 === Interval(0.0, 0x1.f04dba0302d4dp+0) + + @test interval(0x1.6b079248747a2p+0, 0x2.b041176d263f6p+0)^2 === Interval(0x2.02ce7912cddf6p+0, 0x7.3a5dee779527p+0) + +end + +@testset "mpfi_sqrt" begin + + @test sqrt(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test sqrt(interval(0.0, +9.0)) === Interval(0.0, +3.0) + + @test sqrt(interval(0.0, +Inf)) === Interval(0.0, +Inf) + + @test sqrt(interval(0xaaa1p0, 0x14b66cb0ce4p0)) === Interval(0xd1p0, 0x123456p0) + + @test sqrt(interval(0xe.49ae7969e41bp-4, 0xaaa1p0)) === Interval(0xf.1ea42821b27a8p-4, 0xd1p0) + + @test sqrt(interval(0xa.aa1p-4, 0x1.0c348f804c7a9p+0)) === Interval(0xd.1p-4, 0x1.06081714eef1dp+0) + + @test sqrt(interval(0xe.49ae7969e41bp-4, 0x1.0c348f804c7a9p+0)) === Interval(0xf.1ea42821b27a8p-4, 0x1.06081714eef1dp+0) + +end + +@testset "mpfi_sub" begin + + @test -(interval(-Inf, -7.0), interval(-1.0, +8.0)) === Interval(-Inf, -6.0) + + @test -(interval(-Inf, 0.0), interval(+8.0, +Inf)) === Interval(-Inf, -8.0) + + @test -(interval(-Inf, +8.0), interval(0.0, +8.0)) === Interval(-Inf, +8.0) + + @test -(entireinterval(), interval(0.0, +8.0)) === entireinterval() + + @test -(interval(0.0, 0.0), interval(-Inf, -7.0)) === Interval(+7.0, +Inf) + + @test -(interval(0.0, +8.0), interval(-7.0, 0.0)) === Interval(0.0, +15.0) + + @test -(interval(0.0, 0.0), interval(0.0, +8.0)) === Interval(-8.0, 0.0) + + @test -(interval(0.0, +Inf), interval(0.0, +8.0)) === Interval(-8.0, +Inf) + + @test -(interval(0.0, 0.0), interval(+8.0, +Inf)) === Interval(-Inf, -8.0) + + @test -(interval(0.0, 0.0), entireinterval()) === entireinterval() + + @test -(interval(0.0, +8.0), interval(-7.0, +8.0)) === Interval(-8.0, +15.0) + + @test -(interval(0.0, 0.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test -(interval(0.0, +Inf), interval(0.0, +8.0)) === Interval(-8.0, +Inf) + + @test -(interval(-5.0, 59.0), interval(17.0, 81.0)) === Interval(-86.0, 42.0) + + @test -(interval(-0x1p-300, 0x123456p+28), interval(-0x789abcdp0, 0x10000000000000p-93)) === Interval(-0x10000000000001p-93, 0x123456789abcdp0) + + @test -(interval(-4.0, 7.0), interval(-3e300, 0x123456789abcdp-17)) === Interval(-0x123456791abcdp-17, 0x8f596b3002c1bp+947) + + @test -(interval(-0x1000100010001p+8, 0x1p+60), interval(-3e300, 0x1000100010001p0)) === Interval(-0x10101010101011p+4, 0x8f596b3002c1bp+947) + + @test -(interval(-5.0, 1.0), interval(1.0, 0x1p+70)) === Interval(-0x10000000000001p+18, 0.0) + + @test -(interval(5.0, 0x1p+70), interval(3.0, 5.0)) === Interval(0.0, 0x1p+70) + +end + +@testset "mpfi_sub_d" begin + + @test -(interval(-Inf, -7.0), interval(-0x170ef54646d497p-107, -0x170ef54646d497p-107)) === Interval(-Inf, -0x1bffffffffffffp-50) + + @test -(interval(-Inf, -7.0), interval(0.0, 0.0)) === Interval(-Inf, -7.0) + + @test -(interval(-Inf, -7.0), interval(0x170ef54646d497p-107, 0x170ef54646d497p-107)) === Interval(-Inf, -7.0) + + @test -(interval(-Inf, 0.0), interval(-0x170ef54646d497p-106, -0x170ef54646d497p-106)) === Interval(-Inf, 0x170ef54646d497p-106) + + @test -(interval(-Inf, 0.0), interval(0.0, 0.0)) === Interval(-Inf, 0.0) + + @test -(interval(-Inf, 0.0), interval(0x170ef54646d497p-106, 0x170ef54646d497p-106)) === Interval(-Inf, -8.0e-17) + + @test -(interval(-Inf, 8.0), interval(-0x16345785d8a00000p0, -0x16345785d8a00000p0)) === Interval(-Inf, 0x16345785d8a00100p0) + + @test -(interval(-Inf, 8.0), interval(0.0, 0.0)) === Interval(-Inf, 8.0) + + @test -(interval(-Inf, 8.0), interval(0x16345785d8a00000p0, 0x16345785d8a00000p0)) === Interval(-Inf, -0x16345785d89fff00p0) + + @test -(entireinterval(), interval(-0x170ef54646d497p-105, -0x170ef54646d497p-105)) === entireinterval() + + @test -(entireinterval(), interval(0.0e-17, 0.0e-17)) === entireinterval() + + @test -(entireinterval(), interval(+0x170ef54646d497p-105, +0x170ef54646d497p-105)) === entireinterval() + + @test -(interval(0.0, 0.0), interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109)) === Interval(+0x170ef54646d497p-109, +0x170ef54646d497p-109) + + @test -(interval(0.0, 0.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test -(interval(0.0, 0.0), interval(0x170ef54646d497p-109, 0x170ef54646d497p-109)) === Interval(-0x170ef54646d497p-109, -0x170ef54646d497p-109) + + @test -(interval(0.0, 8.0), interval(-0x114b37f4b51f71p-107, -0x114b37f4b51f71p-107)) === Interval(0x114b37f4b51f71p-107, 0x10000000000001p-49) + + @test -(interval(0.0, 8.0), interval(0.0, 0.0)) === Interval(0.0, 8.0) + + @test -(interval(0.0, 8.0), interval(0x114b37f4b51f71p-107, 0x114b37f4b51f71p-107)) === Interval(-0x114b37f4b51f71p-107, 8.0) + + @test -(interval(0.0, +Inf), interval(-0x50b45a75f7e81p-104, -0x50b45a75f7e81p-104)) === Interval(0x50b45a75f7e81p-104, +Inf) + + @test -(interval(0.0, +Inf), interval(0.0, 0.0)) === Interval(0.0, +Inf) + + @test -(interval(0.0, +Inf), interval(0x142d169d7dfa03p-106, 0x142d169d7dfa03p-106)) === Interval(-0x142d169d7dfa03p-106, +Inf) + + @test -(interval(-32.0, -17.0), interval(0xfb53d14aa9c2fp-47, 0xfb53d14aa9c2fp-47)) === Interval(-0x1fb53d14aa9c2fp-47, -0x18353d14aa9c2fp-47) + + @test -(interval(-0xfb53d14aa9c2fp-47, -17.0), interval(-0xfb53d14aa9c2fp-47, -0xfb53d14aa9c2fp-47)) === Interval(0.0, 0x7353d14aa9c2fp-47) + + @test -(interval(-32.0, -0xfb53d14aa9c2fp-48), interval(-0xfb53d14aa9c2fp-48, -0xfb53d14aa9c2fp-48)) === Interval(-0x104ac2eb5563d1p-48, 0.0) + + @test -(interval(0x123456789abcdfp-48, 0x123456789abcdfp-4), interval(-3.5, -3.5)) === Interval(0x15b456789abcdfp-48, 0x123456789abd17p-4) + + @test -(interval(0x123456789abcdfp-56, 0x123456789abcdfp-4), interval(-3.5, -3.5)) === Interval(0x3923456789abcdp-52, 0x123456789abd17p-4) + + @test -(interval(-0xffp0, 0x123456789abcdfp-52), interval(-256.5, -256.5)) === Interval(0x18p-4, 0x101a3456789abdp-44) + + @test -(interval(-0x1fffffffffffffp-52, -0x1p-550), interval(-4097.5, -4097.5)) === Interval(0xfff8p-4, 0x10018p-4) + + @test -(interval(0x123456789abcdfp-48, 0x123456789abcdfp-4), interval(3.5, 3.5)) === Interval(0xeb456789abcdfp-48, 0x123456789abca7p-4) + + @test -(interval(0x123456789abcdfp-56, 0x123456789abcdfp-4), interval(3.5, 3.5)) === Interval(-0x36dcba98765434p-52, 0x123456789abca7p-4) + + @test -(interval(-0xffp0, 0x123456789abcdfp-52), interval(256.5, 256.5)) === Interval(-0x1ff8p-4, -0xff5cba9876543p-44) + + @test -(interval(-0x1fffffffffffffp-52, -0x1p-550), interval(4097.5, 4097.5)) === Interval(-0x10038p-4, -0x10018p-4) + +end + +@testset "mpfi_tan" begin + + @test tan(interval(-Inf, -7.0)) === entireinterval() + + @test tan(interval(-Inf, 0.0)) === entireinterval() + + @test tan(interval(-Inf, +8.0)) === entireinterval() + + @test tan(entireinterval()) === entireinterval() + + @test tan(interval(-1.0, 0.0)) === Interval(-0x18eb245cbee3a6p-52, 0.0) + + @test tan(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test tan(interval(0.0, +1.0)) === Interval(0.0, 0x18eb245cbee3a6p-52) + + @test tan(interval(0.0, +8.0)) === entireinterval() + + @test tan(interval(0.0, +Inf)) === entireinterval() + + @test tan(interval(0.125, 17.0)) === entireinterval() + + @test tan(interval(0x1921fb54442d18p-52, 0x1921fb54442d19p-52)) === entireinterval() + + @test tan(interval(-2.0, -0.5)) === entireinterval() + + @test tan(interval(-4.5, 0.625)) === entireinterval() + + @test tan(interval(-1.0, -0.25)) === Interval(-0x18eb245cbee3a6p-52, -0x105785a43c4c55p-54) + + @test tan(interval(-0.5, 0.5)) === Interval(-0x117b4f5bf3474bp-53, 0x117b4f5bf3474bp-53) + + @test tan(interval(0x71p+76, 0x71p+76)) === Interval(-0x1c8dc87ddcc134p-55, -0x1c8dc87ddcc133p-55) + + @test tan(interval(-7.0, 7.0)) === entireinterval() + + @test tan(interval(-7.0, 6.0)) === entireinterval() + + @test tan(interval(-7.0, 5.0)) === entireinterval() + + @test tan(interval(-7.0, 4.0)) === entireinterval() + + @test tan(interval(-7.0, 3.0)) === entireinterval() + + @test tan(interval(-7.0, 2.0)) === entireinterval() + + @test tan(interval(-7.0, 1.0)) === entireinterval() + + @test tan(interval(-7.0, 0.0)) === entireinterval() + + @test tan(interval(-7.0, -1.0)) === entireinterval() + + @test tan(interval(-7.0, -2.0)) === entireinterval() + + @test tan(interval(-7.0, -3.0)) === entireinterval() + + @test tan(interval(-7.0, -4.0)) === entireinterval() + + @test tan(interval(-7.0, -5.0)) === Interval(-0x1be2e6e13eea79p-53, 0x1b0b4b739bbb07p-51) + + @test tan(interval(-7.0, -6.0)) === Interval(-0x1be2e6e13eea79p-53, 0x129fd86ebb95bfp-54) + + @test tan(interval(-7.0, -7.0)) === Interval(-0x1be2e6e13eea79p-53, -0x1be2e6e13eea78p-53) + + @test tan(interval(-6.0, 7.0)) === entireinterval() + + @test tan(interval(-6.0, 6.0)) === entireinterval() + + @test tan(interval(-6.0, 5.0)) === entireinterval() + + @test tan(interval(-6.0, 4.0)) === entireinterval() + + @test tan(interval(-6.0, 3.0)) === entireinterval() + + @test tan(interval(-6.0, 2.0)) === entireinterval() + + @test tan(interval(-6.0, 1.0)) === entireinterval() + + @test tan(interval(-6.0, 0.0)) === entireinterval() + + @test tan(interval(-6.0, -1.0)) === entireinterval() + + @test tan(interval(-6.0, -2.0)) === entireinterval() + + @test tan(interval(-6.0, -3.0)) === entireinterval() + + @test tan(interval(-6.0, -4.0)) === entireinterval() + + @test tan(interval(-6.0, -5.0)) === Interval(0x129fd86ebb95bep-54, 0x1b0b4b739bbb07p-51) + + @test tan(interval(-6.0, -6.0)) === Interval(0x129fd86ebb95bep-54, 0x129fd86ebb95bfp-54) + + @test tan(interval(-5.0, 7.0)) === entireinterval() + + @test tan(interval(-5.0, 6.0)) === entireinterval() + + @test tan(interval(-5.0, 5.0)) === entireinterval() + + @test tan(interval(-5.0, 4.0)) === entireinterval() + + @test tan(interval(-5.0, 3.0)) === entireinterval() + + @test tan(interval(-5.0, 2.0)) === entireinterval() + + @test tan(interval(-5.0, 1.0)) === entireinterval() + + @test tan(interval(-5.0, 0.0)) === entireinterval() + + @test tan(interval(-5.0, -1.0)) === entireinterval() + + @test tan(interval(-5.0, -2.0)) === entireinterval() + + @test tan(interval(-5.0, -3.0)) === entireinterval() + + @test tan(interval(-5.0, -4.0)) === entireinterval() + + @test tan(interval(-5.0, -5.0)) === Interval(0x1b0b4b739bbb06p-51, 0x1b0b4b739bbb07p-51) + + @test tan(interval(-4.0, 7.0)) === entireinterval() + + @test tan(interval(-4.0, 6.0)) === entireinterval() + + @test tan(interval(-4.0, 5.0)) === entireinterval() + + @test tan(interval(-4.0, 4.0)) === entireinterval() + + @test tan(interval(-4.0, 3.0)) === entireinterval() + + @test tan(interval(-4.0, 2.0)) === entireinterval() + + @test tan(interval(-4.0, 1.0)) === entireinterval() + + @test tan(interval(-4.0, 0.0)) === entireinterval() + + @test tan(interval(-4.0, -1.0)) === entireinterval() + + @test tan(interval(-4.0, -2.0)) === Interval(-0x12866f9be4de14p-52, 0x117af62e0950f9p-51) + + @test tan(interval(-4.0, -3.0)) === Interval(-0x12866f9be4de14p-52, 0x123ef71254b870p-55) + + @test tan(interval(-4.0, -4.0)) === Interval(-0x12866f9be4de14p-52, -0x12866f9be4de13p-52) + + @test tan(interval(-3.0, 7.0)) === entireinterval() + + @test tan(interval(-3.0, 6.0)) === entireinterval() + + @test tan(interval(-3.0, 5.0)) === entireinterval() + + @test tan(interval(-3.0, 4.0)) === entireinterval() + + @test tan(interval(-3.0, 3.0)) === entireinterval() + + @test tan(interval(-3.0, 2.0)) === entireinterval() + + @test tan(interval(-3.0, 1.0)) === entireinterval() + + @test tan(interval(-3.0, 0.0)) === entireinterval() + + @test tan(interval(-3.0, -1.0)) === entireinterval() + + @test tan(interval(-3.0, -2.0)) === Interval(0x123ef71254b86fp-55, 0x117af62e0950f9p-51) + + @test tan(interval(-3.0, -3.0)) === Interval(0x123ef71254b86fp-55, 0x123ef71254b870p-55) + + @test tan(interval(-2.0, 7.0)) === entireinterval() + + @test tan(interval(-2.0, 6.0)) === entireinterval() + + @test tan(interval(-2.0, 5.0)) === entireinterval() + + @test tan(interval(-2.0, 4.0)) === entireinterval() + + @test tan(interval(-2.0, 3.0)) === entireinterval() + + @test tan(interval(-2.0, 2.0)) === entireinterval() + + @test tan(interval(-2.0, 1.0)) === entireinterval() + + @test tan(interval(-2.0, 0.0)) === entireinterval() + + @test tan(interval(-2.0, -1.0)) === entireinterval() + + @test tan(interval(-2.0, -2.0)) === Interval(0x117af62e0950f8p-51, 0x117af62e0950f9p-51) + + @test tan(interval(-1.0, 7.0)) === entireinterval() + + @test tan(interval(-1.0, 6.0)) === entireinterval() + + @test tan(interval(-1.0, 5.0)) === entireinterval() + + @test tan(interval(-1.0, 4.0)) === entireinterval() + + @test tan(interval(-1.0, 3.0)) === entireinterval() + + @test tan(interval(-1.0, 2.0)) === entireinterval() + + @test tan(interval(-1.0, 1.0)) === Interval(-0x18eb245cbee3a6p-52, 0x18eb245cbee3a6p-52) + + @test tan(interval(-1.0, 0.0)) === Interval(-0x18eb245cbee3a6p-52, 0.0) + + @test tan(interval(-1.0, -1.0)) === Interval(-0x18eb245cbee3a6p-52, -0x18eb245cbee3a5p-52) + + @test tan(interval(1.0, 7.0)) === entireinterval() + + @test tan(interval(1.0, 6.0)) === entireinterval() + + @test tan(interval(1.0, 5.0)) === entireinterval() + + @test tan(interval(1.0, 4.0)) === entireinterval() + + @test tan(interval(1.0, 3.0)) === entireinterval() + + @test tan(interval(1.0, 2.0)) === entireinterval() + + @test tan(interval(1.0, 1.0)) === Interval(0x18eb245cbee3a5p-52, 0x18eb245cbee3a6p-52) + + @test tan(interval(2.0, 7.0)) === entireinterval() + + @test tan(interval(2.0, 6.0)) === entireinterval() + + @test tan(interval(2.0, 5.0)) === entireinterval() + + @test tan(interval(2.0, 4.0)) === Interval(-0x117af62e0950f9p-51, 0x12866f9be4de14p-52) + + @test tan(interval(2.0, 3.0)) === Interval(-0x117af62e0950f9p-51, -0x123ef71254b86fp-55) + + @test tan(interval(2.0, 2.0)) === Interval(-0x117af62e0950f9p-51, -0x117af62e0950f8p-51) + + @test tan(interval(3.0, 7.0)) === entireinterval() + + @test tan(interval(3.0, 6.0)) === entireinterval() + + @test tan(interval(3.0, 5.0)) === entireinterval() + + @test tan(interval(3.0, 4.0)) === Interval(-0x123ef71254b870p-55, 0x12866f9be4de14p-52) + + @test tan(interval(3.0, 3.0)) === Interval(-0x123ef71254b870p-55, -0x123ef71254b86fp-55) + + @test tan(interval(4.0, 7.0)) === entireinterval() + + @test tan(interval(4.0, 6.0)) === entireinterval() + + @test tan(interval(4.0, 5.0)) === entireinterval() + + @test tan(interval(4.0, 4.0)) === Interval(0x12866f9be4de13p-52, 0x12866f9be4de14p-52) + + @test tan(interval(5.0, 7.0)) === Interval(-0x1b0b4b739bbb07p-51, 0x1be2e6e13eea79p-53) + + @test tan(interval(5.0, 6.0)) === Interval(-0x1b0b4b739bbb07p-51, -0x129fd86ebb95bep-54) + + @test tan(interval(5.0, 5.0)) === Interval(-0x1b0b4b739bbb07p-51, -0x1b0b4b739bbb06p-51) + + @test tan(interval(6.0, 7.0)) === Interval(-0x129fd86ebb95bfp-54, 0x1be2e6e13eea79p-53) + + @test tan(interval(6.0, 6.0)) === Interval(-0x129fd86ebb95bfp-54, -0x129fd86ebb95bep-54) + + @test tan(interval(7.0, 7.0)) === Interval(0x1be2e6e13eea78p-53, 0x1be2e6e13eea79p-53) + +end + +@testset "mpfi_tanh" begin + + @test tanh(interval(-Inf, -7.0)) === Interval(-1.0, -0x1ffffc832750f1p-53) + + @test tanh(interval(-Inf, 0.0)) === Interval(-1.0, 0.0) + + @test tanh(interval(-Inf, 8.0)) === Interval(-1.0, 0x1fffff872a91f9p-53) + + @test tanh(entireinterval()) === Interval(-1.0, +1.0) + + @test tanh(interval(-1.0, 0.0)) === Interval(-0x185efab514f395p-53, 0.0) + + @test tanh(interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test tanh(interval(0.0, 1.0)) === Interval(0.0, 0x185efab514f395p-53) + + @test tanh(interval(0.0, 8.0)) === Interval(0.0, 0x1fffff872a91f9p-53) + + @test tanh(interval(0.0, +Inf)) === Interval(0.0, +1.0) + + @test tanh(interval(-0.125, 0.0)) === Interval(-0x1fd5992bc4b835p-56, 0.0) + + @test tanh(interval(0.0, 0x10000000000001p-53)) === Interval(0.0, 0x1d9353d7568af5p-54) + + @test tanh(interval(-4.5, -0.625)) === Interval(-0x1ffdfa72153984p-53, -0x11bf47eabb8f95p-53) + + @test tanh(interval(1.0, 3.0)) === Interval(0x185efab514f394p-53, 0x1fd77d111a0b00p-53) + + @test tanh(interval(17.0, 18.0)) === Interval(0x1fffffffffffe1p-53, 0x1ffffffffffffcp-53) + +end + +@testset "mpfi_union" begin + + @test hull(interval(-Inf, -7.0), interval(-1.0, +8.0)) === Interval(-Inf, +8.0) + + @test hull(interval(-Inf, 0.0), interval(+8.0, +Inf)) === entireinterval() + + @test hull(interval(-Inf, +8.0), interval(0.0, +8.0)) === Interval(-Inf, +8.0) + + @test hull(entireinterval(), interval(0.0, +8.0)) === entireinterval() + + @test hull(interval(0.0, 0.0), interval(-Inf, -7.0)) === Interval(-Inf, 0.0) + + @test hull(interval(0.0, +8.0), interval(-7.0, 0.0)) === Interval(-7.0, +8.0) + + @test hull(interval(0.0, 0.0), interval(0.0, +8.0)) === Interval(0.0, +8.0) + + @test hull(interval(0.0, +Inf), interval(0.0, +8.0)) === Interval(0.0, +Inf) + + @test hull(interval(0.0, 0.0), interval(+8.0, +Inf)) === Interval(0.0, +Inf) + + @test hull(interval(0.0, 0.0), entireinterval()) === entireinterval() + + @test hull(interval(0.0, +8.0), interval(-7.0, +8.0)) === Interval(-7.0, +8.0) + + @test hull(interval(0.0, 0.0), interval(0.0, 0.0)) === Interval(0.0, 0.0) + + @test hull(interval(0.0, +Inf), interval(0.0, +8.0)) === Interval(0.0, +Inf) + + @test hull(interval(0x12p0, 0x90p0), interval(-0x0dp0, 0x34p0)) === Interval(-0x0dp0, 0x90p0) + +end + diff --git a/test/test_ITF1788/pow_rev.jl b/test/test_ITF1788/pow_rev.jl new file mode 100644 index 000000000..6f4ba0cec --- /dev/null +++ b/test/test_ITF1788/pow_rev.jl @@ -0,0 +1,1615 @@ +@testset "minimal.powRev1_test" begin + + @test pow_rev1(emptyinterval(), emptyinterval(), emptyinterval()) === emptyinterval() + + @test pow_rev1(emptyinterval(), entireinterval(), emptyinterval()) === emptyinterval() + + @test pow_rev1(entireinterval(), emptyinterval(), emptyinterval()) === emptyinterval() + + @test pow_rev1(entireinterval(), entireinterval(), emptyinterval()) === emptyinterval() + + @test pow_rev1(emptyinterval(), emptyinterval(), entireinterval()) === emptyinterval() + + @test pow_rev1(emptyinterval(), entireinterval(), entireinterval()) === emptyinterval() + + @test pow_rev1(entireinterval(), emptyinterval(), entireinterval()) === emptyinterval() + + @test pow_rev1(entireinterval(), entireinterval(), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), entireinterval(), interval(-Inf,-1.0)) === emptyinterval() + + @test_broken pow_rev1(interval(-Inf,-1.0), entireinterval(), interval(-Inf,0.0)) === emptyinterval() + + @test_broken pow_rev1(interval(-Inf,0.0), entireinterval(), interval(-Inf,0.0)) === emptyinterval() + + @test pow_rev1(interval(-Inf,0.0), interval(-Inf,0.0), entireinterval()) === emptyinterval() + + @test_broken pow_rev1(interval(-Inf,0.0), interval(-Inf,0.9), interval(0.0,1.0)) === emptyinterval() + + @test_broken pow_rev1(interval(-Inf,0.0), interval(1.1,Inf), interval(1.0,Inf)) === emptyinterval() + + @test_broken pow_rev1(interval(0.0,Inf), interval(1.1,Inf), interval(0.0,1.0)) === emptyinterval() + + @test_broken pow_rev1(interval(0.0,Inf), interval(-Inf,0.9), interval(1.0,Inf)) === emptyinterval() + + @test pow_rev1(interval(0.0,0.0), interval(1.0,1.0), interval(-Inf,0.0)) === emptyinterval() + + @test pow_rev1(entireinterval(), interval(0.0,0.0), entireinterval()) === Interval(0.0,0.0) + + @test pow_rev1(entireinterval(), interval(-Inf,0.0), entireinterval()) === Interval(0.0,0.0) + + @test pow_rev1(interval(0.0,Inf), interval(-Inf,0.0), entireinterval()) === Interval(0.0,0.0) + + @test pow_rev1(interval(0.0,Inf), interval(0.0,0.0), entireinterval()) === Interval(0.0,0.0) + + @test pow_rev1(interval(1.0,2.0), interval(0.0,0.0), entireinterval()) === Interval(0.0,0.0) + + @test pow_rev1(interval(1.0,1.0), interval(0.0,0.0), interval(0.0,0.0)) === Interval(0.0,0.0) + + @test pow_rev1(entireinterval(), interval(1.0,1.0), interval(1.0,1.0)) === Interval(1.0,1.0) + + @test_broken pow_rev1(interval(0.0,0.0), interval(1.0,1.0), entireinterval()) === Interval(0.0,Inf) + + @test_broken pow_rev1(interval(0.0,0.0), interval(1.0,1.0), interval(2.0,3.0)) === Interval(2.0,3.0) + + @test_broken pow_rev1(entireinterval(), interval(1.0,1.0), entireinterval()) === Interval(0.0,Inf) + + @test_broken pow_rev1(entireinterval(), interval(1.0,1.0), interval(20.0,30.0)) === Interval(20.0,30.0) + + @test_broken pow_rev1(interval(0.0,0.0), interval(1.0,1.0), interval(1.0,1.0)) === Interval(1.0,1.0) + + @test pow_rev1(interval(-4.0,-2.0), interval(0.0,0.5), entireinterval()) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(interval(-Inf,-2.0), interval(0.0,0.5), entireinterval()) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,-2.0), interval(-Inf,0.5), entireinterval()) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(interval(-Inf,-2.0), interval(-Inf,0.5), entireinterval()) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,-2.0), interval(0.25,0.5), entireinterval()) === Interval(0x1.306FE0A31B715p0, 2.0) + + @test pow_rev1(interval(-Inf,-2.0), interval(0.25,0.5), entireinterval()) === Interval(1.0, 2.0) + + @test pow_rev1(interval(-4.0,-2.0), interval(0.25,1.0), entireinterval()) === Interval(1.0, 2.0) + + @test pow_rev1(interval(-Inf,-2.0), interval(0.25,1.0), entireinterval()) === Interval(1.0, 2.0) + + @test pow_rev1(interval(-4.0,-2.0), interval(1.0,1.0), entireinterval()) === Interval(1.0, 1.0) + + @test pow_rev1(interval(-Inf,-2.0), interval(1.0,1.0), entireinterval()) === Interval(1.0, 1.0) + + @test pow_rev1(interval(-4.0,-2.0), interval(0.0,1.0), entireinterval()) === Interval(1.0, Inf) + + @test pow_rev1(interval(-Inf,-2.0), interval(0.0,1.0), entireinterval()) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,-2.0), interval(0.0,2.0), entireinterval()) === Interval(0x1.6A09E667F3BCCp-1, Inf) + + @test pow_rev1(interval(-Inf,-2.0), interval(0.0,2.0), entireinterval()) === Interval(0x1.6A09E667F3BCCp-1, Inf) + + @test pow_rev1(interval(-4.0,-2.0), interval(0.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,-2.0), interval(0.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,-2.0), interval(-Inf,2.0), entireinterval()) === Interval(0x1.6A09E667F3BCCp-1, Inf) + + @test pow_rev1(interval(-Inf,-2.0), interval(-Inf,2.0), entireinterval()) === Interval(0x1.6A09E667F3BCCp-1, Inf) + + @test pow_rev1(interval(-4.0,-2.0), interval(-Inf,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,-2.0), interval(-Inf,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,-2.0), interval(0.5,2.0), entireinterval()) === Interval(0x1.6A09E667F3BCCp-1, 0x1.6A09E667F3BCDp0) + + @test pow_rev1(interval(-Inf,-2.0), interval(0.5,2.0), entireinterval()) === Interval(0x1.6A09E667F3BCCp-1, 0x1.6A09E667F3BCDp0) + + @test pow_rev1(interval(-4.0,-2.0), interval(0.5,Inf), entireinterval()) === Interval(0.0, 0x1.6A09E667F3BCDp0) + + @test pow_rev1(interval(-Inf,-2.0), interval(0.5,Inf), entireinterval()) === Interval(0.0, 0x1.6A09E667F3BCDp0) + + @test pow_rev1(interval(-4.0,-2.0), interval(1.0,2.0), entireinterval()) === Interval(0x1.6A09E667F3BCCp-1, 1.0) + + @test pow_rev1(interval(-Inf,-2.0), interval(1.0,2.0), entireinterval()) === Interval(0x1.6A09E667F3BCCp-1, 1.0) + + @test pow_rev1(interval(-4.0,-2.0), interval(1.0,Inf), entireinterval()) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-Inf,-2.0), interval(1.0,Inf), entireinterval()) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,-2.0), interval(2.0,4.0), entireinterval()) === Interval(0.5, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(-Inf,-2.0), interval(2.0,4.0), entireinterval()) === Interval(0.5, 1.0) + + @test pow_rev1(interval(-4.0,-2.0), interval(2.0,Inf), entireinterval()) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(-Inf,-2.0), interval(2.0,Inf), entireinterval()) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,0.0), interval(0.0,0.5), entireinterval()) === emptyinterval() + + @test pow_rev1(interval(0.0,0.0), interval(-Inf,0.5), entireinterval()) === emptyinterval() + + @test pow_rev1(interval(0.0,0.0), interval(0.25,0.5), entireinterval()) === emptyinterval() + + @test_broken pow_rev1(interval(0.0,0.0), interval(0.25,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,0.0), interval(1.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,0.0), interval(0.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,0.0), interval(0.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,0.0), interval(0.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,0.0), interval(-Inf,2.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,0.0), interval(-Inf,Inf), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,0.0), interval(0.5,2.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,0.0), interval(0.5,Inf), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,0.0), interval(1.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,0.0), interval(1.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,0.0), interval(2.0,4.0), entireinterval()) === emptyinterval() + + @test pow_rev1(interval(0.0,0.0), interval(2.0,Inf), entireinterval()) === emptyinterval() + + @test pow_rev1(interval(-4.0,0.0), interval(0.0,0.5), entireinterval()) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(interval(-Inf,0.0), interval(0.0,0.5), entireinterval()) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,0.0), interval(-Inf,0.5), entireinterval()) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(interval(-Inf,0.0), interval(-Inf,0.5), entireinterval()) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,0.0), interval(0.25,0.5), entireinterval()) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(interval(-Inf,0.0), interval(0.25,0.5), entireinterval()) === Interval(1.0, Inf) + + @test_broken pow_rev1(interval(-4.0,0.0), interval(0.25,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-Inf,0.0), interval(0.25,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-4.0,0.0), interval(1.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-Inf,0.0), interval(1.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-4.0,0.0), interval(0.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-Inf,0.0), interval(0.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,0.0), interval(0.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,0.0), interval(0.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,0.0), interval(0.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,0.0), interval(0.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,0.0), interval(-Inf,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,0.0), interval(-Inf,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,0.0), interval(-Inf,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,0.0), interval(-Inf,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,0.0), interval(0.5,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,0.0), interval(0.5,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,0.0), interval(0.5,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,0.0), interval(0.5,Inf), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-4.0,0.0), interval(1.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-Inf,0.0), interval(1.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-4.0,0.0), interval(1.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-Inf,0.0), interval(1.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,0.0), interval(2.0,4.0), entireinterval()) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(-Inf,0.0), interval(2.0,4.0), entireinterval()) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,0.0), interval(2.0,Inf), entireinterval()) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(-Inf,0.0), interval(2.0,Inf), entireinterval()) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,4.0), interval(0.0,0.5), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.0,0.5), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(-Inf,0.5), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(-Inf,0.5), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(0.0,0.5), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(0.0,0.5), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(-Inf,0.5), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(-Inf,0.5), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-4.0,4.0), interval(0.0,0.5), interval(0.0, 1.0)) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test_broken pow_rev1(interval(-Inf,4.0), interval(0.0,0.5), interval(0.0, 1.0)) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test_broken pow_rev1(interval(-4.0,4.0), interval(-Inf,0.5), interval(0.0, 1.0)) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test_broken pow_rev1(interval(-Inf,4.0), interval(-Inf,0.5), interval(0.0, 1.0)) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(-4.0,Inf), interval(0.0,0.5), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(entireinterval(), interval(0.0,0.5), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,Inf), interval(-Inf,0.5), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(entireinterval(), interval(-Inf,0.5), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(-4.0,4.0), interval(0.0,0.5), interval(1.0, Inf)) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.0,0.5), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test_broken pow_rev1(interval(-4.0,4.0), interval(-Inf,0.5), interval(1.0, Inf)) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(-Inf,0.5), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test_broken pow_rev1(interval(-4.0,Inf), interval(0.0,0.5), interval(1.0, Inf)) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(entireinterval(), interval(0.0,0.5), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test_broken pow_rev1(interval(-4.0,Inf), interval(-Inf,0.5), interval(1.0, Inf)) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(entireinterval(), interval(-Inf,0.5), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(0.25,0.5), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.25,0.5), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(0.25,0.5), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(0.25,0.5), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-4.0,4.0), interval(0.25,0.5), interval(0.0, 1.0)) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test_broken pow_rev1(interval(-Inf,4.0), interval(0.25,0.5), interval(0.0, 1.0)) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(-4.0,Inf), interval(0.25,0.5), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(entireinterval(), interval(0.25,0.5), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(-4.0,4.0), interval(0.25,0.5), interval(1.0, Inf)) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.25,0.5), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test_broken pow_rev1(interval(-4.0,Inf), interval(0.25,0.5), interval(1.0, Inf)) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(entireinterval(), interval(0.25,0.5), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(0.25,1.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.25,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-4.0,4.0), interval(1.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-Inf,4.0), interval(1.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(0.25,1.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(0.25,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-4.0,Inf), interval(1.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(entireinterval(), interval(1.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(0.25,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-Inf,4.0), interval(0.25,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(-4.0,4.0), interval(1.0,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(-Inf,4.0), interval(1.0,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,Inf), interval(0.25,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(entireinterval(), interval(0.25,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(-4.0,Inf), interval(1.0,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(entireinterval(), interval(1.0,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,4.0), interval(0.25,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.25,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test_broken pow_rev1(interval(-4.0,4.0), interval(1.0,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test_broken pow_rev1(interval(-Inf,4.0), interval(1.0,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(0.25,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(entireinterval(), interval(0.25,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test_broken pow_rev1(interval(-4.0,Inf), interval(1.0,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test_broken pow_rev1(entireinterval(), interval(1.0,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(0.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(0.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(0.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(0.0,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-Inf,4.0), interval(0.0,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,Inf), interval(0.0,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(entireinterval(), interval(0.0,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,4.0), interval(0.0,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.0,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(0.0,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(entireinterval(), interval(0.0,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(0.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(0.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(-Inf,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(-Inf,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(-Inf,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(-Inf,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(0.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(0.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(0.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(0.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(-Inf,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(-Inf,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(-Inf,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(-Inf,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(0.0,2.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-Inf,4.0), interval(0.0,2.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,4.0), interval(0.0,Inf), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-Inf,4.0), interval(0.0,Inf), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,4.0), interval(-Inf,2.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-Inf,4.0), interval(-Inf,2.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,4.0), interval(-Inf,Inf), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-Inf,4.0), interval(-Inf,Inf), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,Inf), interval(0.0,2.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(entireinterval(), interval(0.0,2.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,Inf), interval(0.0,Inf), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(entireinterval(), interval(0.0,Inf), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,Inf), interval(-Inf,2.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(entireinterval(), interval(-Inf,2.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,Inf), interval(-Inf,Inf), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(entireinterval(), interval(-Inf,Inf), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,4.0), interval(0.0,2.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.0,2.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(0.0,Inf), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.0,Inf), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(-Inf,2.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(-Inf,2.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(-Inf,Inf), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(-Inf,Inf), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(0.0,2.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(entireinterval(), interval(0.0,2.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(0.0,Inf), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(entireinterval(), interval(0.0,Inf), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(-Inf,2.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(entireinterval(), interval(-Inf,2.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(-Inf,Inf), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(entireinterval(), interval(-Inf,Inf), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(0.5,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.5,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(0.5,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.5,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(0.5,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(0.5,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(0.5,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(0.5,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(0.5,2.0), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-Inf,4.0), interval(0.5,2.0), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,4.0), interval(0.5,Inf), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-Inf,4.0), interval(0.5,Inf), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,Inf), interval(0.5,2.0), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(entireinterval(), interval(0.5,2.0), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,Inf), interval(0.5,Inf), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(entireinterval(), interval(0.5,Inf), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,4.0), interval(0.5,2.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.5,2.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(0.5,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(0.5,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(0.5,2.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(entireinterval(), interval(0.5,2.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(0.5,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(entireinterval(), interval(0.5,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(1.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(1.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(1.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(1.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(1.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(1.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(1.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(1.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(1.0,2.0), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-Inf,4.0), interval(1.0,2.0), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,4.0), interval(1.0,Inf), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-Inf,4.0), interval(1.0,Inf), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,Inf), interval(1.0,2.0), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(entireinterval(), interval(1.0,2.0), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,Inf), interval(1.0,Inf), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(entireinterval(), interval(1.0,Inf), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(-4.0,4.0), interval(1.0,2.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(1.0,2.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(1.0,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(1.0,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(1.0,2.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(entireinterval(), interval(1.0,2.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(1.0,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(entireinterval(), interval(1.0,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(2.0,4.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(2.0,4.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,4.0), interval(2.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-Inf,4.0), interval(2.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(2.0,4.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(2.0,4.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(2.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(entireinterval(), interval(2.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(-4.0,4.0), interval(2.0,4.0), interval(0.0,1.0)) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(-Inf,4.0), interval(2.0,4.0), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(-4.0,4.0), interval(2.0,Inf), interval(0.0,1.0)) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(-Inf,4.0), interval(2.0,Inf), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(-4.0,Inf), interval(2.0,4.0), interval(0.0,1.0)) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(entireinterval(), interval(2.0,4.0), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(-4.0,Inf), interval(2.0,Inf), interval(0.0,1.0)) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(entireinterval(), interval(2.0,Inf), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(-4.0,4.0), interval(2.0,4.0), interval(1.0,Inf)) === Interval(0x1.306FE0A31B715p0, Inf) + + @test_broken pow_rev1(interval(-Inf,4.0), interval(2.0,4.0), interval(1.0,Inf)) === Interval(0x1.306FE0A31B715p0, Inf) + + @test_broken pow_rev1(interval(-4.0,4.0), interval(2.0,Inf), interval(1.0,Inf)) === Interval(0x1.306FE0A31B715p0, Inf) + + @test_broken pow_rev1(interval(-Inf,4.0), interval(2.0,Inf), interval(1.0,Inf)) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(2.0,4.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(entireinterval(), interval(2.0,4.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(-4.0,Inf), interval(2.0,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(entireinterval(), interval(2.0,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(0.0,0.5), entireinterval()) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(0.0,4.0), interval(-Inf,0.5), entireinterval()) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(0.0,Inf), interval(0.0,0.5), entireinterval()) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,Inf), interval(-Inf,0.5), entireinterval()) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,4.0), interval(0.0,0.5), interval(0.0, 1.0)) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(0.0,4.0), interval(-Inf,0.5), interval(0.0, 1.0)) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(0.0,Inf), interval(0.0,0.5), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,Inf), interval(-Inf,0.5), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,4.0), interval(0.0,0.5), interval(1.0, Inf)) === emptyinterval() + + @test pow_rev1(interval(0.0,4.0), interval(-Inf,0.5), interval(1.0, Inf)) === emptyinterval() + + @test_broken pow_rev1(interval(0.0,Inf), interval(0.0,0.5), interval(1.0, Inf)) === emptyinterval() + + @test_broken pow_rev1(interval(0.0,Inf), interval(-Inf,0.5), interval(1.0, Inf)) === emptyinterval() + + @test pow_rev1(interval(0.0,4.0), interval(0.25,0.5), entireinterval()) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(0.0,Inf), interval(0.25,0.5), entireinterval()) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,4.0), interval(0.25,0.5), interval(0.0, 1.0)) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(0.0,Inf), interval(0.25,0.5), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,4.0), interval(0.25,0.5), interval(1.0, Inf)) === emptyinterval() + + @test_broken pow_rev1(interval(0.0,Inf), interval(0.25,0.5), interval(1.0, Inf)) === emptyinterval() + + @test_broken pow_rev1(interval(0.0,4.0), interval(0.25,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,4.0), interval(1.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,Inf), interval(0.25,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,Inf), interval(1.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(0.25,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(0.0,4.0), interval(1.0,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,Inf), interval(0.25,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(0.0,Inf), interval(1.0,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(0.0,4.0), interval(0.25,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test_broken pow_rev1(interval(0.0,4.0), interval(1.0,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test_broken pow_rev1(interval(0.0,Inf), interval(0.25,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test_broken pow_rev1(interval(0.0,Inf), interval(1.0,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test_broken pow_rev1(interval(0.0,4.0), interval(0.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,Inf), interval(0.0,1.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(0.0,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,Inf), interval(0.0,1.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(0.0,4.0), interval(0.0,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test_broken pow_rev1(interval(0.0,Inf), interval(0.0,1.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(0.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(0.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(-Inf,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(-Inf,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(0.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(0.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(-Inf,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(-Inf,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(0.0,2.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,4.0), interval(0.0,Inf), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,4.0), interval(-Inf,2.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,4.0), interval(-Inf,Inf), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,Inf), interval(0.0,2.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,Inf), interval(0.0,Inf), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,Inf), interval(-Inf,2.0), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,Inf), interval(-Inf,Inf), interval(0.0, 1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,4.0), interval(0.0,2.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(0.0,Inf), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(-Inf,2.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(-Inf,Inf), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(0.0,2.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(0.0,Inf), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(-Inf,2.0), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(-Inf,Inf), interval(1.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(0.5,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(0.5,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(0.5,2.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(0.5,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(0.5,2.0), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,4.0), interval(0.5,Inf), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,Inf), interval(0.5,2.0), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,Inf), interval(0.5,Inf), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,4.0), interval(0.5,2.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(0.5,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(0.5,2.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(0.5,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test_broken pow_rev1(interval(0.0,4.0), interval(1.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,4.0), interval(1.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,Inf), interval(1.0,2.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,Inf), interval(1.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev1(interval(0.0,4.0), interval(1.0,2.0), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(0.0,4.0), interval(1.0,Inf), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(0.0,Inf), interval(1.0,2.0), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test_broken pow_rev1(interval(0.0,Inf), interval(1.0,Inf), interval(0.0,1.0)) === Interval(0.0, 1.0) + + @test pow_rev1(interval(0.0,4.0), interval(1.0,2.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(1.0,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(1.0,2.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(1.0,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(2.0,4.0), entireinterval()) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(2.0,Inf), entireinterval()) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(2.0,4.0), entireinterval()) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(2.0,Inf), entireinterval()) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(2.0,4.0), interval(0.0,1.0)) === emptyinterval() + + @test pow_rev1(interval(0.0,4.0), interval(2.0,Inf), interval(0.0,1.0)) === emptyinterval() + + @test_broken pow_rev1(interval(0.0,Inf), interval(2.0,4.0), interval(0.0,1.0)) === emptyinterval() + + @test_broken pow_rev1(interval(0.0,Inf), interval(2.0,Inf), interval(0.0,1.0)) === emptyinterval() + + @test pow_rev1(interval(0.0,4.0), interval(2.0,4.0), interval(1.0,Inf)) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(interval(0.0,4.0), interval(2.0,Inf), interval(1.0,Inf)) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(2.0,4.0), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(0.0,Inf), interval(2.0,Inf), interval(1.0,Inf)) === Interval(1.0, Inf) + + @test pow_rev1(interval(2.0,4.0), interval(0.0,0.5), entireinterval()) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(2.0,4.0), interval(-Inf,0.5), entireinterval()) === Interval(0.0, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(2.0,Inf), interval(0.0,0.5), entireinterval()) === Interval(0.0, 1.0) + + @test pow_rev1(interval(2.0,Inf), interval(-Inf,0.5), entireinterval()) === Interval(0.0, 1.0) + + @test pow_rev1(interval(2.0,4.0), interval(0.25,0.5), entireinterval()) === Interval(0.5, 0x1.AE89F995AD3AEp-1) + + @test pow_rev1(interval(2.0,Inf), interval(0.25,0.5), entireinterval()) === Interval(0.5, 1.0) + + @test pow_rev1(interval(2.0,4.0), interval(0.25,1.0), entireinterval()) === Interval(0.5, 1.0) + + @test pow_rev1(interval(2.0,4.0), interval(1.0,1.0), entireinterval()) === Interval(1.0, 1.0) + + @test pow_rev1(interval(2.0,Inf), interval(0.25,1.0), entireinterval()) === Interval(0.5, 1.0) + + @test pow_rev1(interval(2.0,Inf), interval(1.0,1.0), entireinterval()) === Interval(1.0, 1.0) + + @test pow_rev1(interval(2.0,4.0), interval(0.0,1.0), entireinterval()) === Interval(0.0, 1.0) + + @test pow_rev1(interval(2.0,Inf), interval(0.0,1.0), entireinterval()) === Interval(0.0, 1.0) + + @test pow_rev1(interval(2.0,4.0), interval(0.0,2.0), entireinterval()) === Interval(0.0, 0x1.6A09E667F3BCDp0) + + @test pow_rev1(interval(2.0,4.0), interval(0.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(2.0,4.0), interval(-Inf,2.0), entireinterval()) === Interval(0.0, 0x1.6A09E667F3BCDp0) + + @test pow_rev1(interval(2.0,4.0), interval(-Inf,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(2.0,Inf), interval(0.0,2.0), entireinterval()) === Interval(0.0, 0x1.6A09E667F3BCDp0) + + @test pow_rev1(interval(2.0,Inf), interval(0.0,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(2.0,Inf), interval(-Inf,2.0), entireinterval()) === Interval(0.0, 0x1.6A09E667F3BCDp0) + + @test pow_rev1(interval(2.0,Inf), interval(-Inf,Inf), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev1(interval(2.0,4.0), interval(0.5,2.0), entireinterval()) === Interval(0x1.6A09E667F3BCCp-1, 0x1.6A09E667F3BCDp0) + + @test pow_rev1(interval(2.0,4.0), interval(0.5,Inf), entireinterval()) === Interval(0x1.6A09E667F3BCCp-1, Inf) + + @test pow_rev1(interval(2.0,Inf), interval(0.5,2.0), entireinterval()) === Interval(0x1.6A09E667F3BCCp-1, 0x1.6A09E667F3BCDp0) + + @test pow_rev1(interval(2.0,Inf), interval(0.5,Inf), entireinterval()) === Interval(0x1.6A09E667F3BCCp-1, Inf) + + @test pow_rev1(interval(2.0,4.0), interval(1.0,2.0), entireinterval()) === Interval(1.0, 0x1.6A09E667F3BCDp0) + + @test pow_rev1(interval(2.0,4.0), interval(1.0,Inf), entireinterval()) === Interval(1.0, Inf) + + @test pow_rev1(interval(2.0,Inf), interval(1.0,2.0), entireinterval()) === Interval(1.0, 0x1.6A09E667F3BCDp0) + + @test pow_rev1(interval(2.0,Inf), interval(1.0,Inf), entireinterval()) === Interval(1.0, Inf) + + @test pow_rev1(interval(2.0,4.0), interval(2.0,4.0), entireinterval()) === Interval(0x1.306FE0A31B715p0, 2.0) + + @test pow_rev1(interval(2.0,4.0), interval(2.0,Inf), entireinterval()) === Interval(0x1.306FE0A31B715p0, Inf) + + @test pow_rev1(interval(2.0,Inf), interval(2.0,4.0), entireinterval()) === Interval(1.0, 2.0) + + @test pow_rev1(interval(2.0,Inf), interval(2.0,Inf), entireinterval()) === Interval(1.0, Inf) + +end + +@testset "minimal.powRev2_test" begin + + @test pow_rev2(emptyinterval(), emptyinterval(), emptyinterval()) === emptyinterval() + + @test pow_rev2(emptyinterval(), entireinterval(), emptyinterval()) === emptyinterval() + + @test pow_rev2(entireinterval(), emptyinterval(), emptyinterval()) === emptyinterval() + + @test pow_rev2(entireinterval(), entireinterval(), emptyinterval()) === emptyinterval() + + @test pow_rev2(emptyinterval(), emptyinterval(), entireinterval()) === emptyinterval() + + @test pow_rev2(emptyinterval(), entireinterval(), entireinterval()) === emptyinterval() + + @test pow_rev2(entireinterval(), emptyinterval(), entireinterval()) === emptyinterval() + + @test pow_rev2(entireinterval(), entireinterval(), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 0.0), interval(-Inf, -0.1), entireinterval()) === emptyinterval() + + @test pow_rev2(interval(0.0, 0.0), interval(0.1, Inf), entireinterval()) === emptyinterval() + + @test pow_rev2(interval(0.0, 0.0), interval(0.0, 0.0), interval(-Inf, 0.0)) === emptyinterval() + + @test_broken pow_rev2(interval(-Inf, 0.9), interval(0.0, 0.9), interval(-Inf, 0.0)) === emptyinterval() + + @test_broken pow_rev2(interval(1.1, Inf), interval(1.1, Inf), interval(-Inf, 0.0)) === emptyinterval() + + @test_broken pow_rev2(interval(-Inf, 0.9), interval(1.1, Inf), interval(0.0, Inf)) === emptyinterval() + + @test_broken pow_rev2(interval(1.1, Inf), interval(0.0, 0.9), interval(0.0, Inf)) === emptyinterval() + + @test_broken pow_rev2(interval(0.0, 0.0), interval(0.0, 0.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(-Inf, 0.0), interval(-Inf, 0.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(-Inf, 0.0), interval(-Inf, 0.0), interval(1.0, 2.0)) === Interval(1.0, 2.0) + + @test_broken pow_rev2(entireinterval(), interval(0.0, 0.0), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev2(entireinterval(), interval(-Inf, 0.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(entireinterval(), interval(-Inf, 0.0), interval(1.0, 2.0)) === Interval(1.0, 2.0) + + @test_broken pow_rev2(interval(0.0, 0.0), entireinterval(), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(-Inf, 0.0), entireinterval(), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(-Inf, 0.0), entireinterval(), interval(1.0, 2.0)) === Interval(1.0, 2.0) + + @test_broken pow_rev2(interval(1.0, 1.0), entireinterval(), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, 1.0), interval(1.0, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, 1.0), interval(1.0, 1.0), interval(2.0, 3.0)) === Interval(2.0, 3.0) + + @test_broken pow_rev2(entireinterval(), interval(1.0, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(entireinterval(), interval(1.0, 1.0), interval(2.0, 3.0)) === Interval(2.0, 3.0) + + @test pow_rev2(interval(2.0, 3.0), interval(1.0, 1.0), entireinterval()) === Interval(0.0, 0.0) + + @test pow_rev2(interval(2.0, 3.0), interval(1.0, 1.0), interval(2.0, 3.0)) === emptyinterval() + + @test pow_rev2(interval(0.0, 0.5), interval(0.0, 0.5), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(0.0, 0.5), interval(0.0, 0.5), interval(-Inf, 0.0)) === emptyinterval() + + @test_broken pow_rev2(interval(0.0, 0.5), interval(0.25, 0.5), entireinterval()) === Interval(0.0, 2.0) + + @test_broken pow_rev2(interval(0.0, 0.25), interval(0.5, 1.0), entireinterval()) === Interval(0.0, 0.5) + + @test pow_rev2(interval(0.0, 0.25), interval(1.0, 1.0), entireinterval()) === Interval(0.0, 0.0) + + @test pow_rev2(interval(0.0, 0.25), interval(0.0, 1.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 0.25), interval(0.0, 1.0), interval(-Inf, 0.0)) === Interval(0.0, 0.0) + + @test_broken pow_rev2(interval(0.0, 0.25), interval(0.0, 2.0), entireinterval()) === Interval(-0.5, Inf) + + @test pow_rev2(interval(0.0, 0.25), interval(0.0, Inf), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.0, 0.25), interval(0.5, 2.0), entireinterval()) === Interval(-0.5, 0.5) + + @test_broken pow_rev2(interval(0.0, 0.25), interval(0.5, Inf), entireinterval()) === Interval(-Inf, 0.5) + + @test_broken pow_rev2(interval(0.0, 0.25), interval(1.0, 2.0), entireinterval()) === Interval(-0.5, 0.0) + + @test pow_rev2(interval(0.0, 0.25), interval(1.0, 2.0), interval(0.0, Inf)) === Interval(0.0, 0.0) + + @test pow_rev2(interval(0.0, 0.25), interval(1.0, Inf), entireinterval()) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 0.25), interval(1.0, Inf), interval(0.0, Inf)) === Interval(0.0, 0.0) + + @test_broken pow_rev2(interval(0.0, 0.25), interval(2.0, 4.0), entireinterval()) === Interval(-1.0, 0.0) + + @test_broken pow_rev2(interval(0.0, 0.25), interval(2.0, 4.0), interval(0.0, Inf)) === emptyinterval() + + @test pow_rev2(interval(0.0, 0.25), interval(2.0, Inf), entireinterval()) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.0, 0.25), interval(2.0, Inf), interval(0.0, Inf)) === emptyinterval() + + @test_broken pow_rev2(interval(0.25, 0.5), interval(0.0, 0.5), entireinterval()) === Interval(0.5, Inf) + + @test_broken pow_rev2(interval(0.25, 0.5), interval(0.25, 0.5), entireinterval()) === Interval(0.5, 2.0) + + @test_broken pow_rev2(interval(0.25, 0.5), interval(0.5, 1.0), entireinterval()) === Interval(0.0, 1.0) + + @test pow_rev2(interval(0.25, 0.5), interval(1.0, 1.0), entireinterval()) === Interval(0.0, 0.0) + + @test pow_rev2(interval(0.25, 0.5), interval(0.0, 1.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.25, 0.5), interval(0.0, 1.0), interval(-Inf, 0.0)) === Interval(0.0, 0.0) + + @test_broken pow_rev2(interval(0.25, 0.5), interval(0.0, 2.0), entireinterval()) === Interval(-1.0, Inf) + + @test pow_rev2(interval(0.25, 0.5), interval(0.0, Inf), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.25, 0.5), interval(0.5, 2.0), entireinterval()) === Interval(-1.0, 1.0) + + @test_broken pow_rev2(interval(0.25, 0.5), interval(0.5, Inf), entireinterval()) === Interval(-Inf, 1.0) + + @test_broken pow_rev2(interval(0.25, 0.5), interval(1.0, 2.0), entireinterval()) === Interval(-1.0, 0.0) + + @test pow_rev2(interval(0.25, 0.5), interval(1.0, Inf), entireinterval()) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.25, 0.5), interval(2.0, 4.0), entireinterval()) === Interval(-2.0, -0.5) + + @test_broken pow_rev2(interval(0.25, 0.5), interval(2.0, Inf), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.25, 1.0), interval(0.0, 0.5), entireinterval()) === Interval(0.5, Inf) + + @test pow_rev2(interval(1.0, 1.0), interval(0.0, 0.5), entireinterval()) === emptyinterval() + + @test_broken pow_rev2(interval(0.25, 1.0), interval(0.25, 0.5), entireinterval()) === Interval(0.5, Inf) + + @test pow_rev2(interval(1.0, 1.0), interval(0.25, 0.5), entireinterval()) === emptyinterval() + + @test_broken pow_rev2(interval(0.25, 1.0), interval(0.5, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.25, 1.0), interval(1.0, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, 1.0), interval(0.5, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, 1.0), interval(1.0, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.25, 1.0), interval(0.0, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, 1.0), interval(0.0, 1.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.25, 1.0), interval(0.0, 2.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, 1.0), interval(0.0, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.25, 1.0), interval(0.0, Inf), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, 1.0), interval(0.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.25, 1.0), interval(0.5, 2.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, 1.0), interval(0.5, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.25, 1.0), interval(0.5, Inf), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, 1.0), interval(0.5, Inf), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.25, 1.0), interval(1.0, 2.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, 1.0), interval(1.0, 2.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.25, 1.0), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, 1.0), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.25, 1.0), interval(2.0, 4.0), entireinterval()) === Interval(-Inf, -0.5) + + @test pow_rev2(interval(1.0, 1.0), interval(2.0, 4.0), entireinterval()) === emptyinterval() + + @test_broken pow_rev2(interval(0.25, 1.0), interval(2.0, Inf), entireinterval()) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(1.0, 1.0), interval(2.0, Inf), entireinterval()) === emptyinterval() + + @test pow_rev2(interval(0.0, 1.0), interval(0.0, 0.5), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(0.0, 1.0), interval(0.0, 0.5), interval(-Inf, 0.0)) === emptyinterval() + + @test pow_rev2(interval(0.0, 1.0), interval(0.0, 0.5), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 1.0), interval(0.25, 0.5), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(0.0, 1.0), interval(0.25, 0.5), interval(-Inf, 0.0)) === emptyinterval() + + @test pow_rev2(interval(0.0, 1.0), interval(0.25, 0.5), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(0.0, 1.0), interval(0.5, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.0, 1.0), interval(1.0, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.0, 1.0), interval(0.5, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.0, 1.0), interval(1.0, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 1.0), interval(0.5, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(0.0, 1.0), interval(1.0, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(0.0, 1.0), interval(0.0, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.0, 1.0), interval(0.0, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 1.0), interval(0.0, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 1.0), interval(0.0, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 1.0), interval(0.0, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 1.0), interval(0.0, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 1.0), interval(0.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 1.0), interval(0.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 1.0), interval(0.0, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 1.0), interval(0.5, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 1.0), interval(0.5, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 1.0), interval(0.5, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 1.0), interval(0.5, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 1.0), interval(0.5, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 1.0), interval(0.5, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(0.0, 1.0), interval(1.0, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 1.0), interval(1.0, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.0, 1.0), interval(1.0, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(0.0, 1.0), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 1.0), interval(1.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.0, 1.0), interval(1.0, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 1.0), interval(2.0, 4.0), entireinterval()) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 1.0), interval(2.0, 4.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.0, 1.0), interval(2.0, 4.0), interval(0.0, Inf)) === emptyinterval() + + @test pow_rev2(interval(0.0, 1.0), interval(2.0, Inf), entireinterval()) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 1.0), interval(2.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.0, 1.0), interval(2.0, Inf), interval(0.0, Inf)) === emptyinterval() + + @test pow_rev2(interval(0.0, 2.0), interval(0.0, 0.5), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.0, 2.0), interval(0.0, 0.5), interval(-Inf, 0.0)) === Interval(-Inf, -1.0) + + @test pow_rev2(interval(0.0, 2.0), interval(0.0, 0.5), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, Inf), interval(0.0, 0.5), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, Inf), interval(0.0, 0.5), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, Inf), interval(0.0, 0.5), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 2.0), interval(0.25, 0.5), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.0, 2.0), interval(0.25, 0.5), interval(-Inf, 0.0)) === Interval(-Inf, -1.0) + + @test pow_rev2(interval(0.0, 2.0), interval(0.25, 0.5), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, Inf), interval(0.25, 0.5), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, Inf), interval(0.25, 0.5), interval(-Inf, 0.0)) === Interval(-Inf, -0.0) + + @test pow_rev2(interval(0.0, Inf), interval(0.25, 0.5), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 2.0), interval(0.5, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.0, 2.0), interval(1.0, 1.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 2.0), interval(0.5, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.0, 2.0), interval(1.0, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 2.0), interval(0.5, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(0.0, 2.0), interval(1.0, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, Inf), interval(0.5, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.0, Inf), interval(1.0, 1.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, Inf), interval(0.5, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.0, Inf), interval(1.0, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, Inf), interval(0.5, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(0.0, Inf), interval(1.0, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 2.0), interval(0.0, 1.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 2.0), interval(0.0, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 2.0), interval(0.0, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, Inf), interval(0.0, 1.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, Inf), interval(0.0, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, Inf), interval(0.0, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 2.0), interval(0.0, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 2.0), interval(0.0, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 2.0), interval(0.0, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, Inf), interval(0.0, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, Inf), interval(0.0, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, Inf), interval(0.0, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 2.0), interval(0.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 2.0), interval(0.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 2.0), interval(0.0, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, Inf), interval(0.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, Inf), interval(0.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, Inf), interval(0.0, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 2.0), interval(0.5, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 2.0), interval(0.5, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 2.0), interval(0.5, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, Inf), interval(0.5, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, Inf), interval(0.5, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, Inf), interval(0.5, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 2.0), interval(0.5, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 2.0), interval(0.5, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 2.0), interval(0.5, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, Inf), interval(0.5, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, Inf), interval(0.5, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, Inf), interval(0.5, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 2.0), interval(1.0, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 2.0), interval(1.0, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 2.0), interval(1.0, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, Inf), interval(1.0, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, Inf), interval(1.0, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, Inf), interval(1.0, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 2.0), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 2.0), interval(1.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, 2.0), interval(1.0, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, Inf), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, Inf), interval(1.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, Inf), interval(1.0, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 2.0), interval(2.0, 4.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 2.0), interval(2.0, 4.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.0, 2.0), interval(2.0, 4.0), interval(0.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev2(interval(0.0, Inf), interval(2.0, 4.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, Inf), interval(2.0, 4.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, Inf), interval(2.0, 4.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.0, 2.0), interval(2.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, 2.0), interval(2.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.0, 2.0), interval(2.0, Inf), interval(0.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev2(interval(0.0, Inf), interval(2.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.0, Inf), interval(2.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.0, Inf), interval(2.0, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, 2.0), interval(0.0, 0.5), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.5, 2.0), interval(0.0, 0.5), interval(-Inf, 0.0)) === Interval(-Inf, -1.0) + + @test_broken pow_rev2(interval(0.5, 2.0), interval(0.0, 0.5), interval(0.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev2(interval(0.5, Inf), interval(0.0, 0.5), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, Inf), interval(0.0, 0.5), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.5, Inf), interval(0.0, 0.5), interval(0.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev2(interval(0.5, 2.0), interval(0.25, 0.5), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.5, 2.0), interval(0.25, 0.5), interval(-Inf, 0.0)) === Interval(-Inf, -1.0) + + @test_broken pow_rev2(interval(0.5, 2.0), interval(0.25, 0.5), interval(0.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev2(interval(0.5, Inf), interval(0.25, 0.5), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, Inf), interval(0.25, 0.5), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.5, Inf), interval(0.25, 0.5), interval(0.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev2(interval(0.5, 2.0), interval(0.5, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.5, 2.0), interval(1.0, 1.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, 2.0), interval(0.5, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.5, 2.0), interval(1.0, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, 2.0), interval(0.5, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(0.5, 2.0), interval(1.0, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, Inf), interval(0.5, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.5, Inf), interval(1.0, 1.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, Inf), interval(0.5, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(0.5, Inf), interval(1.0, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, Inf), interval(0.5, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(0.5, Inf), interval(1.0, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, 2.0), interval(0.0, 1.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, 2.0), interval(0.0, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, 2.0), interval(0.0, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, Inf), interval(0.0, 1.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, Inf), interval(0.0, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, Inf), interval(0.0, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, 2.0), interval(0.0, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, 2.0), interval(0.0, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, 2.0), interval(0.0, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, Inf), interval(0.0, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, Inf), interval(0.0, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, Inf), interval(0.0, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, 2.0), interval(0.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, 2.0), interval(0.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, 2.0), interval(0.0, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, Inf), interval(0.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, Inf), interval(0.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, Inf), interval(0.0, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, 2.0), interval(0.5, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, 2.0), interval(0.5, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, 2.0), interval(0.5, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, Inf), interval(0.5, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, Inf), interval(0.5, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, Inf), interval(0.5, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, 2.0), interval(0.5, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, 2.0), interval(0.5, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, 2.0), interval(0.5, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, Inf), interval(0.5, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, Inf), interval(0.5, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, Inf), interval(0.5, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, 2.0), interval(1.0, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, 2.0), interval(1.0, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, 2.0), interval(1.0, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, Inf), interval(1.0, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, Inf), interval(1.0, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, Inf), interval(1.0, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, 2.0), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, 2.0), interval(1.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, 2.0), interval(1.0, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, Inf), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(0.5, Inf), interval(1.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(0.5, Inf), interval(1.0, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(0.5, 2.0), interval(2.0, 4.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.5, 2.0), interval(2.0, 4.0), interval(-Inf, 0.0)) === Interval(-Inf, -1.0) + + @test_broken pow_rev2(interval(0.5, 2.0), interval(2.0, 4.0), interval(0.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev2(interval(0.5, Inf), interval(2.0, 4.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(0.5, Inf), interval(2.0, 4.0), interval(-Inf, 0.0)) === Interval(-Inf, -1.0) + + @test pow_rev2(interval(0.5, Inf), interval(2.0, 4.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(1.0, 2.0), interval(0.0, 0.5), entireinterval()) === Interval(-Inf, -1.0) + + @test_broken pow_rev2(interval(1.0, 2.0), interval(0.0, 0.5), interval(-Inf, 0.0)) === Interval(-Inf, -1.0) + + @test pow_rev2(interval(1.0, 2.0), interval(0.0, 0.5), interval(0.0, Inf)) === emptyinterval() + + @test pow_rev2(interval(1.0, Inf), interval(0.0, 0.5), entireinterval()) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(1.0, Inf), interval(0.0, 0.5), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(1.0, Inf), interval(0.0, 0.5), interval(0.0, Inf)) === emptyinterval() + + @test_broken pow_rev2(interval(1.0, 2.0), interval(0.25, 0.5), entireinterval()) === Interval(-Inf, -1.0) + + @test_broken pow_rev2(interval(1.0, 2.0), interval(0.25, 0.5), interval(-Inf, 0.0)) === Interval(-Inf, -1.0) + + @test pow_rev2(interval(1.0, 2.0), interval(0.25, 0.5), interval(0.0, Inf)) === emptyinterval() + + @test pow_rev2(interval(1.0, Inf), interval(0.25, 0.5), entireinterval()) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(1.0, Inf), interval(0.25, 0.5), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(1.0, Inf), interval(0.25, 0.5), interval(0.0, Inf)) === emptyinterval() + + @test_broken pow_rev2(interval(1.0, 2.0), interval(0.5, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, 2.0), interval(1.0, 1.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(1.0, 2.0), interval(0.5, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(1.0, 2.0), interval(1.0, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(1.0, 2.0), interval(0.5, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(1.0, 2.0), interval(1.0, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(1.0, Inf), interval(0.5, 1.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, Inf), interval(1.0, 1.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(1.0, Inf), interval(0.5, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(1.0, Inf), interval(1.0, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(1.0, Inf), interval(0.5, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(1.0, Inf), interval(1.0, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(1.0, 2.0), interval(0.0, 1.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(1.0, 2.0), interval(0.0, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(1.0, 2.0), interval(0.0, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(1.0, Inf), interval(0.0, 1.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(1.0, Inf), interval(0.0, 1.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(1.0, Inf), interval(0.0, 1.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(1.0, 2.0), interval(0.0, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(1.0, 2.0), interval(0.0, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(1.0, 2.0), interval(0.0, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(1.0, Inf), interval(0.0, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(1.0, Inf), interval(0.0, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(1.0, Inf), interval(0.0, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(1.0, 2.0), interval(0.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(1.0, 2.0), interval(0.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(1.0, 2.0), interval(0.0, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(1.0, Inf), interval(0.0, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(1.0, Inf), interval(0.0, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(1.0, Inf), interval(0.0, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(1.0, 2.0), interval(0.5, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(1.0, 2.0), interval(0.5, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(1.0, 2.0), interval(0.5, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(1.0, Inf), interval(0.5, 2.0), entireinterval()) === entireinterval() + + @test pow_rev2(interval(1.0, Inf), interval(0.5, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(1.0, Inf), interval(0.5, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(1.0, 2.0), interval(0.5, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(1.0, 2.0), interval(0.5, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(1.0, 2.0), interval(0.5, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(1.0, Inf), interval(0.5, Inf), entireinterval()) === entireinterval() + + @test pow_rev2(interval(1.0, Inf), interval(0.5, Inf), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(1.0, Inf), interval(0.5, Inf), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(1.0, 2.0), interval(1.0, 2.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, 2.0), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, Inf), interval(1.0, Inf), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, Inf), interval(1.0, 2.0), entireinterval()) === entireinterval() + + @test_broken pow_rev2(interval(1.0, 2.0), interval(1.0, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(1.0, Inf), interval(1.0, 2.0), interval(-Inf, 0.0)) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(1.0, 2.0), interval(1.0, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test pow_rev2(interval(1.0, Inf), interval(1.0, 2.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(1.0, 2.0), interval(2.0, 4.0), entireinterval()) === Interval(1.0, Inf) + + @test pow_rev2(interval(1.0, Inf), interval(2.0, 4.0), entireinterval()) === Interval(0.0, Inf) + + @test pow_rev2(interval(1.0, 2.0), interval(2.0, 4.0), interval(-Inf, 0.0)) === emptyinterval() + + @test_broken pow_rev2(interval(1.0, Inf), interval(2.0, 4.0), interval(-Inf, 0.0)) === emptyinterval() + + @test_broken pow_rev2(interval(1.0, 2.0), interval(2.0, 4.0), interval(0.0, Inf)) === Interval(1.0, Inf) + + @test pow_rev2(interval(1.0, Inf), interval(2.0, 4.0), interval(0.0, Inf)) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(2.0, 4.0), interval(0.0, 0.5), entireinterval()) === Interval(-Inf, -0.5) + + @test pow_rev2(interval(2.0, Inf), interval(0.0, 0.5), entireinterval()) === Interval(-Inf, 0.0) + + @test_broken pow_rev2(interval(2.0, Inf), interval(0.0, 0.5), interval(0.0, Inf)) === emptyinterval() + + @test_broken pow_rev2(interval(2.0, 4.0), interval(0.25, 0.5), entireinterval()) === Interval(-2.0, -0.5) + + @test_broken pow_rev2(interval(2.0, Inf), interval(0.25, 0.5), entireinterval()) === Interval(-2.0, 0.0) + + @test_broken pow_rev2(interval(2.0, Inf), interval(0.25, 0.5), interval(0.0, Inf)) === emptyinterval() + + @test_broken pow_rev2(interval(2.0, 4.0), interval(0.5, 1.0), entireinterval()) === Interval(-1.0, 0.0) + + @test_broken pow_rev2(interval(2.0, Inf), interval(0.5, 1.0), entireinterval()) === Interval(-1.0, 0.0) + + @test pow_rev2(interval(2.0, 4.0), interval(1.0, 1.0), entireinterval()) === Interval(0.0, 0.0) + + @test pow_rev2(interval(2.0, Inf), interval(1.0, 1.0), entireinterval()) === Interval(0.0, 0.0) + + @test pow_rev2(interval(2.0, 4.0), interval(0.0, 1.0), entireinterval()) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(2.0, Inf), interval(0.0, 1.0), entireinterval()) === Interval(-Inf, 0.0) + + @test pow_rev2(interval(2.0, 4.0), interval(0.0, 1.0), interval(0.0, Inf)) === Interval(0.0, 0.0) + + @test pow_rev2(interval(2.0, Inf), interval(0.0, 1.0), interval(0.0, Inf)) === Interval(0.0, 0.0) + + @test_broken pow_rev2(interval(2.0, 4.0), interval(0.0, 2.0), entireinterval()) === Interval(-Inf, 1.0) + + @test_broken pow_rev2(interval(2.0, Inf), interval(0.0, 2.0), entireinterval()) === Interval(-Inf, 1.0) + + @test_broken pow_rev2(interval(2.0, 4.0), interval(0.5, 2.0), entireinterval()) === Interval(-1.0, 1.0) + + @test_broken pow_rev2(interval(2.0, Inf), interval(0.5, 2.0), entireinterval()) === Interval(-1.0, 1.0) + + @test_broken pow_rev2(interval(2.0, 4.0), interval(1.0, 2.0), entireinterval()) === Interval(0.0, 1.0) + + @test_broken pow_rev2(interval(2.0, Inf), interval(1.0, 2.0), entireinterval()) === Interval(0.0, 1.0) + + @test pow_rev2(interval(2.0, 4.0), interval(1.0, 2.0), interval(-Inf, 0.0)) === Interval(0.0, 0.0) + + @test pow_rev2(interval(2.0, Inf), interval(1.0, 2.0), interval(-Inf, 0.0)) === Interval(0.0, 0.0) + + @test_broken pow_rev2(interval(2.0, 4.0), interval(2.0, 4.0), entireinterval()) === Interval(0.5, 2.0) + + @test_broken pow_rev2(interval(2.0, Inf), interval(2.0, 4.0), entireinterval()) === Interval(0.0, 2.0) + + @test_broken pow_rev2(interval(2.0, Inf), interval(2.0, 4.0), interval(-Inf, 0.0)) === emptyinterval() + + @test_broken pow_rev2(interval(2.0, 4.0), interval(2.0, Inf), entireinterval()) === Interval(0.5, Inf) + + @test pow_rev2(interval(2.0, Inf), interval(2.0, Inf), entireinterval()) === Interval(0.0, Inf) + + @test_broken pow_rev2(interval(2.0, Inf), interval(2.0, Inf), interval(-Inf, 0.0)) === emptyinterval() + +end diff --git a/test/test_ITF1788/run_ITF1788.jl b/test/test_ITF1788/run_ITF1788.jl new file mode 100644 index 000000000..7d1d54d8f --- /dev/null +++ b/test/test_ITF1788/run_ITF1788.jl @@ -0,0 +1,21 @@ +using IntervalArithmetic, IntervalContractors + +include("atan2.jl") +include("c-xsc.jl") +include("fi_lib.jl") +include("ieee1788-constructors.jl") +include("ieee1788-exceptions.jl") +include("libieeep1788_bool.jl") +include("libieeep1788_cancel.jl") +include("libieeep1788_class.jl") +include("libieeep1788_elem.jl") +include("libieeep1788_num.jl") +include("libieeep1788_overlap.jl") +include("libieeep1788_rec_bool.jl") +include("libieeep1788_reduction.jl") +include("libieeep1788_set.jl") +include("mpfi.jl") +include("abs_rev.jl") +include("libieeep1788_rev.jl") +include("libieeep1788_mul_rev.jl") +include("pow_rev.jl")