Sector { public boolean intersects(double minLatitude, double minLongitude, double deltaLatitude, double deltaLongitude) { double maxLatitude = Location.clampLatitude(minLatitude + (deltaLatitude > 0 ? deltaLatitude : Double.NaN)); double maxLongitude = Location.clampLongitude(minLongitude + (deltaLongitude > 0 ? deltaLongitude : Double.NaN)); return this.minLatitude < maxLatitude && this.maxLatitude > minLatitude && this.minLongitude < maxLongitude && this.maxLongitude > minLongitude; } Sector();  Sector(double minLatitude, double minLongitude, double deltaLatitude, double deltaLongitude);  Sector(Sector sector); static Sector fromDegrees(double latitudeDegrees, double longitudeDegrees,
                                     double deltaLatitudeDegrees, double deltaLongitudeDegrees); static Sector fromRadians(double latitudeRadians, double longitudeRadians,
                                     double deltaLatitudeRadians, double deltaLongitudeRadians); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); boolean isEmpty(); boolean isFullSphere(); double minLatitude(); double maxLatitude(); double minLongitude(); double maxLongitude(); double deltaLatitude(); double deltaLongitude(); double centroidLatitude(); double centroidLongitude(); Location centroid(Location result); Sector set(double minLatitude, double minLongitude, double deltaLatitude, double deltaLongitude); Sector set(Sector sector); Sector setEmpty(); Sector setFullSphere(); boolean intersects(double minLatitude, double minLongitude, double deltaLatitude, double deltaLongitude); boolean intersects(Sector sector); boolean intersectsOrNextTo(Sector sector); boolean intersect(double minLatitude, double minLongitude, double deltaLatitude, double deltaLongitude); boolean intersect(Sector sector); boolean contains(double latitude, double longitude); boolean contains(double minLatitude, double minLongitude, double deltaLatitude, double deltaLongitude); boolean contains(Sector sector); Sector union(double latitude, double longitude); Sector union(float[] array, int count, int stride); Sector union(double minLatitude, double minLongitude, double deltaLatitude, double deltaLongitude); Sector union(Sector sector); Sector translate(double deltaLatitude, double deltaLongitude);  }
@Test public void testIntersects() throws Exception { Sector a = Sector.fromDegrees(30, 100, 3.0, 3.0); Sector copy = new Sector(a); assertTrue("inside", a.intersects(new Sector(31.0, 101.0, 1d, 1d))); assertTrue("overlap east", a.intersects(new Sector(31.0, 102.0, 1d, 2d))); assertTrue("overlap west", a.intersects(new Sector(31.0, 99.0, 1d, 2d))); assertTrue("overlap north", a.intersects(new Sector(32.0, 101.0, 2d, 1d))); assertTrue("overlap south", a.intersects(new Sector(29.0, 101.0, 2d, 1d))); assertEquals("no mutation", copy, a); }