GCC Code Coverage Report | |||||||||||||||||||||
|
|||||||||||||||||||||
Line | Branch | Exec | Source |
1 |
// |
||
2 |
// Copyright (c) 2019 INRIA |
||
3 |
// |
||
4 |
|||
5 |
#include "pinocchio/math/tensor.hpp" |
||
6 |
#include "pinocchio/multibody/model.hpp" |
||
7 |
|||
8 |
#include <boost/test/unit_test.hpp> |
||
9 |
#include <boost/utility/binary.hpp> |
||
10 |
|||
11 |
#include <iostream> |
||
12 |
|||
13 |
BOOST_AUTO_TEST_SUITE(BOOST_TEST_MODULE) |
||
14 |
|||
15 |
✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗ |
4 |
BOOST_AUTO_TEST_CASE(test_emulate_tensors) |
16 |
{ |
||
17 |
typedef double Scalar; |
||
18 |
2 |
const int rank = 3; |
|
19 |
typedef pinocchio::Tensor<Scalar,rank> Tensor; |
||
20 |
|||
21 |
2 |
const Eigen::DenseIndex x_dim = 6, y_dim = 20, z_dim = 20; |
|
22 |
✓✗✓✗ |
4 |
Tensor tensor1(x_dim,y_dim,z_dim), tensor1_bis(x_dim,y_dim,z_dim); |
23 |
|||
24 |
✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✗✓ |
2 |
BOOST_CHECK(tensor1.size() == x_dim * y_dim * z_dim); |
25 |
✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✗✓ |
2 |
BOOST_CHECK(tensor1.dimension(0) == x_dim); |
26 |
✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✗✓ |
2 |
BOOST_CHECK(tensor1.dimension(1) == y_dim); |
27 |
✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✗✓ |
2 |
BOOST_CHECK(tensor1.dimension(2) == z_dim); |
28 |
|||
29 |
✓✗ | 2 |
Scalar * data = tensor1.data(); |
30 |
✓✗✓✓ |
4802 |
for(Eigen::DenseIndex k = 0; k < tensor1.size(); ++k) |
31 |
4800 |
data[k] = (Scalar)k; |
|
32 |
|||
33 |
✓✓ | 42 |
for(Eigen::DenseIndex k = 0; k < z_dim; ++k) |
34 |
{ |
||
35 |
✓✓ | 840 |
for(Eigen::DenseIndex j = 0; j < y_dim; ++j) |
36 |
{ |
||
37 |
✓✓ | 5600 |
for(Eigen::DenseIndex i = 0; i < x_dim; ++i) |
38 |
{ |
||
39 |
✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✗✓ |
4800 |
BOOST_CHECK(tensor1(i,j,k) == (Scalar)(i + j*x_dim + k*(x_dim*y_dim))); |
40 |
} |
||
41 |
} |
||
42 |
} |
||
43 |
|||
44 |
2 |
const Eigen::DenseIndex new_x_dim = 2*x_dim, new_y_dim = 2*y_dim, new_z_dim = 2*z_dim; |
|
45 |
2 |
const Eigen::array<Tensor::Index,rank> dims = { x_dim,y_dim,z_dim }; |
|
46 |
✓✗ | 2 |
tensor1.resize(dims); |
47 |
|||
48 |
✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(tensor1.size() == tensor1_bis.size()); |
49 |
✓✓ | 8 |
for(std::size_t i = 0; i < rank; ++i) |
50 |
✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✗✓ |
6 |
BOOST_CHECK(tensor1.dimension(i) == dims[i]); |
51 |
|||
52 |
2 |
const Eigen::array<Tensor::Index,rank> new_dims = { new_x_dim,new_y_dim,new_z_dim }; |
|
53 |
✓✗ | 2 |
tensor1.resize(new_dims); |
54 |
|||
55 |
✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(tensor1.size() == 8*tensor1_bis.size()); |
56 |
✓✓ | 8 |
for(std::size_t i = 0; i < rank; ++i) |
57 |
✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✗✓ |
6 |
BOOST_CHECK(tensor1.dimension(i) == new_dims[i]); |
58 |
2 |
} |
|
59 |
|||
60 |
BOOST_AUTO_TEST_SUITE_END() |
Generated by: GCOVR (Version 4.2) |