### Question:
Circle implements Shape { @Override public boolean intersect( Shape o ) { if (o instanceof Circle) { return intersect((Circle) o); } else if (o instanceof BBox) { return intersect((BBox) o); } return o.intersect(this); } Circle( double lat, double lon, double radiusInMeter );  Circle( double lat, double lon, double radiusInMeter, DistanceCalc calc ); double getLat(); double getLon(); @Override boolean contains( double lat1, double lon1 ); @Override BBox getBounds(); @Override boolean intersect( Shape o ); @Override boolean contains( Shape o ); boolean intersect( BBox b ); boolean intersect( Circle c ); boolean contains( BBox b ); boolean contains( Circle c ); @Override String toString();  }### Answer:
@Test public void testIntersectCircleCircle() { assertTrue(new Circle(0, 0, 80000).intersect(new Circle(1, 1, 80000))); assertFalse(new Circle(0, 0, 75000).intersect(new Circle(1, 1, 80000))); }
@Test public void testIntersectCircleBBox() { assertTrue(new Circle(10, 10, 120000).intersect(new BBox(9, 11, 8, 9))); assertTrue(new BBox(9, 11, 8, 9).intersect(new Circle(10, 10, 120000))); assertFalse(new Circle(10, 10, 110000).intersect(new BBox(9, 11, 8, 9))); assertFalse(new BBox(9, 11, 8, 9).intersect(new Circle(10, 10, 110000))); }