@@ -7,6 +7,10 @@ import StaticArrays.arithmetic_closure
77 @test @inferred (zeros (SVector{3 ,Int})) === @SVector [0 , 0 , 0 ]
88 @test @inferred (ones (SVector{3 ,Float64})) === @SVector [1.0 , 1.0 , 1.0 ]
99 @test @inferred (ones (SVector{3 ,Int})) === @SVector [1 , 1 , 1 ]
10+ @test @inferred (zeros (SVector{0 ,Float64})) === @SVector Float64[]
11+ @test @inferred (zeros (SVector{0 ,Int})) === @SVector Int[]
12+ @test @inferred (ones (SVector{0 ,Float64})) === @SVector Float64[]
13+ @test @inferred (ones (SVector{0 ,Int})) === @SVector Int[]
1014
1115 @test @inferred (zeros (SVector{3 })) === @SVector [0.0 , 0.0 , 0.0 ]
1216 @test @inferred (zeros (SMatrix{2 ,2 })) === @SMatrix [0.0 0.0 ; 0.0 0.0 ]
@@ -32,20 +36,77 @@ import StaticArrays.arithmetic_closure
3236 @test bigones[1 ] != = bigones[2 ]
3337 end
3438
39+ @testset " ones()" begin
40+ for T in (SVector, MVector, SizedVector)
41+ m = @inferred ones (T{3 , Float64})
42+ @test m == [1.0 , 1.0 , 1.0 ]
43+ @test m isa T{3 , Float64}
44+ m = @inferred ones (T{3 , Int})
45+ @test m == [1 , 1 , 1 ]
46+ @test m isa T{3 , Int}
47+ m = @inferred ones (T{3 })
48+ @test m == [1.0 , 1.0 , 1.0 ]
49+ @test m isa T{3 }
50+ m = @inferred ones (T{0 , Float64})
51+ @test m == Float64[]
52+ @test m isa T{0 , Float64}
53+ m = @inferred ones (T{0 , Int})
54+ @test m == Int[]
55+ @test m isa T{0 , Int}
56+ m = @inferred ones (T{0 })
57+ @test m == Float64[]
58+ @test m isa T{0 }
59+ end
60+ end
61+
3562 @testset " zero()" begin
36- @test @inferred (zero (SVector{3 , Float64})) === @SVector [0.0 , 0.0 , 0.0 ]
37- @test @inferred (zero (SVector{3 , Int})) === @SVector [0 , 0 , 0 ]
63+ for T in (SVector, MVector, SizedVector)
64+ m = @inferred zero (T{3 , Float64})
65+ @test m == [0.0 , 0.0 , 0.0 ]
66+ @test m isa T{3 , Float64}
67+ m = @inferred zero (T{3 , Int})
68+ @test m == [0 , 0 , 0 ]
69+ @test m isa T{3 , Int}
70+ m = @inferred zero (T{3 })
71+ @test m == [0.0 , 0.0 , 0.0 ]
72+ @test m isa T{3 }
73+ m = @inferred zero (T{0 , Float64})
74+ @test m == Float64[]
75+ @test m isa T{0 , Float64}
76+ m = @inferred zero (T{0 , Int})
77+ @test m == Int[]
78+ @test m isa T{0 , Int}
79+ m = @inferred zero (T{0 })
80+ @test m == Float64[]
81+ @test m isa T{0 }
82+ end
3883 end
3984
4085 @testset " fill()" begin
41- @test all (@inferred (fill (3. , SMatrix{4 , 16 , Float64})) .== 3. )
4286 @test @allocated (fill (0. , SMatrix{1 , 16 , Float64})) == 0 # #81
87+ @test @allocated (fill (0. , SMatrix{0 , 5 , Float64})) == 0
88+
89+ for T in (SMatrix, MMatrix, SizedMatrix)
90+ m = @inferred (fill (3. , T{4 , 16 , Float64}))
91+ @test m isa T{4 , 16 , Float64}
92+ @test all (m .== 3. )
93+ m = @inferred (fill (3. , T{0 , 5 , Float64}))
94+ @test m isa T{0 , 5 , Float64}
95+ m = @inferred (fill (3 , T{4 , 16 , Float64}))
96+ @test m isa T{4 , 16 , Float64}
97+ @test all (m .== 3. )
98+ m = @inferred (fill (3 , T{0 , 5 , Float64}))
99+ @test m isa T{0 , 5 , Float64}
100+ end
43101 end
44102
45103 @testset " fill!()" begin
46104 m = MMatrix {4,16,Float64} (undef)
47105 fill! (m, 3 )
48106 @test all (m .== 3. )
107+ m = MMatrix {0,5,Float64} (undef)
108+ fill! (m, 3 )
109+ @test all (m .== 3. )
49110 end
50111
51112 @testset " rand()" begin
0 commit comments