|
4 | 4 | @test SDiagonal{1,Float64}((1,)).diag === SVector{1,Float64}((1,))
|
5 | 5 |
|
6 | 6 | @test SDiagonal{4,Float64}((1, 1.0, 1, 1)).diag.data === (1.0, 1.0, 1.0, 1.0)
|
| 7 | + @test SDiagonal{4}((1, 1.0, 1, 1)).diag.data === (1.0, 1.0, 1.0, 1.0) |
| 8 | + @test SDiagonal((1, 1.0, 1, 1)).diag.data === (1.0, 1.0, 1.0, 1.0) |
7 | 9 |
|
8 | 10 | # Bad input
|
9 | 11 | @test_throws Exception SMatrix{1,Int}()
|
10 | 12 | @test_throws Exception SMatrix{2,Int}((1,))
|
11 | 13 |
|
12 | 14 | # From SMatrix
|
13 | 15 | @test SDiagonal(SMatrix{2,2,Int}((1,2,3,4))).diag.data === (1,4)
|
| 16 | + |
| 17 | + @test SDiagonal{1,Int}(SDiagonal{1,Float64}((1,))).diag[1] === 1 |
14 | 18 |
|
15 | 19 | end
|
16 | 20 |
|
17 | 21 | @testset "Methods" begin
|
18 | 22 |
|
19 | 23 | @test StaticArrays.scalem(@SMatrix([1 1 1;1 1 1; 1 1 1]), @SVector [1,2,3]) === @SArray [1 2 3; 1 2 3; 1 2 3]
|
| 24 | + @test StaticArrays.scalem(@SVector([1,2,3]),@SMatrix [1 1 1;1 1 1; 1 1 1])' === @SArray [1 2 3; 1 2 3; 1 2 3] |
20 | 25 |
|
21 | 26 | m = SDiagonal(@SVector [11, 12, 13, 14])
|
22 |
| - m2 = diagm([11, 12, 13, 14]) |
23 | 27 |
|
24 |
| - b = @SVector [2,-1,2,1] |
25 |
| - b2 = Vector(b) |
| 28 | + |
| 29 | + |
| 30 | + @test diag(m) === m.diag |
| 31 | + |
| 32 | + |
| 33 | + m2 = diagm([11, 12, 13, 14]) |
| 34 | + |
| 35 | + @test logdet(m) == logdet(m2) |
| 36 | + @test logdet(im*m) ≈ logdet(im*m2) |
| 37 | + @test det(m) == det(m2) |
| 38 | + @test trace(m) == trace(m2) |
| 39 | + @test logm(m) == logm(m2) |
| 40 | + @test expm(m) == expm(m2) |
| 41 | + @test sqrtm(m) == sqrtm(m2) |
| 42 | + |
26 | 43 |
|
27 | 44 | @test isimmutable(m) == true
|
28 | 45 |
|
|
55 | 72 |
|
56 | 73 | @test_throws Exception m[1] = 1
|
57 | 74 |
|
| 75 | + b = @SVector [2,-1,2,1] |
| 76 | + b2 = Vector(b) |
| 77 | + |
| 78 | + |
58 | 79 | @test m*b == @SVector [22,-12,26,14]
|
59 | 80 | @test (b'*m)' == @SVector [22,-12,26,14]
|
60 | 81 |
|
61 | 82 | @test m\b == m2\b
|
| 83 | + |
| 84 | + @test b'/m == b'/m2 |
| 85 | + @test_throws Exception b/m |
62 | 86 | @test m*m == m2*m
|
63 | 87 |
|
64 | 88 | @test ishermitian(m) == ishermitian(m2)
|
| 89 | + @test ishermitian(m/2) |
| 90 | + |
65 | 91 | @test isposdef(m) == isposdef(m2)
|
66 | 92 | @test issymmetric(m) == issymmetric(m2)
|
67 | 93 |
|
68 |
| - @test m' == m |
| 94 | + @test (2*m/2)' == m |
69 | 95 | @test 2m == m + m
|
70 |
| - @test 0m == m - m |
| 96 | + @test m*0 == m - m |
71 | 97 |
|
72 |
| - @test m\m == eye(SDiagonal{4,Float64}) |
| 98 | + @test m/m == m\m == eye(SDiagonal{4,Float64}) |
73 | 99 |
|
74 | 100 |
|
75 | 101 |
|
|
0 commit comments