@@ -165,6 +165,9 @@ it = (xᵢ for xᵢ in x)
165165@test @inferred (entropy ([1 // 2 , 1 // 2 ], 2 )) ≈ 1.0
166166@test @inferred (entropy ([0.2 , 0.3 , 0.5 ], 2 )) ≈ 1.4854752972273344
167167
168+ @test_throws ArgumentError @inferred (entropy (Float64[]))
169+ @test_throws ArgumentError @inferred (entropy (Int[]))
170+
168171# #### Renyi entropies
169172# Generate a random probability distribution
170173nindiv = 50
@@ -211,13 +214,24 @@ scale = rand()
211214@test @inferred (crossentropy ([1 // 5 , 3 // 10 , 1 // 2 ], [0.3 , 0.4 , 0.3 ], 2 )) ≈ 1.6124543443825532
212215@test @inferred (crossentropy ([1 // 5 , 3 // 10 , 1 // 2 ], [0.3f0 , 0.4f0 , 0.3f0 ], 2f0 )) isa Float32
213216
217+ # deprecated, should throw an `ArgumentError` at some point
218+ logpattern = (:warn , " support for empty collections of probabilities will be removed" )
219+ @test iszero (@test_logs logpattern @inferred (crossentropy (Float64[], Float64[])))
220+ @test iszero (@test_logs logpattern @inferred (crossentropy (Int[], Int[])))
221+
214222# #### KL divergence
215223@test @inferred (kldivergence ([0.2 , 0.3 , 0.5 ], [0.3 , 0.4 , 0.3 ])) ≈ 0.08801516852582819
216224@test @inferred (kldivergence ([1 // 5 , 3 // 10 , 1 // 2 ], [0.3 , 0.4 , 0.3 ])) ≈ 0.08801516852582819
217225@test @inferred (kldivergence ([1 // 5 , 3 // 10 , 1 // 2 ], [0.3f0 , 0.4f0 , 0.3f0 ])) isa Float32
218226@test @inferred (kldivergence ([0.2 , 0.3 , 0.5 ], [0.3 , 0.4 , 0.3 ], 2 )) ≈ 0.12697904715521868
219227@test @inferred (kldivergence ([1 // 5 , 3 // 10 , 1 // 2 ], [0.3 , 0.4 , 0.3 ], 2 )) ≈ 0.12697904715521868
220228@test @inferred (kldivergence ([1 // 5 , 3 // 10 , 1 // 2 ], [0.3f0 , 0.4f0 , 0.3f0 ], 2f0 )) isa Float32
229+ @test iszero (@inferred (kldivergence ([0 , 1 ], [0f0 , 1f0 ])))
230+
231+ # deprecated, should throw an `ArgumentError` at some point
232+ logpattern = (:warn , " support for empty collections of probabilities will be removed" )
233+ @test iszero (@test_logs logpattern @inferred (kldivergence (Float64[], Float64[])))
234+ @test iszero (@test_logs logpattern @inferred (kldivergence (Int[], Int[])))
221235
222236# #### summarystats
223237
0 commit comments