-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Change] ChangeAtlas validation #288
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left a couple comments for fun, but everything looks solid. Merging.
@@ -197,7 +197,6 @@ public BloatedRelation withIdentifier(final long identifier) | |||
public BloatedRelation withMembers(final RelationBean members, final Rectangle bounds) | |||
{ | |||
this.members = members; | |||
// TODO note to reviewer, is this the right approach? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like it was :)
@@ -60,7 +60,7 @@ public ChangeAtlas(final Atlas source, final Change change) | |||
} | |||
this.change = change; | |||
this.source = source; | |||
new ChangeAtlasValidator(this).validate(); | |||
new AtlasValidator(this).validate(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oooh is this a way to unify the validation code in PackedAtlasBuilder
with the validation code for the ChangeAtlas
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really. PackedAtlasBuilder makes checks at build time, and fails before the Atlas is created. Those checks expect an Atlas to be built already to be run. However, they are used in the ChangeAtlas right before exiting the constructor, having the same effective result.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah right. But is there a reason we couldn't just validate the PackedAtlasBuilder
at build time, all at once, using the a validator like this one? Instead of as things are added?
/** | ||
* @author matthieun | ||
*/ | ||
public class AtlasEdgeValidatorTest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But who will validate the validator's validator?
* [Change] Skeleton for Atlas Change feature (#273) * test change ideas * more * better comments * test skeleton * test and more details * more testing and validation * refactoring * validation public * move around and fix test * touchup * code review comments and shallow bloated features and more testing * added bloated relation * added test * added relation testing to edge and node * fix compilation errors * finished bloated features and related tests * added missing change items * [Change] Finished implementing methods for ChangeAtlas (#280) * few changes and some tests * more tests * add synchronized * code review comments * [Change] More ChangeAtlas updates (#284) * Fixed entitiesFor if an entity was missing * Checkstyle and comment change * ChangeNodes now filter out edges which are connected but do not exist * ChangeNodes now filter out parent relations which do not exist. * Checkstyle correction in BloatedAtlas interface BloatedEntity, and FeatureChange comment update. * Added a ChangeAtlasTest and ChangeAtlasTestRule. Remove these before PR * Implemented proper bounding for all the bloated entities * Removed local ChangeAtlasTest * Fixed spotless errors. but now unit tests are failing * Fixed a bunch of issues with bounds calculation * Spotless * [Change] Fixed failing unit tests (#285) * Fixed failing unit tests * Fixed a typo * [Change] Add validation and related testing to FeatureChange and Change (#286) * with failing tests * Validation * synchronize add and get * [Change] Lots of filtering implemented (#287) * Edges now filter themselves out if one of their connected nodes is missing * Relations now filter out members which do not exist. ChangeAtlas filters empty/shallow relations * Added a test to demonstrate that shallow relation removal is robust * Spotless apply * Added some additional relation tests * Updated a comment * [Change] ChangeAtlas validation (#288) * tests shuffle * All tests * spotless * logger not used * [Change] Simple refactor and Javadoc (#289) * compilation and sonar * forgotten some methods * package simplification and Javadoc * forgot tests * [Change] More complex unit tests (#290) * add more complex unit tests * AtlasChangeGenerator * Added shortcuts for tags * [Change] Ability to merge FeatureChange objects (#291) * Added feature change mergeability * Attempt merge in change * more tests * even more tests * last one? * [Change] Fixed bug with missing parent relations (#292) * relation member feature merging broken * Merge relations in many more places * Fix tests and change osmIdentifier API in relation * Added equality tests * Some cleanup from testing * Fixed tests and added new relation based generator * [Change] Keep track of explicitly removed relation members (#295) * Keep track of explicitly removed relation members * use method overloading * Fixed issue where excluded members were wiped in RelationMemberList (#298) * [Change] Added an AtlasDiff class to produce Changes from a before and after Atlas (#293) * Started working on a diff generator * Working on basic AtlasDiff * Still trying to make valid test case * Removed relations from test atlas * Removed node from before atlas * Still working on diff * Continuing draft of the AtlasDiff * Saving temporary working changes * Lots more doc comments * Added more comments * Fixed compilation errors after rebase * Working on modified entities, more comments * Working on modify case. * Lots of new stuff. Doesnt compile lol * Trying node diffs * Trying to get parent relations test to work * Refactor name * Working on relation support. THings may need to change * More progress * getTagChangeIfNecessary now respects useBloated and saveGeo flags. Also fixed a bug in parentRelationIfNec * Finished member in relation diffing * Added edge diff * Added the rest of the changeIfNecessary method * Relation diffs and more testing * Finished implementing tests * Checkstyle and spotless * Added PackedAtlasCloning equality to tests * Updated a test * Tests still failing even after rebase :( * Isolating bug using testatlas * Trying to fix bug... * Further bugfix. Using non-bloated entities still does not work * Expose bug when using non-bloated entities * Bug fix in place. Disallowing non-Bloated entities for FeatureChanges. Need to refactor stuff. * Removed all geometry matching related code. This feature is not necessary due to improved WaySectionProcessor. * Removed TODOs in AtlasDiff * Removed useBloatedEntities option * AtlasDiff now returns an Optional<Change>, and empty Changes are disallowed by the validator * Fixed Sonar issues in AtlasDiff and AtlasDiffHelper * Refactored interface for BloatedRelation::withMembers * Rename variables for clarity * Fixed awkward copy-pasted typo * Minor method name refactor * Fixed a unit test that used a non-Bloated type to create a feature change * Refactored withMembers to be more null-safe * Added javadoc * Removed old method * Fixed some Sonar issues. Mostly just ignoring false positives (#304) * Re-arrange NOSONAR locations
Description:
ChangeAtlas validation
Potential Impact:
N/A
Unit Test Approach:
Unit tests for all the validation steps.
Test Results:
Tests pass.
In doubt: Contributing Guidelines