Skip to content

Commit 55e6c5b

Browse files
committed
Remove another breaking change
1 parent e1fa4b5 commit 55e6c5b

File tree

2 files changed

+25
-6
lines changed

2 files changed

+25
-6
lines changed

src/multivariate/product.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,10 @@ entropy(d::Product) = sum(entropy, d.v)
4747
insupport(d::Product, x::AbstractVector) = all(insupport.(d.v, x))
4848
minimum(d::Product) = map(minimum, d.v)
4949
maximum(d::Product) = map(maximum, d.v)
50+
51+
# TODO: remove deprecation when `Product` is removed
52+
# it will return a `ProductDistribution` then which is already the default for
53+
# higher-dimensional arrays and distributions
54+
Base.@deprecate product_distribution(
55+
dists::AbstractVector{<:UnivariateDistribution}
56+
) Product(dists)

test/product.jl

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ end
3737
ubound = rand(N)
3838
ds = Uniform.(-ubound, ubound)
3939
x = rand.(ds)
40-
d_product = @test_deprecated(Product(ds))
40+
d_product = @test_deprecated(product_distribution(ds))
4141
@test d_product isa Product
4242
# Check that methods for `Product` are consistent.
4343
@test length(d_product) == length(ds)
@@ -68,7 +68,7 @@ end
6868
support = fill(a, N)
6969
ds = DiscreteNonParametric.(support, Ref([0.5, 0.5]))
7070
x = rand.(ds)
71-
d_product = @test_deprecated(Product(ds))
71+
d_product = @test_deprecated(product_distribution(ds))
7272
@test d_product isa Product
7373
# Check that methods for `Product` are consistent.
7474
@test length(d_product) == length(ds)
@@ -127,14 +127,20 @@ end
127127
ubound = rand(N)
128128

129129
ds1 = Uniform.(0.0, ubound)
130-
d_product1 = @inferred(product_distribution(ds1))
130+
# Replace with
131+
# d_product1 = @inferred(product_distribution(ds1))
132+
# when `Product` is removed
133+
d_product1 = @inferred(Distributions.ProductDistribution(ds1))
131134
@test d_product1 isa Distributions.VectorOfUnivariateDistribution{<:Vector,Continuous,Float64}
132135

133136
d_product2 = @inferred(product_distribution(ntuple(i -> Uniform(0.0, ubound[i]), 11)...))
134137
@test d_product2 isa Distributions.VectorOfUnivariateDistribution{<:Tuple,Continuous,Float64}
135138

136139
ds3 = Fill(Uniform(0.0, first(ubound)), N)
137-
d_product3 = @inferred(product_distribution(ds3))
140+
# Replace with
141+
# d_product3 = @inferred(product_distribution(ds3))
142+
# when `Product` is removed
143+
d_product3 = @inferred(Distributions.ProductDistribution(ds3))
138144
@test d_product3 isa Distributions.VectorOfUnivariateDistribution{<:Fill,Continuous,Float64}
139145

140146
# Check that methods for `VectorOfUnivariateDistribution` are consistent.
@@ -171,14 +177,20 @@ end
171177
for a in ([0, 1], [-0.5, 0.5])
172178
# Construct independent distributions and `ProductDistribution` from these.
173179
ds1 = DiscreteNonParametric.(fill(a, N), Ref([0.5, 0.5]))
174-
d_product1 = @inferred(product_distribution(ds1))
180+
# Replace with
181+
# d_product1 = @inferred(product_distribution(ds1))
182+
# when `Product` is removed
183+
d_product1 = @inferred(Distributions.ProductDistribution(ds1))
175184
@test d_product1 isa Distributions.VectorOfUnivariateDistribution{<:Vector{<:DiscreteNonParametric},Discrete,eltype(a)}
176185

177186
d_product2 = @inferred(product_distribution(ntuple(_ -> DiscreteNonParametric(a, [0.5, 0.5]), 11)...))
178187
@test d_product2 isa Distributions.VectorOfUnivariateDistribution{<:NTuple{N,<:DiscreteNonParametric},Discrete,eltype(a)}
179188

180189
ds3 = Fill(DiscreteNonParametric(a, [0.5, 0.5]), N)
181-
d_product3 = @inferred(product_distribution(ds3))
190+
# Replace with
191+
# d_product3 = @inferred(product_distribution(ds3))
192+
# when `Product` is removed
193+
d_product3 = @inferred(Distributions.ProductDistribution(ds3))
182194
@test d_product3 isa Distributions.VectorOfUnivariateDistribution{<:Fill{<:DiscreteNonParametric,1},Discrete,eltype(a)}
183195

184196
# Check that methods for `VectorOfUnivariateDistribution` are consistent.

0 commit comments

Comments
 (0)