Skip to content

Commit 024e444

Browse files
committed
Improve tests
1 parent 2c646c0 commit 024e444

File tree

6 files changed

+25
-23
lines changed

6 files changed

+25
-23
lines changed

src/intervals/arithmetic/basic.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,10 +255,11 @@ Square root of an interval.
255255
Implement the `sqrt` function of the IEEE Std 1788-2015 (Table 9.1).
256256
"""
257257
function sqrt(a::F) where {F<:Interval}
258-
domain = F(0, Inf)
258+
G = float(F)
259+
domain = G(0, Inf)
259260
a = a domain
260261

261262
isempty(a) && return a
262263

263-
return @round(F, sqrt(inf(a)), sqrt(sup(a))) # `sqrt` is correctly-rounded
264+
return @round(G, sqrt(inf(a)), sqrt(sup(a))) # `sqrt` is correctly-rounded
264265
end

test/display_tests/display.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,17 +66,17 @@ let x, b
6666
end
6767

6868
@testset "Interval{Rational{T}}" begin
69-
a = interval(1//3, 5//4)
70-
@test_broken typeof(a) == Interval{Rational{Int}}
69+
a = Interval{Rational{Int64}}(1//3, 5//4)
70+
@test typeof(a) == Interval{Rational{Int}}
7171

7272
setformat(:standard)
73-
@test_broken sprint(show, MIME("text/plain"), a) == "[1//3, 5//4]"
73+
@test sprint(show, MIME("text/plain"), a) == "[1//3, 5//4]"
7474

7575
setformat(:full)
76-
@test_broken sprint(show, MIME("text/plain"), a) == "Interval{Rational{Int}}(1//3, 5//4)"
76+
@test sprint(show, MIME("text/plain"), a) == "Interval{Rational{Int64}}(1//3, 5//4)"
7777

7878
setformat(:midpoint)
79-
@test_broken sprint(show, MIME("text/plain"), a) == "19//24 ± 11//24"
79+
@test sprint(show, MIME("text/plain"), a) == "19//24 ± 11//24"
8080
end
8181

8282
@testset "Interval{Float32}" begin

test/interval_tests/consistency.jl

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ using Test
6767
@test fma(zero(a), entireinterval(), b) b
6868
@test fma(one(a), entireinterval(), b) entireinterval()
6969
@test fma(a, zero(a), c) c
70-
@test_broken fma(interval(1//2), interval(1//3), interval(1//12)) interval(3//12)
70+
@test fma(Interval{Rational{Int}}(1//2, 1//2),
71+
Interval{Rational{Int}}(1//3, 1//3),
72+
Interval{Rational{Int}}(1//12, 1//12)) Interval{Rational{Int}}(3//12, 3//12)
7173
end
7274

7375
@testset "∈ tests" begin
@@ -182,7 +184,7 @@ using Test
182184
end
183185

184186
@testset "mid" begin
185-
@test mid(interval(1//2)) == 1//2
187+
@test mid(interval(Rational{Int}, 1//2)) == 1//2
186188
@test mid(1..2) == 1.5
187189
@test mid(0.1..0.3) == 0.2
188190
@test mid(-10..5) == -2.5
@@ -206,7 +208,7 @@ using Test
206208
end
207209

208210
@testset "diam" begin
209-
@test diam( interval(1//2) ) == 0//1
211+
@test diam( interval(Rational{Int}, 1//2) ) == 0//1
210212
@test diam( @interval(1//10) ) == eps(0.1)
211213
@test diam( @interval(0.1) ) == 2eps(0.1)
212214
@test isnan(diam(emptyinterval()))
@@ -217,10 +219,10 @@ using Test
217219

218220
@testset "mig and mag" begin
219221
@test mig(@interval(-2,2)) == BigFloat(0.0)
220-
@test mig( interval(1//2) ) == 1//2
222+
@test mig( interval(Rational{Int}, 1//2) ) == 1//2
221223
@test isnan(mig(emptyinterval()))
222224
@test mag(-b) == b.hi
223-
@test mag( interval(1//2) ) == 1//2
225+
@test mag( interval(Rational{Int}, 1//2) ) == 1//2
224226
@test isnan(mag(emptyinterval()))
225227
end
226228

@@ -262,7 +264,7 @@ using Test
262264
end
263265

264266
@testset "mid and radius" begin
265-
@test radius(interval(-1//10,1//10)) == diam(interval(-1//10,1//10))/2
267+
@test radius(interval(Rational{Int}, -1//10,1//10)) == diam(interval(Rational{Int}, -1//10,1//10))/2
266268
@test isnan(IntervalArithmetic.radius(emptyinterval()))
267269
@test mid(c) == 2.125
268270
@test isnan(mid(emptyinterval()))
@@ -334,7 +336,7 @@ using Test
334336

335337
@testset "isthinzero" begin
336338
@test isthinzero(interval(0))
337-
@test isthinzero(interval(0//1))
339+
@test isthinzero(interval(Rational{Int}, 0//1))
338340
@test isthinzero(interval(big(0)))
339341
@test isthinzero(interval(-0.0))
340342
@test isthinzero(interval(-0.0, 0.0))

test/interval_tests/construction.jl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@ using Test
99
interval(Float64, interval(1.0))
1010
@test size(interval(1)) == () # Match the `size` behaviour of `Number`
1111
@test interval(big(1)) Interval{Float64}(1.0, 1.0)
12-
@test_broken interval(1//10) Interval{Rational{Int}}(1//10, 1//10)
13-
@test_broken interval(BigInt(1)//10) Interval{Rational{BigInt}}(1//10, 1//10)
12+
@test interval(Rational{Int}, 1//10) Interval{Rational{Int}}(1//10, 1//10)
13+
@test_broken interval(Rational{BigInt}, BigInt(1)//10) Interval{Rational{BigInt}}(1//10, 1//10)
1414
@test interval( (1.0, 2.0) ) Interval{Float64}(1.0, 2.0)
15-
@test_broken interval(Rational{Int}, 1) interval(1//1)
1615
@test interval(BigFloat, 1) Interval{BigFloat}(big(1.0), big(1.0))
1716

1817
# Irrational

test/interval_tests/non_BigFloat.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ using IntervalArithmetic
22
using Test
33

44
@testset "Tests with rational intervals" begin
5-
a = interval(1//2, 3//4)
6-
b = interval(3//7, 9//12)
5+
a = interval(Rational{Int}, 1//2, 3//4)
6+
b = interval(Rational{Int}, 3//7, 9//12)
77

8-
@test a + b interval(13//14, 3//2) # exact
8+
@test a + b interval(Rational{Int}, 13//14, 3//2) # exact
99

10-
@test sqrt(a + b) interval(0.9636241116594314, 1.2247448713915892)
10+
@test sqrt(a + b) interval(0.9636241116594315, 1.2247448713915892)
1111

1212
X = interval(1//3)
1313
@test sqrt(X) interval(0.5773502691896257, 0.5773502691896258)

test/interval_tests/numeric.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ end
4646
$f(interval(Float64, pi), Interval{Float64}(interval(Float32, pi)))
4747
end
4848
end
49-
@test interval(1//4,1//2) + interval(2//3) interval(11//12, 7//6)
50-
@test_broken interval(1//4,1//2) - interval(2//3) interval(-5//12, -1//6)
49+
@test interval(Rational{Int}, 1//4, 1//2) + interval(Rational{Int}, 2//3) interval(Rational{Int}, 11//12, 7//6)
50+
@test interval(Rational{Int}, 1//4, 1//2) - interval(Rational{Int}, 2//3) interval(Rational{Int}, -5//12, -1//6)
5151

5252
@test interval(-30.0,-15.0) / interval(-5.0,-3.0) interval(3.0, 10.0)
5353
@test interval(-30,-15) / interval(-5,-3) interval(3.0, 10.0)

0 commit comments

Comments
 (0)