|
161 | 161 | @test c == d
|
162 | 162 | end
|
163 | 163 |
|
| 164 | +struct C |
| 165 | + a::Int |
| 166 | + b::Int |
| 167 | + c::String |
| 168 | +end |
| 169 | + |
| 170 | +@testset "in-place vector methods" begin |
| 171 | + c = StructArray(a=[1], b=[2], c=["a"]) |
| 172 | + push!(c, (a=10, b=20, c="A")) |
| 173 | + @test c == StructArray(a=[1,10], b=[2,20], c=["a","A"]) |
| 174 | + @test pop!(c) == (a=10, b=20, c="A") |
| 175 | + @test c == StructArray(a=[1], b=[2], c=["a"]) |
| 176 | + |
| 177 | + c = StructArray(a=[1], b=[2], c=["a"]) |
| 178 | + pushfirst!(c, (a=10, b=20, c="A")) |
| 179 | + @test c == StructArray(a=[10,1], b=[20,2], c=["A","a"]) |
| 180 | + @test popfirst!(c) == (a=10, b=20, c="A") |
| 181 | + @test c == StructArray(a=[1], b=[2], c=["a"]) |
| 182 | + |
| 183 | + c = StructArray(a=[1,2,3], b=[2,3,4], c=["a","b","c"]) |
| 184 | + d = insert!(c, 2, (a=10, b=20, c="A")) |
| 185 | + @test d == c == StructArray(a=[1,10,2,3], b=[2,20,3,4], c=["a","A","b","c"]) |
| 186 | + d = deleteat!(c, 2) |
| 187 | + @test d == c == StructArray(a=[1,2,3], b=[2,3,4], c=["a","b","c"]) |
| 188 | + |
| 189 | + c = StructArray(a=[1], b=[2], c=["a"]) |
| 190 | + d = [(a=10, b=20, c="A")] |
| 191 | + e = append!(c, d) |
| 192 | + |
| 193 | + @test e == c == StructArray(a=[1,10], b=[2,20], c=["a","A"]) |
| 194 | + |
| 195 | + c = StructArray(a=[1], b=[2], c=["a"]) |
| 196 | + d = [(a=10, b=20, c="A")] |
| 197 | + e = prepend!(c, d) |
| 198 | + |
| 199 | + @test e == c == StructArray(a=[10,1], b=[20,2], c=["A","a"]) |
| 200 | + |
| 201 | + c = StructArray(a=[1,2,3], b=[1,4,6], c=["a","b","c"]) |
| 202 | + d = filter!(c) do el |
| 203 | + return isodd(el.a) && iseven(el.b) |
| 204 | + end |
| 205 | + @test d == c == StructArray(a=[3], b=[6], c=["c"]) |
| 206 | + |
| 207 | + c = StructArray{C}(a=[1], b=[2], c=["a"]) |
| 208 | + push!(c, C(10, 20, "A")) |
| 209 | + @test c == StructArray{C}(a=[1,10], b=[2,20], c=["a","A"]) |
| 210 | + @test pop!(c) == C(10, 20, "A") |
| 211 | + @test c == StructArray{C}(a=[1], b=[2], c=["a"]) |
| 212 | + |
| 213 | + c = StructArray{C}(a=[1], b=[2], c=["a"]) |
| 214 | + pushfirst!(c, C(10, 20, "A")) |
| 215 | + @test c == StructArray{C}(a=[10,1], b=[20,2], c=["A","a"]) |
| 216 | + @test popfirst!(c) == C(10, 20, "A") |
| 217 | + @test c == StructArray{C}(a=[1], b=[2], c=["a"]) |
| 218 | + |
| 219 | + c = StructArray{C}(a=[1,2,3], b=[2,3,4], c=["a","b","c"]) |
| 220 | + d = insert!(c, 2, C(10, 20, "A")) |
| 221 | + @test d == c == StructArray{C}(a=[1,10,2,3], b=[2,20,3,4], c=["a","A","b","c"]) |
| 222 | + d = deleteat!(c, 2) |
| 223 | + @test d == c == StructArray{C}(a=[1,2,3], b=[2,3,4], c=["a","b","c"]) |
| 224 | + |
| 225 | + c = StructArray{C}(a=[1], b=[2], c=["a"]) |
| 226 | + d = [C(10, 20, "A")] |
| 227 | + e = append!(c, d) |
| 228 | + |
| 229 | + @test e == c == StructArray{C}(a=[1,10], b=[2,20], c=["a","A"]) |
| 230 | + |
| 231 | + c = StructArray{C}(a=[1], b=[2], c=["a"]) |
| 232 | + d = [C(10, 20, "A")] |
| 233 | + e = prepend!(c, d) |
| 234 | + |
| 235 | + @test e == c == StructArray{C}(a=[10,1], b=[20,2], c=["A","a"]) |
| 236 | + |
| 237 | + c = StructArray{C}(a=[1,2,3], b=[1,4,6], c=["a","b","c"]) |
| 238 | + d = filter!(c) do el |
| 239 | + return isodd(el.a) && iseven(el.b) |
| 240 | + end |
| 241 | + @test d == c == StructArray{C}(a=[3], b=[6], c=["c"]) |
| 242 | +end |
| 243 | + |
164 | 244 | @testset "iterators" begin
|
165 | 245 | c = [1, 2, 3, 1, 1]
|
166 | 246 | d = StructArrays.GroupPerm(c)
|
|
0 commit comments