From 0f2fed8ece22892138627039d979e189353d3d52 Mon Sep 17 00:00:00 2001 From: Marcus P S Date: Sat, 14 Dec 2024 03:49:23 +0000 Subject: [PATCH 1/2] Add tests for `median(x::Binomial)` --- test/univariate/discrete/binomial.jl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/univariate/discrete/binomial.jl b/test/univariate/discrete/binomial.jl index 0caa97421..b3580c396 100644 --- a/test/univariate/discrete/binomial.jl +++ b/test/univariate/discrete/binomial.jl @@ -26,6 +26,13 @@ end @test Distributions.expectation(identity, Binomial(6)) ≈ 3.0 @test Distributions.expectation(x -> -x, Binomial(10, 0.2)) ≈ -2.0 +# Test median +@test Distributions.median(Binomial(5,3//10)) == 1 +@test Distributions.median(Binomial(25,3//10)) == 7 +@test Distributions.median(Binomial(45,3//10)) == 13 +@test Distributions.median(Binomial(65,3//10)) == 19 +@test Distributions.median(Binomial(85,3//10)) == 25 + # Test mode @test Distributions.mode(Binomial(100, 0.4)) == 40 @test Distributions.mode(Binomial(1, 0.51)) == 1 From f0275a3b85faee732ee8b6f753d0c0a0184bc328 Mon Sep 17 00:00:00 2001 From: Marcus P S Date: Sat, 14 Dec 2024 03:51:47 +0000 Subject: [PATCH 2/2] Remove specialization of `median` to `Binomial` Let `median(x::Binomial)` fall back to `quantile(x,1//2)` --- src/univariate/discrete/binomial.jl | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/univariate/discrete/binomial.jl b/src/univariate/discrete/binomial.jl index c83683b73..421480752 100644 --- a/src/univariate/discrete/binomial.jl +++ b/src/univariate/discrete/binomial.jl @@ -73,15 +73,8 @@ function mode(d::Binomial{T}) where T<:Real end modes(d::Binomial) = Int[mode(d)] -function median(d::Binomial) - round_down_mean = floor(Int,mean(d)) - if cdf(d,round_down) < 0.5 - round_down_mean+1 - else - round_down_mean - end -end - +# `median` falls back to quantile-based definition + function skewness(d::Binomial) n, p1 = params(d) p0 = 1 - p1