Skip to content

Commit 9f8f5b4

Browse files
author
Andrey Oskin
committed
Fixed mlj things
1 parent 54c8d37 commit 9f8f5b4

File tree

2 files changed

+24
-17
lines changed

2 files changed

+24
-17
lines changed

src/mlj_interface.jl

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,37 +36,44 @@ end
3636

3737

3838
function MMI.clean!(m::KMeans)
39-
warning = ""
39+
warning = String[]
4040

4141
if !(m.algo keys(MLJDICT))
42-
warning *= "Unsupported KMeans variant, Defaulting to Hamerly algorithm."
42+
push!(warning, "Unsupported KMeans variant. Defaulting to Hamerly algorithm.")
4343
m.algo = :Hamerly
44+
end
4445

45-
elseif m.k_init != "k-means++"
46-
warning *= "Only `k-means++` or random seeding algorithms are supported. Defaulting to k-means++ seeding."
46+
if !(m.k_init ["k-means++", "random"])
47+
push!(warning, "Only \"k-means++\" or \"random\" seeding algorithms are supported. Defaulting to k-means++ seeding.")
4748
m.k_init = "kmeans++"
49+
end
4850

49-
elseif m.k < 1
50-
warning *= "Number of clusters must be greater than 0. Defaulting to 3 clusters."
51+
if m.k < 1
52+
push!(warning, "Number of clusters must be greater than 0. Defaulting to 3 clusters.")
5153
m.k = 3
54+
end
5255

53-
elseif !(m.tol < 1.0)
54-
warning *= "Tolerance level must be less than 1. Defaulting to tol of 1e-6."
56+
if !(m.tol < 1.0)
57+
push!(warning, "Tolerance level must be less than 1. Defaulting to tol of 1e-6.")
5558
m.tol = 1e-6
59+
end
5660

57-
elseif !(m.max_iters > 0)
58-
warning *= "Number of permitted iterations must be greater than 0. Defaulting to 300 iterations."
61+
if !(m.max_iters > 0)
62+
push!(warning, "Number of permitted iterations must be greater than 0. Defaulting to 300 iterations.")
5963
m.max_iters = 300
64+
end
6065

61-
elseif !(m.threads > 0)
62-
warning *= "Number of threads must be at least 1. Defaulting to all threads available."
66+
if !(m.threads > 0)
67+
push!(warning, "Number of threads must be at least 1. Defaulting to all threads available.")
6368
m.threads = Threads.nthreads()
69+
end
6470

65-
elseif !(m.verbosity (0, 1))
66-
warning *= "Verbosity must be either 0 (no info) or 1 (info requested). Defaulting to 1."
71+
if !(m.verbosity (0, 1))
72+
push!(warning, "Verbosity must be either 0 (no info) or 1 (info requested). Defaulting to 1.")
6773
m.verbosity = 1
6874
end
69-
return warning
75+
76+
return join(warning, "\n")
7077
end
7178

7279

test/test07_mlj_interface.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ end
2424

2525

2626
@testset "Test bad struct warings" begin
27-
@test_logs (:warn, "Unsupported KMeans variant, Defaulting to Hamerly algorithm.") ParallelKMeans.KMeans(algo=:Fake)
28-
@test_logs (:warn, "Only `k-means++` or random seeding algorithms are supported. Defaulting to k-means++ seeding.") ParallelKMeans.KMeans(k_init="abc")
27+
@test_logs (:warn, "Unsupported KMeans variant. Defaulting to Hamerly algorithm.") ParallelKMeans.KMeans(algo=:Fake)
28+
@test_logs (:warn, "Only \"k-means++\" or \"random\" seeding algorithms are supported. Defaulting to k-means++ seeding.") ParallelKMeans.KMeans(k_init="abc")
2929
@test_logs (:warn, "Number of clusters must be greater than 0. Defaulting to 3 clusters.") ParallelKMeans.KMeans(k=0)
3030
@test_logs (:warn, "Tolerance level must be less than 1. Defaulting to tol of 1e-6.") ParallelKMeans.KMeans(tol=2)
3131
@test_logs (:warn, "Number of permitted iterations must be greater than 0. Defaulting to 300 iterations.") ParallelKMeans.KMeans(max_iters=0)

0 commit comments

Comments
 (0)