Skip to content
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

Feature/nav 32 range search in kd tree #13

Merged
merged 55 commits into from
May 16, 2024

Conversation

clukas1
Copy link
Member

@clukas1 clukas1 commented May 12, 2024

Final pull request for KD Tree implementation into main.

  • NAV-23 - Simple KD Tree Implementation (already reviewed by @munterfi , @clukas1)
  • NAV-29 - KD Tree Builder to ensure balancing (already reviewed by @munterfi)
  • NAV-30 - Addition of unittests (already reviewed by @Brunner246, @clukas1)
  • NAV-32 - Addition of range search (new)
  • NAV-34 - Integration into GTFS Module (Builder and Schedule)

Brunner246 and others added 30 commits April 28, 2024 09:29
… Nonetheless, it’s more accurate in calculating the distance between long distances
 - implement generic approach for KD-tree
 - simplified interface of Coordinates into `TwoDimensionalCoordinates` . This allows us to handle cartesian and geographic coordinate system
 - use generic name for `X` `Y` and `LONG` `LAT`
 - remove redundant functions in utils
…/naviqore/raptor into feature/NAV-30-write-unit-tests-for-KD-Tree

# Conflicts:
#	src/main/java/ch/naviqore/gtfs/schedule/model/Coordinate.java
- create `StopFacilityMock` for TestCase
- create `KDTree` test cases for finding nearest neighbour
@clukas1 clukas1 requested review from munterfi and Brunner246 and removed request for munterfi and Brunner246 May 12, 2024 19:52
clukas1 and others added 6 commits May 12, 2024 21:58
- Private classes and enums are not visible anymore in public methods as parameters or return types
- Move KDNode and KDUtils to inner members of KDTree, since they will not be used from the outside, except for testing.
- Rename MockCoordinate to CartesianCoordinate and move all coordinate types into the spatial package.
- Move tree into its own index package.
- Add javadoc to public interfaces, classes and methods.
@munterfi
Copy link
Member

munterfi commented May 15, 2024

Looks good! And indeed very performant, unnoticeable when run with the benchmark! 🚀

There are some issues with out of scope visiblity of KDNode and internal Coordinates, therefore i refactored this in #14. (The PR is into this branch). Please have a look @clukas1 @Brunner246

There are some further points we should discuss on friday, concerning the style guide:

  • consistent toString format
  • which assertions to use, or should we allow mixing (jupiter, assertJ, ...)
  • javadoc, what should be documented? But still keep it as simple as possible.

Copy link
Member

@munterfi munterfi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comment above 😄

Copy link
Contributor

@Brunner246 Brunner246 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for your effort =)

clukas1 and others added 5 commits May 15, 2024 22:55
…NAV-32-range-search-in-kd-tree

# Conflicts:
#	src/main/java/ch/naviqore/gtfs/schedule/model/GtfsSchedule.java
#	src/main/java/ch/naviqore/gtfs/schedule/model/GtfsScheduleBuilder.java
#	src/main/java/ch/naviqore/gtfs/schedule/model/Stop.java
@munterfi munterfi merged commit a54369c into main May 16, 2024
1 check passed
@munterfi munterfi deleted the feature/NAV-32-range-search-in-kd-tree branch May 16, 2024 11:48
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.

3 participants