Project-OSRM / osrm-backend

Open Source Routing Machine - C++ backend
http://map.project-osrm.org
BSD 2-Clause "Simplified" License
6.39k stars 3.39k forks source link

Free-Standing Cucumber OSM Extract Generation #3030

Open daniel-j-h opened 8 years ago

daniel-j-h commented 8 years ago

At the https://wiki.openstreetmap.org/wiki/Elbe-Labe-Meeting meetup in Dresden I was asked if there's a way to extract our Cucumber OSM extract generation logic into a (potentially free-standing) project.

It seems like many people in the OSM community have to write OSM extracts by hand (e.g. @joto for testing purpose) and would love to use our node map + ways => .osm.xml pipeline.

Is there an easy way for us to do this? We would have to abstract over the non-osrm specific part of the support code from what I can see.

@emiltin any ideas here? I think the main issue here would be using one half of Cucumber (a testing framework) for something it wasn't designed to do. On the other hand, if this is easy to pull of, benefits many people and someone wants to do this, why not.

emiltin commented 8 years ago

Nice idea! They're not using cucumber, just want a command line tool to convert node maps to .osm.xml when needed?

Maybe the tool could use the Gherkin parser (which Cucumber relies on) to read and parse the feature file with it's docstrings and tables, and pass the input to a lib that converts to .osm.xml. That lib could then be reused in the OSRM test framework?

daniel-j-h commented 8 years ago

Nice idea! They're not using cucumber, just want a command line tool to convert node maps to .osm.xml when needed?

Exactly: a tool parsing grid size, node map, way tags generating valid .osm.xml from it (example).

We have to npm install for the tests anyway, so a separate library on npm is not a blocker.

daniel-j-h commented 7 years ago

For the record, use-cases for this pop up again and again every now and then. Today I wrote this feature for a small osm-based tool instead of having to write e.g. this and other xml files by hand.