""" Test OSM XML parsing. """ import numpy as np from roentgen.osm_reader import OSMNode, OSMReader, OSMRelation, OSMWay, OSMData __author__ = "Sergey Vartanov" __email__ = "me@enzet.ru" def test_node() -> None: """Test OSM node parsing from XML.""" reader: OSMReader = OSMReader() osm_data: OSMData = reader.parse_osm_text( """ """ ) assert 42 in osm_data.nodes node: OSMNode = osm_data.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() osm_data: OSMData = reader.parse_osm_text( """ """ ) assert 42 in osm_data.nodes node: OSMNode = osm_data.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 = OSMReader() osm_data: OSMData = reader.parse_osm_text( """ """ ) assert 42 in osm_data.ways way: OSMWay = osm_data.ways[42] assert way.id_ == 42 def test_nodes() -> None: """Test OSM node parsing from XML.""" reader = OSMReader() osm_data: OSMData = reader.parse_osm_text( """ """ ) way: OSMWay = osm_data.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 = OSMReader() osm_data: OSMData = reader.parse_osm_text( """ """ ) assert 3 in osm_data.relations relation: OSMRelation = osm_data.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