Skip to content

Commit ca784f7

Browse files
committed
Update tests
1 parent eff3d92 commit ca784f7

File tree

3 files changed

+16
-40
lines changed

3 files changed

+16
-40
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 & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,17 @@
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)
76

8-
97
U = UpperTriangular(rand(rng, 3,3))
108
P = Matrix(Cholesky(U, 'U', 0))
119
@assert isposdef(P)
1210

13-
k = MahalanobisKernel(P=P)
14-
15-
@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
1614
@test k(v1, v2) exp(-sqmahalanobis(v1, v2, P))
17-
@test kappa(ExponentialKernel(), x) == kappa(k, x)
18-
@test repr(k) == "Mahalanobis Kernel (size(P) = $(size(P)))"
19-
20-
M1, M2 = rand(rng,3,2), rand(rng,3,2)
21-
22-
function FiniteDifferences.to_vec(dist::SqMahalanobis)
23-
return vec(dist.qmat), x -> SqMahalanobis(reshape(x, size(dist.qmat)...))
24-
end
25-
a = rand()
26-
27-
function test_mahakernel(U::UpperTriangular, v1::AbstractVector, v2::AbstractVector)
28-
return MahalanobisKernel(P=Array(U'*U))(v1, v2)
29-
end
30-
31-
@test all(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-
function test_sqmaha(U::UpperTriangular, v1::AbstractVector, v2::AbstractVector)
35-
return SqMahalanobis(Array(U'*U))(v1, v2)
36-
end
37-
38-
@test all(FiniteDifferences.j′vp(FDM, test_sqmaha, a, U, v1, v2)[1] .≈
39-
UpperTriangular(Zygote.pullback(test_sqmaha, U, v1, v2)[2](a)[1]))
40-
41-
# test_ADs(U -> MahalanobisKernel(P=Array(U' * U)), U, ADs=[:Zygote])
42-
@test_broken "Nothing passes (problem with Mahalanobis distance in Distances)"
4315

4416
# Standardised tests.
4517
@testset "ColVecs" begin
@@ -54,5 +26,4 @@
5426
x2 = RowVecs(randn(2, D_in))
5527
TestUtils.test_interface(k, x0, x1, x2)
5628
end
57-
test_params(k, (P,))
5829
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)