[TEST] Added Remaining Failing Tests AUG2D CONT-050 HS118 HS268 HS51 HS51 HS53 HS76

release/4.3a0
= 2016-07-01 13:02:59 -04:00
parent ac1a02337e
commit 15c6aa210b
10 changed files with 117774 additions and 7 deletions

100010
examples/Data/AUG2D.QPS Normal file

File diff suppressed because it is too large Load Diff

17400
examples/Data/CONT-050.QPS Normal file

File diff suppressed because it is too large Load Diff

118
examples/Data/HS118.QPS Normal file
View File

@ -0,0 +1,118 @@
NAME HS118
ROWS
N OBJ.FUNC
G R------1
G R------2
G R------3
G R------4
G R------5
G R------6
G R------7
G R------8
G R------9
G R-----10
G R-----11
G R-----12
G R-----13
G R-----14
G R-----15
G R-----16
G R-----17
COLUMNS
C------1 OBJ.FUNC 0.230000e+01 R------1 -.100000e+01
C------1 R-----13 0.100000e+01
C------2 OBJ.FUNC 0.170000e+01 R------3 -.100000e+01
C------2 R-----13 0.100000e+01
C------3 OBJ.FUNC 0.220000e+01 R------2 -.100000e+01
C------3 R-----13 0.100000e+01
C------4 OBJ.FUNC 0.230000e+01 R------1 0.100000e+01
C------4 R------4 -.100000e+01 R-----14 0.100000e+01
C------5 OBJ.FUNC 0.170000e+01 R------3 0.100000e+01
C------5 R------6 -.100000e+01 R-----14 0.100000e+01
C------6 OBJ.FUNC 0.220000e+01 R------2 0.100000e+01
C------6 R------5 -.100000e+01 R-----14 0.100000e+01
C------7 OBJ.FUNC 0.230000e+01 R------4 0.100000e+01
C------7 R------7 -.100000e+01 R-----15 0.100000e+01
C------8 OBJ.FUNC 0.170000e+01 R------6 0.100000e+01
C------8 R------9 -.100000e+01 R-----15 0.100000e+01
C------9 OBJ.FUNC 0.220000e+01 R------5 0.100000e+01
C------9 R------8 -.100000e+01 R-----15 0.100000e+01
C-----10 OBJ.FUNC 0.230000e+01 R------7 0.100000e+01
C-----10 R-----10 -.100000e+01 R-----16 0.100000e+01
C-----11 OBJ.FUNC 0.170000e+01 R------9 0.100000e+01
C-----11 R-----12 -.100000e+01 R-----16 0.100000e+01
C-----12 OBJ.FUNC 0.220000e+01 R------8 0.100000e+01
C-----12 R-----11 -.100000e+01 R-----16 0.100000e+01
C-----13 OBJ.FUNC 0.230000e+01 R-----10 0.100000e+01
C-----13 R-----17 0.100000e+01
C-----14 OBJ.FUNC 0.170000e+01 R-----12 0.100000e+01
C-----14 R-----17 0.100000e+01
C-----15 OBJ.FUNC 0.220000e+01 R-----11 0.100000e+01
C-----15 R-----17 0.100000e+01
RHS
RHS R------1 -.700000e+01
RHS R------2 -.700000e+01
RHS R------3 -.700000e+01
RHS R------4 -.700000e+01
RHS R------5 -.700000e+01
RHS R------6 -.700000e+01
RHS R------7 -.700000e+01
RHS R------8 -.700000e+01
RHS R------9 -.700000e+01
RHS R-----10 -.700000e+01
RHS R-----11 -.700000e+01
RHS R-----12 -.700000e+01
RHS R-----13 0.600000e+02
RHS R-----14 0.500000e+02
RHS R-----15 0.700000e+02
RHS R-----16 0.850000e+02
RHS R-----17 0.100000e+03
RANGES
RANGES R------1 0.130000e+02
RANGES R------2 0.130000e+02
RANGES R------3 0.140000e+02
RANGES R------4 0.130000e+02
RANGES R------5 0.130000e+02
RANGES R------6 0.140000e+02
RANGES R------7 0.130000e+02
RANGES R------8 0.130000e+02
RANGES R------9 0.140000e+02
RANGES R-----10 0.130000e+02
RANGES R-----11 0.130000e+02
RANGES R-----12 0.140000e+02
BOUNDS
LO BOUNDS C------1 0.800000e+01
UP BOUNDS C------1 0.210000e+02
LO BOUNDS C------2 0.430000e+02
UP BOUNDS C------2 0.570000e+02
LO BOUNDS C------3 0.300000e+01
UP BOUNDS C------3 0.160000e+02
UP BOUNDS C------4 0.900000e+02
UP BOUNDS C------5 0.120000e+03
UP BOUNDS C------6 0.600000e+02
UP BOUNDS C------7 0.900000e+02
UP BOUNDS C------8 0.120000e+03
UP BOUNDS C------9 0.600000e+02
UP BOUNDS C-----10 0.900000e+02
UP BOUNDS C-----11 0.120000e+03
UP BOUNDS C-----12 0.600000e+02
UP BOUNDS C-----13 0.900000e+02
UP BOUNDS C-----14 0.120000e+03
UP BOUNDS C-----15 0.600000e+02
QUADOBJ
C------1 C------1 0.200000e-03
C------2 C------2 0.200000e-03
C------3 C------3 0.300000e-03
C------4 C------4 0.200000e-03
C------5 C------5 0.200000e-03
C------6 C------6 0.300000e-03
C------7 C------7 0.200000e-03
C------8 C------8 0.200000e-03
C------9 C------9 0.300000e-03
C-----10 C-----10 0.200000e-03
C-----11 C-----11 0.200000e-03
C-----12 C-----12 0.300000e-03
C-----13 C-----13 0.200000e-03
C-----14 C-----14 0.200000e-03
C-----15 C-----15 0.300000e-03
ENDATA

55
examples/Data/HS268.QPS Normal file
View File

@ -0,0 +1,55 @@
NAME HS268
ROWS
N OBJ.FUNC
G R------1
G R------2
G R------3
G R------4
G R------5
COLUMNS
C------1 OBJ.FUNC 0.183400e+05 R------1 -.100000e+01
C------1 R------2 0.100000e+02 R------3 -.800000e+01
C------1 R------4 0.800000e+01 R------5 -.400000e+01
C------2 OBJ.FUNC -.341980e+05 R------1 -.100000e+01
C------2 R------2 0.100000e+02 R------3 0.100000e+01
C------2 R------4 -.100000e+01 R------5 -.200000e+01
C------3 OBJ.FUNC 0.454200e+04 R------1 -.100000e+01
C------3 R------2 -.300000e+01 R------3 -.200000e+01
C------3 R------4 0.200000e+01 R------5 0.300000e+01
C------4 OBJ.FUNC 0.867200e+04 R------1 -.100000e+01
C------4 R------2 0.500000e+01 R------3 -.500000e+01
C------4 R------4 0.500000e+01 R------5 -.500000e+01
C------5 OBJ.FUNC 0.860000e+02 R------1 -.100000e+01
C------5 R------2 0.400000e+01 R------3 0.300000e+01
C------5 R------4 -.300000e+01 R------5 0.100000e+01
RHS
RHS OBJ.FUNC -.144630e+05
RHS R------1 -.500000e+01
RHS R------2 0.200000e+02
RHS R------3 -.400000e+02
RHS R------4 0.110000e+02
RHS R------5 -.300000e+02
RANGES
BOUNDS
FR BOUNDS C------1
FR BOUNDS C------2
FR BOUNDS C------3
FR BOUNDS C------4
FR BOUNDS C------5
QUADOBJ
C------1 C------1 0.203940e+05
C------1 C------2 -.249080e+05
C------1 C------3 -.202600e+04
C------1 C------4 0.389600e+04
C------1 C------5 0.658000e+03
C------2 C------2 0.418180e+05
C------2 C------3 -.346600e+04
C------2 C------4 -.982800e+04
C------2 C------5 -.372000e+03
C------3 C------3 0.351000e+04
C------3 C------4 0.217800e+04
C------3 C------5 -.348000e+03
C------4 C------4 0.303000e+04
C------4 C------5 -.440000e+02
C------5 C------5 0.540000e+02
ENDATA

33
examples/Data/HS51.QPS Normal file
View File

@ -0,0 +1,33 @@
NAME HS51
ROWS
N OBJ.FUNC
E R------1
E R------2
E R------3
COLUMNS
C------1 R------1 0.100000e+01
C------2 OBJ.FUNC -.400000e+01 R------1 0.300000e+01
C------2 R------3 0.100000e+01
C------3 OBJ.FUNC -.400000e+01 R------2 0.100000e+01
C------4 OBJ.FUNC -.200000e+01 R------2 0.100000e+01
C------5 OBJ.FUNC -.200000e+01 R------2 -.200000e+01
C------5 R------3 -.100000e+01
RHS
RHS OBJ.FUNC -.600000e+01
RHS R------1 0.400000e+01
RANGES
BOUNDS
FR BOUNDS C------1
FR BOUNDS C------2
FR BOUNDS C------3
FR BOUNDS C------4
FR BOUNDS C------5
QUADOBJ
C------1 C------1 0.200000e+01
C------1 C------2 -.200000e+01
C------2 C------2 0.400000e+01
C------2 C------3 0.200000e+01
C------3 C------3 0.200000e+01
C------4 C------4 0.200000e+01
C------5 C------5 0.200000e+01
ENDATA

32
examples/Data/HS52.QPS Normal file
View File

@ -0,0 +1,32 @@
NAME HS52
ROWS
N OBJ.FUNC
E R------1
E R------2
E R------3
COLUMNS
C------1 R------1 0.100000e+01
C------2 OBJ.FUNC -.400000e+01 R------1 0.300000e+01
C------2 R------3 0.100000e+01
C------3 OBJ.FUNC -.400000e+01 R------2 0.100000e+01
C------4 OBJ.FUNC -.200000e+01 R------2 0.100000e+01
C------5 OBJ.FUNC -.200000e+01 R------2 -.200000e+01
C------5 R------3 -.100000e+01
RHS
RHS OBJ.FUNC -.600000e+01
RANGES
BOUNDS
FR BOUNDS C------1
FR BOUNDS C------2
FR BOUNDS C------3
FR BOUNDS C------4
FR BOUNDS C------5
QUADOBJ
C------1 C------1 0.320000e+02
C------1 C------2 -.800000e+01
C------2 C------2 0.400000e+01
C------2 C------3 0.200000e+01
C------3 C------3 0.200000e+01
C------4 C------4 0.200000e+01
C------5 C------5 0.200000e+01
ENDATA

37
examples/Data/HS53.QPS Normal file
View File

@ -0,0 +1,37 @@
NAME HS53
ROWS
N OBJ.FUNC
E R------1
E R------2
E R------3
COLUMNS
C------1 R------1 0.100000e+01
C------2 OBJ.FUNC -.400000e+01 R------1 0.300000e+01
C------2 R------3 0.100000e+01
C------3 OBJ.FUNC -.400000e+01 R------2 0.100000e+01
C------4 OBJ.FUNC -.200000e+01 R------2 0.100000e+01
C------5 OBJ.FUNC -.200000e+01 R------2 -.200000e+01
C------5 R------3 -.100000e+01
RHS
RHS OBJ.FUNC -.600000e+01
RANGES
BOUNDS
LO BOUNDS C------1 -.100000e+02
UP BOUNDS C------1 0.100000e+02
LO BOUNDS C------2 -.100000e+02
UP BOUNDS C------2 0.100000e+02
LO BOUNDS C------3 -.100000e+02
UP BOUNDS C------3 0.100000e+02
LO BOUNDS C------4 -.100000e+02
UP BOUNDS C------4 0.100000e+02
LO BOUNDS C------5 -.100000e+02
UP BOUNDS C------5 0.100000e+02
QUADOBJ
C------1 C------1 0.200000e+01
C------1 C------2 -.200000e+01
C------2 C------2 0.400000e+01
C------2 C------3 0.200000e+01
C------3 C------3 0.200000e+01
C------4 C------4 0.200000e+01
C------5 C------5 0.200000e+01
ENDATA

29
examples/Data/HS76.QPS Normal file
View File

@ -0,0 +1,29 @@
NAME HS76
ROWS
N OBJ.FUNC
L R------1
L R------2
G R------3
COLUMNS
C------1 OBJ.FUNC -.100000e+01 R------1 0.100000e+01
C------1 R------2 0.300000e+01
C------2 OBJ.FUNC -.300000e+01 R------1 0.200000e+01
C------2 R------2 0.100000e+01 R------3 0.100000e+01
C------3 OBJ.FUNC 0.100000e+01 R------1 0.100000e+01
C------3 R------2 0.200000e+01 R------3 0.400000e+01
C------4 OBJ.FUNC -.100000e+01 R------1 0.100000e+01
C------4 R------2 -.100000e+01
RHS
RHS R------1 0.500000e+01
RHS R------2 0.400000e+01
RHS R------3 0.150000e+01
RANGES
BOUNDS
QUADOBJ
C------1 C------1 0.200000e+01
C------1 C------3 -.100000e+01
C------2 C------2 0.100000e+01
C------3 C------3 0.200000e+01
C------3 C------4 0.100000e+01
C------4 C------4 0.100000e+01
ENDATA

View File

@ -40,7 +40,10 @@ void RawQP::addColumn(
std::string var_(at_c < 1 > (vars).begin(), at_c < 1 > (vars).end());
std::string row_(at_c < 3 > (vars).begin(), at_c < 3 > (vars).end());
Matrix11 coefficient = at_c < 5 > (vars) * I_1x1;
if (debug) {
std::cout << "Added Column for Var: " << var_ << " Row: " << row_
<< " Coefficient: " << coefficient << std::endl;
}
if (!varname_to_key.count(var_))
varname_to_key[var_] = Symbol('X', varNumber++);
if (row_ == obj_name) {
@ -48,11 +51,6 @@ void RawQP::addColumn(
return;
}
(*row_to_constraint_v[row_])[row_][varname_to_key[var_]] = coefficient;
if (debug) {
std::cout << "Added Column for Var: " << var_ << " Row: " << row_
<< " Coefficient: " << coefficient << std::endl;
}
}
void RawQP::addColumnDouble(

View File

@ -281,7 +281,7 @@ TEST(QPSolver, HS21) {
CHECK(assert_equal(expectedSolution, actualSolution))
}
TEST_DISABLED(QPSolver, HS118) {
TEST_DISABLED(QPSolver, HS118) { //Fails because of the GTSAM linear system error
QP problem = QPSParser("HS118.QPS").Parse();
VectorValues actualSolution;
VectorValues expectedSolution;
@ -311,6 +311,61 @@ TEST(QPSolver, HS35MOD) {
CHECK(assert_equal(2.50000001e-01,error_actual, 1e-7))
}
TEST(QPSolver, HS51) {
QP problem = QPSParser("HS51.QPS").Parse();
VectorValues actualSolution;
boost::tie(actualSolution, boost::tuples::ignore) = QPSolver(problem).optimize();
double error_actual = problem.cost.error(actualSolution);
CHECK(assert_equal(8.88178420e-16,error_actual, 1e-7))
}
TEST(QPSolver, HS52) { //Fails on release but not debug
QP problem = QPSParser("HS52.QPS").Parse();
VectorValues actualSolution;
boost::tie(actualSolution, boost::tuples::ignore) = QPSolver(problem).optimize();
double error_actual = problem.cost.error(actualSolution);
CHECK(assert_equal(5.32664756,error_actual, 1e-7))
}
TEST_DISABLED(QPSolver, HS53) { //Fails because of the GTSAM indeterminant linear system error
QP problem = QPSParser("HS53.QPS").Parse();
VectorValues actualSolution;
boost::tie(actualSolution, boost::tuples::ignore) = QPSolver(problem).optimize();
double error_actual = problem.cost.error(actualSolution);
CHECK(assert_equal(4.09302326,error_actual, 1e-7))
}
TEST_DISABLED(QPSolver, HS76) { //Fails because of the GTSAM indeterminant linear system
QP problem = QPSParser("HS76.QPS").Parse();
VectorValues actualSolution;
boost::tie(actualSolution, boost::tuples::ignore) = QPSolver(problem).optimize();
double error_actual = problem.cost.error(actualSolution);
CHECK(assert_equal(-4.68181818,error_actual, 1e-7))
}
TEST_DISABLED(QPSolver, HS268) { // Fails with a very small error
QP problem = QPSParser("HS268.QPS").Parse();
VectorValues actualSolution;
boost::tie(actualSolution, boost::tuples::ignore) = QPSolver(problem).optimize();
double error_actual = problem.cost.error(actualSolution);
CHECK(assert_equal(5.73107049e-07,error_actual, 1e-7))
}
TEST_DISABLED(QPSolver, AUG2D) { //Fails with Indeterminant Linear System error.
QP problem = QPSParser("AUG2D.QPS").Parse();
VectorValues actualSolution;
boost::tie(actualSolution, boost::tuples::ignore) = QPSolver(problem).optimize();
double error_actual = problem.cost.error(actualSolution);
CHECK(assert_equal(0.168741175e+07,error_actual, 1e-7))
}
TEST_DISABLED(QPSolver, CONT_050) { // Fails with Indeterminant Linear System error
QP problem = QPSParser("CONT-050.QPS").Parse();
VectorValues actualSolution;
boost::tie(actualSolution, boost::tuples::ignore) = QPSolver(problem).optimize();
double error_actual = problem.cost.error(actualSolution);
CHECK(assert_equal(-4.56385090,error_actual, 1e-7))
}
/* ************************************************************************* */
// Create Matlab's test graph as in http://www.mathworks.com/help/optim/ug/quadprog.html