GCC Code Coverage Report


Directory: ./
File: unittest/constraint-variants.cpp
Date: 2025-02-12 21:03:38
Exec Total Coverage
Lines: 33 33 100.0%
Branches: 127 254 50.0%

Line Branch Exec Source
1 //
2 // Copyright (c) 2023 INRIA
3 //
4
5 #include "pinocchio/multibody/data.hpp"
6 #include "pinocchio/algorithm/constraints/constraints.hpp"
7 #include "pinocchio/algorithm/constraints/constraint-model-generic.hpp"
8 #include "pinocchio/algorithm/constraints/constraint-data-generic.hpp"
9 #include "pinocchio/algorithm/contact-info.hpp"
10 #include "pinocchio/multibody/sample-models.hpp"
11
12 #include <iostream>
13
14 #include <boost/test/unit_test.hpp>
15 #include <boost/utility/binary.hpp>
16
17 using namespace pinocchio;
18 using namespace Eigen;
19
20 BOOST_AUTO_TEST_SUITE(BOOST_TEST_MODULE)
21
22
33/66
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
4 BOOST_AUTO_TEST_CASE(contact_variants)
23 {
24
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Model model;
25
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 buildModels::humanoidRandom(model, true);
26
27
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Data data(model);
28
29
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 const SE3 M(SE3::Random());
30
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 RigidConstraintModel rcm(CONTACT_3D, model, 0, M);
31
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 RigidConstraintData rcd(rcm);
32
33
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 ConstraintModel::ConstraintModelVariant constraint_model_variant = rcm;
34
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 ConstraintModel constraint_model(rcm);
35
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 ConstraintModel constraint_model_equal = rcm;
36
37
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 ConstraintData constraint_data = rcm.createData();
38 2 }
39
40
33/66
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
4 BOOST_AUTO_TEST_CASE(contact_visitors)
41 {
42
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Model model;
43
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 buildModels::humanoidRandom(model, true);
44
45
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Data data(model);
46
47
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 const SE3 M(SE3::Random());
48
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 RigidConstraintModel rcm(CONTACT_3D, model, 0, M);
49
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 RigidConstraintData rcd(rcm);
50
9/18
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
2 BOOST_CHECK(ConstraintData(rcd) == ConstraintData(rcd));
51
9/18
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
2 BOOST_CHECK(ConstraintData(rcd) == rcd);
52
53
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 ConstraintModel constraint_model(rcm);
54
55 // Test create data visitor
56
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 ConstraintData constraint_data = createData(constraint_model);
57
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 constraint_data = rcd;
58
59 // Test calc visitor
60
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 calc(constraint_model, constraint_data, model, data);
61
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 rcm.calc(model, data, rcd);
62
7/14
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
2 BOOST_CHECK(rcd == constraint_data);
63
64 // Test jacobian visitor
65
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 Data::MatrixXs jacobian_matrix = Data::Matrix6x::Zero(6, model.nv),
66
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 jacobian_matrix_ref = Data::Matrix6x::Zero(6, model.nv);
67
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 jacobian(constraint_model, constraint_data, model, data, jacobian_matrix);
68
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 rcm.jacobian(model, data, rcd, jacobian_matrix_ref);
69
7/14
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
2 BOOST_CHECK(jacobian_matrix == jacobian_matrix_ref);
70 2 }
71
72 BOOST_AUTO_TEST_SUITE_END()
73