Skip to content

Commit 14b8e8d

Browse files
authored
Merge pull request #4 from JuliaAI/boost-coverage
add show tests
2 parents f656064 + f868d3a commit 14b8e8d

File tree

5 files changed

+38
-1
lines changed

5 files changed

+38
-1
lines changed

src/backends.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ end
118118
function Base.show(io::IO, ::MIME"text/plain", observations::SageObs)
119119
A = observations.features
120120
y = observations.target
121-
println(io, "SaffronObs")
121+
println(io, "SageObs")
122122
println(io, " features :: $(typeof(A))($(size(A)))")
123123
println(io, " names: $(observations.names)")
124124
println(io, " target :: $(typeof(y))($(size(y)))")

src/tarragon.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,3 +186,9 @@ end
186186

187187
# involutivity:
188188
obs(model, observations::BasicObs, ::Tarragon) = observations
189+
190+
# data deconstructors:
191+
LearnAPI.features(learner, observations::BasicObs, ::Tarragon) =
192+
BasicObs(observations.features, observations.names)
193+
LearnAPI.features(learner, data, frontend::Tarragon) =
194+
LearnAPI.features(learner, obs(learner, data), frontend)

test/backends.jl

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using Test
2+
using LearnDataFrontEnds
3+
import CategoricalArrays
4+
5+
@testset "show methods" begin
6+
x = fill(0,2,3)
7+
y = [3, 2, 1]
8+
names = [:x1, :x2]
9+
ycat = CategoricalArrays.categorical(y)
10+
c = LearnDataFrontEnds.classes(ycat)
11+
d = LearnDataFrontEnds.decoder(ycat)
12+
mime = MIME"text/plain"()
13+
14+
@test sprint(show, mime, LearnDataFrontEnds.BasicObs(x, names)) ==
15+
"BasicObs\n features :: Matrix{Int64}((2, 3))\n names: [:x1, :x2]\n"
16+
@test sprint(show, mime, LearnDataFrontEnds.SaffronObs(x, names, y)) ==
17+
"SaffronObs\n features :: Matrix{Int64}((2, 3))\n names: "*
18+
"[:x1, :x2]\n target :: Vector{Int64}((3,))"
19+
@test sprint(show, mime, LearnDataFrontEnds.SageObs(x, names, y, c, d)) ==
20+
"SageObs\n features :: Matrix{Int64}((2, 3))\n names: "*
21+
"[:x1, :x2]\n target :: Vector{Int64}((3,))\n classes_seen: "*
22+
"[1, 2, 3] (categorical vector with complete pool)\n decoder: <callable>"
23+
end
24+
25+
true

test/runtests.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ using Test
22

33
test_files = [
44
"tools.jl",
5+
"backends.jl",
56
"saffron.jl",
67
"sage.jl",
78
"tarragon.jl",

test/tarragon.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,10 @@ LearnAPI.learner(model::TruncatedSVDFitted) = model.learner
111111
LearnAPI.obs(learner::TruncatedSVD, data) = fitobs(learner, data, Tarragon())
112112
LearnAPI.obs(model::TruncatedSVDFitted, data) = obs(model, data, Tarragon())
113113

114+
# training data deconstructor:
115+
LearnAPI.features(learner::TruncatedSVD, data) =
116+
LearnAPI.features(learner, data, Tarragon())
117+
114118
function LearnAPI.fit(learner::TruncatedSVD, observations::Obs; verbosity=1)
115119

116120
x = observations.features # p x n matrix
@@ -198,6 +202,7 @@ model0 = fit(learner, X)
198202
@testset "matrix features for fit" begin
199203
observations = obs(learner, x)
200204
feats = LearnAPI.features(learner, observations)
205+
@test LearnAPI.features(learner, x).features == feats.features
201206
@test feats isa Obs
202207
@test feats.features == x
203208
@test feats.names == [:x1, :x2, :x3, :x4, :x5]

0 commit comments

Comments
 (0)