""" Test OSM XML parsing. """ import numpy as np from roentgen.osm_reader import OSMNode, OSMReader, OSMRelation, OSMWay __author__ = "Sergey Vartanov" __email__ = "me@enzet.ru" def test_node() -> None: """ Test OSM node parsing from XML. """ reader = OSMReader() map_ = reader.parse_osm_text( """ """ ) assert 42 in map_.nodes node: OSMNode = map_.nodes[42] assert node.id_ == 42 assert np.allclose(node.coordinates, np.array([10, 5])) def test_node_with_tag() -> None: """ Test OSM node parsing from XML. """ reader = OSMReader() map_ = reader.parse_osm_text( """ """ ) assert 42 in map_.nodes node: OSMNode = map_.nodes[42] assert node.id_ == 42 assert np.allclose(node.coordinates, np.array([10, 5])) assert node.tags["key"] == "value" def test_way() -> None: """ Test OSM way parsing from XML. """ reader = OSMReader() map_ = reader.parse_osm_text( """ """ ) assert 42 in map_.ways way: OSMWay = map_.ways[42] assert way.id_ == 42 def test_nodes() -> None: """ Test OSM node parsing from XML. """ reader = OSMReader() map_ = reader.parse_osm_text( """ """ ) way: OSMWay = map_.ways[2] assert len(way.nodes) == 1 assert way.nodes[0].id_ == 1 assert way.tags["key"] == "value" def test_relation() -> None: """ Test OSM node parsing from XML. """ reader = OSMReader() map_ = reader.parse_osm_text( """ """ ) assert 3 in map_.relations relation: OSMRelation = map_.relations[3] assert relation.id_ == 3 assert relation.tags["key"] == "value" assert len(relation.members) == 1 assert relation.members[0].type_ == "way" assert relation.members[0].ref == 2