Skip to content

Commit

Permalink
Merge pull request #49 from takuti/testsets
Browse files Browse the repository at this point in the history
Refactor testing modules with `@testset`
  • Loading branch information
takuti authored Feb 22, 2022
2 parents c54e108 + cefe23e commit 40a64dc
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 25 deletions.
4 changes: 3 additions & 1 deletion src/compat.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import Base: depwarn

export build!

function build!(recommender::Recommender; kwargs...)
@warn "`build!`` is deprecated and renamed to `fit!`"
depwarn("`build!`` is deprecated and renamed to `fit!`", :build!)
fit!(recommender; kwargs...)
end
66 changes: 44 additions & 22 deletions test/runtests.jl
Original file line number Diff line number Diff line change
@@ -1,31 +1,53 @@
using Recommendation
using Test
using SparseArrays
using ZipFile

include("test_base_recommender.jl")
include("test_data_accessor.jl")
include("test_utils.jl")

include("baseline/test_user_mean.jl")
include("baseline/test_item_mean.jl")
include("baseline/test_most_popular.jl")
include("baseline/test_threshold_percentage.jl")
include("baseline/test_co_occurrence.jl")
# run testing modules if and only if `name` is in `test_args``
# e.g. `Pkg.test("Recommendation", test_args=["misc"])`
# reference: https://github.com/JuliaAI/MLJBase.jl/blob/4a8f3f323f91ee6b6f5fb2b3268729b3101c003c/test/runtests.jl#L52-L62
macro conditional_testset(name, expr)
name = string(name)
esc(quote
if $name in ARGS
@testset $name $expr
end
end)
end

include("model/test_tf_idf.jl")
include("model/test_user_knn.jl")
include("model/test_item_knn.jl")
include("model/test_svd.jl")
include("model/test_matrix_factorization.jl")
include("model/test_factorization_machines.jl")
@testset "recommender" begin
include("test_base_recommender.jl")
include("test_compat.jl")

include("metrics/test_accuracy.jl")
include("metrics/test_ranking.jl")
@testset "baseline" begin
include("baseline/test_user_mean.jl")
include("baseline/test_item_mean.jl")
include("baseline/test_most_popular.jl")
include("baseline/test_threshold_percentage.jl")
include("baseline/test_co_occurrence.jl")
end

include("evaluation/test_evaluate.jl")
include("evaluation/test_cross_validation.jl")
@testset "model" begin
include("model/test_tf_idf.jl")
include("model/test_user_knn.jl")
include("model/test_item_knn.jl")
include("model/test_svd.jl")
include("model/test_matrix_factorization.jl")
include("model/test_factorization_machines.jl")
end
end

include("test_compat.jl")
include("test_datasets.jl")
include("test_synthetic.jl")
include("test_utils.jl")
@testset "evaluation" begin
include("metrics/test_accuracy.jl")
include("metrics/test_ranking.jl")

include("evaluation/test_evaluate.jl")
include("evaluation/test_cross_validation.jl")
end

@testset "data" begin
include("test_data_accessor.jl")
include("test_datasets.jl")
include("test_synthetic.jl")
end
2 changes: 1 addition & 1 deletion test/test_compat.jl
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ function test_build()
recommender = MatrixFactorization(data, 2)

# make sure build! works as a synonym of fit!
build!(recommender, learning_rate=15e-4, max_iter=100)
@test_deprecated build!(recommender, learning_rate=15e-4, max_iter=100)

# top-4 recommended item set should be same as CF/SVD-based recommender
rec = recommend(recommender, 1, 4, [i for i in 1:8])
Expand Down
4 changes: 3 additions & 1 deletion test/test_datasets.jl
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
using ZipFile

function test_get_data_home()
dir = mktempdir()
println("-- Testing to get a data home with a temp directory: $dir")
Expand Down Expand Up @@ -117,7 +119,7 @@ test_get_data_home()
test_unzip()
test_load_libsvm_file()

if "download" in ARGS
@conditional_testset "download" begin
test_download_file()
test_load_movielens_100k()
test_load_movielens_latest()
Expand Down

0 comments on commit 40a64dc

Please sign in to comment.