25 const int dataDimensions = 1;
26 const int nValues = 4;
27 const int nTimeSteps = 3;
30 dummyMesh->setVertexOffsets(vertexOffsets);
31 dummyMesh->createVertex(Eigen::Vector3d{0, 0, 0});
32 dummyMesh->createVertex(Eigen::Vector3d{1, 0, 0});
33 dummyMesh->createVertex(Eigen::Vector3d{2, 0, 0});
34 dummyMesh->createVertex(Eigen::Vector3d{3, 0, 0});
39 Eigen::VectorXd insert0(nValues);
40 insert0 << 1.0, 2.0, 3.0, 4.0;
41 Eigen::VectorXd insert05(nValues);
42 insert05 << 10.0, 20.0, 30.0, 40.0;
43 Eigen::VectorXd insert1(nValues);
44 insert1 << 100.0, 200.0, 300.0, 400.0;
49 fromDataPtr->setSampleAtTime(0,
time::Sample{dataDimensions, insert0});
50 fromDataPtr->setSampleAtTime(0.5,
time::Sample{dataDimensions, insert05});
51 fromDataPtr->setSampleAtTime(1,
time::Sample{dataDimensions, insert1});
55 Eigen::VectorXd expectedSerialized(nTimeSteps * nValues);
56 expectedSerialized << 1.0, 10.0, 100.0, 2.0, 20.0, 200.0, 3.0, 30.0, 300.0, 4.0, 40.0, 400.0;
58 for (
int i = 0; i < nTimeSteps * nValues; i++) {
59 BOOST_TEST(
testing::equals(serialized.values()(i), expectedSerialized(i)));
69 const int nValues = 4;
70 const int dataDimensions = 1;
71 const int nTimeSteps = 3;
73 Eigen::VectorXd serializedValues(nTimeSteps * nValues);
74 serializedValues << 1.0, 10.0, 100.0, 2.0, 20.0, 200.0, 3.0, 30.0, 300.0, 4.0, 40.0, 400.0;
77 dummyMesh->setVertexOffsets(vertexOffsets);
78 dummyMesh->createVertex(Eigen::Vector3d{0, 0, 0});
79 dummyMesh->createVertex(Eigen::Vector3d{1, 0, 0});
80 dummyMesh->createVertex(Eigen::Vector3d{2, 0, 0});
81 dummyMesh->createVertex(Eigen::Vector3d{3, 0, 0});
86 Eigen::VectorXd initValues(nValues);
89 toDataPtr->setSampleAtTime(0,
time::Sample(toDataPtr->getDimensions(), initValues));
91 Eigen::VectorXd timeStamps(nTimeSteps);
92 timeStamps << 0, 0.5, 1;
96 serialized.values() = serializedValues;
98 serialized.deserializeInto(timeStamps, *toDataPtr);
102 Eigen::VectorXd insert0(nValues);
103 insert0 << 1.0, 2.0, 3.0, 4.0;
104 Eigen::VectorXd insert05(nValues);
105 insert05 << 10.0, 20.0, 30.0, 40.0;
106 Eigen::VectorXd insert1(nValues);
107 insert1 << 100.0, 200.0, 300.0, 400.0;
113 BOOST_TEST(toDataPtr->timeStepsStorage().stamples().size() == nTimeSteps);
114 for (
int t = 0; t < nTimeSteps; t++) {
115 BOOST_TEST(
testing::equals(toDataPtr->timeStepsStorage().stamples()[t].timestamp, timeStamps[t]));
116 for (
int i = 0; i < nValues; i++) {
117 BOOST_TEST(
testing::equals(toDataPtr->timeStepsStorage().stamples()[t].sample.values(i), expectedValues[t](i)));
128 const int meshDimensions = 3;
129 const int dataDimensions = 1;
130 const int nValues = 4;
131 const int nTimeSteps = 3;
134 dummyMesh->setVertexOffsets(vertexOffsets);
135 dummyMesh->createVertex(Eigen::Vector3d{0, 0, 0});
136 dummyMesh->createVertex(Eigen::Vector3d{1, 0, 0});
137 dummyMesh->createVertex(Eigen::Vector3d{2, 0, 0});
138 dummyMesh->createVertex(Eigen::Vector3d{3, 0, 0});
141 fromData->requireDataGradient();
143 Eigen::VectorXd insert0(nValues);
144 insert0 << 1.0, 2.0, 3.0, 4.0;
145 Eigen::VectorXd insert05(nValues);
146 insert05 << 10.0, 20.0, 30.0, 40.0;
147 Eigen::VectorXd insert1(nValues);
148 insert1 << 100.0, 200.0, 300.0, 400.0;
149 Eigen::MatrixXd insertGradients0(meshDimensions, nValues * dataDimensions);
150 insertGradients0 << 10.0, 20.0, 30.0, 40.0,
151 11.0, 21.0, 31.0, 41.0,
152 12.0, 22.0, 32.0, 42.0;
153 Eigen::MatrixXd insertGradients05(meshDimensions, nValues * dataDimensions);
154 insertGradients05 << 100.0, 200.0, 300.0, 400.0,
155 101.0, 201.0, 301.0, 401.0,
156 102.0, 202.0, 302.0, 402.0;
157 Eigen::MatrixXd insertGradients1(meshDimensions, nValues * dataDimensions);
158 insertGradients1 << 1000.0, 2000.0, 3000.0, 4000.0,
159 1001.0, 2001.0, 3001.0, 4001.0,
160 1002.0, 2002.0, 3002.0, 4002.0;
164 fromDataPtr->setSampleAtTime(0,
time::Sample{dataDimensions, insert0, insertGradients0});
165 fromDataPtr->setSampleAtTime(0.5,
time::Sample{dataDimensions, insert05, insertGradients05});
166 fromDataPtr->setSampleAtTime(1,
time::Sample{dataDimensions, insert1, insertGradients1});
170 Eigen::VectorXd expectedSerializedValues(nTimeSteps * nValues);
171 expectedSerializedValues << 1.0, 10.0, 100.0, 2.0, 20.0, 200.0, 3.0, 30.0, 300.0, 4.0, 40.0, 400.0;
173 Eigen::VectorXd expectedSerializedGradients(nTimeSteps * nValues * meshDimensions);
174 expectedSerializedGradients << 10.0, 100.0, 1000.0, 11.0, 101.0, 1001.0, 12.0, 102.0, 1002.0,
175 20.0, 200.0, 2000.0, 21.0, 201.0, 2001.0, 22.0, 202.0, 2002.0,
176 30.0, 300.0, 3000.0, 31.0, 301.0, 3001.0, 32.0, 302.0, 3002.0,
177 40.0, 400.0, 4000.0, 41.0, 401.0, 4001.0, 42.0, 402.0, 4002.0;
179 for (
int i = 0; i < nTimeSteps * nValues; i++) {
180 BOOST_TEST(
testing::equals(serialized.values()(i), expectedSerializedValues(i)));
183 for (
int i = 0; i < nTimeSteps * meshDimensions * nValues; i++) {
184 BOOST_TEST(
testing::equals(serialized.gradients()(i), expectedSerializedGradients(i)));
194 const int meshDimensions = 3;
195 const int nValues = 4;
196 const int dataDimensions = 1;
197 const int nTimeSteps = 3;
199 Eigen::VectorXd serializedValues(nTimeSteps * nValues);
200 serializedValues << 1.0, 10.0, 100.0, 2.0, 20.0, 200.0, 3.0, 30.0, 300.0, 4.0, 40.0, 400.0;
202 Eigen::VectorXd serializedGradients(nTimeSteps * nValues * meshDimensions);
203 serializedGradients << 10.0, 100.0, 1000.0, 11.0, 101.0, 1001.0, 12.0, 102.0, 1002.0,
204 20.0, 200.0, 2000.0, 21.0, 201.0, 2001.0, 22.0, 202.0, 2002.0,
205 30.0, 300.0, 3000.0, 31.0, 301.0, 3001.0, 32.0, 302.0, 3002.0,
206 40.0, 400.0, 4000.0, 41.0, 401.0, 4001.0, 42.0, 402.0, 4002.0;
209 dummyMesh->setVertexOffsets(vertexOffsets);
210 dummyMesh->createVertex(Eigen::Vector3d{0, 0, 0});
211 dummyMesh->createVertex(Eigen::Vector3d{1, 0, 0});
212 dummyMesh->createVertex(Eigen::Vector3d{2, 0, 0});
213 dummyMesh->createVertex(Eigen::Vector3d{3, 0, 0});
216 toData->requireDataGradient();
220 Eigen::VectorXd initValues(nValues);
221 initValues.setZero();
223 Eigen::MatrixXd initGradients(meshDimensions, nValues * dataDimensions);
224 initGradients.setZero();
226 toDataPtr->setSampleAtTime(0,
time::Sample(toDataPtr->getDimensions(), initValues, initGradients));
228 Eigen::VectorXd timeStamps(nTimeSteps);
229 timeStamps << 0, 0.5, 1;
233 serialized.values() = serializedValues;
234 serialized.gradients() = serializedGradients;
236 serialized.deserializeInto(timeStamps, *toDataPtr);
240 Eigen::VectorXd insert0(nValues);
241 insert0 << 1.0, 2.0, 3.0, 4.0;
242 Eigen::VectorXd insert05(nValues);
243 insert05 << 10.0, 20.0, 30.0, 40.0;
244 Eigen::VectorXd insert1(nValues);
245 insert1 << 100.0, 200.0, 300.0, 400.0;
253 Eigen::MatrixXd insertGradients0(meshDimensions, dataDimensions * nValues);
254 insertGradients0 << 10.0, 20.0, 30.0, 40.0,
255 11.0, 21.0, 31.0, 41.0,
256 12.0, 22.0, 32.0, 42.0;
257 Eigen::MatrixXd insertGradients05(meshDimensions, nValues * dataDimensions);
258 insertGradients05 << 100.0, 200.0, 300.0, 400.0,
259 101.0, 201.0, 301.0, 401.0,
260 102.0, 202.0, 302.0, 402.0;
261 Eigen::MatrixXd insertGradients1(meshDimensions, nValues * dataDimensions);
262 insertGradients1 << 1000.0, 2000.0, 3000.0, 4000.0,
263 1001.0, 2001.0, 3001.0, 4001.0,
264 1002.0, 2002.0, 3002.0, 4002.0;
266 expectedGradients.
push_back(insertGradients0);
267 expectedGradients.
push_back(insertGradients05);
268 expectedGradients.
push_back(insertGradients1);
270 BOOST_TEST(toDataPtr->timeStepsStorage().stamples().size() == nTimeSteps);
271 for (
int t = 0; t < nTimeSteps; t++) {
272 BOOST_TEST(
testing::equals(toDataPtr->timeStepsStorage().stamples()[t].timestamp, timeStamps[t]));
273 for (
int i = 0; i < nValues; i++) {
274 BOOST_TEST(
testing::equals(toDataPtr->timeStepsStorage().stamples()[t].sample.values(i), expectedValues[t](i)));
276 for (
int i = 0; i < meshDimensions * nValues; i++) {
277 BOOST_TEST(
testing::equals(toDataPtr->timeStepsStorage().stamples()[t].sample.gradients(i), expectedGradients[t](i)));