Skip to content

Commit c41d829

Browse files
committed
Remaining tests for SDiagonal
1 parent ec68f06 commit c41d829

File tree

1 file changed

+32
-6
lines changed

1 file changed

+32
-6
lines changed

test/SDiagonal.jl

+32-6
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,42 @@
44
@test SDiagonal{1,Float64}((1,)).diag === SVector{1,Float64}((1,))
55

66
@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)
79

810
# Bad input
911
@test_throws Exception SMatrix{1,Int}()
1012
@test_throws Exception SMatrix{2,Int}((1,))
1113

1214
# From SMatrix
1315
@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
1418

1519
end
1620

1721
@testset "Methods" begin
1822

1923
@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]
2025

2126
m = SDiagonal(@SVector [11, 12, 13, 14])
22-
m2 = diagm([11, 12, 13, 14])
2327

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+
2643

2744
@test isimmutable(m) == true
2845

@@ -55,21 +72,30 @@
5572

5673
@test_throws Exception m[1] = 1
5774

75+
b = @SVector [2,-1,2,1]
76+
b2 = Vector(b)
77+
78+
5879
@test m*b == @SVector [22,-12,26,14]
5980
@test (b'*m)' == @SVector [22,-12,26,14]
6081

6182
@test m\b == m2\b
83+
84+
@test b'/m == b'/m2
85+
@test_throws Exception b/m
6286
@test m*m == m2*m
6387

6488
@test ishermitian(m) == ishermitian(m2)
89+
@test ishermitian(m/2)
90+
6591
@test isposdef(m) == isposdef(m2)
6692
@test issymmetric(m) == issymmetric(m2)
6793

68-
@test m' == m
94+
@test (2*m/2)' == m
6995
@test 2m == m + m
70-
@test 0m == m - m
96+
@test m*0 == m - m
7197

72-
@test m\m == eye(SDiagonal{4,Float64})
98+
@test m/m == m\m == eye(SDiagonal{4,Float64})
7399

74100

75101

0 commit comments

Comments
 (0)