blob: 26b78d1bf26e1c64a65c98f35052303a94fb6686 [file] [log] [blame]
Austin Schuh9049e202022-02-20 17:34:16 -08001/* OSQP TESTER MODULE */
2
3#define CATCH_CONFIG_MAIN
4#include "catch.hpp"
5
6#include "osqp.h"
7#include "osqp_tester.h"
8#include "lin_alg/test_lin_alg.h"
9#include "solve_linsys/test_solve_linsys.h"
10#include "demo/test_demo.h"
11#include "basic_qp/test_basic_qp.h"
12#include "basic_qp2/test_basic_qp2.h"
13#include "non_cvx/test_non_cvx.h"
14#include "primal_dual_infeasibility/test_primal_dual_infeasibility.h"
15#include "primal_infeasibility/test_primal_infeasibility.h"
16#include "unconstrained/test_unconstrained.h"
17#include "update_matrices/test_update_matrices.h"
18
19
20TEST_CASE( "test_lin_alg", "[multi-file:1]" ) {
21 SECTION( "test_constr_sparse_mat" ) {
22 test_constr_sparse_mat();
23 }
24 SECTION( "test_vec_operations" ) {
25 test_vec_operations();
26 }
27 SECTION( "test_mat_operations" ) {
28 test_mat_operations();
29 }
30 SECTION( "test_mat_vec_multiplication" ) {
31 test_mat_vec_multiplication();
32 }
33 SECTION( "test_extract_upper_triangular" ) {
34 test_extract_upper_triangular();
35 }
36 SECTION( "test_quad_form_upper_triang" ) {
37 test_quad_form_upper_triang();
38 }
39}
40
41
42TEST_CASE( "test_solve_linsys", "[multi-file:2]" ) {
43 SECTION( "test_solveKKT" ) {
44 test_solveKKT();
45 }
46#ifdef ENABLE_MKL_PARDISO
47 SECTION( "test_solveKKT_pardiso" ) {
48 test_solveKKT_pardiso();
49 }
50#endif
51}
52
53
54TEST_CASE( "test_demo", "[multi-file:3]" ) {
55 SECTION("test_demo_solve") {
56 test_demo_solve();
57 }
58}
59
60
61TEST_CASE( "test_basic_qp", "[multi-file:4]" ) {
62 SECTION( "test_basic_qp_solve" ) {
63 test_basic_qp_solve();
64 }
65#ifdef ENABLE_MKL_PARDISO
66 SECTION( "test_basic_qp_solve_pardiso" ) {
67 test_basic_qp_solve_pardiso();
68 }
69#endif
70 SECTION( "test_basic_qp_update" ) {
71 test_basic_qp_update();
72 }
73 SECTION( "test_basic_qp_check_termination" ) {
74 test_basic_qp_check_termination();
75 }
76 SECTION( "test_basic_qp_update_rho" ) {
77 test_basic_qp_update_rho();
78 }
79#ifdef PROFILING
80 SECTION( "test_basic_qp_time_limit" ) {
81 test_basic_qp_time_limit();
82 }
83#endif
84 SECTION( "test_basic_qp_warm_start" ) {
85 test_basic_qp_warm_start();
86 }
87}
88
89
90TEST_CASE( "test_basic_qp2", "[multi-file:5]" ) {
91 SECTION( "test_basic_qp2_solve" ) {
92 test_basic_qp2_solve();
93 }
94#ifdef ENABLE_MKL_PARDISO
95 SECTION( "test_basic_qp2_solve_pardiso" ) {
96 test_basic_qp2_solve_pardiso();
97 }
98#endif
99 SECTION( "test_basic_qp2_update" ) {
100 test_basic_qp2_update();
101 }
102}
103
104
105TEST_CASE( "test_non_cvx", "[multi-file:6]" ) {
106 SECTION( "test_non_cvx_solve" ) {
107 test_non_cvx_solve();
108 }
109}
110
111
112TEST_CASE( "test_primal_infeasibility", "[multi-file:7]" ) {
113 SECTION( "test_primal_infeasible_qp_solve" ) {
114 test_primal_infeasible_qp_solve();
115 }
116}
117
118
119TEST_CASE( "test_primal_dual_infeasibility", "[multi-file:8]" ) {
120 SECTION( "test_optimal" ) {
121 test_optimal();
122 }
123 SECTION( "test_prim_infeas" ) {
124 test_prim_infeas();
125 }
126 SECTION( "test_dual_infeas" ) {
127 test_dual_infeas();
128 }
129 SECTION( "test_primal_dual_infeas" ) {
130 test_primal_dual_infeas();
131 }
132}
133
134
135TEST_CASE( "test_unconstrained", "[multi-file:9]" ) {
136 SECTION( "test_unconstrained_solve" ) {
137 test_unconstrained_solve();
138 }
139}
140
141
142TEST_CASE( "test_update_matrices", "[multi-file:10]" ) {
143 SECTION( "test_form_KKT" ) {
144 test_form_KKT();
145 }
146 SECTION( "test_update" ) {
147 test_update();
148 }
149#ifdef ENABLE_MKL_PARDISO
150 SECTION( "test_update_pardiso" ) {
151 test_update_pardiso();
152 }
153#endif
154}