|
287 | 287 | @test (@inferred diag(A, 1))::typeof(d) == (mat_type == Tridiagonal ? du : dl)
|
288 | 288 | @test (@inferred diag(A, -1))::typeof(d) == dl
|
289 | 289 | @test (@inferred diag(A, n-1))::typeof(d) == zeros(elty, 1)
|
290 |
| - @test_throws ArgumentError diag(A, -n - 1) |
291 |
| - @test_throws ArgumentError diag(A, n + 1) |
| 290 | + if A isa SymTridiagonal |
| 291 | + @test isempty(@inferred diag(A, -n - 1)) |
| 292 | + @test isempty(@inferred diag(A, n + 1)) |
| 293 | + else |
| 294 | + @test_throws ArgumentError diag(A, -n - 1) |
| 295 | + @test_throws ArgumentError diag(A, n + 1) |
| 296 | + end |
292 | 297 | GA = mat_type == Tridiagonal ? mat_type(GenericArray.((dl, d, du))...) : mat_type(GenericArray.((d, dl))...)
|
293 | 298 | @test (@inferred diag(GA))::typeof(GenericArray(d)) == GenericArray(d)
|
294 | 299 | @test (@inferred diag(GA, -1))::typeof(GenericArray(d)) == GenericArray(dl)
|
@@ -501,10 +506,11 @@ end
|
501 | 506 | @test @inferred diag(A, 1) == fill(M, n-1)
|
502 | 507 | @test @inferred diag(A, 0) == fill(Symmetric(M), n)
|
503 | 508 | @test @inferred diag(A, -1) == fill(transpose(M), n-1)
|
504 |
| - @test_throws ArgumentError diag(A, -2) |
505 |
| - @test_throws ArgumentError diag(A, 2) |
506 |
| - @test_throws ArgumentError diag(A, n+1) |
507 |
| - @test_throws ArgumentError diag(A, -n-1) |
| 509 | + @test_broken diag(A, -2) == fill(M, n-2) |
| 510 | + @test_broken diag(A, 2) == fill(M, n-2) |
| 511 | + @test isempty(@inferred diag(A, n+1)) |
| 512 | + @test isempty(@inferred diag(A, -n-1)) |
| 513 | + |
508 | 514 | A[1,1] = Symmetric(2M)
|
509 | 515 | @test A[1,1] == Symmetric(2M)
|
510 | 516 | @test_throws ArgumentError A[1,1] = M
|
|
519 | 525 | @test @inferred diag(A, 1) == fill(M, n-1)
|
520 | 526 | @test @inferred diag(A, 0) == fill(M, n)
|
521 | 527 | @test @inferred diag(A, -1) == fill(M, n-1)
|
522 |
| - @test_throws MethodError diag(A, -2) |
523 |
| - @test_throws MethodError diag(A, 2) |
| 528 | + @test_broken diag(A, -2) == fill(M, n-2) |
| 529 | + @test_broken diag(A, 2) == fill(M, n-2) |
524 | 530 | @test_throws ArgumentError diag(A, n+1)
|
525 | 531 | @test_throws ArgumentError diag(A, -n-1)
|
526 | 532 |
|
|
532 | 538 | A = Tridiagonal(ev, dv, ev)
|
533 | 539 | @test A == Matrix{eltype(A)}(A)
|
534 | 540 | end
|
| 541 | + |
| 542 | + M = SizedArrays.SizedArray{(2,2)}([1 2; 3 4]) |
| 543 | + S = SymTridiagonal(fill(M,4), fill(M,3)) |
| 544 | + @test diag(S,2) == fill(zero(M), 2) |
| 545 | + @test diag(S,-2) == fill(zero(M), 2) |
| 546 | + @test isempty(diag(S,4)) |
| 547 | + @test isempty(diag(S,-4)) |
535 | 548 | end
|
536 | 549 |
|
537 | 550 | @testset "Issue 12068" begin
|
|
0 commit comments