diff --git a/src/distribution/gamma.rs b/src/distribution/gamma.rs index 863d41cf..19eb4780 100644 --- a/src/distribution/gamma.rs +++ b/src/distribution/gamma.rs @@ -608,6 +608,25 @@ mod tests { test_case((1.0, 0.1), 0.0, |x| x.cdf(0.0)); } + #[test] + fn test_cdf_inverse_identity() { + let f = |p: f64| move |g: Gamma| g.cdf(g.inverse_cdf(p)); + let params = [ + (1.0, 0.1), + (1.0, 1.0), + (10.0, 10.0), + (10.0, 1.0), + (100.0, 200.0), + ]; + + for param in params { + for n in -5..0 { + let p = 10.0f64.powi(n); + test_case(param, p, f(p)); + } + } + } + #[test] fn test_sf() { let f = |arg: f64| move |x: Gamma| x.sf(arg);