diff --git a/src/kliep/convex.jl b/src/kliep/convex.jl index 9f6641f..1fedb95 100644 --- a/src/kliep/convex.jl +++ b/src/kliep/convex.jl @@ -25,7 +25,7 @@ function DensityRatioEstimation._kliep_coeffs(K_nu, K_de, dre::KLIEP, optlib::Ty problem = Convex.maximize(objective, constraints) # solve problem with ECOS solver - Convex.solve!(problem, ECOS.Optimizer, silent_solver=true) + Convex.solve!(problem, ECOS.Optimizer, silent=true) # optimal coefficients vec(α.value) diff --git a/test/Project.toml b/test/Project.toml index 8163928..2ab2917 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,19 +1,15 @@ [deps] +CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" Convex = "f65535da-76fb-5f13-bab9-19810c17039a" Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" ECOS = "e2685f51-7e38-5353-a97d-a921fd2c8199" -GR = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" ImageIO = "82e4d734-157c-48bb-816b-45c225c6df19" Ipopt = "b6b21f68-93f8-5de0-b562-5493be1d77c9" JuMP = "4076af6c-e467-56ae-b986-b466b2749572" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" Optim = "429524aa-4258-5aef-a3af-852621145aeb" -Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" ReferenceTests = "324d217c-45ce-50fc-942e-d289b448e8cf" +StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" - -[compat] -GR = "=0.59.0" -Plots = "=1.22.4" \ No newline at end of file diff --git a/test/basic.jl b/test/basic.jl index 497119f..049e695 100644 --- a/test/basic.jl +++ b/test/basic.jl @@ -18,8 +18,8 @@ end for (d_nu, d_de) in [pair₁, pair₂] - Random.seed!(123) - x_nu, x_de = rand(d_nu, 100), rand(d_de, 200) + rng = StableRNG(123) + x_nu, x_de = rand(rng, d_nu, 100), rand(rng, d_de, 200) @testset "$(typeof(dre).name) -- $optlib" for (dre, optlib) in [ (KMM(), JuMPLib), (KLIEP(), OptimLib), diff --git a/test/data/KLIEP-ConvexLib-1.png b/test/data/KLIEP-ConvexLib-1.png index dadbf0a..8cdd648 100644 Binary files a/test/data/KLIEP-ConvexLib-1.png and b/test/data/KLIEP-ConvexLib-1.png differ diff --git a/test/data/KLIEP-ConvexLib-2.png b/test/data/KLIEP-ConvexLib-2.png index e33b993..f797c3a 100644 Binary files a/test/data/KLIEP-ConvexLib-2.png and b/test/data/KLIEP-ConvexLib-2.png differ diff --git a/test/data/KLIEP-OptimLib-1.png b/test/data/KLIEP-OptimLib-1.png index dadbf0a..0878e5a 100644 Binary files a/test/data/KLIEP-OptimLib-1.png and b/test/data/KLIEP-OptimLib-1.png differ diff --git a/test/data/KLIEP-OptimLib-2.png b/test/data/KLIEP-OptimLib-2.png index 5658aeb..7686355 100644 Binary files a/test/data/KLIEP-OptimLib-2.png and b/test/data/KLIEP-OptimLib-2.png differ diff --git a/test/data/KMM-JuMPLib-1.png b/test/data/KMM-JuMPLib-1.png index 52a7194..08be638 100644 Binary files a/test/data/KMM-JuMPLib-1.png and b/test/data/KMM-JuMPLib-1.png differ diff --git a/test/data/KMM-JuMPLib-2.png b/test/data/KMM-JuMPLib-2.png index 86ad182..049bca2 100644 Binary files a/test/data/KMM-JuMPLib-2.png and b/test/data/KMM-JuMPLib-2.png differ diff --git a/test/data/LSIF-JuMPLib-1.png b/test/data/LSIF-JuMPLib-1.png index 69f56e1..8d01749 100644 Binary files a/test/data/LSIF-JuMPLib-1.png and b/test/data/LSIF-JuMPLib-1.png differ diff --git a/test/data/LSIF-JuMPLib-2.png b/test/data/LSIF-JuMPLib-2.png index b36daa2..4897e48 100644 Binary files a/test/data/LSIF-JuMPLib-2.png and b/test/data/LSIF-JuMPLib-2.png differ diff --git a/test/data/LSIF-OptimLib-1.png b/test/data/LSIF-OptimLib-1.png index 4d16c37..9972203 100644 Binary files a/test/data/LSIF-OptimLib-1.png and b/test/data/LSIF-OptimLib-1.png differ diff --git a/test/data/LSIF-OptimLib-2.png b/test/data/LSIF-OptimLib-2.png index ea1ddd0..5b8922e 100644 Binary files a/test/data/LSIF-OptimLib-2.png and b/test/data/LSIF-OptimLib-2.png differ diff --git a/test/data/uKMM-JuMPLib-1.png b/test/data/uKMM-JuMPLib-1.png index 39a3364..5aee149 100644 Binary files a/test/data/uKMM-JuMPLib-1.png and b/test/data/uKMM-JuMPLib-1.png differ diff --git a/test/data/uKMM-JuMPLib-2.png b/test/data/uKMM-JuMPLib-2.png index d61dd39..bf3c1a2 100644 Binary files a/test/data/uKMM-JuMPLib-2.png and b/test/data/uKMM-JuMPLib-2.png differ diff --git a/test/data/uKMM-JuliaLib-1.png b/test/data/uKMM-JuliaLib-1.png index 39a3364..5aee149 100644 Binary files a/test/data/uKMM-JuliaLib-1.png and b/test/data/uKMM-JuliaLib-1.png differ diff --git a/test/data/uKMM-JuliaLib-2.png b/test/data/uKMM-JuliaLib-2.png index d61dd39..bf3c1a2 100644 Binary files a/test/data/uKMM-JuliaLib-2.png and b/test/data/uKMM-JuliaLib-2.png differ diff --git a/test/kliep.jl b/test/kliep.jl index 8d2bbf8..2633e92 100644 --- a/test/kliep.jl +++ b/test/kliep.jl @@ -1,7 +1,7 @@ @testset "KLIEP -- $optlib" for optlib in [OptimLib, ConvexLib] - for (i, (pair, rtol)) in enumerate([(pair₁, 2e-1), (pair₂, 4e-1)]) + for (i, (pair, rtol)) in enumerate([(pair₁, 5e-1), (pair₂, 5e-1)]) d_nu, d_de = pair - rng = MersenneTwister(42) + rng = StableRNG(42) x_nu, x_de = rand(rng, d_nu, 1_000), rand(rng, d_de, 500) # estimated density ratio @@ -16,7 +16,6 @@ @test r ≈ r̂ rtol = rtol if visualtests - gr(size=(800, 800)) @test_reference "data/KLIEP-$optlib-$i.png" plot_d_nu(pair, x_de, r̂) end end diff --git a/test/kmm.jl b/test/kmm.jl index 02861c8..72a86e9 100644 --- a/test/kmm.jl +++ b/test/kmm.jl @@ -1,7 +1,7 @@ @testset "$(nameof(dreType)) -- $optlib" for (dreType, optlib) in zip([uKMM, uKMM, KMM], [JuliaLib, JuMPLib, JuMPLib]) - for (i, (pair, rtol)) in enumerate([(pair₁, 2e-1), (pair₂, 4e-1)]) + for (i, (pair, rtol)) in enumerate([(pair₁, 5e-1), (pair₂, 5e-1)]) d_nu, d_de = pair - rng = MersenneTwister(42) + rng = StableRNG(42) x_nu, x_de = rand(rng, d_nu, 2_000), rand(rng, d_de, 1_000) # estimated density ratio @@ -33,7 +33,6 @@ end if visualtests - gr(size=(800, 800)) @test_reference "data/$(nameof(dreType))-$optlib-$i.png" plot_d_nu(pair, x_de, r̂) end end diff --git a/test/lsif.jl b/test/lsif.jl index 3b3fe76..5ccdc30 100644 --- a/test/lsif.jl +++ b/test/lsif.jl @@ -1,7 +1,7 @@ @testset "LSIF -- $optlib" for optlib in [OptimLib, JuMPLib] - for (i, (pair, rtol)) in enumerate([(pair₁, 2e-1), (pair₂, 4e-1)]) + for (i, (pair, rtol)) in enumerate([(pair₁, 5e-1), (pair₂, 5e-1)]) d_nu, d_de = pair - rng = MersenneTwister(42) + rng = StableRNG(42) x_nu, x_de = rand(rng, d_nu, 1000), rand(rng, d_de, 500) # estimated density ratio @@ -16,7 +16,6 @@ @test r ≈ r̂ rtol = rtol if visualtests - gr(size=(800, 800)) @test_reference "data/LSIF-$optlib-$i.png" plot_d_nu(pair, x_de, r̂) end end diff --git a/test/runtests.jl b/test/runtests.jl index 190e65a..04d8b33 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -5,11 +5,10 @@ using Statistics using Optim using JuMP, Ipopt using Convex, ECOS -using Test, Random, Plots +using Test, StableRNGs using ReferenceTests, ImageIO -# workaround GR warnings -ENV["GKSwstype"] = "100" +import CairoMakie as Mke # environment settings isCI = "CI" ∈ keys(ENV) diff --git a/test/utils.jl b/test/utils.jl index 2f20ea1..f138b69 100644 --- a/test/utils.jl +++ b/test/utils.jl @@ -11,6 +11,10 @@ function plot_d_nu(pair, x_de, r̂) ps = pdf.(d_nu, xs) p̂s = r̂s .* pdf.(d_de, xs) - plot(xs, ps, label="d_nu (actual)") - plot!(xs, p̂s, label="d_nu (estimate)") + fig = Mke.Figure(size=(800, 800)) + ax = Mke.Axis(fig[1,1]) + Mke.lines!(ax, xs, ps, label="d_nu (actual)") + Mke.lines!(ax, xs, p̂s, label="d_nu (estimate)") + Mke.axislegend(ax) + fig end