diff --git a/.travis.yml b/.travis.yml index e6d76ef..ec750fd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,15 +10,18 @@ os: - osx julia: - - 0.6 + - 0.7 + - 1.0 - nightly -matrix: - allow_failures: - - julia: nightly +#matrix: +# allow_failures: +# - julia: nightly notifications: email: false after_success: -- julia -e 'cd(Pkg.dir("ValidatedNumerics")); Pkg.add("Coverage"); using Coverage; Coveralls.submit(Coveralls.process_folder()); Codecov.submit(process_folder())' + - julia -e 'using Pkg; Pkg.add("Documenter")' + - julia -e 'cd(Pkg.dir("ValidatedNumerics")); include(joinpath("docs", "make.jl"))' + - julia -e 'cd(Pkg.dir("ValidatedNumerics")); Pkg.add("Coverage"); using Coverage; Coveralls.submit(Coveralls.process_folder()); Codecov.submit(process_folder())' diff --git a/NEWS.md b/NEWS.md index 3ca650e..f4fa36e 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,11 +1,21 @@ # What's new in `ValidatedNumerics.jl` +## v0.11 + +### Supported versions of Julia + +- Support for Julia 0.6 has been dropped. This release is fully compatible with Julia 1.0. + +### Included packages + +- `IntervalContractors.jl` is now re-exported, so that reverse functions from that package are directly accessible. + ## v0.10 ### Supported versions of Julia -Support for Julia 0.5 has been dropped. This is the last release compatible with Julia 0.6. +- Support for Julia 0.5 has been dropped. This is the last release compatible with Julia 0.6. ## v0.9 diff --git a/REQUIRE b/REQUIRE index d66288c..43eb678 100644 --- a/REQUIRE +++ b/REQUIRE @@ -1,9 +1,9 @@ -julia 0.6 0.7 +julia 0.7 -Reexport 0.1 0.2 +Reexport 0.2.0 -IntervalArithmetic 0.13 0.14 -IntervalRootFinding 0.2 0.3 -IntervalContractors 0.2 0.3 -IntervalConstraintProgramming 0.8 0.9 -IntervalOptimisation 0.2 0.3 +IntervalArithmetic 0.15 +IntervalRootFinding 0.4 +IntervalContractors 0.3.1 +IntervalConstraintProgramming 0.9 +IntervalOptimisation 0.3 diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000..c2588f1 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,43 @@ +environment: + matrix: + - julia_version: 0.7 + - julia_version: 1 + - julia_version: nightly + +platform: + - x86 # 32-bit + - x64 # 64-bit + +# # Uncomment the following lines to allow failures on nightly julia +# # (tests will run but not make your overall status red) +# matrix: +# allow_failures: +# - julia_version: nightly + +branches: + only: + - master + - /release-.*/ + +notifications: + - provider: Email + on_build_success: false + on_build_failure: false + on_build_status_changed: false + +install: + - ps: iex ((new-object net.webclient).DownloadString("https://raw.githubusercontent.com/JuliaCI/Appveyor.jl/version-1/bin/install.ps1")) + +build_script: + - echo "%JL_BUILD_SCRIPT%" + - C:\julia\bin\julia -e "%JL_BUILD_SCRIPT%" + +test_script: + - echo "%JL_TEST_SCRIPT%" + - C:\julia\bin\julia -e "%JL_TEST_SCRIPT%" + +# # Uncomment to support code coverage upload. Should only be enabled for packages +# # which would have coverage gaps without running on Windows +# on_success: +# - echo "%JL_CODECOV_SCRIPT%" +# - C:\julia\bin\julia -e "%JL_CODECOV_SCRIPT%" diff --git a/src/ValidatedNumerics.jl b/src/ValidatedNumerics.jl index 5c18a8f..22a7ea9 100644 --- a/src/ValidatedNumerics.jl +++ b/src/ValidatedNumerics.jl @@ -1,13 +1,12 @@ # This file is part of the ValidatedNumerics.jl package; MIT licensed -__precompile__(true) - module ValidatedNumerics using Reexport @reexport using IntervalArithmetic @reexport using IntervalRootFinding +@reexport using IntervalContractors @reexport using IntervalConstraintProgramming @reexport using IntervalOptimisation diff --git a/test/runtests.jl b/test/runtests.jl index b5951fb..44e6448 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,10 +1,11 @@ using ValidatedNumerics -using Base.Test +using Test @testset "Load and briefly test packages" begin + @testset "IntervalArithmetic" begin - @test @interval(1, 2) == Interval(1, 2) + @test 1..2 == Interval(1, 2) end @testset "IntervalRootFinding" begin @@ -17,7 +18,30 @@ using Base.Test X = (-∞..∞) × (-∞..∞) paving = pave(S, X, 1.0) - @test length(paving.inner) == 4 - @test length(paving.boundary) == 8 + @test length(paving.inner) == 3 + @test length(paving.boundary) == 7 + end + + @testset "IntervalContractors" begin + X = 1..4 + Y = 5..10 + + Z = X + Y + + Z = Z ∩ (13..15) + + Z, X, Y = plus_rev(Z, X, Y) + + @test X == 3..4 + @test Y == 9..10 + end + + @testset "IntervalOptimisation" begin + f(x) = x^4 - 3x^3 + 2x + + globalmin, minimisers = minimise(f, -1e10..1e10, 1e-7) + + @test globalmin ⊆ (-4.15.. -4.14) end + end