Skip to content

Commit fce0c64

Browse files
committed
Update tests
1 parent 99e1bf1 commit fce0c64

File tree

3 files changed

+16
-43
lines changed

3 files changed

+16
-43
lines changed

src/deprecated.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# TODO: remove tests when removed
2-
@deprecate MahalanobisKernel(; P::AbstractMatrix{<:Real}) transform(SqExponentialKernel(), LinearTransform(cholesky(P).U))
2+
@deprecate MahalanobisKernel(; P::AbstractMatrix{<:Real}) transform(SqExponentialKernel(), LinearTransform(sqrt(2) .* cholesky(P).U))
33

44
# TODO: remove keyword argument `maha` when removed
55
@deprecate PiecewisePolynomialKernel{V}(A::AbstractMatrix{<:Real}) where V transform(PiecewisePolynomialKernel{V}(size(A, 1)), LinearTransform(cholesky(A).U))

test/basekernels/maha.jl

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
@testset "maha" begin
22
rng = MersenneTwister(123456)
3-
x = 2 * rand(rng)
43
D_in = 3
54
v1 = rand(rng, D_in)
65
v2 = rand(rng, D_in)
@@ -9,40 +8,10 @@
98
P = Matrix(Cholesky(U, 'U', 0))
109
@assert isposdef(P)
1110

12-
k = MahalanobisKernel(; P=P)
13-
14-
@test kappa(k, x) == exp(-x)
11+
k = @test_deprecated MahalanobisKernel(; P=P)
12+
@test k isa TransformedKernel{SqExponentialKernel,<:LinearTransform}
13+
@test k.transform.A sqrt(2) .* U
1514
@test k(v1, v2) exp(-sqmahalanobis(v1, v2, P))
16-
@test kappa(ExponentialKernel(), x) == kappa(k, x)
17-
@test repr(k) == "Mahalanobis Kernel (size(P) = $(size(P)))"
18-
19-
M1, M2 = rand(rng, 3, 2), rand(rng, 3, 2)
20-
21-
function FiniteDifferences.to_vec(dist::SqMahalanobis)
22-
return vec(dist.qmat), x -> SqMahalanobis(reshape(x, size(dist.qmat)...))
23-
end
24-
a = rand()
25-
26-
function test_mahakernel(U::UpperTriangular, v1::AbstractVector, v2::AbstractVector)
27-
return MahalanobisKernel(; P=Array(U' * U))(v1, v2)
28-
end
29-
30-
@test all(
31-
FiniteDifferences.j′vp(FDM, test_mahakernel, a, U, v1, v2)[1] .≈
32-
UpperTriangular(Zygote.pullback(test_mahakernel, U, v1, v2)[2](a)[1]),
33-
)
34-
35-
function test_sqmaha(U::UpperTriangular, v1::AbstractVector, v2::AbstractVector)
36-
return SqMahalanobis(Array(U' * U))(v1, v2)
37-
end
38-
39-
@test all(
40-
FiniteDifferences.j′vp(FDM, test_sqmaha, a, U, v1, v2)[1] .≈
41-
UpperTriangular(Zygote.pullback(test_sqmaha, U, v1, v2)[2](a)[1]),
42-
)
43-
44-
# test_ADs(U -> MahalanobisKernel(P=Array(U' * U)), U, ADs=[:Zygote])
45-
@test_broken "Nothing passes (problem with Mahalanobis distance in Distances)"
4615

4716
# Standardised tests.
4817
@testset "ColVecs" begin
@@ -57,5 +26,4 @@
5726
x2 = RowVecs(randn(2, D_in))
5827
TestUtils.test_interface(k, x0, x1, x2)
5928
end
60-
test_params(k, (P,))
6129
end

test/basekernels/piecewisepolynomial.jl

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,26 @@
44
v2 = rand(D)
55
maha = Matrix{Float64}(I, D, D)
66
v = 3
7-
k = PiecewisePolynomialKernel{v}(maha)
87

9-
k2 = PiecewisePolynomialKernel(; v=v, maha=maha)
8+
k = PiecewisePolynomialKernel(; v=v, d=D)
9+
k2 = PiecewisePolynomialKernel{v}(D)
10+
k3 = @test_deprecated PiecewisePolynomialKernel{v}(maha)
11+
k4 = @test_deprecated PiecewisePolynomialKernel(; v=v, maha=maha)
1012

11-
@test k2(v1, v2) k(v1, v2) atol = 1e-5
13+
@test k2(v1, v2) == k(v1, v2)
14+
@test k3(v1, v2) k(v1, v2)
15+
@test k4(v1, v2) k(v1, v2)
1216

1317
@test_throws ErrorException PiecewisePolynomialKernel{4}(maha)
18+
@test_throws ErrorException PiecewisePolynomialKernel{4}(D)
19+
@test_throws ErrorException PiecewisePolynomialKernel{v}(-1)
1420

15-
@test repr(k) == "Piecewise Polynomial Kernel (v = $(v), size(maha) = $(size(maha)))"
21+
@test repr(k) == "Piecewise Polynomial Kernel (v = $(v), ⌊d/2⌋ = $(div(D, 2)))"
1622

1723
# Standardised tests.
1824
TestUtils.test_interface(k, ColVecs{Float64}; dim_in=2)
1925
TestUtils.test_interface(k, RowVecs{Float64}; dim_in=2)
20-
# test_ADs(maha-> PiecewisePolynomialKernel(v=2, maha = maha), maha)
21-
@test_broken "Nothing passes (problem with Mahalanobis distance in Distances)"
26+
test_ADs(() -> PiecewisePolynomialKernel{v}(D))
2227

23-
test_params(k, (maha,))
28+
test_params(k, ())
2429
end

0 commit comments

Comments
 (0)