4 #include <boost/test/unit_test.hpp> 11 operator<<(std::ostream& os, std::pair<std::ptrdiff_t, float>
const& x) {
12 return os <<
"{" << x.first <<
"," << x.second <<
"}";
26 std::vector<float> ts;
29 ts, std::chrono::microseconds(delay), std::chrono::microseconds(1));
31 for (std::size_t i = 0; i != std::size_t(delay); ++i) {
32 float expected = ts.at(ts.size() + i - delay);
33 BOOST_CHECK_CLOSE(expected, delayed.at(i), 1.0 / 1024);
35 for (std::size_t i = delay; i != delayed.size(); ++i) {
36 float expected = ts.at(i - delay);
37 BOOST_CHECK_CLOSE(expected, delayed.at(i), 1.0 / 1024);
46 BOOST_CHECK_EQUAL(tested(0, 0), std::make_pair(std::ptrdiff_t(0),
float(0)));
48 tested(1, 100), std::make_pair(std::ptrdiff_t(1),
float(0)));
50 tested(120, 100), std::make_pair(std::ptrdiff_t(20),
float(0)));
52 tested(-20, 100), std::make_pair(std::ptrdiff_t(80),
float(0)));
64 std::vector<float> ts;
67 ts, std::chrono::microseconds(delay), std::chrono::microseconds(1));
69 for (std::size_t i = 0; i != std::size_t(delay); ++i) {
70 BOOST_CHECK_SMALL(delayed.at(i), 1.0f / 1024);
72 for (std::size_t i = delay; i != delayed.size() - delay; ++i) {
73 float expected = ts.at(i - delay);
74 BOOST_CHECK_CLOSE(expected, delayed.at(i), 1.0 / 1024);
timeseries_t delay_timeseries_periodic(timeseries_t const &ts, duration_t delay, duration_t sampling_period)
Delay a timeseries using a periodic extension for early values.
void create_triangle_timeseries(int nsamples, timeseries &ts)
Create a simple timeseries where the values look like a triangle.
BOOST_AUTO_TEST_CASE(delay_timeseries_periodic_default)
timeseries_t delay_timeseries_zeroes(timeseries_t const &ts, duration_t delay, duration_t sampling_period)
Delay a timeseries using zeroes for early values.