11using IntervalArithmetic, IntervalOptimisation
22using Test
3+ using IntervalOptimisation: numeric_type
34
45@testset " IntervalOptimisation tests" begin
6+ @testset " numeric_type" begin
7+ x = - 10 .. 10
8+ big_x = big (x)
9+ @test numeric_type (x) == Float64
10+ @test numeric_type (big_x) == BigFloat
11+ @test numeric_type (IntervalBox (x, x)) == Float64
12+ @test numeric_type (IntervalBox (big_x, big_x)) == BigFloat
13+ end
514
615 @testset " Minimise in 1D using default data structure i.e HeapedVector" begin
716 global_min, minimisers = minimise (x-> x, - 10 .. 10 )
@@ -15,6 +24,12 @@ using Test
1524 @test length (maximisers) == 1
1625 @test maximisers[1 ] ⊆ 9.999 .. 10
1726
27+ # same but with BigFloats
28+ global_min, minimisers = minimise (x-> x, - big (10.0 ).. big (10.0 ))
29+ @test global_min ⊆ - 10 .. - 9.999
30+ @test length (minimisers) == 1
31+ @test minimisers[1 ] ⊆ - 10 .. - 9.999
32+
1833 global_min, minimisers = minimise (x-> x^ 2 , - 10 .. 11 , tol = 1e-10 )
1934 @test global_min ⊆ 0 .. 1e-20
2035 @test length (minimisers) == 1
@@ -28,7 +43,7 @@ using Test
2843
2944 for Structure in (SortedVector, HeapedVector)
3045
31- @testset " Minimise in 1D using SoretedVector " begin
46+ @testset " Minimise in 1D using SortedVector " begin
3247 global_min, minimisers = minimise (x-> x, - 10 .. 10 , structure = Structure)
3348 @test global_min ⊆ - 10 .. - 9.999
3449 @test length (minimisers) == 1
@@ -40,6 +55,12 @@ using Test
4055 @test length (maximisers) == 1
4156 @test maximisers[1 ] ⊆ 9.999 .. 10
4257
58+ # same but with BigFloats
59+ global_min, minimisers = minimise (x-> x, - big (10.0 ).. big (10.0 ), structure = Structure)
60+ @test global_min ⊆ - 10 .. - 9.999
61+ @test length (minimisers) == 1
62+ @test minimisers[1 ] ⊆ - 10 .. - 9.999
63+
4364 global_min, minimisers = minimise (x-> x^ 2 , - 10 .. 11 , tol= 1e-10 , structure = Structure)
4465 @test global_min ⊆ 0 .. 1e-20
4566 @test length (minimisers) == 1
@@ -73,6 +94,12 @@ using Test
7394 @test global_max ⊆ 199.9 .. 200
7495 m = (9.99 .. 10 )
7596 @test all (X ⊆ m × m || X ⊆ - m × m || X ⊆ m × - m || X ⊆ - m × - m for X in maximisers)
97+
98+ # same but with BigFloats
99+ global_min, minimisers = minimise ( X -> ( (x,y) = X; x^ 2 + y^ 2 ), (- big (10.0 ).. big (10.0 )) × (- big (10.0 ).. big (10.0 )), structure = Structure )
100+ @test global_min ⊆ 0 .. 1e-7
101+ @test all (X ⊆ big (- 1e-3 .. 1e3 ) × big (- 1e-3 .. 1e-3 ) for X in minimisers)
102+
76103 end
77104
78105 end
0 commit comments