GCC Code Coverage Report


Directory: ./
File: unittest/factory/state.cpp
Date: 2025-03-26 19:23:43
Exec Total Coverage
Lines: 59 66 89.4%
Branches: 33 63 52.4%

Line Branch Exec Source
1 ///////////////////////////////////////////////////////////////////////////////
2 // BSD 3-Clause License
3 //
4 // Copyright (C) 2019-2025, LAAS-CNRS, University of Edinburgh,
5 // Heriot-Watt University
6 // Copyright note valid unless otherwise stated in individual files.
7 // All rights reserved.
8 ///////////////////////////////////////////////////////////////////////////////
9
10 #include "state.hpp"
11
12 #include <pinocchio/fwd.hpp>
13 #include <pinocchio/parsers/sample-models.hpp>
14 #include <pinocchio/parsers/urdf.hpp>
15
16 #include "crocoddyl/core/states/euclidean.hpp"
17 #include "crocoddyl/multibody/states/multibody.hpp"
18
19 namespace crocoddyl {
20 namespace unittest {
21
22 const std::vector<StateModelTypes::Type> StateModelTypes::all(
23 StateModelTypes::init_all());
24
25 578 std::ostream& operator<<(std::ostream& os, StateModelTypes::Type type) {
26
7/9
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 3 times.
✓ Branch 2 taken 110 times.
✓ Branch 3 taken 108 times.
✓ Branch 4 taken 119 times.
✓ Branch 5 taken 119 times.
✓ Branch 6 taken 117 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
578 switch (type) {
27 2 case StateModelTypes::StateVector:
28 2 os << "StateVector";
29 2 break;
30 3 case StateModelTypes::StateMultibody_Hector:
31 3 os << "StateMultibody_Hector";
32 3 break;
33 110 case StateModelTypes::StateMultibody_TalosArm:
34 110 os << "StateMultibody_TalosArm";
35 110 break;
36 108 case StateModelTypes::StateMultibodyContact2D_TalosArm:
37 108 os << "StateMultibodyContact2D_TalosArm";
38 108 break;
39 119 case StateModelTypes::StateMultibody_HyQ:
40 119 os << "StateMultibody_HyQ";
41 119 break;
42 119 case StateModelTypes::StateMultibody_Talos:
43 119 os << "StateMultibody_Talos";
44 119 break;
45 117 case StateModelTypes::StateMultibody_RandomHumanoid:
46 117 os << "StateMultibody_RandomHumanoid";
47 117 break;
48 case StateModelTypes::NbStateModelTypes:
49 os << "NbStateModelTypes";
50 break;
51 default:
52 break;
53 }
54 578 return os;
55 }
56
57 8543 StateModelFactory::StateModelFactory() {}
58 8543 StateModelFactory::~StateModelFactory() {}
59
60 8543 std::shared_ptr<crocoddyl::StateAbstract> StateModelFactory::create(
61 StateModelTypes::Type state_type) const {
62 8543 std::shared_ptr<pinocchio::Model> model;
63 8543 std::shared_ptr<crocoddyl::StateAbstract> state;
64
7/8
✓ Branch 0 taken 18 times.
✓ Branch 1 taken 624 times.
✓ Branch 2 taken 2877 times.
✓ Branch 3 taken 977 times.
✓ Branch 4 taken 1631 times.
✓ Branch 5 taken 1731 times.
✓ Branch 6 taken 685 times.
✗ Branch 7 not taken.
8543 switch (state_type) {
65 18 case StateModelTypes::StateVector:
66
1/2
✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
18 state = std::make_shared<crocoddyl::StateVector>(80);
67 18 break;
68 624 case StateModelTypes::StateMultibody_Hector:
69
2/4
✓ Branch 1 taken 624 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 624 times.
✗ Branch 5 not taken.
624 model = PinocchioModelFactory(PinocchioModelTypes::Hector).create();
70
1/2
✓ Branch 1 taken 624 times.
✗ Branch 2 not taken.
624 state = std::make_shared<crocoddyl::StateMultibody>(model);
71 624 break;
72 2877 case StateModelTypes::StateMultibody_TalosArm:
73
2/4
✓ Branch 1 taken 2877 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2877 times.
✗ Branch 5 not taken.
2877 model = PinocchioModelFactory(PinocchioModelTypes::TalosArm).create();
74
1/2
✓ Branch 1 taken 2877 times.
✗ Branch 2 not taken.
2877 state = std::make_shared<crocoddyl::StateMultibody>(model);
75 2877 break;
76 977 case StateModelTypes::StateMultibodyContact2D_TalosArm:
77
2/4
✓ Branch 1 taken 977 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 977 times.
✗ Branch 5 not taken.
977 model = PinocchioModelFactory(PinocchioModelTypes::TalosArm).create();
78
1/2
✓ Branch 1 taken 977 times.
✗ Branch 2 not taken.
977 state = std::make_shared<crocoddyl::StateMultibody>(model);
79 977 break;
80 1631 case StateModelTypes::StateMultibody_HyQ:
81
2/4
✓ Branch 1 taken 1631 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1631 times.
✗ Branch 5 not taken.
1631 model = PinocchioModelFactory(PinocchioModelTypes::HyQ).create();
82
1/2
✓ Branch 1 taken 1631 times.
✗ Branch 2 not taken.
1631 state = std::make_shared<crocoddyl::StateMultibody>(model);
83 1631 break;
84 1731 case StateModelTypes::StateMultibody_Talos:
85
2/4
✓ Branch 1 taken 1731 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1731 times.
✗ Branch 5 not taken.
1731 model = PinocchioModelFactory(PinocchioModelTypes::Talos).create();
86
1/2
✓ Branch 1 taken 1731 times.
✗ Branch 2 not taken.
1731 state = std::make_shared<crocoddyl::StateMultibody>(model);
87 1731 break;
88 685 case StateModelTypes::StateMultibody_RandomHumanoid:
89 model =
90
2/4
✓ Branch 1 taken 685 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 685 times.
✗ Branch 5 not taken.
685 PinocchioModelFactory(PinocchioModelTypes::RandomHumanoid).create();
91
1/2
✓ Branch 1 taken 685 times.
✗ Branch 2 not taken.
685 state = std::make_shared<crocoddyl::StateMultibody>(model);
92 685 break;
93 default:
94 throw_pretty(__FILE__ ": Wrong StateModelTypes::Type given");
95 break;
96 }
97 17086 return state;
98 8543 }
99
100 } // namespace unittest
101 } // namespace crocoddyl
102