carla/PythonAPI/test/smoke/test_map.py

54 lines
2.2 KiB
Python

# Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma de
# Barcelona (UAB).
#
# This work is licensed under the terms of the MIT license.
# For a copy, see <https://opensource.org/licenses/MIT>.
import carla
import random
from . import SmokeTest
import time
class TestMap(SmokeTest):
def test_reload_world(self):
print("TestMap.test_reload_world")
map_name = self.client.get_world().get_map().name
world = self.client.reload_world()
self.assertEqual(map_name, world.get_map().name)
def test_load_all_maps(self):
print("TestMap.test_load_all_maps")
map_names = list(self.client.get_available_maps())
random.shuffle(map_names)
for map_name in map_names:
# ignore empty or large maps by now
if map_name != '/Game/Carla/Maps/BaseMap/BaseMap' and map_name != '/Game/Carla/Maps/Town11/Town11' and map_name != '/Game/Carla/Maps/Town12/Town12':
world = self.client.load_world(map_name)
# workaround: give time to UE4 to clean memory after loading (old assets)
time.sleep(5)
m = world.get_map()
self.assertEqual(map_name.split('/')[-1], m.name.split('/')[-1])
self._check_map(m)
def _check_map(self, m):
for spawn_point in m.get_spawn_points():
waypoint = m.get_waypoint(spawn_point.location, project_to_road=False)
self.assertIsNotNone(waypoint)
topology = m.get_topology()
self.assertGreater(len(topology), 0)
waypoints = list(m.generate_waypoints(2))
self.assertGreater(len(waypoints), 0)
random.shuffle(waypoints)
for waypoint in waypoints[:200]:
for _ in range(0, 20):
self.assertGreaterEqual(waypoint.lane_width, 0.0)
_ = waypoint.get_right_lane()
_ = waypoint.get_left_lane()
next_waypoints = waypoint.next(4)
if not next_waypoints:
break
waypoint = random.choice(next_waypoints)
_ = m.transform_to_geolocation(carla.Location())
self.assertTrue(str(m.to_opendrive()))