|
1 | 1 | using Test
|
2 | 2 | using FixedSizeArrays
|
| 3 | +using OffsetArrays: OffsetArray |
3 | 4 | import Aqua
|
4 | 5 |
|
5 | 6 | const checked_dims = FixedSizeArrays.checked_dims
|
|
16 | 17 | @testset "Constructors" begin
|
17 | 18 | @test FixedSizeArray{Float64,0}(undef) isa FixedSizeArray{Float64,0}
|
18 | 19 | @test FixedSizeArray{Float64,0}(undef, ()) isa FixedSizeArray{Float64,0}
|
| 20 | + for offset ∈ (-1, 0, 2, 3) |
| 21 | + ax = offset:(offset + 1) |
| 22 | + oa = OffsetArray([10, 20], ax) |
| 23 | + @test_throws DimensionMismatch FixedSizeArray(oa) |
| 24 | + @test_throws DimensionMismatch FixedSizeVector(oa) |
| 25 | + @test_throws DimensionMismatch FixedSizeArray{Int}(oa) |
| 26 | + @test_throws DimensionMismatch FixedSizeVector{Int}(oa) |
| 27 | + end |
19 | 28 | @test_throws ArgumentError FixedSizeArray{Float64,1}(undef, -1)
|
20 | 29 | @test_throws ArgumentError FixedSizeArray{Float64,1}(undef, (-1,))
|
21 | 30 | @test_throws ArgumentError FixedSizeArray{Float64,2}(undef, -1, -1)
|
|
67 | 76 | @test similar(FixedSizeVector{Int}, (2,)) isa FixedSizeVector{Int}
|
68 | 77 | @test similar(FixedSizeArray{Int}, (2,)) isa FixedSizeVector{Int}
|
69 | 78 | @test FixedSizeArray{Int}(undef, 2) isa FixedSizeVector{Int}
|
| 79 | + example_abstract_vectors = (7:9, [7, 8, 9], OffsetArray([7, 8, 9], 1:3)) |
70 | 80 | for T ∈ (FixedSizeArray, FixedSizeVector)
|
71 |
| - a = 1:3 |
72 |
| - @test convert(T, a) isa FixedSizeVector{Int} |
73 |
| - @test convert(T, a) == a |
74 |
| - @test convert(T, convert(T, a)) isa FixedSizeVector{Int} |
75 |
| - @test convert(T, convert(T, a)) == a |
76 |
| - end |
77 |
| - for T ∈ (FixedSizeArray{Int}, FixedSizeVector{Int}) |
78 |
| - for S ∈ (Int, Float64) |
79 |
| - a = map(S, 1:3) |
| 81 | + for a ∈ example_abstract_vectors |
80 | 82 | @test convert(T, a) isa FixedSizeVector{Int}
|
81 | 83 | @test convert(T, a) == a
|
82 | 84 | @test convert(T, convert(T, a)) isa FixedSizeVector{Int}
|
83 | 85 | @test convert(T, convert(T, a)) == a
|
84 | 86 | end
|
85 | 87 | end
|
| 88 | + for T ∈ (FixedSizeArray{Int}, FixedSizeVector{Int}) |
| 89 | + for S ∈ (Int, Float64) |
| 90 | + for a ∈ map((c -> map(S, c)), example_abstract_vectors) |
| 91 | + @test convert(T, a) isa FixedSizeVector{Int} |
| 92 | + @test convert(T, a) == a |
| 93 | + @test convert(T, convert(T, a)) isa FixedSizeVector{Int} |
| 94 | + @test convert(T, convert(T, a)) == a |
| 95 | + end |
| 96 | + end |
| 97 | + end |
86 | 98 | end
|
87 | 99 |
|
88 | 100 | @testset "FixedSizeMatrix" begin
|
|
99 | 111 | @test similar(FixedSizeMatrix{Int}, (2, 3)) isa FixedSizeMatrix{Int}
|
100 | 112 | @test similar(FixedSizeArray{Int}, (2, 3)) isa FixedSizeMatrix{Int}
|
101 | 113 | @test FixedSizeArray{Int}(undef, 2, 3) isa FixedSizeMatrix{Int}
|
| 114 | + example_abstract_matrices = ( |
| 115 | + reshape(1:9, (3, 3)), |
| 116 | + OffsetArray(reshape(1:9, (3, 3)), 1:3, 1:3), |
| 117 | + ) |
102 | 118 | for T ∈ (FixedSizeArray, FixedSizeMatrix)
|
103 |
| - a = reshape(1:9, (3, 3)) |
104 |
| - @test convert(T, a) isa FixedSizeMatrix{Int} |
105 |
| - @test convert(T, a) == a |
106 |
| - @test convert(T, convert(T, a)) isa FixedSizeMatrix{Int} |
107 |
| - @test convert(T, convert(T, a)) == a |
108 |
| - end |
109 |
| - for T ∈ (FixedSizeArray{Int}, FixedSizeMatrix{Int}) |
110 |
| - for S ∈ (Int, Float64) |
111 |
| - a = map(S, reshape(1:9, (3, 3))) |
| 119 | + for a ∈ example_abstract_matrices |
112 | 120 | @test convert(T, a) isa FixedSizeMatrix{Int}
|
113 | 121 | @test convert(T, a) == a
|
114 | 122 | @test convert(T, convert(T, a)) isa FixedSizeMatrix{Int}
|
115 | 123 | @test convert(T, convert(T, a)) == a
|
116 | 124 | end
|
117 | 125 | end
|
| 126 | + for T ∈ (FixedSizeArray{Int}, FixedSizeMatrix{Int}) |
| 127 | + for S ∈ (Int, Float64) |
| 128 | + for a ∈ map((c -> map(S, c)), example_abstract_matrices) |
| 129 | + @test convert(T, a) isa FixedSizeMatrix{Int} |
| 130 | + @test convert(T, a) == a |
| 131 | + @test convert(T, convert(T, a)) isa FixedSizeMatrix{Int} |
| 132 | + @test convert(T, convert(T, a)) == a |
| 133 | + end |
| 134 | + end |
| 135 | + end |
118 | 136 | end
|
119 | 137 |
|
120 | 138 | @testset "`map`" begin
|
|
0 commit comments