Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove custom @test_approx_eq_rtol, use standard @test and @testset #15

Merged
merged 1 commit into from
Jul 29, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
151 changes: 74 additions & 77 deletions test/runtests.jl
Original file line number Diff line number Diff line change
@@ -1,91 +1,88 @@
using Cosmology
using Test

function test_approx_eq_rtol(va, vb, rtol, astr, bstr)
diff = maximum(abs(va - vb))
tol = rtol*max(maximum(abs(va)), maximum(abs(vb)))
if diff > tol
sdiff = string("|", astr, " - ", bstr, "| <= ", tol)
error("assertion failed: ", sdiff,
"\n ", astr, " = ", va,
"\n ", bstr, " = ", vb,
"\n difference = ", diff, " > ", tol)
end
end

macro test_approx_eq_rtol(a, b, c)
:(test_approx_eq_rtol($(esc(a)), $(esc(b)), $(esc(c)), $(string(a)), $(string(b))))
end

# values from http://icosmos.co.uk/

dist_rtol = 1e-6
age_rtol = 2e-4

c = cosmology(h=0.7, OmegaM=0.3, OmegaR=0)
@test_approx_eq_rtol angular_diameter_dist_mpc(c,1) 1651.9145 dist_rtol
@test_approx_eq_rtol comoving_radial_dist_mpc(c,1) 3303.829 dist_rtol
@test_approx_eq_rtol comoving_volume_gpc3(c,1) 151.0571 dist_rtol
@test_approx_eq_rtol luminosity_dist_mpc(c,1) 6607.6579 dist_rtol
@test_approx_eq_rtol distmod(c,1) 44.1002 dist_rtol
@test_approx_eq_rtol age_gyr(c,0) 13.4694 age_rtol
@test_approx_eq_rtol age_gyr(c,1) 5.7527 age_rtol
@test_approx_eq_rtol lookback_time_gyr(c,1) 13.4694-5.7527 age_rtol

c = cosmology(h=0.7, OmegaK=0.1, OmegaM=0.3, OmegaR=0)
@test_approx_eq_rtol angular_diameter_dist_mpc(c,1) 1619.9588 dist_rtol
@test_approx_eq_rtol comoving_radial_dist_mpc(c,1) 3209.784 dist_rtol
@test_approx_eq_rtol comoving_volume_gpc3(c,1) 140.0856 dist_rtol
@test_approx_eq_rtol luminosity_dist_mpc(c,1) 6479.8352 dist_rtol
@test_approx_eq_rtol distmod(c,1) 44.0578 dist_rtol
@test_approx_eq_rtol age_gyr(c,0) 13.064 age_rtol
@test_approx_eq_rtol age_gyr(c,1) 5.5466 age_rtol
@test_approx_eq_rtol lookback_time_gyr(c,1) 13.064-5.5466 age_rtol
@testset "FlatLCDM" begin
c = cosmology(h=0.7, OmegaM=0.3, OmegaR=0)
@test angular_diameter_dist_mpc(c,1) ≈ 1651.9145 rtol = dist_rtol
@test comoving_radial_dist_mpc(c,1) ≈ 3303.829 rtol = dist_rtol
@test comoving_volume_gpc3(c,1) ≈ 151.0571 rtol = dist_rtol
@test luminosity_dist_mpc(c,1) ≈ 6607.6579 rtol = dist_rtol
@test distmod(c,1) ≈ 44.1002 rtol = dist_rtol
@test age_gyr(c,0) ≈ 13.4694 rtol = age_rtol
@test age_gyr(c,1) ≈ 5.7527 rtol = age_rtol
@test lookback_time_gyr(c,1) ≈ 13.4694-5.7527 rtol = age_rtol
end

c = cosmology(h=0.7, OmegaK=-0.1, OmegaM=0.3, OmegaR=0)
@test_approx_eq_rtol angular_diameter_dist_mpc(c,1) 1686.5272 dist_rtol
@test_approx_eq_rtol comoving_radial_dist_mpc(c,1) 3408.937 dist_rtol
@test_approx_eq_rtol comoving_volume_gpc3(c,1) 163.8479 dist_rtol
@test_approx_eq_rtol luminosity_dist_mpc(c,1) 6746.1088 dist_rtol
@test_approx_eq_rtol distmod(c,1) 44.1453 dist_rtol
@test_approx_eq_rtol age_gyr(c,0) 13.925 age_rtol
@test_approx_eq_rtol age_gyr(c,1) 5.9868 age_rtol
@test_approx_eq_rtol lookback_time_gyr(c,1) 13.925-5.9868 age_rtol
@testset "OpenLCDM" begin
c = cosmology(h=0.7, OmegaK=0.1, OmegaM=0.3, OmegaR=0)
@test angular_diameter_dist_mpc(c,1) ≈ 1619.9588 rtol = dist_rtol
@test comoving_radial_dist_mpc(c,1) ≈ 3209.784 rtol = dist_rtol
@test comoving_volume_gpc3(c,1) ≈ 140.0856 rtol = dist_rtol
@test luminosity_dist_mpc(c,1) ≈ 6479.8352 rtol = dist_rtol
@test distmod(c,1) ≈ 44.0578 rtol = dist_rtol
@test age_gyr(c,0) ≈ 13.064 rtol = age_rtol
@test age_gyr(c,1) ≈ 5.5466 rtol = age_rtol
@test lookback_time_gyr(c,1) ≈ 13.064-5.5466 rtol = age_rtol
end

c = cosmology(h=0.7, OmegaM=0.3, OmegaR=0, w0=-0.9, wa=0.1)
@test_approx_eq_rtol angular_diameter_dist_mpc(c,1) 1612.0585 dist_rtol
@test_approx_eq_rtol comoving_radial_dist_mpc(c,1) 3224.1169 dist_rtol
@test_approx_eq_rtol comoving_volume_gpc3(c,1) 140.3851 dist_rtol
@test_approx_eq_rtol luminosity_dist_mpc(c,1) 6448.2338 dist_rtol
@test_approx_eq_rtol distmod(c,1) 44.0472 dist_rtol
@test_approx_eq_rtol age_gyr(c,0) 13.1915 age_rtol
@test_approx_eq_rtol age_gyr(c,1) 5.6464 age_rtol
@test_approx_eq_rtol lookback_time_gyr(c,1) 13.1915-5.6464 age_rtol
@testset "ClosedLCDM" begin
c = cosmology(h=0.7, OmegaK=-0.1, OmegaM=0.3, OmegaR=0)
@test angular_diameter_dist_mpc(c,1) ≈ 1686.5272 rtol = dist_rtol
@test comoving_radial_dist_mpc(c,1) ≈ 3408.937 rtol = dist_rtol
@test comoving_volume_gpc3(c,1) ≈ 163.8479 rtol = dist_rtol
@test luminosity_dist_mpc(c,1) ≈ 6746.1088 rtol = dist_rtol
@test distmod(c,1) ≈ 44.1453 rtol = dist_rtol
@test age_gyr(c,0) ≈ 13.925 rtol = age_rtol
@test age_gyr(c,1) ≈ 5.9868 rtol = age_rtol
@test lookback_time_gyr(c,1) ≈ 13.925-5.9868 rtol = age_rtol
end

c = cosmology(h=0.7, OmegaK=0.1, OmegaM=0.3, OmegaR=0, w0=-0.9, wa=0.1)
@test_approx_eq_rtol angular_diameter_dist_mpc(c,1) 1588.0181 dist_rtol
@test_approx_eq_rtol comoving_radial_dist_mpc(c,1) 3147.6227 dist_rtol
@test_approx_eq_rtol comoving_volume_gpc3(c,1) 132.0466 dist_rtol
@test_approx_eq_rtol luminosity_dist_mpc(c,1) 6352.0723 dist_rtol
@test_approx_eq_rtol distmod(c,1) 44.0146 dist_rtol
@test_approx_eq_rtol age_gyr(c,0) 12.8488 age_rtol
@test_approx_eq_rtol age_gyr(c,1) 5.4659 age_rtol
@test_approx_eq_rtol lookback_time_gyr(c,1) 12.8488-5.4659 age_rtol
@testset "FlatWCDM" begin
c = cosmology(h=0.7, OmegaM=0.3, OmegaR=0, w0=-0.9, wa=0.1)
@test angular_diameter_dist_mpc(c,1) ≈ 1612.0585 rtol = dist_rtol
@test comoving_radial_dist_mpc(c,1) ≈ 3224.1169 rtol = dist_rtol
@test comoving_volume_gpc3(c,1) ≈ 140.3851 rtol = dist_rtol
@test luminosity_dist_mpc(c,1) ≈ 6448.2338 rtol = dist_rtol
@test distmod(c,1) ≈ 44.0472 rtol = dist_rtol
@test age_gyr(c,0) ≈ 13.1915 rtol = age_rtol
@test age_gyr(c,1) ≈ 5.6464 rtol = age_rtol
@test lookback_time_gyr(c,1) ≈ 13.1915-5.6464 rtol = age_rtol
end

c = cosmology(h=0.7, OmegaK=-0.1, OmegaM=0.3, OmegaR=0, w0=-0.9, wa=0.1)
@test_approx_eq_rtol angular_diameter_dist_mpc(c,1) 1637.5993 dist_rtol
@test_approx_eq_rtol comoving_radial_dist_mpc(c,1) 3307.9932 dist_rtol
@test_approx_eq_rtol comoving_volume_gpc3(c,1) 149.8301 dist_rtol
@test_approx_eq_rtol luminosity_dist_mpc(c,1) 6550.3973 dist_rtol
@test_approx_eq_rtol distmod(c,1) 44.0813 dist_rtol
@test_approx_eq_rtol age_gyr(c,0) 13.5702 age_rtol
@test_approx_eq_rtol age_gyr(c,1) 5.8482 age_rtol
@test_approx_eq_rtol lookback_time_gyr(c,1) 13.5702-5.8482 age_rtol
@testset "OpenWCDM" begin
c = cosmology(h=0.7, OmegaK=0.1, OmegaM=0.3, OmegaR=0, w0=-0.9, wa=0.1)
@test angular_diameter_dist_mpc(c,1) ≈ 1588.0181 rtol = dist_rtol
@test comoving_radial_dist_mpc(c,1) ≈ 3147.6227 rtol = dist_rtol
@test comoving_volume_gpc3(c,1) ≈ 132.0466 rtol = dist_rtol
@test luminosity_dist_mpc(c,1) ≈ 6352.0723 rtol = dist_rtol
@test distmod(c,1) ≈ 44.0146 rtol = dist_rtol
@test age_gyr(c,0) ≈ 12.8488 rtol = age_rtol
@test age_gyr(c,1) ≈ 5.4659 rtol = age_rtol
@test lookback_time_gyr(c,1) ≈ 12.8488-5.4659 rtol = age_rtol
end

# Test that FlatLCDM works with non-Float64 (BigFloat in this example)
c = cosmology(h=0.7, OmegaM=big(0.3), OmegaR=0)
@test_approx_eq_rtol angular_diameter_dist_mpc(c,1) 1651.9145 dist_rtol
@testset "ClosedWCDM" begin
c = cosmology(h=0.7, OmegaK=-0.1, OmegaM=0.3, OmegaR=0, w0=-0.9, wa=0.1)
@test angular_diameter_dist_mpc(c,1) ≈ 1637.5993 rtol = dist_rtol
@test comoving_radial_dist_mpc(c,1) ≈ 3307.9932 rtol = dist_rtol
@test comoving_volume_gpc3(c,1) ≈ 149.8301 rtol = dist_rtol
@test luminosity_dist_mpc(c,1) ≈ 6550.3973 rtol = dist_rtol
@test distmod(c,1) ≈ 44.0813 rtol = dist_rtol
@test age_gyr(c,0) ≈ 13.5702 rtol = age_rtol
@test age_gyr(c,1) ≈ 5.8482 rtol = age_rtol
@test lookback_time_gyr(c,1) ≈ 13.5702-5.8482 rtol = age_rtol
end

# Test that FlatWCDM works with non-Float64 (BigFloat in this example)
c = cosmology(h=big(0.7), OmegaM=0.3, OmegaR=0, w0=-0.9, wa=0.1)
@test_approx_eq_rtol angular_diameter_dist_mpc(c,1) 1612.0585 dist_rtol
@testset "Non-Float64" begin
# Test that FlatLCDM works with non-Float64 (BigFloat in this example)
c = cosmology(h=0.7, OmegaM=big(0.3), OmegaR=0)
@test angular_diameter_dist_mpc(c,1) ≈ 1651.9145 rtol = dist_rtol
# Test that FlatWCDM works with non-Float64 (BigFloat in this example)
c = cosmology(h=big(0.7), OmegaM=0.3, OmegaR=0, w0=-0.9, wa=0.1)
@test angular_diameter_dist_mpc(c,1) ≈ 1612.0585 rtol = dist_rtol
end