|
323 | 323 | @test DataFrame === @inferred Tables.materializer(DataFrames.DataFrameColumns) |
324 | 324 | end |
325 | 325 |
|
| 326 | +@testset "Tables.subset" begin |
| 327 | + df = DataFrame(a=1:3, b=4:6) |
| 328 | + |
| 329 | + res = @inferred Tables.subset(df, :) |
| 330 | + @test res isa DataFrame |
| 331 | + @test res == DataFrame(a=1:3, b=4:6) |
| 332 | + res = Tables.subset(df, :, view=false) |
| 333 | + @test res isa DataFrame |
| 334 | + @test res == DataFrame(a=1:3, b=4:6) |
| 335 | + res = Tables.subset(df, :, view=true) |
| 336 | + @test res isa SubDataFrame |
| 337 | + @test res == DataFrame(a=1:3, b=4:6) |
| 338 | + |
| 339 | + res = @inferred Tables.subset(df, [3, 1]) |
| 340 | + @test res isa DataFrame |
| 341 | + @test res == DataFrame(a=[3, 1], b=[6, 4]) |
| 342 | + res = Tables.subset(df, [3, 1], view=false) |
| 343 | + @test res isa DataFrame |
| 344 | + @test res == DataFrame(a=[3, 1], b=[6, 4]) |
| 345 | + res = Tables.subset(df, [3, 1], view=true) |
| 346 | + @test res isa SubDataFrame |
| 347 | + @test res == DataFrame(a=[3, 1], b=[6, 4]) |
| 348 | + |
| 349 | + res = @inferred Tables.subset(df, [true, false, true]) |
| 350 | + @test res isa DataFrame |
| 351 | + @test res == DataFrame(a=[1, 3], b=[4, 6]) |
| 352 | + res = Tables.subset(df, [1, 3], view=false) |
| 353 | + @test res isa DataFrame |
| 354 | + @test res == DataFrame(a=[1, 3], b=[4, 6]) |
| 355 | + res = Tables.subset(df, [1, 3], view=true) |
| 356 | + @test res isa SubDataFrame |
| 357 | + @test res == DataFrame(a=[1, 3], b=[4, 6]) |
| 358 | + |
| 359 | + res = @inferred Tables.subset(df, 2) |
| 360 | + @test res isa DataFrameRow |
| 361 | + @test res == DataFrame(a=2, b=5)[1, :] |
| 362 | + res = Tables.subset(df, 2, view=false) |
| 363 | + @test res isa NamedTuple{(:a, :b), Tuple{Int, Int}} |
| 364 | + @test res == (a=2, b=5) |
| 365 | + res = Tables.subset(df, 2, view=true) |
| 366 | + @test res isa DataFrameRow |
| 367 | + @test res == DataFrame(a=2, b=5)[1, :] |
| 368 | +end |
| 369 | + |
326 | 370 | end # module |
0 commit comments