3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00

replace lean to lp

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
This commit is contained in:
Lev Nachmanson 2017-07-10 11:06:37 -07:00 committed by Lev Nachmanson
parent db0a3f4358
commit d41c65a4f9
72 changed files with 1334 additions and 1213 deletions

View file

@ -47,9 +47,8 @@ Revision History:
#include "util/lp/stacked_unordered_set.h"
#include "util/lp/int_set.h"
#include "util/stopwatch.h"
namespace lp {
unsigned seed = 1;
unsigned seed = 1;
random_gen g_rand;
static unsigned my_random() {
@ -95,7 +94,7 @@ void test_matrix(sparse_matrix<T, X> & a) {
a.set(i, j, t);
SASSERT(a.get(i, j) == t);
lp_assert(a.get(i, j) == t);
unsigned j1;
if (j < m - 1) {
@ -187,7 +186,7 @@ vector<int> allocate_basis_heading(unsigned count) { // the rest of initilizatio
void init_basic_part_of_basis_heading(vector<unsigned> & basis, vector<int> & basis_heading) {
SASSERT(basis_heading.size() >= basis.size());
lp_assert(basis_heading.size() >= basis.size());
unsigned m = basis.size();
for (unsigned i = 0; i < m; i++) {
unsigned column = basis[i];
@ -242,7 +241,7 @@ void test_small_lu(lp_settings & settings) {
vector<unsigned> non_basic_columns;
init_basis_heading_and_non_basic_columns_vector(basis, heading, non_basic_columns);
lu<double, double> l(m, basis, settings);
SASSERT(l.is_correct(basis));
lp_assert(l.is_correct(basis));
indexed_vector<double> w(m.row_count());
std::cout << "entering 2, leaving 0" << std::endl;
l.prepare_entering(2, w); // to init vector w
@ -252,7 +251,7 @@ void test_small_lu(lp_settings & settings) {
// std::cout << "we were factoring " << std::endl;
// print_matrix(get_B(l));
// #endif
SASSERT(l.is_correct(basis));
lp_assert(l.is_correct(basis));
std::cout << "entering 4, leaving 3" << std::endl;
l.prepare_entering(4, w); // to init vector w
l.replace_column(0, w, heading[3]);
@ -264,7 +263,7 @@ void test_small_lu(lp_settings & settings) {
print_matrix(&bl, std::cout);
}
#endif
SASSERT(l.is_correct(basis));
lp_assert(l.is_correct(basis));
std::cout << "entering 5, leaving 1" << std::endl;
l.prepare_entering(5, w); // to init vector w
@ -277,7 +276,7 @@ void test_small_lu(lp_settings & settings) {
print_matrix(&bl, std::cout);
}
#endif
SASSERT(l.is_correct(basis));
lp_assert(l.is_correct(basis));
std::cout << "entering 3, leaving 2" << std::endl;
l.prepare_entering(3, w); // to init vector w
l.replace_column(0, w, heading[2]);
@ -289,7 +288,7 @@ void test_small_lu(lp_settings & settings) {
print_matrix(&bl, std::cout);
}
#endif
SASSERT(l.is_correct(basis));
lp_assert(l.is_correct(basis));
m.add_row();
m.add_column();
@ -308,7 +307,7 @@ void test_small_lu(lp_settings & settings) {
auto columns_to_replace = l.get_set_of_columns_to_replace_for_add_last_rows(heading);
l.add_last_rows_to_B(heading, columns_to_replace);
std::cout << "here" << std::endl;
SASSERT(l.is_correct(basis));
lp_assert(l.is_correct(basis));
}
#endif
@ -390,7 +389,7 @@ void test_larger_lu_exp(lp_settings & settings) {
dense_matrix<double, double> left_side = l.get_left_side(basis);
dense_matrix<double, double> right_side = l.get_right_side();
SASSERT(left_side == right_side);
lp_assert(left_side == right_side);
int leaving = 3;
int entering = 8;
for (unsigned i = 0; i < m.row_count(); i++) {
@ -402,12 +401,12 @@ void test_larger_lu_exp(lp_settings & settings) {
l.prepare_entering(entering, w);
l.replace_column(0, w, heading[leaving]);
change_basis(entering, leaving, basis, non_basic_columns, heading);
SASSERT(l.is_correct(basis));
lp_assert(l.is_correct(basis));
l.prepare_entering(11, w); // to init vector w
l.replace_column(0, w, heading[0]);
change_basis(11, 0, basis, non_basic_columns, heading);
SASSERT(l.is_correct(basis));
lp_assert(l.is_correct(basis));
}
void test_larger_lu_with_holes(lp_settings & settings) {
@ -449,7 +448,7 @@ void test_larger_lu_with_holes(lp_settings & settings) {
l.prepare_entering(8, w); // to init vector w
l.replace_column(0, w, heading[0]);
change_basis(8, 0, basis, non_basic_columns, heading);
SASSERT(l.is_correct(basis));
lp_assert(l.is_correct(basis));
}
@ -496,7 +495,7 @@ void test_larger_lu(lp_settings& settings) {
l.prepare_entering(9, w); // to init vector w
l.replace_column(0, w, heading[0]);
change_basis(9, 0, basis, non_basic_columns, heading);
SASSERT(l.is_correct(basis));
lp_assert(l.is_correct(basis));
}
@ -629,7 +628,7 @@ void test_swap_rows_with_permutation(sparse_matrix<T, X>& m){
dense_matrix<double, double> original(&m);
permutation_matrix<double, double> q(dim);
print_matrix(m, std::cout);
SASSERT(original == q * m);
lp_assert(original == q * m);
for (int i = 0; i < 100; i++) {
unsigned row1 = my_random() % dim;
unsigned row2 = my_random() % dim;
@ -637,7 +636,7 @@ void test_swap_rows_with_permutation(sparse_matrix<T, X>& m){
std::cout << "swap " << row1 << " " << row2 << std::endl;
m.swap_rows(row1, row2);
q.transpose_from_left(row1, row2);
SASSERT(original == q * m);
lp_assert(original == q * m);
print_matrix(m, std::cout);
std::cout << std::endl;
}
@ -653,7 +652,7 @@ void test_swap_cols_with_permutation(sparse_matrix<T, X>& m){
dense_matrix<double, double> original(&m);
permutation_matrix<double, double> q(dim);
print_matrix(m, std::cout);
SASSERT(original == q * m);
lp_assert(original == q * m);
for (int i = 0; i < 100; i++) {
unsigned row1 = my_random() % dim;
unsigned row2 = my_random() % dim;
@ -661,7 +660,7 @@ void test_swap_cols_with_permutation(sparse_matrix<T, X>& m){
std::cout << "swap " << row1 << " " << row2 << std::endl;
m.swap_rows(row1, row2);
q.transpose_from_right(row1, row2);
SASSERT(original == q * m);
lp_assert(original == q * m);
print_matrix(m, std::cout);
std::cout << std::endl;
}
@ -680,8 +679,8 @@ void test_swap_rows(sparse_matrix<T, X>& m, unsigned i0, unsigned i1){
m.swap_rows(i0, i1);
for (unsigned j = 0; j < m.dimension(); j++) {
SASSERT(mcopy(i0, j) == m(i1, j));
SASSERT(mcopy(i1, j) == m(i0, j));
lp_assert(mcopy(i0, j) == m(i1, j));
lp_assert(mcopy(i1, j) == m(i0, j));
}
}
template <typename T, typename X>
@ -695,15 +694,15 @@ void test_swap_columns(sparse_matrix<T, X>& m, unsigned i0, unsigned i1){
m.swap_columns(i0, i1);
for (unsigned j = 0; j < m.dimension(); j++) {
SASSERT(mcopy(j, i0) == m(j, i1));
SASSERT(mcopy(j, i1) == m(j, i0));
lp_assert(mcopy(j, i0) == m(j, i1));
lp_assert(mcopy(j, i1) == m(j, i0));
}
for (unsigned i = 0; i < m.dimension(); i++) {
if (i == i0 || i == i1)
continue;
for (unsigned j = 0; j < m.dimension(); j++) {
SASSERT(mcopy(j, i)== m(j, i));
lp_assert(mcopy(j, i)== m(j, i));
}
}
}
@ -765,7 +764,7 @@ void test_pivot_like_swaps_and_pivot(){
m.pivot_row_to_row(pivot_row_0, beta, target_row, settings);
// print_matrix(m);
for (unsigned j = 0; j < m.dimension(); j++) {
SASSERT(abs(row[j] - m(target_row, j)) < 0.00000001);
lp_assert(abs(row[j] - m(target_row, j)) < 0.00000001);
}
}
@ -870,57 +869,57 @@ void sparse_matrix_with_permutaions_test() {
m.multiply_from_left(q0);
for (unsigned i = 0; i < dim; i++) {
for (unsigned j = 0; j < dim; j++) {
SASSERT(m(i, j) == dm0.get_elem(q0[i], j));
lp_assert(m(i, j) == dm0.get_elem(q0[i], j));
}
}
auto q0_dm = q0 * dm;
SASSERT(m == q0_dm);
lp_assert(m == q0_dm);
m.multiply_from_left(q1);
for (unsigned i = 0; i < dim; i++) {
for (unsigned j = 0; j < dim; j++) {
SASSERT(m(i, j) == dm0.get_elem(q0[q1[i]], j));
lp_assert(m(i, j) == dm0.get_elem(q0[q1[i]], j));
}
}
auto q1_q0_dm = q1 * q0_dm;
SASSERT(m == q1_q0_dm);
lp_assert(m == q1_q0_dm);
m.multiply_from_right(p0);
for (unsigned i = 0; i < dim; i++) {
for (unsigned j = 0; j < dim; j++) {
SASSERT(m(i, j) == dm0.get_elem(q0[q1[i]], p0[j]));
lp_assert(m(i, j) == dm0.get_elem(q0[q1[i]], p0[j]));
}
}
auto q1_q0_dm_p0 = q1_q0_dm * p0;
SASSERT(m == q1_q0_dm_p0);
lp_assert(m == q1_q0_dm_p0);
m.multiply_from_right(p1);
for (unsigned i = 0; i < dim; i++) {
for (unsigned j = 0; j < dim; j++) {
SASSERT(m(i, j) == dm0.get_elem(q0[q1[i]], p1[p0[j]]));
lp_assert(m(i, j) == dm0.get_elem(q0[q1[i]], p1[p0[j]]));
}
}
auto q1_q0_dm_p0_p1 = q1_q0_dm_p0 * p1;
SASSERT(m == q1_q0_dm_p0_p1);
lp_assert(m == q1_q0_dm_p0_p1);
m.multiply_from_right(p1);
for (unsigned i = 0; i < dim; i++) {
for (unsigned j = 0; j < dim; j++) {
SASSERT(m(i, j) == dm0.get_elem(q0[q1[i]], p1[p1[p0[j]]]));
lp_assert(m(i, j) == dm0.get_elem(q0[q1[i]], p1[p1[p0[j]]]));
}
}
auto q1_q0_dm_p0_p1_p1 = q1_q0_dm_p0_p1 * p1;
SASSERT(m == q1_q0_dm_p0_p1_p1);
lp_assert(m == q1_q0_dm_p0_p1_p1);
}
void test_swap_columns() {
@ -1041,7 +1040,7 @@ void test_apply_reverse_from_right_to_perm(permutation_matrix<double, double> &
#ifdef Z3DEBUG
auto rev = l.get_inverse();
auto rs = pclone * rev;
SASSERT(p == rs);
lp_assert(p == rs)
#endif
}
@ -1068,8 +1067,8 @@ void test_permutations() {
p.apply_reverse_from_right_to_T(v);
p.apply_reverse_from_right_to_T(vi);
SASSERT(vectors_are_equal(v, vi.m_data));
SASSERT(vi.is_OK());
lp_assert(vectors_are_equal(v, vi.m_data));
lp_assert(vi.is_OK());
}
void lp_solver_test() {
@ -1217,7 +1216,7 @@ void solve_mps_double(std::string file_name, bool look_for_min, unsigned max_ite
compare_solutions(reader, primal_solver, solver);
print_x(reader, primal_solver);
std::cout << "dual cost is " << cost << ", but primal cost is " << primal_cost << std::endl;
SASSERT(false);
lp_assert(false);
}
}
}
@ -1335,7 +1334,7 @@ void test_binary_priority_queue() {
for (unsigned i = 0; i < 10; i++) {
unsigned de = q.dequeue();
SASSERT(i == de);
lp_assert(i == de);
std::cout << de << std::endl;
}
q.enqueue(2, 2);
@ -1358,7 +1357,7 @@ void test_binary_priority_queue() {
unsigned t = 0;
while (q.size() > 0) {
unsigned d =q.dequeue();
SASSERT(t++ == d);
lp_assert(t++ == d);
std::cout << d << std::endl;
}
#endif
@ -1387,7 +1386,7 @@ void solve_mps_with_known_solution(std::string file_name, std::unordered_map<std
std::cout << "status is " << lp_status_to_string(solver->get_status()) << std::endl;
if (status != solver->get_status()){
std::cout << "status should be " << lp_status_to_string(status) << std::endl;
SASSERT(status == solver->get_status());
lp_assert(status == solver->get_status());
throw "status is wrong";
}
if (solver->get_status() == lp_status::OPTIMAL) {
@ -1398,7 +1397,7 @@ void solve_mps_with_known_solution(std::string file_name, std::unordered_map<std
std::cout << "expected:" << it.first << "=" <<
it.second <<", got " << solver->get_column_value_by_name(it.first) << std::endl;
}
SASSERT(fabs(it.second - solver->get_column_value_by_name(it.first)) < 0.000001);
lp_assert(fabs(it.second - solver->get_column_value_by_name(it.first)) < 0.000001);
}
}
if (reader.column_names().size() < 20) {
@ -1483,127 +1482,127 @@ void fill_file_names(vector<std::string> &file_names, std::set<std::string> & m
return;
}
std::string home_dir_str(home_dir);
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/l0redund.mps");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/l1.mps");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/l2.mps");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/l3.mps");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/l4.mps");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/l4fix.mps");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/plan.mps");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/samp2.mps");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/murtagh.mps");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/l0.mps");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/AFIRO.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SC50B.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SC50A.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/KB2.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SC105.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/STOCFOR1.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/ADLITTLE.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/BLEND.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SCAGR7.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SC205.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SHARE2B.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/RECIPELP.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/LOTFI.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/VTP-BASE.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SHARE1B.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/BOEING2.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/BORE3D.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SCORPION.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/CAPRI.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/BRANDY.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SCAGR25.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SCTAP1.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/ISRAEL.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SCFXM1.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/BANDM.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/E226.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/AGG.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/GROW7.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/ETAMACRO.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/FINNIS.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SCSD1.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/STANDATA.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/STANDGUB.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/BEACONFD.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/STAIR.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/STANDMPS.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/GFRD-PNC.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SCRS8.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/BOEING1.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/MODSZK1.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/DEGEN2.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/FORPLAN.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/AGG2.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/AGG3.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SCFXM2.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SHELL.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/PILOT4.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SCSD6.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SHIP04S.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SEBA.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/GROW15.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/FFFFF800.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/BNL1.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/PEROLD.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/QAP8.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SCFXM3.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SHIP04L.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/GANGES.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SCTAP2.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/GROW22.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SHIP08S.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/PILOT-WE.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/MAROS.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/STOCFOR2.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/25FV47.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SHIP12S.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SCSD8.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/FIT1P.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SCTAP3.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SIERRA.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/PILOTNOV.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/CZPROB.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/FIT1D.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/PILOT-JA.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SHIP08L.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/BNL2.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/NESM.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/CYCLE.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/acc-tight5.mps");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/SHIP12L.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/DEGEN3.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/GREENBEA.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/GREENBEB.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/80BAU3B.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/TRUSS.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/D2Q06C.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/WOODW.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/QAP12.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/D6CUBE.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/PILOT.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/DFL001.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/WOOD1P.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/FIT2P.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/PILOT87.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/STOCFOR3.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/QAP15.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/FIT2D.SIF");
file_names.push_back(home_dir_str + "/projects/lean/src/tests/util/lp/test_files/netlib/MAROS-R7.SIF");
minimums.insert("/projects/lean/src/tests/util/lp/test_files/netlib/FIT2P.SIF");
minimums.insert("/projects/lean/src/tests/util/lp/test_files/netlib/DFL001.SIF");
minimums.insert("/projects/lean/src/tests/util/lp/test_files/netlib/D2Q06C.SIF");
minimums.insert("/projects/lean/src/tests/util/lp/test_files/netlib/80BAU3B.SIF");
minimums.insert("/projects/lean/src/tests/util/lp/test_files/netlib/GREENBEB.SIF");
minimums.insert("/projects/lean/src/tests/util/lp/test_files/netlib/GREENBEA.SIF");
minimums.insert("/projects/lean/src/tests/util/lp/test_files/netlib/BNL2.SIF");
minimums.insert("/projects/lean/src/tests/util/lp/test_files/netlib/SHIP08L.SIF");
minimums.insert("/projects/lean/src/tests/util/lp/test_files/netlib/FIT1D.SIF");
minimums.insert("/projects/lean/src/tests/util/lp/test_files/netlib/SCTAP3.SIF");
minimums.insert("/projects/lean/src/tests/util/lp/test_files/netlib/SCSD8.SIF");
minimums.insert("/projects/lean/src/tests/util/lp/test_files/netlib/SCSD6.SIF");
minimums.insert("/projects/lean/src/tests/util/lp/test_files/netlib/MAROS-R7.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/l0redund.mps");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/l1.mps");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/l2.mps");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/l3.mps");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/l4.mps");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/l4fix.mps");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/plan.mps");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/samp2.mps");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/murtagh.mps");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/l0.mps");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/AFIRO.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SC50B.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SC50A.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/KB2.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SC105.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/STOCFOR1.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/ADLITTLE.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/BLEND.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SCAGR7.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SC205.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SHARE2B.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/RECIPELP.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/LOTFI.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/VTP-BASE.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SHARE1B.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/BOEING2.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/BORE3D.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SCORPION.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/CAPRI.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/BRANDY.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SCAGR25.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SCTAP1.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/ISRAEL.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SCFXM1.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/BANDM.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/E226.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/AGG.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/GROW7.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/ETAMACRO.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/FINNIS.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SCSD1.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/STANDATA.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/STANDGUB.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/BEACONFD.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/STAIR.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/STANDMPS.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/GFRD-PNC.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SCRS8.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/BOEING1.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/MODSZK1.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/DEGEN2.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/FORPLAN.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/AGG2.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/AGG3.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SCFXM2.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SHELL.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/PILOT4.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SCSD6.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SHIP04S.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SEBA.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/GROW15.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/FFFFF800.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/BNL1.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/PEROLD.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/QAP8.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SCFXM3.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SHIP04L.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/GANGES.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SCTAP2.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/GROW22.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SHIP08S.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/PILOT-WE.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/MAROS.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/STOCFOR2.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/25FV47.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SHIP12S.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SCSD8.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/FIT1P.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SCTAP3.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SIERRA.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/PILOTNOV.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/CZPROB.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/FIT1D.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/PILOT-JA.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SHIP08L.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/BNL2.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/NESM.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/CYCLE.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/acc-tight5.mps");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/SHIP12L.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/DEGEN3.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/GREENBEA.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/GREENBEB.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/80BAU3B.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/TRUSS.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/D2Q06C.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/WOODW.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/QAP12.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/D6CUBE.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/PILOT.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/DFL001.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/WOOD1P.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/FIT2P.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/PILOT87.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/STOCFOR3.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/QAP15.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/FIT2D.SIF");
file_names.push_back(home_dir_str + "/projects/lp/src/tests/util/lp/test_files/netlib/MAROS-R7.SIF");
minimums.insert("/projects/lp/src/tests/util/lp/test_files/netlib/FIT2P.SIF");
minimums.insert("/projects/lp/src/tests/util/lp/test_files/netlib/DFL001.SIF");
minimums.insert("/projects/lp/src/tests/util/lp/test_files/netlib/D2Q06C.SIF");
minimums.insert("/projects/lp/src/tests/util/lp/test_files/netlib/80BAU3B.SIF");
minimums.insert("/projects/lp/src/tests/util/lp/test_files/netlib/GREENBEB.SIF");
minimums.insert("/projects/lp/src/tests/util/lp/test_files/netlib/GREENBEA.SIF");
minimums.insert("/projects/lp/src/tests/util/lp/test_files/netlib/BNL2.SIF");
minimums.insert("/projects/lp/src/tests/util/lp/test_files/netlib/SHIP08L.SIF");
minimums.insert("/projects/lp/src/tests/util/lp/test_files/netlib/FIT1D.SIF");
minimums.insert("/projects/lp/src/tests/util/lp/test_files/netlib/SCTAP3.SIF");
minimums.insert("/projects/lp/src/tests/util/lp/test_files/netlib/SCSD8.SIF");
minimums.insert("/projects/lp/src/tests/util/lp/test_files/netlib/SCSD6.SIF");
minimums.insert("/projects/lp/src/tests/util/lp/test_files/netlib/MAROS-R7.SIF");
}
void test_out_dir(std::string out_dir) {
@ -1762,9 +1761,9 @@ void solve_rational() {
expected_sol["x7"] = lp::mpq(1);
expected_sol["x8"] = lp::mpq(0);
solver.find_maximal_solution();
SASSERT(solver.get_status() == OPTIMAL);
lp_assert(solver.get_status() == OPTIMAL);
for (auto it : expected_sol) {
SASSERT(it.second == solver.get_column_value_by_name(it.first));
lp_assert(it.second == solver.get_column_value_by_name(it.first));
}
}
@ -1822,7 +1821,7 @@ std::unordered_map<std::string, double> * get_solution_from_glpsol_output(std::s
return ret;
}
SASSERT(split.size() > 3);
lp_assert(split.size() > 3);
(*ret)[split[1]] = atof(split[3].c_str());
} while (true);
}
@ -1846,7 +1845,7 @@ void test_init_U() {
for (unsigned i = 0; i < 3; i++) {
for (unsigned j = 0; j < 3; j ++) {
SASSERT(m(i, basis[j]) == u(i, j));
lp_assert(m(i, basis[j]) == u(i, j));
}
}
@ -1874,7 +1873,7 @@ void test_replace_column() {
for (unsigned column_to_replace = 0; column_to_replace < m.dimension(); column_to_replace ++) {
m.replace_column(column_to_replace, w, settings);
for (unsigned i = 0; i < m.dimension(); i++) {
SASSERT(abs(w[i] - m(i, column_to_replace)) < 0.00000001);
lp_assert(abs(w[i] - m(i, column_to_replace)) < 0.00000001);
}
}
}
@ -1978,7 +1977,7 @@ void test_stacked_unsigned() {
v = 3;
v = 4;
v.pop();
SASSERT(v == 2);
lp_assert(v == 2);
v ++;
v++;
std::cout << "before push v=" << v << std::endl;
@ -1988,7 +1987,7 @@ void test_stacked_unsigned() {
v+=1;
std::cout << "v = " << v << std::endl;
v.pop(2);
SASSERT(v == 4);
lp_assert(v == 4);
const unsigned & rr = v;
std::cout << rr << std:: endl;
@ -2037,7 +2036,7 @@ void test_stacked_set() {
s.push();
s.insert(4);
s.pop();
SASSERT(s() == scopy);
lp_assert(s() == scopy);
s.push();
s.push();
s.insert(4);
@ -2045,7 +2044,7 @@ void test_stacked_set() {
s.push();
s.insert(4);
s.pop(3);
SASSERT(s() == scopy);
lp_assert(s() == scopy);
#endif
}
@ -2547,22 +2546,22 @@ void test_numeric_pair() {
numeric_pair<lp::mpq> c(0.1, 0.5);
a += 2*c;
a -= c;
SASSERT (a == b + c);
lp_assert (a == b + c);
numeric_pair<lp::mpq> d = a * 2;
std::cout << a << std::endl;
SASSERT(b == b);
SASSERT(b < a);
SASSERT(b <= a);
SASSERT(a > b);
SASSERT(a != b);
SASSERT(a >= b);
SASSERT(-a < b);
SASSERT(a < 2 * b);
SASSERT(b + b > a);
SASSERT(lp::mpq(2.1) * b + b > a);
SASSERT(-b * lp::mpq(2.1) - b < lp::mpq(0.99) * a);
lp_assert(b == b);
lp_assert(b < a);
lp_assert(b <= a);
lp_assert(a > b);
lp_assert(a != b);
lp_assert(a >= b);
lp_assert(-a < b);
lp_assert(a < 2 * b);
lp_assert(b + b > a);
lp_assert(lp::mpq(2.1) * b + b > a);
lp_assert(-b * lp::mpq(2.1) - b < lp::mpq(0.99) * a);
std::cout << - b * lp::mpq(2.1) - b << std::endl;
SASSERT(-b *(lp::mpq(2.1) + 1) == - b * lp::mpq(2.1) - b);
lp_assert(-b *(lp::mpq(2.1) + 1) == - b * lp::mpq(2.1) - b);
}
void get_matrix_dimensions(std::ifstream & f, unsigned & m, unsigned & n) {
@ -2583,7 +2582,7 @@ void read_row_cols(unsigned i, static_matrix<double, double>& A, std::ifstream &
if (line== "row_end")
break;
auto r = split_and_trim(line);
SASSERT(r.size() == 4);
lp_assert(r.size() == 4);
unsigned j = atoi(r[1].c_str());
double v = atof(r[3].c_str());
A.set(i, j, v);
@ -2611,7 +2610,7 @@ void read_basis(vector<unsigned> & basis, std::ifstream & f) {
std::cout << "reading basis" << std::endl;
std::string line;
getline(f, line);
SASSERT(line == "basis_start");
lp_assert(line == "basis_start");
do {
getline(f, line);
if (line == "basis_end")
@ -2624,7 +2623,7 @@ void read_basis(vector<unsigned> & basis, std::ifstream & f) {
void read_indexed_vector(indexed_vector<double> & v, std::ifstream & f) {
std::string line;
getline(f, line);
SASSERT(line == "vector_start");
lp_assert(line == "vector_start");
do {
getline(f, line);
if (line == "vector_end") break;
@ -2664,7 +2663,7 @@ void check_lu_from_file(std::string lufile_name) {
A.copy_column_to_vector(entering, a);
indexed_vector<double> cd(d);
B.apply_from_left(cd.m_data, settings);
SASSERT(vectors_are_equal(cd.m_data , a));
lp_assert(vectors_are_equal(cd.m_data , a));
#endif
}
@ -2762,7 +2761,7 @@ void test_evidence_for_total_inf_simple(argument_parser & args_parser) {
auto status = solver.solve();
std::cout << lp_status_to_string(status) << std::endl;
std::unordered_map<var_index, mpq> model;
SASSERT(solver.get_status() == INFEASIBLE);
lp_assert(solver.get_status() == INFEASIBLE);
}
void test_bound_propagation_one_small_sample1() {
/*
@ -2958,8 +2957,8 @@ void test_total_case_l(){
ls.solve();
lp_bound_propagator bp(ls);
ls.propagate_bounds_for_touched_rows(bp);
SASSERT(ev.size() == 4);
SASSERT(contains_j_kind(x, GE, - one_of_type<mpq>(), ev));
lp_assert(ev.size() == 4);
lp_assert(contains_j_kind(x, GE, - one_of_type<mpq>(), ev));
}
void test_bound_propagation() {
test_total_case_u();
@ -2979,17 +2978,17 @@ void test_int_set() {
s.insert(1);
s.insert(2);
s.print(std::cout);
SASSERT(s.contains(2));
SASSERT(s.size() == 2);
lp_assert(s.contains(2));
lp_assert(s.size() == 2);
s.erase(2);
SASSERT(s.size() == 1);
lp_assert(s.size() == 1);
s.erase(2);
SASSERT(s.size() == 1);
lp_assert(s.size() == 1);
s.print(std::cout);
s.insert(3);
s.insert(2);
s.clear();
SASSERT(s.size() == 0);
lp_assert(s.size() == 0);
}

View file

@ -2,12 +2,12 @@ void gparams_register_modules(){}
void mem_initialize() {}
void mem_finalize() {}
#include "util/rational.h"
namespace lean {
namespace lp {
void test_lp_local(int argc, char**argv);
}
int main(int argn, char**argv){
rational::initialize();
lean::test_lp_local(argn, argv);
lp::test_lp_local(argn, argv);
rational::finalize();
return 0;
}

View file

@ -121,13 +121,13 @@ namespace lp {
void fill_simple_elem(lisp_elem & lm) {
int separator = first_separator();
SASSERT(-1 != separator && separator != 0);
lp_assert(-1 != separator && separator != 0);
lm.m_head = m_line.substr(0, separator);
m_line = m_line.substr(separator);
}
void fill_nested_elem(lisp_elem & lm) {
SASSERT(m_line[0] == '(');
lp_assert(m_line[0] == '(');
m_line = m_line.substr(1);
int separator = first_separator();
lm.m_head = m_line.substr(0, separator);
@ -194,11 +194,11 @@ namespace lp {
}
void adjust_rigth_side(formula_constraint & /* c*/, lisp_elem & /*el*/) {
// SASSERT(el.m_head == "0"); // do nothing for the time being
// lp_assert(el.m_head == "0"); // do nothing for the time being
}
void set_constraint_coeffs(formula_constraint & c, lisp_elem & el) {
SASSERT(el.m_elems.size() == 2);
lp_assert(el.m_elems.size() == 2);
set_constraint_coeffs_on_coeff_element(c, el.m_elems[0]);
adjust_rigth_side(c, el.m_elems[1]);
}
@ -214,7 +214,7 @@ namespace lp {
add_mult_elem(c, el.m_elems);
} else if (el.m_head == "~") {
lisp_elem & minel = el.m_elems[0];
SASSERT(minel.is_simple());
lp_assert(minel.is_simple());
c.m_right_side += mpq(str_to_int(minel.m_head));
} else {
std::cout << "unexpected input " << el.m_head << std::endl;
@ -224,14 +224,14 @@ namespace lp {
}
std::string get_name(lisp_elem & name) {
SASSERT(name.is_simple());
SASSERT(!is_integer(name.m_head));
lp_assert(name.is_simple());
lp_assert(!is_integer(name.m_head));
return name.m_head;
}
void add_mult_elem(formula_constraint & c, std::vector<lisp_elem> & els) {
SASSERT(els.size() == 2);
lp_assert(els.size() == 2);
mpq coeff = get_coeff(els[0]);
std::string col_name = get_name(els[1]);
c.add_pair(coeff, col_name);
@ -241,16 +241,16 @@ namespace lp {
if (le.is_simple()) {
return mpq(str_to_int(le.m_head));
} else {
SASSERT(le.m_head == "~");
SASSERT(le.size() == 1);
lp_assert(le.m_head == "~");
lp_assert(le.size() == 1);
lisp_elem & el = le.m_elems[0];
SASSERT(el.is_simple());
lp_assert(el.is_simple());
return -mpq(str_to_int(el.m_head));
}
}
int str_to_int(std::string & s) {
SASSERT(is_integer(s));
lp_assert(is_integer(s));
return atoi(s.c_str());
}
@ -258,7 +258,7 @@ namespace lp {
if (el.size()) {
add_complex_sum_elem(c, el);
} else {
SASSERT(is_integer(el.m_head));
lp_assert(is_integer(el.m_head));
int v = atoi(el.m_head.c_str());
mpq vr(v);
c.m_right_side -= vr;
@ -276,7 +276,7 @@ namespace lp {
} else if (el.m_head == "+") {
add_sum(c, el.m_elems);
} else {
SASSERT(false); // unexpected input
lp_assert(false); // unexpected input
}
}