30 #include <gtest/gtest.h> 49 using namespace ifopt;
64 EXPECT_STREQ(
"ex_component", c.
GetName().c_str());
70 auto c1 = std::make_shared<ExComponent>(0,
"component1");
71 auto c2 = std::make_shared<ExComponent>(1,
"component2");
72 auto c3 = std::make_shared<ExComponent>(2,
"component3");
75 cost.AddComponent(c1);
76 cost.AddComponent(c2);
77 cost.AddComponent(c3);
78 EXPECT_EQ(1, cost.GetRows());
84 auto c1 = std::make_shared<ExComponent>(0,
"component1");
85 auto c2 = std::make_shared<ExComponent>(1,
"component2");
86 auto c3 = std::make_shared<ExComponent>(2,
"component3");
88 Composite constraint(
"constraint",
false);
89 constraint.AddComponent(c1);
90 constraint.AddComponent(c2);
91 constraint.AddComponent(c3);
92 EXPECT_EQ(0+1+2, constraint.GetRows());
98 auto c1 = std::make_shared<ExComponent>(0,
"component1");
99 auto c2 = std::make_shared<ExComponent>(1,
"component2");
100 auto c3 = std::make_shared<ExComponent>(2,
"component3");
103 comp.AddComponent(c1);
104 comp.AddComponent(c2);
105 comp.AddComponent(c3);
107 auto c1_new = comp.GetComponent(
"component1");
108 EXPECT_EQ(c1->GetRows(), c1_new->GetRows());
110 auto c2_new = comp.GetComponent<
ExComponent>(
"component2");
111 EXPECT_EQ(c2->GetRows(), c2_new->GetRows());
113 auto c3_new = comp.GetComponent<
ExComponent>(
"component3");
114 EXPECT_NE(c1->GetRows(), c3_new->GetRows());
120 auto c1 = std::make_shared<ExComponent>(0,
"component1");
121 auto c2 = std::make_shared<ExComponent>(1,
"component2");
122 auto c3 = std::make_shared<ExComponent>(2,
"component3");
125 comp.AddComponent(c1);
126 comp.AddComponent(c2);
127 comp.AddComponent(c3);
129 EXPECT_EQ(0+1+2, comp.GetRows());
131 comp.ClearComponents();
132 EXPECT_EQ(0, comp.GetRows());
virtual VecBound GetBounds() const
Returns the "bounds" of this component.
ExComponent(int n_var, const std::string &name)
virtual Jacobian GetJacobian() const
Returns derivatives of each row w.r.t. the variables.
std::string GetName() const
Returns the name (id) of this component.
virtual VectorXd GetValues() const
Returns the "values" of whatever this component represents.
Declares the classes Composite and Component used as variables, costs and constraints.
void SetRows(int num_rows)
Sets the number of rows of this component.
Eigen::SparseMatrix< double, Eigen::RowMajor > Jacobian
Interface representing either Variable, Cost or Constraint.
A collection of components which is treated as another Component.
std::vector< Bounds > VecBound
int GetRows() const
Returns the number of rows of this component.
virtual void SetVariables(const VectorXd &x)
Sets the optimization variables from an Eigen vector.