Skip to content

Commit a7bdad7

Browse files
committed
update inv and tests
1 parent c4b2926 commit a7bdad7

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

src/combinators/affine.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ Base.propertynames(d::AffineTransform{N}) where {N} = N
1010

1111
@inline Base.inv(f::AffineTransform{(:μ,:σ)}) = AffineTransform((μ = -(f.σ \ f.μ), ω = f.σ))
1212
@inline Base.inv(f::AffineTransform{(:μ,:ω)}) = AffineTransform((μ = - f.ω * f.μ, σ = f.ω))
13+
@inline Base.inv(f::AffineTransform{(:σ,)}) = AffineTransform((ω = f.σ,))
14+
@inline Base.inv(f::AffineTransform{(:ω,)}) = AffineTransform((σ = f.ω,))
15+
@inline Base.inv(f::AffineTransform{(:μ,)}) = AffineTransform((μ = -f.μ,))
1316

1417
(f::AffineTransform{(:μ,)})(x) = x + f.μ
1518
(f::AffineTransform{(:σ,)})(x) = f.σ * x

test/runtests.jl

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,17 @@ end
111111

112112
@testset "Affine" begin
113113
unif = (x -> 0<x<1, Lebesgue(ℝ))
114-
f = AffineTransform((μ=3=2))
115-
g = AffineTransform((μ=3=2))
116-
117-
@test Affine((μ=3=2))(unif) == Affine(f, unif)
118-
@test Affine((μ=3=2))(unif) == Affine(g, unif)
119-
@test density(Affine(f, Affine(inv(f), unif)), 0.5) == 1
114+
f1 = AffineTransform((μ=3.=2.))
115+
f2 = AffineTransform((μ=3.=2.))
116+
f3 = AffineTransform((μ=3.,))
117+
f4 = AffineTransform((σ=2.,))
118+
f5 = AffineTransform((ω=2.,))
119+
120+
for f in [f1,f2,f3,f4,f5]
121+
par = getfield(f, :par)
122+
@test Affine(par)(unif) == Affine(f, unif)
123+
@test density(Affine(f, Affine(inv(f), unif)), 0.5) == 1
124+
end
120125
end
121126

122127
# @testset "For" begin

0 commit comments

Comments
 (0)