GCC Code Coverage Report


Directory: ./
File: unittest/factory/state.cpp
Date: 2025-06-03 08:14:12
Exec Total Coverage
Lines: 0 66 0.0%
Functions: 0 4 0.0%
Branches: 0 63 0.0%

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 std::ostream& operator<<(std::ostream& os, StateModelTypes::Type type) {
26 switch (type) {
27 case StateModelTypes::StateVector:
28 os << "StateVector";
29 break;
30 case StateModelTypes::StateMultibody_Hector:
31 os << "StateMultibody_Hector";
32 break;
33 case StateModelTypes::StateMultibody_TalosArm:
34 os << "StateMultibody_TalosArm";
35 break;
36 case StateModelTypes::StateMultibodyContact2D_TalosArm:
37 os << "StateMultibodyContact2D_TalosArm";
38 break;
39 case StateModelTypes::StateMultibody_HyQ:
40 os << "StateMultibody_HyQ";
41 break;
42 case StateModelTypes::StateMultibody_Talos:
43 os << "StateMultibody_Talos";
44 break;
45 case StateModelTypes::StateMultibody_RandomHumanoid:
46 os << "StateMultibody_RandomHumanoid";
47 break;
48 case StateModelTypes::NbStateModelTypes:
49 os << "NbStateModelTypes";
50 break;
51 default:
52 break;
53 }
54 return os;
55 }
56
57 StateModelFactory::StateModelFactory() {}
58 StateModelFactory::~StateModelFactory() {}
59
60 std::shared_ptr<crocoddyl::StateAbstract> StateModelFactory::create(
61 StateModelTypes::Type state_type) const {
62 std::shared_ptr<pinocchio::Model> model;
63 std::shared_ptr<crocoddyl::StateAbstract> state;
64 switch (state_type) {
65 case StateModelTypes::StateVector:
66 state = std::make_shared<crocoddyl::StateVector>(80);
67 break;
68 case StateModelTypes::StateMultibody_Hector:
69 model = PinocchioModelFactory(PinocchioModelTypes::Hector).create();
70 state = std::make_shared<crocoddyl::StateMultibody>(model);
71 break;
72 case StateModelTypes::StateMultibody_TalosArm:
73 model = PinocchioModelFactory(PinocchioModelTypes::TalosArm).create();
74 state = std::make_shared<crocoddyl::StateMultibody>(model);
75 break;
76 case StateModelTypes::StateMultibodyContact2D_TalosArm:
77 model = PinocchioModelFactory(PinocchioModelTypes::TalosArm).create();
78 state = std::make_shared<crocoddyl::StateMultibody>(model);
79 break;
80 case StateModelTypes::StateMultibody_HyQ:
81 model = PinocchioModelFactory(PinocchioModelTypes::HyQ).create();
82 state = std::make_shared<crocoddyl::StateMultibody>(model);
83 break;
84 case StateModelTypes::StateMultibody_Talos:
85 model = PinocchioModelFactory(PinocchioModelTypes::Talos).create();
86 state = std::make_shared<crocoddyl::StateMultibody>(model);
87 break;
88 case StateModelTypes::StateMultibody_RandomHumanoid:
89 model =
90 PinocchioModelFactory(PinocchioModelTypes::RandomHumanoid).create();
91 state = std::make_shared<crocoddyl::StateMultibody>(model);
92 break;
93 default:
94 throw_pretty(__FILE__ ": Wrong StateModelTypes::Type given");
95 break;
96 }
97 return state;
98 }
99
100 } // namespace unittest
101 } // namespace crocoddyl
102