Skip to content

Commit

Permalink
Fleshed out tests for bessel and exported besselhx
Browse files Browse the repository at this point in the history
  • Loading branch information
kshyatt committed Jul 15, 2015
1 parent 8efc44d commit 9e23af9
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 8 deletions.
1 change: 1 addition & 0 deletions base/exports.jl
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,7 @@ export
airyprime,
airyx,
besselh,
besselhx,
besseli,
besselix,
besselj,
Expand Down
2 changes: 1 addition & 1 deletion base/math.jl
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export sin, cos, tan, sinh, cosh, tanh, asin, acos, atan,
besselj0, besselj1, besselj, besseljx,
bessely0, bessely1, bessely, besselyx,
hankelh1, hankelh2, hankelh1x, hankelh2x,
besseli, besselix, besselk, besselkx, besselh,
besseli, besselix, besselk, besselkx, besselh, besselhx,
beta, lbeta, eta, zeta, polygamma, invdigamma, digamma, trigamma,
erfinv, erfcinv, @evalpoly

Expand Down
24 changes: 17 additions & 7 deletions test/math.jl
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,6 @@ end
@test erfcinv(one(Int)) == erfcinv(1.0)

# airy
@test_approx_eq airy(1.8) 0.0470362168668458052247
@test_approx_eq airy(1.8) airyai(1.8)
@test_approx_eq airyprime(1.8) -0.0685247801186109345638
@test_approx_eq airyaiprime(1.8) airyprime(1.8)
Expand All @@ -140,12 +139,16 @@ end
@test_throws Base.Math.AmosException airybi(200)
@test_throws ArgumentError airy(5,one(Complex128))
z = 1.8 + 1.0im
@test_approx_eq airyx(z) airyx(0,z)
@test_approx_eq airyx(0, z) airy(0, z) * exp(2/3 * z * sqrt(z))
@test_approx_eq airyx(1, z) airy(1, z) * exp(2/3 * z * sqrt(z))
@test_approx_eq airyx(2, z) airy(2, z) * exp(-abs(real(2/3 * z * sqrt(z))))
@test_approx_eq airyx(3, z) airy(3, z) * exp(-abs(real(2/3 * z * sqrt(z))))
@test_throws ArgumentError airyx(5,z)
for elty in [Complex64,Complex128]
@test_approx_eq airy(convert(elty,1.8)) 0.0470362168668458052247
z = convert(elty,z)
@test_approx_eq airyx(z) airyx(0,z)
@test_approx_eq airyx(0, z) airy(0, z) * exp(2/3 * z * sqrt(z))
@test_approx_eq airyx(1, z) airy(1, z) * exp(2/3 * z * sqrt(z))
@test_approx_eq airyx(2, z) airy(2, z) * exp(-abs(real(2/3 * z * sqrt(z))))
@test_approx_eq airyx(3, z) airy(3, z) * exp(-abs(real(2/3 * z * sqrt(z))))
@test_throws ArgumentError airyx(5,z)
end

# bessely0, bessely1, besselj0, besselj1
@test_approx_eq besselj0(Float32(2.0)) besselj0(Float64(2.0))
Expand Down Expand Up @@ -206,6 +209,7 @@ j43 = besselj(4,3.)
@test_approx_eq besselj(0.1, complex(-0.4)) 0.820421842809028916 + 0.266571215948350899im
@test_approx_eq besselj(3.2, 1.3+0.6im) 0.01135309305831220201 + 0.03927719044393515275im
@test_approx_eq besselj(1, 3im) 3.953370217402609396im
@test_approx_eq besselj(1.0,3im) besselj(1,3im)
@test_throws Base.Math.AmosException besselj(20,1000im)

# besselk
Expand Down Expand Up @@ -234,6 +238,12 @@ y33 = bessely(3,3.)
@test_throws DomainError bessely(0.4,Float32(-1.0))
@test_throws DomainError bessely(1,Float32(-1.0))

#besselhx
for elty in [Complex64,Complex128]
z = convert(elty, 1.0 + 1.9im)
@test_approx_eq besselhx(1.0, 1, z) convert(elty,-0.5949634147786144 - 0.18451272807835967im)
end

# issue #6653
for f in (besselj,bessely,besseli,besselk,hankelh1,hankelh2)
@test_approx_eq f(0,1) f(0,Complex128(1))
Expand Down

0 comments on commit 9e23af9

Please sign in to comment.