From 8a854e229e55ce6a5914c2465e6dc998ff77367c Mon Sep 17 00:00:00 2001 From: OlivierHnt <38465572+OlivierHnt@users.noreply.github.com> Date: Sat, 2 Dec 2023 13:44:47 +0100 Subject: [PATCH] Add more ForwardDiff related tests --- .../{autodiff.jl => forwarddiff.jl} | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) rename test/interval_tests/{autodiff.jl => forwarddiff.jl} (57%) diff --git a/test/interval_tests/autodiff.jl b/test/interval_tests/forwarddiff.jl similarity index 57% rename from test/interval_tests/autodiff.jl rename to test/interval_tests/forwarddiff.jl index 655e0d48b..c9b385e33 100644 --- a/test/interval_tests/autodiff.jl +++ b/test/interval_tests/forwarddiff.jl @@ -23,4 +23,31 @@ end @test all(ForwardDiff.gradient( v -> g(v[1]), [interval(-1, 1)]) .=== [interval(convert(Interval{Float64}, -2), convert(Interval{Float64}, 2), trv)]) @test_broken all(ForwardDiff.hessian( v -> g(v[1]), [interval( 0 )]) .=== [interval(convert(Interval{Float64}, -2), convert(Interval{Float64}, 2), trv)]) end + + @testset "sin" begin + x, y, w = interval(2), interval(-0.5, 0.5) + ϕ(t) = sin(x + (1+t)*w) + ϕ′(t) = cos(x + (1+t)*w) * w + ϕ′′(t) = -sin(x + (1+t)*w) * w * w + ϕ′′′(t) = -cos(x + (1+t)*w) * w * w * w + dϕ(t) = ForwardDiff.derivative(ϕ, t) + ddϕ(t) = ForwardDiff.derivative(dϕ, t) + dddϕ(t) = ForwardDiff.derivative(ddϕ, t) + + @test ϕ′(0) === dϕ(0) + @test ϕ′′(0) === ddϕ(0) + @test ϕ′′′(0) === dddϕ(0) + + y = interval(1) + ψ(t) = sin(x + (y+t)*w) + ψ′(t) = cos(x + (y+t)*w) * w + ψ′′(t) = -sin(x + (y+t)*w) * w * w + ψ′′′(t) = -cos(x + (y+t)*w) * w * w * w + dψ(t) = ForwardDiff.derivative(ψ, t) + ddψ(t) = ForwardDiff.derivative(dψ, t) + dddψ(t) = ForwardDiff.derivative(ddψ, t) + @test ψ′(0) === dψ(0) + @test_broken ψ′′(0) === ddψ(0) + @test_broken ψ′′′(0) === dddψ(0) + end end