19 BOOST_TEST(waveform.nTimes() == 0);
20 waveform.setSampleAtTime(0,
time::Sample{1, Eigen::VectorXd::Ones(nValues)});
21 BOOST_TEST(waveform.nDofs() == nValues);
22 BOOST_TEST(waveform.nTimes() == 1);
23 for (
int i = 0; i < nValues; i++) {
24 BOOST_TEST(waveform.getSampleAtOrAfter(0).values(i) == 1);
25 BOOST_TEST(waveform.getSampleAtOrAfter(0.5).values(i) == 1);
26 BOOST_TEST(waveform.getSampleAtOrAfter(1).values(i) == 1);
75 BOOST_TEST(waveform.nTimes() == 0);
76 waveform.setSampleAtTime(0,
time::Sample{1, Eigen::VectorXd::Ones(nValues)});
77 BOOST_TEST(waveform.nDofs() == nValues);
78 BOOST_TEST(waveform.nTimes() == 1);
79 BOOST_TEST(waveform.maxStoredTime() == 0.0);
80 waveform.setSampleAtTime(1,
time::Sample{1, Eigen::VectorXd::Ones(nValues)});
81 BOOST_TEST(waveform.nDofs() == nValues);
82 BOOST_TEST(waveform.nTimes() == 2);
83 BOOST_TEST(waveform.maxStoredTime() == 1.0);
85 BOOST_TEST(waveform.nDofs() == nValues);
86 BOOST_TEST(waveform.nTimes() == 1);
87 BOOST_TEST(waveform.maxStoredTime() == 0.0);
97 BOOST_TEST(waveform.nTimes() == 0);
98 waveform.setSampleAtTime(0,
time::Sample{1, Eigen::VectorXd::Ones(nValues)});
99 BOOST_TEST(waveform.nDofs() == nValues);
100 BOOST_TEST(waveform.nTimes() == 1);
101 BOOST_TEST(waveform.maxStoredTime() == 0.0);
102 waveform.setSampleAtTime(0.5,
time::Sample{1, Eigen::VectorXd::Ones(nValues)});
103 BOOST_TEST(waveform.nTimes() == 2);
104 BOOST_TEST(waveform.maxStoredTime() == 0.5);
105 waveform.setSampleAtTime(1.0,
time::Sample{1, Eigen::VectorXd::Zero(nValues)});
106 BOOST_TEST(waveform.nTimes() == 3);
107 BOOST_TEST(waveform.maxStoredTime() == 1.0);
108 for (
int i = 0; i < nValues; i++) {
109 BOOST_TEST(waveform.getSampleAtOrAfter(0).values(i) == 1);
110 BOOST_TEST(waveform.getSampleAtOrAfter(0.5).values(i) == 1);
111 BOOST_TEST(waveform.getSampleAtOrAfter(1).values(i) == 0);
114 BOOST_TEST(waveform.nDofs() == nValues);
115 BOOST_TEST(waveform.nTimes() == 1);
116 BOOST_TEST(waveform.maxStoredTime() == 1.0);
117 for (
int i = 0; i < nValues; i++) {
118 BOOST_TEST(waveform.getSampleAtOrAfter(0).values(i) == 0);
119 BOOST_TEST(waveform.getSampleAtOrAfter(1).values(i) == 0);
130 waveform.setSampleAtTime(0,
time::Sample{1, Eigen::VectorXd::Ones(nValues)});
131 waveform.setSampleAtTime(0.5,
time::Sample{1, Eigen::VectorXd::Ones(nValues)});
132 waveform.setSampleAtTime(1.0,
time::Sample{1, Eigen::VectorXd::Zero(nValues)});
133 auto times = waveform.getTimes();
134 BOOST_TEST(times[0] == 0.0);
135 BOOST_TEST(times[1] == 0.5);
136 BOOST_TEST(times[2] == 1.00);
137 auto timesAndValues = waveform.getTimesAndValues();
138 BOOST_TEST(timesAndValues.first[0] == 0.0);
139 BOOST_TEST(timesAndValues.first[1] == 0.5);
140 BOOST_TEST(timesAndValues.first[2] == 1.00);
141 for (
int i = 0; i < nValues; i++) {
142 BOOST_TEST(timesAndValues.second.col(0)(i) == 1);
143 BOOST_TEST(timesAndValues.second.col(1)(i) == 1);
144 BOOST_TEST(timesAndValues.second.col(2)(i) == 0);
156 const int nValues = 1;
158 waveform.setSampleAtTime(0.0,
time::Sample{1, Eigen::VectorXd::Zero(nValues)});
159 auto times = waveform.getTimes();
160 BOOST_TEST(times[0] == 0.0);
161 auto timesAndValues = waveform.getTimesAndValues();
162 BOOST_TEST(timesAndValues.second.col(0)(0) == 0.0);
164 waveform.setSampleAtTime(1.0,
time::Sample{1, Eigen::VectorXd::Ones(nValues)});
165 times = waveform.getTimes();
166 BOOST_TEST(times[0] == 0.0);
167 BOOST_TEST(times[1] == 1.0);
168 timesAndValues = waveform.getTimesAndValues();
169 BOOST_TEST(timesAndValues.second.col(0)(0) == 0.0);
170 BOOST_TEST(timesAndValues.second.col(1)(0) == 1.0);
174 times = waveform.getTimes();
175 BOOST_TEST(times[0] == 1.0);
176 timesAndValues = waveform.getTimesAndValues();
177 BOOST_TEST(timesAndValues.second.col(0)(0) == 1.0);
181 waveform.setSampleAtTime(1.5,
time::Sample{1, 2 * Eigen::VectorXd::Ones(nValues)});
182 waveform.setSampleAtTime(2.0,
time::Sample{1, 3 * Eigen::VectorXd::Ones(nValues)});
184 times = waveform.getTimes();
185 BOOST_TEST(times[0] == 1.0);
186 BOOST_TEST(times[1] == 1.5);
187 BOOST_TEST(times[2] == 2.0);
191 times = waveform.getTimes();
192 BOOST_TEST(times[0] == 2.0);
193 timesAndValues = waveform.getTimesAndValues();
194 BOOST_TEST(timesAndValues.second.col(0)(0) == 3.0);
365 const int interpolationDegree = 1;
366 const int valuesSize = 3;
367 Eigen::VectorXd value(valuesSize);
368 Waveform waveform(interpolationDegree);
374 BOOST_TEST(waveform.
nDofs() == valuesSize);
375 BOOST_TEST(waveform.
nTimes() == 2);
377 for (
int i = 0; i < valuesSize; i++) {
388 for (
int i = 0; i < valuesSize; i++) {
395 BOOST_TEST(waveform.
nTimes() == 1);
397 for (
int i = 0; i < valuesSize; i++) {
403 Eigen::VectorXd value0 = value;
407 for (
int i = 0; i < valuesSize; i++) {
581 const int interpolationDegree = 3;
582 const int valuesSize = 1;
583 Waveform waveform(interpolationDegree);
586 Eigen::VectorXd value(valuesSize);
587 for (
double t : std::vector<double>{0, 0.25, 0.5, 0.75, 1}) {
592 BOOST_TEST(waveform.
nDofs() == valuesSize);
593 BOOST_TEST(waveform.
nTimes() == 5);
595 for (
double t : std::vector<double>{0.1, 0.2, 0.3, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}) {
602 for (
double t : std::vector<double>{0, 0.25, 0.5, 0.75, 1}) {
608 for (
double t : std::vector<double>{0, 0.25, 0.5, 0.75, 1}) {
613 for (
double t : std::vector<double>{0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}) {
620 for (
double t : std::vector<double>{0, 0.25, 0.5, 0.75, 1}) {
621 value(0) = t * t * t;
626 for (
double t : std::vector<double>{0, 0.25, 0.5, 0.75, 1}) {
631 for (
double t : std::vector<double>{0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}) {
638 for (
double t : std::vector<double>{0, 0.01, 0.1, 0.2, 1}) {
639 value(0) = t * t * t;
644 for (
double t : std::vector<double>{0, 0.01, 0.1, 0.2, 1}) {
649 for (
double t : std::vector<double>{0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}) {
656 for (
double t : std::vector<double>{0, 0.25, 0.5, 0.75, 1}) {
657 value(0) = t * t * t * t;
662 for (
double t : std::vector<double>{0, 0.25, 0.5, 0.75, 1}) {
667 for (
double t : std::vector<double>{0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}) {
668 double tol = 0.015625;