Skip to content

Commit df48e5e

Browse files
committed
Fix tests and add Tables.jl interface
1 parent 5a882bd commit df48e5e

File tree

5 files changed

+29
-3
lines changed

5 files changed

+29
-3
lines changed

src/containers/tabledataset.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,10 @@ Base.length(dataset::TableDataset{<:DataFrame}) = nrow(dataset.table)
5656
# fast access for CSV.File
5757
Base.getindex(dataset::TableDataset{<:CSV.File}, i) = dataset.table[i]
5858
Base.length(dataset::TableDataset{<:CSV.File}) = length(dataset.table)
59+
60+
## Tables.jl interface
61+
62+
Tables.istable(::TableDataset) = true
63+
for fn in (:rowaccess, :rows, :columnaccess, :columns, :schema, :materializer)
64+
@eval Tables.$fn(dataset::TableDataset) = Tables.$fn(dataset.table)
65+
end

test/containers/cacheddataset.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
@testset "CachedDataset" begin
22
@testset "CachedDataset(::FileDataset)" begin
33
files = setup_filedataset_test()
4-
fdataset = FileDataset("root", "*.csv")
4+
fdataset = FileDataset(f -> CSV.read(f, DataFrame), "root", "*.csv")
55
cdataset = CachedDataset(fdataset)
66

77
@test numobs(cdataset) == numobs(fdataset)

test/containers/filedataset.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ cleanup_filedataset_test() = rm("root"; recursive = true)
2727

2828
@testset "FileDataset" begin
2929
files = setup_filedataset_test()
30-
dataset = FileDataset("root", "*.csv")
30+
dataset = FileDataset(f -> CSV.read(f, DataFrame), "root", "*.csv")
3131
@test numobs(dataset) == length(files)
3232
for (i, file) in enumerate(files)
33-
true_obs = MLDatasets.loadfile(file)
33+
true_obs = CSV.read(file, DataFrame)
3434
@test getobs(dataset, i) == true_obs
3535
end
3636
cleanup_filedataset_test()

test/containers/tabledataset.jl

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,22 @@
5050
@test numobs(td) == 1
5151
rm("test.csv")
5252
end
53+
54+
@testset "TableDataset is a table" begin
55+
testtable = DataFrame(
56+
col1 = [1, 2, 3, 4, 5],
57+
col2 = ["a", "b", "c", "d", "e"],
58+
col3 = [10, 20, 30, 40, 50],
59+
col4 = ["A", "B", "C", "D", "E"],
60+
col5 = [100.0, 200.0, 300.0, 400.0, 500.0],
61+
split = ["train", "train", "train", "valid", "valid"],
62+
)
63+
td = TableDataset(testtable)
64+
@testset for fn in (Tables.istable,
65+
Tables.rowaccess, Tables.rows,
66+
Tables.columnaccess, Tables.columns,
67+
Tables.schema, Tables.materializer)
68+
@test fn(td) == fn(testtable)
69+
end
70+
end
5371
end

test/runtests.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Test
22
using MLDatasets
3+
using FileIO
34
using ImageCore
45
using DataDeps
56
using DataFrames, CSV, Tables

0 commit comments

Comments
 (0)