@@ -360,5 +360,71 @@ import BandedMatrices: BandedColumns, _BandedMatrix
360360 end
361361 end
362362 end
363+
364+ @testset " isdiag/istril/istriu" begin
365+ @testset " no bands" begin
366+ B = brand (3 ,2 ,- 2 ,1 )
367+ for k in - 5 : 5
368+ @test istriu (B, k)
369+ @test istril (B, k)
370+ @test isdiag (B)
371+ end
372+ end
373+
374+ @testset " one band" begin
375+ B = brand (3 ,3 ,- 1 ,1 )
376+ A = Array (B)
377+ @test ! isdiag (B)
378+ @test all (k -> istril (B,k), 1 : 5 )
379+ @test all (k -> ! istril (B,k), - 5 : 0 )
380+ @test all (k -> istriu (B,k), - 5 : 1 )
381+ @test all (k -> ! istriu (B,k), 2 : 5 )
382+ @test all (k -> istriu (A,k) == istriu (B,k), - 5 : 5 )
383+ @test all (k -> istril (A,k) == istril (B,k), - 5 : 5 )
384+
385+ B = brand (3 ,3 ,1 ,- 1 )
386+ A = Array (B)
387+ @test ! isdiag (B)
388+ @test all (k -> istril (B,k), - 1 : 5 )
389+ @test all (k -> ! istril (B,k), - 5 : - 2 )
390+ @test all (k -> istriu (B,k), - 5 : - 1 )
391+ @test all (k -> ! istriu (B,k), 0 : 5 )
392+ @test all (k -> istriu (A,k) == istriu (B,k), - 5 : 5 )
393+ @test all (k -> istril (A,k) == istril (B,k), - 5 : 5 )
394+
395+ B = brand (3 ,3 ,0 ,0 )
396+ A = Array (B)
397+ @test isdiag (B)
398+ @test all (k -> istril (B,k), 0 : 5 )
399+ @test all (k -> ! istril (B,k), - 5 : - 1 )
400+ @test all (k -> istriu (B,k), - 5 : 0 )
401+ @test all (k -> ! istriu (B,k), 1 : 5 )
402+ @test all (k -> istriu (A,k) == istriu (B,k), - 5 : 5 )
403+ @test all (k -> istril (A,k) == istril (B,k), - 5 : 5 )
404+ end
405+
406+ @testset " multiple bands" begin
407+ B = brand (3 ,6 ,1 ,2 )
408+ A = Array (B)
409+ @test ! isdiag (B)
410+ @test all (k -> istril (B,k), 2 : 5 )
411+ @test all (k -> ! istril (B,k), - 5 : 1 )
412+ @test all (k -> istriu (B,k), - 5 : - 1 )
413+ @test all (k -> ! istriu (B,k), 0 : - 5 )
414+ @test all (k -> istriu (A,k) == istriu (B,k), - 5 : 5 )
415+ @test all (k -> istril (A,k) == istril (B,k), - 5 : 5 )
416+
417+ for B in (brand (3 ,3 ,3 ,3 ), brand (3 ,3 ,2 ,2 ), brand (3 ,3 ,4 ,4 ))
418+ A = Array (B)
419+ @test ! isdiag (B)
420+ @test all (k -> istril (B,k), 2 : 5 )
421+ @test all (k -> ! istril (B,k), - 5 : 1 )
422+ @test all (k -> istriu (B,k), - 5 : - 2 )
423+ @test all (k -> ! istriu (B,k), - 1 : - 5 )
424+ @test all (k -> istriu (A,k) == istriu (B,k), - 5 : 5 )
425+ @test all (k -> istril (A,k) == istril (B,k), - 5 : 5 )
426+ end
427+ end
428+ end
363429end
364430
0 commit comments