@@ -310,58 +310,53 @@ end
310310 @test promote (C,A) isa Tuple{Tridiagonal, Tridiagonal}
311311end
312312
313- import Base. LinAlg: fillslots!, UnitLowerTriangular
314- @testset " fill! and fillslots!" begin
315- let # fill!
316- let # fillslots!
317- A = Tridiagonal (randn (2 ), randn (3 ), randn (2 ))
318- @test fillslots! (A, 3 ) == Tridiagonal ([3 , 3. ], [3 , 3 , 3. ], [3 , 3. ])
319- B = Bidiagonal (randn (3 ), randn (2 ), :U )
320- @test fillslots! (B, 2 ) == Bidiagonal ([2. ,2 ,2 ], [2 ,2. ], :U )
321- S = SymTridiagonal (randn (3 ), randn (2 ))
322- @test fillslots! (S, 1 ) == SymTridiagonal ([1 ,1 ,1. ], [1 ,1. ])
323- Ult = UnitLowerTriangular (randn (3 ,3 ))
324- @test fillslots! (Ult, 3 ) == UnitLowerTriangular ([1 0 0 ; 3 1 0 ; 3 3 1 ])
313+ using Base. LinAlg: fillstored!, UnitLowerTriangular
314+ @testset " fill! and fillstored!" begin
315+ let # fillstored!
316+ A = Tridiagonal (randn (2 ), randn (3 ), randn (2 ))
317+ @test fillstored! (A, 3 ) == Tridiagonal ([3 , 3 ], [3 , 3 , 3 ], [3 , 3 ])
318+ B = Bidiagonal (randn (3 ), randn (2 ), :U )
319+ @test fillstored! (B, 2 ) == Bidiagonal ([2 ,2 ,2 ], [2 ,2 ], :U )
320+ S = SymTridiagonal (randn (3 ), randn (2 ))
321+ @test fillstored! (S, 1 ) == SymTridiagonal ([1 ,1 ,1 ], [1 ,1 ])
322+ Ult = UnitLowerTriangular (randn (3 ,3 ))
323+ @test fillstored! (Ult, 3 ) == UnitLowerTriangular ([1 0 0 ; 3 1 0 ; 3 3 1 ])
324+ end
325+ let # fill!(exotic, 0)
326+ exotic_arrays = Any[Tridiagonal (randn (3 ), randn (4 ), randn (3 )),
327+ Bidiagonal (randn (3 ), randn (2 ), rand ([:U ,:L ])),
328+ SymTridiagonal (randn (3 ), randn (2 )),
329+ sparse (randn (3 ,4 )),
330+ # Diagonal(randn(5)), # Diagonal fill! deprecated, see below
331+ sparse (rand (3 )),
332+ # LowerTriangular(randn(3,3)), # AbstractTriangular fill! deprecated, see below
333+ # UpperTriangular(randn(3,3)) # AbstractTriangular fill! deprecated, see below
334+ ]
335+ for A in exotic_arrays
336+ @test iszero (fill! (A, 0 ))
325337 end
326- let # fill!(exotic, 0)
327- exotic_arrays = Any[Tridiagonal (randn (3 ), randn (4 ), randn (3 )),
328- Bidiagonal (randn (3 ), randn (2 ), rand ([:U ,:L ])),
329- SymTridiagonal (randn (3 ), randn (2 )),
330- sparse (randn (3 ,4 )),
331- # Diagonal(randn(5)), # Diagonal fill! deprecated, see below
332- sparse (rand (3 )),
333- # LowerTriangular(randn(3,3)), # AbstractTriangular fill! deprecated, see below
334- # UpperTriangular(randn(3,3)) # AbstractTriangular fill! deprecated, see below
335- ]
336- for A in exotic_arrays
337- fill! (A, 0 )
338- for a in A
339- @test a == 0
340- end
341- end
342- # Diagonal and AbstractTriangular fill! were defined as fillslots!,
343- # not matching the general behavior of fill!, and so have been deprecated.
344- # In a future dev cycle, these fill! methods should probably be reintroduced
345- # with behavior matching that of fill! for other structured matrix types.
346- # In the interm, equivalently test fillslots! below
347- @test iszero (fillslots! (Diagonal (fill (1 , 3 )), 0 ))
348- @test iszero (fillslots! (LowerTriangular (fill (1 , 3 , 3 )), 0 ))
349- @test iszero (fillslots! (UpperTriangular (fill (1 , 3 , 3 )), 0 ))
338+ # Diagonal and AbstractTriangular fill! were defined as fillstored!,
339+ # not matching the general behavior of fill!, and so have been deprecated.
340+ # In a future dev cycle, these fill! methods should probably be reintroduced
341+ # with behavior matching that of fill! for other structured matrix types.
342+ # In the interm, equivalently test fillstored! below
343+ @test iszero (fillstored! (Diagonal (fill (1 , 3 )), 0 ))
344+ @test iszero (fillstored! (LowerTriangular (fill (1 , 3 , 3 )), 0 ))
345+ @test iszero (fillstored! (UpperTriangular (fill (1 , 3 , 3 )), 0 ))
346+ end
347+ let # fill!(small, x)
348+ val = randn ()
349+ b = Bidiagonal (randn (1 ,1 ), :U )
350+ st = SymTridiagonal (randn (1 ,1 ))
351+ for x in (b, st)
352+ @test Array (fill! (x, val)) == fill! (Array (x), val)
350353 end
351- let # fill!(small, x)
352- val = randn ()
353- b = Bidiagonal (randn (1 ,1 ), :U )
354- st = SymTridiagonal (randn (1 ,1 ))
355- for x in (b, st)
356- @test Array (fill! (x, val)) == fill! (Array (x), val)
357- end
358- b = Bidiagonal (randn (2 ,2 ), :U )
359- st = SymTridiagonal (randn (3 ), randn (2 ))
360- t = Tridiagonal (randn (3 ,3 ))
361- for x in (b, t, st)
362- @test_throws ArgumentError fill! (x, val)
363- @test Array (fill! (x, 0 )) == fill! (Array (x), 0 )
364- end
354+ b = Bidiagonal (randn (2 ,2 ), :U )
355+ st = SymTridiagonal (randn (3 ), randn (2 ))
356+ t = Tridiagonal (randn (3 ,3 ))
357+ for x in (b, t, st)
358+ @test_throws ArgumentError fill! (x, val)
359+ @test Array (fill! (x, 0 )) == fill! (Array (x), 0 )
365360 end
366361 end
367362end
0 commit comments