@@ -360,5 +360,71 @@ import BandedMatrices: BandedColumns, _BandedMatrix
360
360
end
361
361
end
362
362
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
363
429
end
364
430
0 commit comments