MeasureBase.jl icon indicating copy to clipboard operation
MeasureBase.jl copied to clipboard

Fix `testvalue` for `Counting` measures

Open cscherrer opened this issue 1 year ago • 0 comments

As of v0.14.7, we have

testvalue(::Type{T}, d::Counting) where {T} = testvalue(T, d.support)

But then we get

julia> testvalue(Counting(Float64))
ERROR: MethodError: no method matching rand(::FixedRNG, ::Type{Float64}, ::Counting{Type{Float64}})

Closest candidates are:
  rand(::FixedRNG, ::Type{Float64})
   @ MeasureBase ~/git/MeasureBase.jl/src/fixedrng.jl:15
  rand(::FixedRNG, ::Type{T}) where T<:Real
   @ MeasureBase ~/git/MeasureBase.jl/src/fixedrng.jl:8
  rand(::Random.AbstractRNG, ::Type{T}, ::StdLogistic) where T
   @ MeasureBase ~/git/MeasureBase.jl/src/standard/stdlogistic.jl:13
  ...

Stacktrace:
 [1] rand(rng::FixedRNG, d::Counting{Type{Float64}})
   @ MeasureBase ~/git/MeasureBase.jl/src/rand.jl:7
 [2] testvalue(μ::Counting{Type{Float64}})
   @ MeasureBase ~/git/MeasureBase.jl/src/utils.jl:14
 [3] top-level scope
   @ REPL[8]:1

Currently this causes MeasureTheory tests to fail. So we should

  1. Decide what the value of rand(rng, T::Type, U::Type) should be
  2. Move tests like testinterface(Counting(Float64)) from MeasureTheory to MeasureBase

cscherrer avatar Aug 21 '23 16:08 cscherrer