|
12 | 12 | kernel2 = TensorProduct([k1, k2])
|
13 | 13 |
|
14 | 14 | @test kernel1.kernels === (k1, k2) === TensorProduct((k1, k2)).kernels
|
| 15 | + @test length(kernel1) == length(kernel2) == 2 |
15 | 16 |
|
16 | 17 | @testset "kappa" begin
|
17 | 18 | for (x, y) in (((v1, u1), (v2, u2)), ([v1, u1], [v2, u2]))
|
|
24 | 25 | end
|
25 | 26 |
|
26 | 27 | @testset "kernelmatrix" begin
|
27 |
| - X = rand(2, 10) |
28 |
| - Y = rand(2, 10) |
| 28 | + X = rand(rng, 2, 10) |
| 29 | + Y = rand(rng, 2, 10) |
29 | 30 | trueX = kernelmatrix(k1, X[1, :]) .* kernelmatrix(k2, X[2, :])
|
30 | 31 | trueXY = kernelmatrix(k1, X[1, :], Y[1, :]) .* kernelmatrix(k2, X[2, :], Y[2, :])
|
31 | 32 | tmp = Matrix{Float64}(undef, 10, 10)
|
|
56 | 57 | end
|
57 | 58 |
|
58 | 59 | @testset "kerneldiagmatrix" begin
|
59 |
| - X = rand(2, 10) |
| 60 | + X = rand(rng, 2, 10) |
60 | 61 | trueval = ones(10)
|
61 | 62 | tmp = Vector{Float64}(undef, 10)
|
62 | 63 |
|
|
73 | 74 | @test tmp == trueval
|
74 | 75 | end
|
75 | 76 | end
|
| 77 | + |
| 78 | + @testset "single kernel" begin |
| 79 | + kernel = TensorProduct(k1) |
| 80 | + @test length(kernel) == 1 |
| 81 | + |
| 82 | + @testset "kappa" begin |
| 83 | + for (x, y) in (((v1,), (v2,)), ([v1], [v2])) |
| 84 | + val = k1(x[1], y[1]) |
| 85 | + |
| 86 | + @test kernel(x, y) == val |
| 87 | + @test KernelFunctions.kappa(kernel, x, y) == val |
| 88 | + end |
| 89 | + end |
| 90 | + |
| 91 | + @testset "kernelmatrix" begin |
| 92 | + X = rand(rng, 1, 10) |
| 93 | + Y = rand(rng, 1, 10) |
| 94 | + trueX = kernelmatrix(k1, X) |
| 95 | + trueXY = kernelmatrix(k1, X, Y) |
| 96 | + tmp = Matrix{Float64}(undef, 10, 10) |
| 97 | + |
| 98 | + @test kernelmatrix(kernel, X) == trueX |
| 99 | + @test kernelmatrix(kernel, X'; obsdim = 1) == trueX |
| 100 | + |
| 101 | + @test kernelmatrix(kernel, X, Y) == trueXY |
| 102 | + @test kernelmatrix(kernel, X', Y'; obsdim = 1) == trueXY |
| 103 | + |
| 104 | + fill!(tmp, 0) |
| 105 | + kernelmatrix!(tmp, kernel, X) |
| 106 | + @test tmp == trueX |
| 107 | + |
| 108 | + fill!(tmp, 0) |
| 109 | + kernelmatrix!(tmp, kernel, X'; obsdim = 1) |
| 110 | + @test tmp == trueX |
| 111 | + |
| 112 | + fill!(tmp, 0) |
| 113 | + kernelmatrix!(tmp, kernel, X, Y) |
| 114 | + @test tmp == trueXY |
| 115 | + |
| 116 | + fill!(tmp, 0) |
| 117 | + kernelmatrix!(tmp, kernel, X', Y'; obsdim = 1) |
| 118 | + @test tmp == trueXY |
| 119 | + end |
| 120 | + |
| 121 | + @testset "kerneldiagmatrix" begin |
| 122 | + X = rand(rng, 1, 10) |
| 123 | + trueval = ones(10) |
| 124 | + tmp = Vector{Float64}(undef, 10) |
| 125 | + |
| 126 | + @test kerneldiagmatrix(kernel, X) == trueval |
| 127 | + @test kerneldiagmatrix(kernel, X'; obsdim = 1) == trueval |
| 128 | + |
| 129 | + fill!(tmp, 0) |
| 130 | + kerneldiagmatrix!(tmp, kernel, X) |
| 131 | + @test tmp == trueval |
| 132 | + |
| 133 | + fill!(tmp, 0) |
| 134 | + kerneldiagmatrix!(tmp, kernel, X'; obsdim = 1) |
| 135 | + @test tmp == trueval |
| 136 | + end |
| 137 | + end |
76 | 138 | end
|
0 commit comments