osm-compare
Compare functions are small atomic functions that are designed identify what changed during a feature edit on OpenStreetMap. Compare functions can be broadly split up into two categories:
- Property (tags) checking compare function
- Geometry checking compare functions
Compare functions take as inputs the following:
oldVersion
- GeoJSON of the feature's old versionnewVersion
- GeoJSON of the feature's new versioncallback
- A function to call after processing.
Compare functions output the following:
error
- Error if any during processing or null
.result
- Object containing key value pairs representing findings of the compare function or an empty object.
{
'result:comparator_name': value
}
{
'result:comparator_name': {}
}
How do I create a new compare function?
- Clone this repository with
git clone https://github.com/mapbox/compare-geojson
cd compare-geojson
npm install
- Check if all tests pass before making your changes with
npm test
- Create a new test fixture in the directory
tests/fixtures/
- Create a new compare function in the directory
comparators/
(check comparators/example.js for format) - Test your new compare function with
npm test
- Add your new comparator to
index.js
- Push to a new branch on Github and create a Pull Request
How do I test a single compare function against a new fixture?
cd compare-geojson/tests/
- Create new fixture file in
tests/fixtures/
folder (check tests/fixtures/example.json for format) - Test your fixture with
node tests/test_compare_function.js tests/fixtures/example.json
How do I build an npm package?