From dd954c74cdd7d56cc2b2f538cd871f62d20edd27 Mon Sep 17 00:00:00 2001 From: Jishnu Bhattacharya Date: Thu, 17 Aug 2023 19:03:27 +0530 Subject: [PATCH] Fix InexactError call in convert --- Project.toml | 2 +- src/dual.jl | 2 +- test/automatic_differentiation_test.jl | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 74aa3da..70ed2cd 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "DualNumbers" uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" -version = "0.6.8" +version = "0.6.9" [deps] Calculus = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" diff --git a/src/dual.jl b/src/dual.jl index 385c172..ad0af94 100644 --- a/src/dual.jl +++ b/src/dual.jl @@ -21,7 +21,7 @@ const DualComplex64 = Dual{ComplexF16} Base.convert(::Type{Dual{T}}, z::Dual{T}) where {T<:ReComp} = z Base.convert(::Type{Dual{T}}, z::Dual) where {T<:ReComp} = Dual{T}(convert(T, value(z)), convert(T, epsilon(z))) Base.convert(::Type{Dual{T}}, x::Number) where {T<:ReComp} = Dual{T}(convert(T, x), convert(T, 0)) -Base.convert(::Type{T}, z::Dual) where {T<:ReComp} = (epsilon(z)==0 ? convert(T, value(z)) : throw(InexactError())) +Base.convert(::Type{T}, z::Dual) where {T<:ReComp} = (epsilon(z)==0 ? convert(T, value(z)) : throw(InexactError(:convert, T, z))) Base.promote_rule(::Type{Dual{T}}, ::Type{Dual{S}}) where {T<:ReComp,S<:ReComp} = Dual{promote_type(T, S)} Base.promote_rule(::Type{Dual{T}}, ::Type{S}) where {T<:ReComp,S<:ReComp} = Dual{promote_type(T, S)} diff --git a/test/automatic_differentiation_test.jl b/test/automatic_differentiation_test.jl index 004be82..2af2b2a 100644 --- a/test/automatic_differentiation_test.jl +++ b/test/automatic_differentiation_test.jl @@ -241,3 +241,5 @@ end @test value(3) == 3 @test epsilon(44.0) ≈ 0.0 + +@test_throws InexactError convert(Float64, Dual(1,1))