Skip to content

Commit aff18f8

Browse files
committed
Improve the code coverage
1 parent 0670e86 commit aff18f8

File tree

1 file changed

+54
-12
lines changed

1 file changed

+54
-12
lines changed

test/test_aux.jl

Lines changed: 54 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,13 @@
146146
end
147147
end
148148

149+
@testset "kaxes" begin
150+
# test kaxes
151+
A = rand(10, 5)
152+
@test kaxes(A, Vector{Float64}) == (10, 5)
153+
@test kaxes(A, SparseVector{Float64, Int64}) == (Base.OneTo(10), Base.OneTo(5))
154+
end
155+
149156
@testset "vector_to_matrix" begin
150157
# test vector_to_matrix
151158
for FC in (Float32, Float64, ComplexF32, ComplexF64)
@@ -179,25 +186,60 @@
179186
a2 = rand(T)
180187
b2 = rand(T)
181188

182-
Krylov.@kdot(n, x, y)
189+
@test Krylov.@kdot(n, x, y) dot(x,y)
190+
191+
@test Krylov.@kdotr(n, x, x) isa T
192+
193+
@test Krylov.@knrm2(n, x) norm(x)
183194

184-
Krylov.@kdotr(n, x, y)
195+
@test Krylov.@kaxpy!(n, a, copy(x), copy(y)) (a * x + y)
196+
@test Krylov.@kaxpy!(n, a2, copy(x), copy(y)) (a2 * x + y)
185197

186-
Krylov.@knrm2(n, x)
198+
@test Krylov.@kaxpby!(n, a, copy(x), b, copy(y)) (a * x + b * y)
199+
@test Krylov.@kaxpby!(n, a2, copy(x), b, copy(y)) (a2 * x + b * y)
200+
@test Krylov.@kaxpby!(n, a, copy(x), b2, copy(y)) (a * x + b2 * y)
201+
@test Krylov.@kaxpby!(n, a2, copy(x), b2, copy(y)) (a2 * x + b2 * y)
187202

188-
Krylov.@kaxpy!(n, a, x, y)
189-
Krylov.@kaxpy!(n, a2, x, y)
203+
xc = copy(x)
204+
yc = copy(y)
205+
Krylov.@kcopy!(n, xc, yc)
206+
@test yc x
190207

191-
Krylov.@kaxpby!(n, a, x, b, y)
192-
Krylov.@kaxpby!(n, a2, x, b, y)
193-
Krylov.@kaxpby!(n, a, x, b2, y)
194-
Krylov.@kaxpby!(n, a2, x, b2, y)
208+
xc = copy(x)
209+
yc = copy(y)
210+
Krylov.@kswap(xc, yc)
211+
@test xc y
212+
@test yc x
195213

196-
Krylov.@kcopy!(n, x, y)
214+
xc = copy(x)
215+
yc = copy(y)
216+
Krylov.@kref!(n, xc, yc, c, s)
217+
@test xc (c * x + s * y)
218+
@test yc (conj(s) * x - c * y)
219+
end
220+
end
221+
222+
@testset "axpy! and axpby! with generic arrays" begin
223+
for FC (Float16, Float32, Float64, ComplexF16, ComplexF32, ComplexF64)
224+
n = 10
225+
# S can't be a `SparseVector` but we can use this type to check
226+
# that axpy! and axpby! work when S is not a `DenseVector`.
227+
x = sprand(FC, n, 0.5)
228+
y = sprand(FC, n, 0.5)
229+
a = rand(FC)
230+
b = rand(FC)
231+
232+
T = real(FC)
233+
a2 = rand(T)
234+
b2 = rand(T)
197235

198-
Krylov.@kswap(x, y)
236+
@test Krylov.@kaxpy!(n, a, copy(x), copy(y)) (a * x + y)
237+
@test Krylov.@kaxpy!(n, a2, copy(x), copy(y)) (a2 * x + y)
199238

200-
Krylov.@kref!(n, x, y, c, s)
239+
@test Krylov.@kaxpby!(n, a, copy(x), b, copy(y)) (a * x + b * y)
240+
@test Krylov.@kaxpby!(n, a2, copy(x), b, copy(y)) (a2 * x + b * y)
241+
@test Krylov.@kaxpby!(n, a, copy(x), b2, copy(y)) (a * x + b2 * y)
242+
@test Krylov.@kaxpby!(n, a2, copy(x), b2, copy(y)) (a2 * x + b2 * y)
201243
end
202244
end
203245
end

0 commit comments

Comments
 (0)