-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathtest_variable.hpp
58 lines (46 loc) · 1.69 KB
/
test_variable.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
TEST_CASE("getVariableValue")
{
OptimizationProblem qp;
double s_eval;
Eigen::VectorXd v_eval;
Eigen::MatrixXd m_eval;
Scalar s = qp.addVariable("s");
VectorX v = qp.addVariable("v", 3);
MatrixX m = qp.addVariable("m", 3, 3);
REQUIRE_THROWS(qp.getVariableValue("imaginary_s", s_eval));
REQUIRE_THROWS(qp.getVariableValue("imaginary_v", v_eval));
REQUIRE_THROWS(qp.getVariableValue("imaginary_m", m_eval));
qp.getVariableValue("s", s_eval);
qp.getVariableValue("v", v_eval);
qp.getVariableValue("m", m_eval);
REQUIRE(s_eval == 0.);
REQUIRE(v_eval == Eigen::Vector3d::Zero());
REQUIRE(m_eval == Eigen::Matrix3d::Zero());
}
TEST_CASE("getProblemIndex")
{
internal::Variable variable("x");
REQUIRE_THROWS(variable.getProblemIndex());
}
TEST_CASE("getVariable")
{
OptimizationProblem op;
Scalar scalar = op.addVariable("scalar");
VectorX vector = op.addVariable("vector", 5);
MatrixX matrix = op.addVariable("matrix", 5, 5);
REQUIRE_THROWS(op.addVariable("scalar"));
REQUIRE_THROWS(op.addVariable("vector", 5));
REQUIRE_THROWS(op.addVariable("matrix", 5, 5));
Scalar scalar_returned;
VectorX vector_returned;
MatrixX matrix_returned;
op.getVariable("scalar", scalar_returned);
op.getVariable("vector", vector_returned);
op.getVariable("matrix", matrix_returned);
REQUIRE(scalar == scalar_returned);
REQUIRE(vector == vector_returned);
REQUIRE(matrix == matrix_returned);
REQUIRE_THROWS(op.getVariable("imaginary_scalar", scalar_returned));
REQUIRE_THROWS(op.getVariable("imaginary_vector", vector_returned));
REQUIRE_THROWS(op.getVariable("imaginary_matrix", matrix_returned));
}