Skip to content

Commit 24bc8f0

Browse files
authored
working on fixing Aqua tests (#65)
* working on fixing Aqua tests * drop extra `MeasureBase.` qualifiers * roll back proxy changes * drop redundant `MeasureBase.` * formatting * fix ambiguities * Aqua tests passing!! * format * NonEmptyTuple type * move amgiguity fixes to one place * bugfix * qualify `MeasureBase.` in docstring for unexported functions * roll back dostring qualifiers * set aside ambiguity fixes for now
1 parent 4b0ef78 commit 24bc8f0

File tree

7 files changed

+158
-10
lines changed

7 files changed

+158
-10
lines changed

ambiguity-fixes.jl.txt

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
function superpose(::T, ::T) where {T<:SuperpositionMeasure}
2+
@error "FIXME"
3+
end
4+
5+
function kernel(::Type{M}, ::NamedTuple{()}) where {M<:ParameterizedMeasure}
6+
@error "FIXME"
7+
end
8+
9+
function logdensity_def(
10+
::T,
11+
::S,
12+
::Any,
13+
) where {
14+
T<:(MeasureBase.SuperpositionMeasure{Tuple{A,B}} where {A,B}),
15+
S<:(MeasureBase.SuperpositionMeasure{Tuple{A,B}} where {A,B}),
16+
}
17+
@error "FIXME"
18+
end
19+
20+
function transport_def(::StdUniform, ::StdExponential, ::NoTransformOrigin)
21+
@error "FIXME"
22+
end
23+
24+
@inline function transport_def(::StdExponential, ::StdUniform, ::NoTransformOrigin)
25+
@error "FIXME"
26+
end
27+
28+
function transport_def(::StdUniform, ::StdExponential, ::NoTransport)
29+
@error "FIXME"
30+
end
31+
32+
@inline function transport_def(::StdExponential, ::StdUniform, ::NoTransport)
33+
@error "FIXME"
34+
end
35+
36+
function transport_def(::StdUniform, ::StdLogistic, ::NoTransformOrigin)
37+
@error "FIXME"
38+
end
39+
40+
function transport_def(::StdUniform, ::StdLogistic, ::NoTransport)
41+
@error "FIXME"
42+
end
43+
44+
function transport_def(::StdLogistic, ::StdUniform, ::NoTransport)
45+
@error "FIXME"
46+
end
47+
48+
@inline function transport_def(::StdLogistic, ::StdUniform, ::NoTransformOrigin)
49+
@error "FIXME"
50+
end
51+
52+
@inline function transport_def(::MU, ::MU, ::NoTransport) where {MU<:StdMeasure}
53+
@error "FIXME"
54+
end
55+
56+
@inline function transport_def(::MU, ::MU, ::NoTransformOrigin) where {MU<:StdMeasure}
57+
@error "FIXME"
58+
end
59+
60+
function transport_def(::StdMeasure, ::PowerMeasure{<:StdMeasure}, ::NoTransport)
61+
@error "FIXME"
62+
end
63+
64+
function transport_def(::StdMeasure, ::PowerMeasure{<:StdMeasure}, ::NoTransformOrigin)
65+
@error "FIXME"
66+
end
67+
68+
function transport_def(::PowerMeasure{<:StdMeasure}, ::StdMeasure, ::NoTransformOrigin)
69+
@error "FIXME"
70+
end
71+
72+
function transport_def(::PowerMeasure{<:StdMeasure}, ::StdMeasure, ::NoTransport)
73+
@error "FIXME"
74+
end
75+
76+
function transport_def(
77+
::PowerMeasure{<:StdMeasure,<:Tuple{Base.OneTo}},
78+
::PowerMeasure{<:StdMeasure,<:Tuple{Base.OneTo}},
79+
::NoTransport,
80+
)
81+
@error "FIXME"
82+
end
83+
84+
function transport_def(
85+
::PowerMeasure{<:StdMeasure,<:Tuple{Base.OneTo}},
86+
::PowerMeasure{<:StdMeasure,<:Tuple{Base.OneTo}},
87+
::NoTransformOrigin,
88+
)
89+
@error "FIXME"
90+
end
91+
92+
function transport_def(
93+
::PowerMeasure{<:StdMeasure,<:Tuple{Vararg{Base.OneTo,N}}},
94+
::PowerMeasure{<:StdMeasure,<:Tuple{Vararg{Base.OneTo,M}}},
95+
::NoTransport,
96+
) where {N,M}
97+
@error "FIXME"
98+
end
99+
100+
function transport_def(
101+
::PowerMeasure{<:StdMeasure,<:Tuple{Vararg{Base.OneTo,N}}},
102+
::PowerMeasure{<:StdMeasure,<:Tuple{Vararg{Base.OneTo,M}}},
103+
::NoTransformOrigin,
104+
) where {N,M}
105+
@error "FIXME"
106+
end
107+
108+
function transport_to(::Type{NU}, ::Type{MU}) where {MU<:StdMeasure,NU<:StdMeasure}
109+
@error "FIXME"
110+
end
111+
112+
function transport_def(::Dirac, ::PowerMeasure{<:StdMeasure}, ::NoTransport)
113+
@error "FIXME"
114+
end
115+
116+
function transport_def(::Dirac, ::PowerMeasure{<:StdMeasure}, ::NoTransformOrigin)
117+
@error "FIXME"
118+
end
119+
120+
@inline function transport_def(::PowerMeasure{<:StdMeasure}, ::Dirac, ::NoTransport)
121+
@error "FIXME"
122+
end
123+
124+
@inline function transport_def(::PowerMeasure{<:StdMeasure}, ::Dirac, ::NoTransformOrigin)
125+
@error "FIXME"
126+
end

src/combinators/product.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ function basemeasure(μ::ProductMeasure{A}) where {T,A<:AbstractMappedArray{T}}
133133
_basemeasure(μ, B, static(Base.issingletontype(B)))
134134
end
135135

136-
function _basemeasure::ProductMeasure, ::Type{B}, ::True) where {T,B}
136+
function _basemeasure::ProductMeasure, ::Type{B}, ::True) where {B}
137137
return instance(B)^axes(marginals(μ))
138138
end
139139

src/combinators/smart-constructors.jl

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,17 @@ end
1919
###############################################################################
2020
# PowerMeaure
2121

22-
function powermeasure::WeightedMeasure, dims::NTuple{N,I}) where {N,I<:AbstractArray}
22+
powermeasure(m::AbstractMeasure, ::Tuple{}) = m
23+
24+
function powermeasure(
25+
μ::WeightedMeasure,
26+
dims::Tuple{<:AbstractArray,Vararg{<:AbstractArray}},
27+
)
2328
k = mapreduce(length, *, dims) * μ.logweight
2429
return weightedmeasure(k, μ.base^dims)
2530
end
2631

27-
function powermeasure::WeightedMeasure, dims::NTuple{N,I}) where {N,I}
32+
function powermeasure::WeightedMeasure, dims::NonEmptyTuple)
2833
k = prod(dims) * μ.logweight
2934
return weightedmeasure(k, μ.base^dims)
3035
end

src/combinators/superpose.jl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,11 @@ end
9999
end
100100
end
101101

102-
@inline function logdensity_def(s::SuperpositionMeasure{Tuple{A,B}}, β, x) where {A,B}
102+
@inline function logdensity_def(
103+
s::T,
104+
β,
105+
x,
106+
) where {T<:(SuperpositionMeasure{Tuple{A,B}} where {A,B})}
103107
(μ, ν) = s.components
104108

105109
insupport(μ, x) == true || return logdensity_rel(ν, β, x)
@@ -118,7 +122,7 @@ end
118122
return logaddexp(logdensity_rel(μ, β, x), logdensity_rel(ν, β, x))
119123
end
120124

121-
@inline function logdensity_def(s, β::SuperpositionMeasure{Tuple{A,B}}, x) where {A,B}
125+
@inline function logdensity_def(s, β::(SuperpositionMeasure{Tuple{A,B}} where {A,B}), x)
122126
-logdensity_def(β, s, x)
123127
end
124128

src/standard/stdmeasure.jl

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,18 @@ _std_measure(::Type{M}, ::StaticInt{1}) where {M<:StdMeasure} = M()
3737
_std_measure(::Type{M}, dof::Integer) where {M<:StdMeasure} = M()^dof
3838
_std_measure_for(::Type{M}, μ::Any) where {M<:StdMeasure} = _std_measure(M, getdof(μ))
3939

40-
function MeasureBase.transport_to(::Type{NU}, μ) where {NU<:StdMeasure}
40+
function transport_to(::Type{NU}, μ) where {NU<:StdMeasure}
4141
transport_to(_std_measure_for(NU, μ), μ)
4242
end
43-
function MeasureBase.transport_to(ν, ::Type{MU}) where {MU<:StdMeasure}
43+
44+
function transport_to(ν, ::Type{MU}) where {MU<:StdMeasure}
4445
transport_to(ν, _std_measure_for(MU, ν))
4546
end
4647

4748
# Transform between standard measures and Dirac:
4849

49-
@inline transport_def::Dirac, ::PowerMeasure{<:MeasureBase.StdMeasure}, ::Any) = ν.x
50+
@inline transport_def::Dirac, ::PowerMeasure{<:StdMeasure}, ::Any) = ν.x
5051

51-
@inline function transport_def::PowerMeasure{<:MeasureBase.StdMeasure}, ::Dirac, ::Any)
52+
@inline function transport_def::PowerMeasure{<:StdMeasure}, ::Dirac, ::Any)
5253
Zeros{Bool}(map(_ -> 0, ν.axes))
5354
end

src/utils.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
const EmptyNamedTuple = NamedTuple{(),Tuple{}}
2+
const NonEmptyTuple = Tuple{Any,Vararg{Any}}
23

34
function Base.show(io::IO, μ::AbstractMeasure)
45
io = IOContext(io, :compact => true)

test/runtests.jl

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,23 @@ using Test
22
using Base.Iterators: take
33
using Random
44
using LinearAlgebra
5+
import LogarithmicNumbers
56

67
using MeasureBase
78
using MeasureBase: test_interface
89

910
using Aqua
10-
Aqua.test_all(MeasureBase; ambiguities = false, unbound_args = false)
11+
Aqua.test_all(MeasureBase; ambiguities = false)
12+
13+
# Aqua._test_ambiguities(
14+
# Aqua.aspkgids(MeasureBase);
15+
# exclude = [LogarithmicNumbers.Logarithmic],
16+
# # packages::Vector{PkgId};
17+
# # color::Union{Bool, Nothing} = nothing,
18+
# # exclude::AbstractArray = [],
19+
# # # Options to be passed to `Test.detect_ambiguities`:
20+
# # detect_ambiguities_options...,
21+
# )
1122

1223
d = ∫exp(x -> -x^2, Lebesgue(ℝ))
1324

0 commit comments

Comments
 (0)