mirror of
https://github.com/enzet/map-machine.git
synced 2025-05-23 05:56:28 +02:00
Rename test to tests; fix equator length.
This commit is contained in:
parent
f744c601d0
commit
ba26c1d4d7
19 changed files with 71 additions and 33 deletions
100
tests/test_osm_reader.py
Normal file
100
tests/test_osm_reader.py
Normal file
|
@ -0,0 +1,100 @@
|
|||
"""
|
||||
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(
|
||||
"""<?xml version="1.0"?>
|
||||
<osm>
|
||||
<node id="42" lon="5" lat="10" />
|
||||
</osm>"""
|
||||
)
|
||||
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(
|
||||
"""<?xml version="1.0"?>
|
||||
<osm>
|
||||
<node id="42" lon="5" lat="10">
|
||||
<tag k="key" v="value" />
|
||||
</node>
|
||||
</osm>"""
|
||||
)
|
||||
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(
|
||||
"""<?xml version="1.0"?>
|
||||
<osm>
|
||||
<way id="42" />
|
||||
</osm>"""
|
||||
)
|
||||
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(
|
||||
"""<?xml version="1.0"?>
|
||||
<osm>
|
||||
<node id="1" lon="5" lat="10" />
|
||||
<way id="2">
|
||||
<nd ref="1" />
|
||||
<tag k="key" v="value" />
|
||||
</way>
|
||||
</osm>"""
|
||||
)
|
||||
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(
|
||||
"""<?xml version="1.0"?>
|
||||
<osm>
|
||||
<node id="1" lon="5" lat="10" />
|
||||
<way id="2">
|
||||
<nd ref="1" />
|
||||
</way>
|
||||
<relation id="3">
|
||||
<member type="way" ref="2" role="outer" />
|
||||
<tag k="key" v="value" />
|
||||
</relation>
|
||||
</osm>"""
|
||||
)
|
||||
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
|
Loading…
Add table
Add a link
Reference in a new issue