Austin Schuh | 9049e20 | 2022-02-20 17:34:16 -0800 | [diff] [blame] | 1 | /* 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 | |
| 20 | TEST_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 | |
| 42 | TEST_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 | |
| 54 | TEST_CASE( "test_demo", "[multi-file:3]" ) { |
| 55 | SECTION("test_demo_solve") { |
| 56 | test_demo_solve(); |
| 57 | } |
| 58 | } |
| 59 | |
| 60 | |
| 61 | TEST_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 | |
| 90 | TEST_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 | |
| 105 | TEST_CASE( "test_non_cvx", "[multi-file:6]" ) { |
| 106 | SECTION( "test_non_cvx_solve" ) { |
| 107 | test_non_cvx_solve(); |
| 108 | } |
| 109 | } |
| 110 | |
| 111 | |
| 112 | TEST_CASE( "test_primal_infeasibility", "[multi-file:7]" ) { |
| 113 | SECTION( "test_primal_infeasible_qp_solve" ) { |
| 114 | test_primal_infeasible_qp_solve(); |
| 115 | } |
| 116 | } |
| 117 | |
| 118 | |
| 119 | TEST_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 | |
| 135 | TEST_CASE( "test_unconstrained", "[multi-file:9]" ) { |
| 136 | SECTION( "test_unconstrained_solve" ) { |
| 137 | test_unconstrained_solve(); |
| 138 | } |
| 139 | } |
| 140 | |
| 141 | |
| 142 | TEST_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 | } |