GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: unittest/factory/state.cpp Lines: 58 65 89.2 %
Date: 2024-02-13 11:12:33 Branches: 33 63 52.4 %

Line Branch Exec Source
1
///////////////////////////////////////////////////////////////////////////////
2
// BSD 3-Clause License
3
//
4
// Copyright (C) 2019-2020, LAAS-CNRS, University of Edinburgh
5
// Copyright note valid unless otherwise stated in individual files.
6
// All rights reserved.
7
///////////////////////////////////////////////////////////////////////////////
8
9
#include "state.hpp"
10
11
#include <pinocchio/fwd.hpp>
12
#include <pinocchio/parsers/sample-models.hpp>
13
#include <pinocchio/parsers/urdf.hpp>
14
15
#include "crocoddyl/core/states/euclidean.hpp"
16
#include "crocoddyl/core/utils/exception.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
598
std::ostream& operator<<(std::ostream& os, StateModelTypes::Type type) {
26


598
  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
113
    case StateModelTypes::StateMultibody_TalosArm:
34
113
      os << "StateMultibody_TalosArm";
35
113
      break;
36
111
    case StateModelTypes::StateMultibodyContact2D_TalosArm:
37
111
      os << "StateMultibodyContact2D_TalosArm";
38
111
      break;
39
124
    case StateModelTypes::StateMultibody_HyQ:
40
124
      os << "StateMultibody_HyQ";
41
124
      break;
42
123
    case StateModelTypes::StateMultibody_Talos:
43
123
      os << "StateMultibody_Talos";
44
123
      break;
45
122
    case StateModelTypes::StateMultibody_RandomHumanoid:
46
122
      os << "StateMultibody_RandomHumanoid";
47
122
      break;
48
    case StateModelTypes::NbStateModelTypes:
49
      os << "NbStateModelTypes";
50
      break;
51
    default:
52
      break;
53
  }
54
598
  return os;
55
}
56
57
8653
StateModelFactory::StateModelFactory() {}
58
8653
StateModelFactory::~StateModelFactory() {}
59
60
8653
boost::shared_ptr<crocoddyl::StateAbstract> StateModelFactory::create(
61
    StateModelTypes::Type state_type) const {
62
8653
  boost::shared_ptr<pinocchio::Model> model;
63
8653
  boost::shared_ptr<crocoddyl::StateAbstract> state;
64


8653
  switch (state_type) {
65
18
    case StateModelTypes::StateVector:
66
18
      state = boost::make_shared<crocoddyl::StateVector>(80);
67
18
      break;
68
624
    case StateModelTypes::StateMultibody_Hector:
69

624
      model = PinocchioModelFactory(PinocchioModelTypes::Hector).create();
70
624
      state = boost::make_shared<crocoddyl::StateMultibody>(model);
71
624
      break;
72
2895
    case StateModelTypes::StateMultibody_TalosArm:
73

2895
      model = PinocchioModelFactory(PinocchioModelTypes::TalosArm).create();
74
2895
      state = boost::make_shared<crocoddyl::StateMultibody>(model);
75
2895
      break;
76
995
    case StateModelTypes::StateMultibodyContact2D_TalosArm:
77

995
      model = PinocchioModelFactory(PinocchioModelTypes::TalosArm).create();
78
995
      state = boost::make_shared<crocoddyl::StateMultibody>(model);
79
995
      break;
80
1656
    case StateModelTypes::StateMultibody_HyQ:
81

1656
      model = PinocchioModelFactory(PinocchioModelTypes::HyQ).create();
82
1656
      state = boost::make_shared<crocoddyl::StateMultibody>(model);
83
1656
      break;
84
1751
    case StateModelTypes::StateMultibody_Talos:
85

1751
      model = PinocchioModelFactory(PinocchioModelTypes::Talos).create();
86
1751
      state = boost::make_shared<crocoddyl::StateMultibody>(model);
87
1751
      break;
88
714
    case StateModelTypes::StateMultibody_RandomHumanoid:
89
      model =
90

714
          PinocchioModelFactory(PinocchioModelTypes::RandomHumanoid).create();
91
714
      state = boost::make_shared<crocoddyl::StateMultibody>(model);
92
714
      break;
93
    default:
94
      throw_pretty(__FILE__ ": Wrong StateModelTypes::Type given");
95
      break;
96
  }
97
17306
  return state;
98
}
99
100
}  // namespace unittest
101
}  // namespace crocoddyl