@@ -7,6 +7,10 @@ import StaticArrays.arithmetic_closure
7
7
@test @inferred (zeros (SVector{3 ,Int})) === @SVector [0 , 0 , 0 ]
8
8
@test @inferred (ones (SVector{3 ,Float64})) === @SVector [1.0 , 1.0 , 1.0 ]
9
9
@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[]
10
14
11
15
@test @inferred (zeros (SVector{3 })) === @SVector [0.0 , 0.0 , 0.0 ]
12
16
@test @inferred (zeros (SMatrix{2 ,2 })) === @SMatrix [0.0 0.0 ; 0.0 0.0 ]
@@ -32,20 +36,77 @@ import StaticArrays.arithmetic_closure
32
36
@test bigones[1 ] != = bigones[2 ]
33
37
end
34
38
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
+
35
62
@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
38
83
end
39
84
40
85
@testset " fill()" begin
41
- @test all (@inferred (fill (3. , SMatrix{4 , 16 , Float64})) .== 3. )
42
86
@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
43
101
end
44
102
45
103
@testset " fill!()" begin
46
104
m = MMatrix {4,16,Float64} (undef)
47
105
fill! (m, 3 )
48
106
@test all (m .== 3. )
107
+ m = MMatrix {0,5,Float64} (undef)
108
+ fill! (m, 3 )
109
+ @test all (m .== 3. )
49
110
end
50
111
51
112
@testset " rand()" begin
0 commit comments