From d17740a3460c80c284bee790afb7d401c8a16d8f Mon Sep 17 00:00:00 2001 From: Takuya Kitazawa Date: Mon, 21 Feb 2022 06:39:45 -0800 Subject: [PATCH 1/4] Use and test Base.depwarn in compat.jl --- src/compat.jl | 4 +++- test/test_compat.jl | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/compat.jl b/src/compat.jl index 9e3d22a..ab9426d 100644 --- a/src/compat.jl +++ b/src/compat.jl @@ -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 diff --git a/test/test_compat.jl b/test/test_compat.jl index b4a53f0..921c7ac 100644 --- a/test/test_compat.jl +++ b/test/test_compat.jl @@ -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]) From cf2a7cb0f34a0235769ab57348906877fafb531e Mon Sep 17 00:00:00 2001 From: Takuya Kitazawa Date: Mon, 21 Feb 2022 06:56:53 -0800 Subject: [PATCH 2/4] Import ZipFile in a required test module --- test/runtests.jl | 1 - test/test_datasets.jl | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/test/runtests.jl b/test/runtests.jl index a054f16..255030a 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,7 +1,6 @@ using Recommendation using Test using SparseArrays -using ZipFile include("test_base_recommender.jl") include("test_data_accessor.jl") diff --git a/test/test_datasets.jl b/test/test_datasets.jl index 813854b..732fb6d 100644 --- a/test/test_datasets.jl +++ b/test/test_datasets.jl @@ -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") From 3e5f8723efdbb9480e880f40f6b9e52e411fc6bd Mon Sep 17 00:00:00 2001 From: Takuya Kitazawa Date: Mon, 21 Feb 2022 06:57:43 -0800 Subject: [PATCH 3/4] Reorganize unit tests with `@testset` --- test/runtests.jl | 53 +++++++++++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/test/runtests.jl b/test/runtests.jl index 255030a..0fb5865 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -2,29 +2,40 @@ using Recommendation using Test using SparseArrays -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") +@testset "recommender" begin + include("test_base_recommender.jl") + include("test_compat.jl") -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 "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("metrics/test_accuracy.jl") -include("metrics/test_ranking.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("evaluation/test_evaluate.jl") -include("evaluation/test_cross_validation.jl") +@testset "evaluation" begin + include("metrics/test_accuracy.jl") + include("metrics/test_ranking.jl") -include("test_compat.jl") -include("test_datasets.jl") -include("test_synthetic.jl") -include("test_utils.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 From cefe23eed570a1e1e93a21e82fbba967a0baeb9b Mon Sep 17 00:00:00 2001 From: Takuya Kitazawa Date: Mon, 21 Feb 2022 07:13:27 -0800 Subject: [PATCH 4/4] Create a macro for conditionally triggered testset --- test/runtests.jl | 12 ++++++++++++ test/test_datasets.jl | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/test/runtests.jl b/test/runtests.jl index 0fb5865..9cc6ca6 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -4,6 +4,18 @@ using SparseArrays include("test_utils.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 + @testset "recommender" begin include("test_base_recommender.jl") include("test_compat.jl") diff --git a/test/test_datasets.jl b/test/test_datasets.jl index 732fb6d..cc02981 100644 --- a/test/test_datasets.jl +++ b/test/test_datasets.jl @@ -119,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()