GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: tests/filters/test_filter_differentiator.cpp Lines: 31 31 100.0 %
Date: 2023-03-13 12:09:37 Branches: 71 140 50.7 %

Line Branch Exec Source
1
/*
2
 * Copyright 2019,
3
 * Olivier Stasse,
4
 *
5
 * CNRS/AIST
6
 *
7
 */
8
9
#include <iostream>
10
#include <sot/core/debug.hh>
11
12
#ifndef WIN32
13
#include <unistd.h>
14
#endif
15
16
using namespace std;
17
18
#include <dynamic-graph/entity.h>
19
#include <dynamic-graph/factory.h>
20
21
#include <sot/core/filter-differentiator.hh>
22
#include <sstream>
23
24
using namespace dynamicgraph;
25
using namespace dynamicgraph::sot;
26
27
#define BOOST_TEST_MODULE test - filter - differentiator
28
29
#include <boost/test/output_test_stream.hpp>
30
#include <boost/test/unit_test.hpp>
31
32
using boost::test_tools::output_test_stream;
33
34
















4
BOOST_AUTO_TEST_CASE(test_filter_differentiator) {
35
  sot::FilterDifferentiator *aFilterDiff =
36

2
      new FilterDifferentiator("filter_differentiator");
37
38

4
  Eigen::VectorXd filter_num(7), filter_den(7);
39
40
2
  filter_num(0) = 2.16439898e-05;
41
2
  filter_num(1) = 4.43473520e-05;
42
2
  filter_num(2) = -1.74065002e-05;
43
2
  filter_num(3) = -8.02197247e-05;
44
2
  filter_num(4) = -1.74065002e-05;
45
2
  filter_num(5) = 4.43473520e-05;
46
2
  filter_num(6) = 2.16439898e-05;
47
48
2
  filter_den(0) = 1.;
49
2
  filter_den(1) = -5.32595322;
50
2
  filter_den(2) = 11.89749109;
51
2
  filter_den(3) = -14.26803139;
52
2
  filter_den(4) = 9.68705647;
53
2
  filter_den(5) = -3.52968633;
54
2
  filter_den(6) = 0.53914042;
55
56
2
  double timestep = 0.001;
57
2
  int xSize = 16;
58
2
  aFilterDiff->init(timestep, xSize, filter_num, filter_den);
59
60
2
  srand(0);
61
4
  dynamicgraph::Vector aVec(16);
62

34
  for (unsigned int i = 0; i < 16; i++) aVec(i) = (double)(i + rand() % 100);
63
2
  aFilterDiff->m_xSIN = aVec;
64
2
  aFilterDiff->m_x_filteredSOUT.recompute(0);
65

4
  output_test_stream output;
66
4
  ostringstream anoss;
67
4
  dynamicgraph::Vector outVec;
68
2
  aFilterDiff->m_x_filteredSOUT.get(output);
69
70



2
  BOOST_CHECK(
71
      output.is_equal("82.5614 "
72
                      "86.5403 "
73
                      "78.5826 "
74
                      "17.9049 "
75
                      "96.4874 "
76
                      "39.7886 "
77
                      "91.5139 "
78
                      "98.4769 "
79
                      "56.6988 "
80
                      "29.8415 "
81
                      "71.6195 "
82
                      "37.7992 "
83
                      "101.461 "
84
                      "71.6195 "
85
                      "76.5931 "
86
                      "40.7834"));
87
2
}