31 int inDataScalarID = inDataScalar->
getID();
44 Eigen::VectorXd &inValuesScalar = inDataScalar->
values();
45 inValuesScalar << 1.0, 2.0, 3.0;
56 int outDataScalarID = outDataScalar->
getID();
60 outMesh->
createVertex(Eigen::Vector2d::Constant(1.0 / 3.0));
82 mapping.
map(inDataScalarID, outDataScalarID);
83 const Eigen::VectorXd &outValuesScalar = outDataScalar->
values();
87 Eigen::VectorXd expected(outMesh->
nVertices());
88 expected << 2.0, 1.0, 2.0, 3.0, 1.49, 2.25, 1.5, 1.0, 2.0, 3.0;
89 BOOST_CHECK(equals(expected, outValuesScalar));
105 const double forceOnMid = 1.0;
106 const double forceOnMidAB = 2.0;
107 const double forceOnA = 10.0;
108 const double forceOnC = 7.0;
109 const double unbalancedforceOnBC = 3.0;
110 const double netForce = forceOnMid + forceOnMidAB + forceOnA + forceOnC + unbalancedforceOnBC;
114 int inDataScalarID = inDataScalar->
getID();
123 Eigen::VectorXd &inValuesScalar = inDataScalar->
values();
124 inValuesScalar << forceOnMid, forceOnMidAB, forceOnA, forceOnC, unbalancedforceOnBC;
129 int outDataScalarID = outDataScalar->
getID();
150 mapping.
map(inDataScalarID, outDataScalarID);
151 const Eigen::VectorXd &outValuesScalar = outDataScalar->
values();
155 Eigen::VectorXd expected(outMesh->
nVertices());
156 const double expectedA = forceOnMid / 3 + forceOnMidAB / 2 + forceOnA;
157 const double expectedB = forceOnMid / 3 + forceOnMidAB / 2 + unbalancedforceOnBC * 0.75;
158 const double expectedC = forceOnMid / 3 + forceOnC + unbalancedforceOnBC * 0.25;
159 expected << expectedA, expectedB, expectedC;
161 BOOST_CHECK(equals(expected, outValuesScalar));
162 BOOST_CHECK(equals(netForce, outValuesScalar.sum()));
174 int inDataScalarID = inDataScalar->
getID();
190 Eigen::VectorXd &inValuesScalar = inDataScalar->
values();
191 inValuesScalar << 1.0, 2.0, 3.0, 4.0;
196 int outDataScalarID = outDataScalar->
getID();
205 outMesh->
createVertex(Eigen::Vector3d(1.0 / 3, 1.0 / 3, -0.1));
221 mapping.
map(inDataScalarID, outDataScalarID);
222 const Eigen::VectorXd &outValuesScalar = outDataScalar->
values();
226 Eigen::VectorXd expected(outMesh->
nVertices());
227 expected << 2.5, 1.0, 2.0, 3.0, 4.0, 2.0, 3.0, 3.3, 3.6;
228 BOOST_CHECK(equals(expected, outValuesScalar));
243 const double forceOnMid = 1.0;
244 const double forceOnMidAB = 2.0;
245 const double forceOnA = 10.0;
246 const double forceOnC = 7.0;
247 const double unbalancedforceOnBC = 3.0;
248 const double unbalancedInternalForce = 11.0;
249 const double netForce = forceOnMid + forceOnMidAB + forceOnA + forceOnC + unbalancedforceOnBC + unbalancedInternalForce;
253 int inDataScalarID = inDataScalar->
getID();
255 inMesh->
createVertex(Eigen::Vector3d(0.25, 0.25, 0.25));
263 Eigen::VectorXd &inValuesScalar = inDataScalar->
values();
264 inValuesScalar << forceOnMid, forceOnMidAB, forceOnA, forceOnC, unbalancedforceOnBC, unbalancedInternalForce;
269 int outDataScalarID = outDataScalar->
getID();
286 mapping.
map(inDataScalarID, outDataScalarID);
287 const Eigen::VectorXd &outValuesScalar = outDataScalar->
values();
291 Eigen::VectorXd expected(outMesh->
nVertices());
292 const double expectedA = forceOnMid / 4 + forceOnMidAB / 2 + forceOnA + 0.4 * unbalancedInternalForce;
293 const double expectedB = forceOnMid / 4 + forceOnMidAB / 2 + unbalancedforceOnBC * 0.75 + 0.1 * unbalancedInternalForce;
294 const double expectedC = forceOnMid / 4 + forceOnC + unbalancedforceOnBC * 0.25 + 0.2 * unbalancedInternalForce;
295 const double expectedD = forceOnMid / 4 + 0.3 * unbalancedInternalForce;
297 expected << expectedA, expectedB, expectedC, expectedD;
299 BOOST_CHECK(equals(expected, outValuesScalar));
300 BOOST_CHECK(equals(netForce, outValuesScalar.sum()));
PtrData & createData(const std::string &name, int dimension, DataID id, int waveformDegree=time::Time::DEFAULT_WAVEFORM_DEGREE)
Create only data for vertex.
Tetrahedron & createTetrahedron(Vertex &vertexOne, Vertex &vertexTwo, Vertex &vertexThree, Vertex &vertexFour)
Creates and initializes a Tetrahedron object.
boost::test_tools::predicate_result equals(const std::vector< float > &VectorA, const std::vector< float > &VectorB, float tolerance)
equals to be used in tests. Compares two std::vectors using a given tolerance. Prints both operands o...