From f7ba979021ef8d444e94e3cbce21d5a27398a930 Mon Sep 17 00:00:00 2001 From: Michael Garstka Date: Mon, 18 May 2020 20:26:59 +0100 Subject: [PATCH] Hardcode the polishing problem - Load the polishing problem with known solution from Mosek from a file - Add FileIO to test dependencies --- Project.toml | 3 +- test/polishing.jl | 45 ++++-------------------- test/problem_data/random_polish_qp.jld2 | Bin 0 -> 34889 bytes test/runtests.jl | 2 +- 4 files changed, 9 insertions(+), 41 deletions(-) create mode 100644 test/problem_data/random_polish_qp.jld2 diff --git a/Project.toml b/Project.toml index b2c7d69..fb3b4bb 100644 --- a/Project.toml +++ b/Project.toml @@ -24,6 +24,7 @@ julia = "1" Compat = "34da2185-b29b-5c13-b0c7-acf172513d20" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" [targets] -test = ["Test", "Compat", "Random"] +test = ["Test", "Compat", "Random", "FileIO"] diff --git a/test/polishing.jl b/test/polishing.jl index f74d924..e6ba8ef 100644 --- a/test/polishing.jl +++ b/test/polishing.jl @@ -73,52 +73,19 @@ tol = 1e-3 end @testset "polish_random" begin - using Random - rng = Random.MersenneTwister(666) - - n = 30 - m = 50 - Pt = sprandn(rng, n, n, 0.5) - P = Pt * Pt' - q = randn(rng, n) - A = sprandn(rng, m, n, 0.5) - l = -3 .+ randn(rng, m) - u = 3 .+ randn(rng, m) - - # Solve problem + # load randomly generated problem with known accurate solution from Mosek + problem_data = FileIO.load("./problem_data/random_polish_qp.jld2"); + P = problem_data["P"]; q = problem_data["q"]; A = problem_data["A"]; u = problem_data["u"]; l = problem_data["l"]; options = setup_polishing() model = OSQP.Model() OSQP.setup!(model; P=P, q=q, A=A, l=l, u=u, options...) results = OSQP.solve!(model) - # # Solve with Mosek for reference solution - # using JuMP, MosekTools - # - # jump_model = JuMP.Model(with_optimizer(Mosek.Optimizer)); - # @variable(jump_model, x[1:n]); - # @objective(jump_model, Min, 0.5 * x' * P * x + q' * x); - # con = @constraint(jump_model, [i = 1:m], l[i] <= Vector(A[i, :])' * x <= u[i]); - # - # status = JuMP.optimize!(jump_model); - # obj_test = JuMP.objective_value(jump_model); - # x_test = JuMP.value.(x); - # y_test = -JuMP.dual.(con) - # println(x_test) - # println(y_test) - # println(obj_test) - - x_test = [0.41137084480890623, 0.28318004895183285, 0.4777528132318454, -0.23164842615545447, -0.3629757238797728, 0.14431287989072183, 0.6438564504118605, -0.5761094276277431, -0.05982787893150773, 0.15030576101377005, 0.028787631121672347, -0.27216082894024013, 0.17141240340176417, -0.273743108255697, 0.15630235714216442, -0.06763333754014154, -1.020331708945701, -0.012617123323538763, -0.6683845746964124, 0.5531428372752116, -0.1320489823459991, -0.36749007989638366, 0.0595756204214971, -0.2428072482922348, 0.6357746681280918, 0.9216345137918707, -0.14249830279317166, 0.3440205926304816, -0.2570648319065089, -0.6783094533788961]; - - - y_test = [-1.0282863481250939e-13, -3.37258508945909e-14, 3.4296811845328215e-14, 1.777147102264673e-14, -2.4893358571930445e-14, 1.322599809069287e-14, -1.6595755569514817e-13, -8.317794666110387e-14, -9.2640088352221e-15, 1.253500392114895e-13, 1.0854356507664321e-13, 3.1706833729517506e-14, -6.241276348174211e-13, -8.535981813127953e-14, 3.5093009175770576e-13, 7.29118035417498e-14, 3.618176044780794e-14, -5.491504492855572e-15, -5.667489500506908e-14, 0.0050306281848406156, 5.067317066489025e-14, -1.0803519472826196e-14, 5.237647375580867e-14, 9.474300815751858e-14, 2.9853746376673826e-14, -1.1895032769230835e-14, -1.3441509011114794e-13, -0.08678665919072658, -0.04228028938433161, -6.59489689104704e-14, -5.710323913717883e-14, 5.390342831441443e-14, -6.35787374994456e-14, 1.252381079606396e-13, 0.22585055797097334, -0.9388516056549417, 1.0170683219018741e-13, 0.2625913401764051, -3.454237726808208e-13, -0.08487116932540341, 5.24402777336478e-14, 4.099664389450276e-14, 3.614515769510322e-14, 2.1517424811393735e-14, 1.5159680259859412e-14, -4.016603096658772e-14, 5.0318209747657e-13, -2.981549776801216e-14, -1.1248637104537303e-14, -3.8425095057919334e-13] - - obj_test = -6.0748863556792045 - - @test isapprox(results.x, x_test, atol=tol) - @test isapprox(results.y, y_test, atol=tol) - @test isapprox(results.info.obj_val, obj_test, atol=tol) + @test isapprox(results.x, problem_data["x_test"], atol=tol) + @test isapprox(results.y, problem_data["y_test"], atol=tol) + @test isapprox(results.info.obj_val, problem_data["obj_test"], atol=tol) @test results.info.status_polish == 1 end diff --git a/test/problem_data/random_polish_qp.jld2 b/test/problem_data/random_polish_qp.jld2 new file mode 100644 index 0000000000000000000000000000000000000000..64451f7918244dd46c492508adc6977ee74bfe63 GIT binary patch literal 34889 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 literal 0 HcmV?d00001 diff --git a/test/runtests.jl b/test/runtests.jl index 0b3850f..a74b1ed 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,7 +1,7 @@ using OSQP using Test, SparseArrays, LinearAlgebra using Random: seed! - +using FileIO tests = [ "basic.jl", "dual_infeasibility.jl",