### 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 GHPoint getCenter(); @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 double calculateArea(); @Override boolean equals(Object obj); @Override int hashCode(); @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))); }