MCPcopy Create free account
hub / github.com/ERGO-Code/HiGHS / testAvgasGetRow

Function testAvgasGetRow

check/TestLpModification.cpp:2014–2118  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2012}
2013
2014void testAvgasGetRow(Highs& h) {
2015 Avgas avgas;
2016 double lower;
2017 double upper;
2018 std::vector<HighsInt> index;
2019 std::vector<double> value;
2020 HighsInt get_num;
2021 HighsInt lp_nnz;
2022 std::vector<double> lp_cost(1);
2023 std::vector<double> lp_lower(1);
2024 std::vector<double> lp_upper(1);
2025 std::vector<HighsInt> lp_start(1);
2026 std::vector<HighsInt> lp_index(avgas_num_col);
2027 std::vector<double> lp_value(avgas_num_col);
2028 std::vector<HighsInt> set(1);
2029 std::vector<HighsInt> mask(avgas_num_row);
2030 for (HighsInt row = 0; row < avgas_num_row; row++) {
2031 avgas.getRow(row, lower, upper, index, value);
2032 HighsInt avgas_nnz = index.size();
2033 h.getRows(row, row, get_num, lp_lower.data(), lp_upper.data(), lp_nnz,
2034 lp_start.data(), lp_index.data(), lp_value.data());
2035 REQUIRE(lp_lower[0] == lower);
2036 REQUIRE(lp_upper[0] == upper);
2037 REQUIRE(equalSparseVectors(avgas_num_col, avgas_nnz, index.data(),
2038 value.data(), lp_nnz, lp_index.data(),
2039 lp_value.data()));
2040 }
2041 HighsInt from_row = 2;
2042 HighsInt to_row = 5;
2043 HighsInt num_row = to_row - from_row + 1;
2044 lp_lower.resize(num_row);
2045 lp_upper.resize(num_row);
2046 lp_start.resize(num_row);
2047 lp_index.resize(num_row * avgas_num_col);
2048 lp_value.resize(num_row * avgas_num_col);
2049 h.getRows(from_row, to_row, get_num, lp_lower.data(), lp_upper.data(), lp_nnz,
2050 lp_start.data(), lp_index.data(), lp_value.data());
2051 REQUIRE(get_num == num_row);
2052 for (HighsInt row = 0; row < num_row; row++) {
2053 HighsInt avgas_row = from_row + row;
2054 avgas.getRow(avgas_row, lower, upper, index, value);
2055 HighsInt avgas_nnz = index.size();
2056 REQUIRE(lp_lower[row] == lower);
2057 REQUIRE(lp_upper[row] == upper);
2058 HighsInt from_el = lp_start[row];
2059 HighsInt lp_col_nnz =
2060 row < num_row - 1 ? lp_start[row + 1] - from_el : lp_nnz - from_el;
2061 REQUIRE(equalSparseVectors(avgas_num_col, avgas_nnz, index.data(),
2062 value.data(), lp_col_nnz, &lp_index[from_el],
2063 &lp_value[from_el]));
2064 }
2065 set = {1, 2, 3, 6, 7};
2066 num_row = set.size();
2067 lp_lower.resize(num_row);
2068 lp_upper.resize(num_row);
2069 lp_start.resize(num_row);
2070 lp_index.resize(num_row * avgas_num_col);
2071 lp_value.resize(num_row * avgas_num_col);

Callers 1

Calls 6

equalSparseVectorsFunction · 0.85
getRowsMethod · 0.80
dataMethod · 0.80
getRowMethod · 0.45
sizeMethod · 0.45
resizeMethod · 0.45

Tested by

no test coverage detected