Skip to content

Conversation

@sujata-m
Copy link
Contributor

Dev Board Ticket

https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/2624
https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/2670/
https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/2668/
https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/2667/
https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/2659/
https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/2624/
https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/2424/

Changes

  • Add OSW 0.3 support, robustness, and extended test coverage across converters and normalizers
  • Upgrade OSW handling to 0.3: emit $schema 0.3 headers, support tree/tree_row/wood features, and add vegetation/elevation fixtures and checks.
  • Preserve non-compliant/unknown OSW→OSM tags by promoting them to ext:*, including dict/list values, invalid incline/climb, and 3D elevation (ext:elevation), while tolerating string IDs.
  • Harden OSM→OSW parsing/serialization: multiple exteriors for zones/polygons, invalid location skips, tagged node handling, from_geojson edges, and to_undirected/filter_edges behaviors.
  • Added support for Non-integer ID handling has inconsistencies.
  • Add extensive unit coverage (now 202 scenarios, ~98%): new suites for osm_normalizer, expanded parser/normalizer tests, converter schema/roundtrip/incline/width/custom-props/elevation scenarios, and a testing overview doc summarizing coverage.
  • Treat ext: keys as valid identifiers in OSW normalizer filters
  • Add/extend unit tests for ext-based filter classification
    Refresh TESTING_OVERVIEW totals and per-suite counts to include async tests
  • Note ext-based classification coverage in test focus summary
  • Update changelog for 0.3.0 and bump version, reflecting robustness improvements and new tests
  • Added docs/TESTING_OVERVIEW.md to reflect 204 scenarios (98% coverage), noting the sequential ID remap checks in the OSW→OSM suite.
  • Expanded docs/id_remapping.md with a concrete XML example showing pre/post sequential remap, clarifying how IDs and references are rewritten, and listing the relevant code entry points.

Testing

  • Added 52 new unit test cases, total unit test cases - 211
  • Coverage Report
> coverage report
Name                                                       Stmts   Miss  Cover
------------------------------------------------------------------------------
src/osm_osw_reformatter/__init__.py                           31      0   100%
src/osm_osw_reformatter/helpers/__init__.py                    0      0   100%
src/osm_osw_reformatter/helpers/osm/__init__.py               36      0   100%
src/osm_osw_reformatter/helpers/osw/__init__.py              137      0   100%
src/osm_osw_reformatter/helpers/response.py                    7      0   100%
src/osm_osw_reformatter/osm2osw/__init__.py                    0      0   100%
src/osm_osw_reformatter/osm2osw/osm2osw.py                    37      0   100%
src/osm_osw_reformatter/osw2osm/__init__.py                    0      0   100%
src/osm_osw_reformatter/osw2osm/osw2osm.py                    87      7    92%
src/osm_osw_reformatter/serializer/__init__.py                 0      0   100%
src/osm_osw_reformatter/serializer/counters.py                37      0   100%
src/osm_osw_reformatter/serializer/osm/__init__.py             0      0   100%
src/osm_osw_reformatter/serializer/osm/osm_graph.py          479     12    97%
src/osm_osw_reformatter/serializer/osm/osm_normalizer.py     222     11    95%
src/osm_osw_reformatter/serializer/osw/__init__.py             0      0   100%
src/osm_osw_reformatter/serializer/osw/osw_normalizer.py     352      2    99%
src/osm_osw_reformatter/version.py                             1      0   100%
------------------------------------------------------------------------------
TOTAL                                                       1426     32    98%

sujata-m and others added 8 commits December 8, 2025 15:25
- Fixed [BUG-2659](https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/2659/)
- Fixed [TASK-2642](https://dev.azure.com/TDEI-UW/TDEI/_workitems/edit/2642/)
- Added post-processing to src/osm_osw_reformatter/osw2osm/osw2osm.py to parse the generated OSM XML and enforce version="1" on all nodes, ways, and relations.
- Bumped library version to 0.2.13 in src/osm_osw_reformatter/version.py.
- Documented the change in CHANGELOG.md with a new 0.2.13 entry.
- Added a unit test (tests/unit_tests/test_osw2osm/test_osw2osm.py) verifying every OSM element in the converted output carries the version attribute.
…nverters and normalizers

- Upgrade OSW handling to 0.3: emit $schema 0.3 headers, support tree/tree_row/wood features, and add vegetation/elevation fixtures and checks.
- Preserve non-compliant/unknown OSW→OSM tags by promoting them to ext:*, including dict/list values, invalid incline/climb, and 3D elevation (ext:elevation), while tolerating string IDs.
- Harden OSM→OSW parsing/serialization: multiple exteriors for zones/polygons, invalid location skips, tagged node handling, from_geojson edges, and to_undirected/filter_edges behaviors.
- Add extensive unit coverage (now 202 scenarios, ~98%): new suites for osm_normalizer, expanded parser/normalizer tests, converter schema/roundtrip/incline/width/custom-props/elevation scenarios, and a testing overview doc summarizing coverage.
- Update changelog for 0.3.0 and bump version, reflecting robustness improvements and new tests
- Add/extend unit tests for ext-based filter classification
Refresh TESTING_OVERVIEW totals and per-suite counts to include async tests
- Note ext-based classification coverage in test focus summary
@sujata-m sujata-m requested review from MashB and susrisha December 18, 2025 08:35
@sujata-m sujata-m merged commit 6b2d2aa into main Dec 18, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants