scenario_simulator_v2 C++ API
common_test_fixtures.hpp
Go to the documentation of this file.
1 // Copyright 2015 TIER IV, Inc. All rights reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef TRAFFIC_SIMULATOR__TEST__TRAFFIC_LIGHTS__COMMON_TEST_FIXTURES_HPP_
16 #define TRAFFIC_SIMULATOR__TEST__TRAFFIC_LIGHTS__COMMON_TEST_FIXTURES_HPP_
17 
18 #include <gtest/gtest.h>
19 
20 #include <ament_index_cpp/get_package_share_directory.hpp>
23 
24 constexpr char architecture_old[] = "awf/universe/20230906";
25 constexpr char architecture_new[] = "awf/universe/20240605";
26 
27 template <typename TrafficLightsT, const char * Architecture>
29 {
30 public:
32  : lights([this] {
33  if constexpr (std::is_same_v<TrafficLightsT, traffic_simulator::ConventionalTrafficLights>) {
34  return std::make_unique<TrafficLightsT>(node_ptr, hdmap_utils_ptr);
35  } else if constexpr (std::is_same_v<TrafficLightsT, traffic_simulator::V2ITrafficLights>) {
36  return std::make_unique<TrafficLightsT>(node_ptr, hdmap_utils_ptr, Architecture);
37  }
38  }())
39  {
40  static_assert(
41  std::is_same_v<TrafficLightsT, traffic_simulator::ConventionalTrafficLights> or
42  std::is_same_v<TrafficLightsT, traffic_simulator::V2ITrafficLights>,
43  "Given TrafficLights type is not supported");
44 
45  const auto lanelet_path = ament_index_cpp::get_package_share_directory("traffic_simulator") +
46  "/map/standard_map/lanelet2_map.osm";
48  }
49 
50  const lanelet::Id id{34836};
51 
52  const lanelet::Id signal_id{34806};
53 
54  const rclcpp::Node::SharedPtr node_ptr = rclcpp::Node::make_shared("TrafficLightsInternalTest");
55 
56  const std::string path = ament_index_cpp::get_package_share_directory("traffic_simulator") +
57  "/map/standard_map/lanelet2_map.osm";
58 
59  const std::shared_ptr<hdmap_utils::HdMapUtils> hdmap_utils_ptr =
60  std::make_shared<hdmap_utils::HdMapUtils>(
61  path, geographic_msgs::build<geographic_msgs::msg::GeoPoint>()
62  .latitude(35.61836750154)
63  .longitude(139.78066608243)
64  .altitude(0.0));
65 
66  std::unique_ptr<TrafficLightsT> lights;
67 };
68 
69 template <typename TrafficLightsT>
71 : public TrafficLightsInternalTestArchitectureDependent<TrafficLightsT, architecture_old>
72 {
73 };
74 
75 template <typename TrafficLightsT>
77 : public TrafficLightsInternalTestArchitectureDependent<TrafficLightsT, architecture_new>
78 {
79 };
80 
82 {
83  template <typename TrafficLightsT>
84  static auto GetName(int) -> std::string
85  {
86  if constexpr (std::is_same_v<TrafficLightsT, traffic_simulator::ConventionalTrafficLights>) {
87  return "ConventionalTrafficLights";
88  } else if constexpr (std::is_same_v<TrafficLightsT, traffic_simulator::V2ITrafficLights>) {
89  return "V2ITrafficLights";
90  }
91  }
92 };
93 #endif // TRAFFIC_SIMULATOR__TEST__TRAFFIC_LIGHTS__COMMON_TEST_FIXTURES_HPP_
Definition: common_test_fixtures.hpp:29
const std::shared_ptr< hdmap_utils::HdMapUtils > hdmap_utils_ptr
Definition: common_test_fixtures.hpp:59
const std::string path
Definition: common_test_fixtures.hpp:56
const rclcpp::Node::SharedPtr node_ptr
Definition: common_test_fixtures.hpp:54
std::unique_ptr< TrafficLightsT > lights
Definition: common_test_fixtures.hpp:66
const lanelet::Id signal_id
Definition: common_test_fixtures.hpp:52
TrafficLightsInternalTestArchitectureDependent()
Definition: common_test_fixtures.hpp:31
Definition: common_test_fixtures.hpp:78
Definition: common_test_fixtures.hpp:72
constexpr char architecture_old[]
Definition: common_test_fixtures.hpp:24
constexpr char architecture_new[]
Definition: common_test_fixtures.hpp:25
auto activate(Ts &&... xs)
Definition: lanelet_map.hpp:33
std::string string
Definition: junit5.hpp:26
Definition: common_test_fixtures.hpp:82
static auto GetName(int) -> std::string
Definition: common_test_fixtures.hpp:84