### Question:
BBox implements Shape, Cloneable { @Override public boolean contains( Shape s ) { if (s instanceof BBox) { return contains((BBox) s); } else if (s instanceof Circle) { return contains((Circle) s); } throw new UnsupportedOperationException("unsupported shape"); } BBox( double minLon, double maxLon, double minLat, double maxLat );  BBox( double minLon, double maxLon, double minLat, double maxLat, double minEle, double maxEle );  BBox( double minLon, double maxLon, double minLat, double maxLat, double minEle, double maxEle, boolean elevation ); boolean hasElevation(); static BBox createInverse( boolean elevation ); void update( double lat, double lon ); void update( double lat, double lon, double elev ); @Override BBox clone(); @Override boolean intersect( Shape s ); @Override boolean contains( Shape s ); boolean intersect( Circle s ); boolean intersect( BBox o ); @Override boolean contains( double lat, double lon ); boolean contains( BBox b ); boolean contains( Circle c ); @Override String toString(); String toLessPrecisionString(); @Override BBox getBounds(); @Override boolean equals( Object obj ); @Override int hashCode(); boolean isValid(); List<Double> toGeoJson(); public double minLon; public double maxLon; public double minLat; public double maxLat; public double minEle; public double maxEle; }### Answer:
@Test public void testContains() { assertTrue(new BBox(1, 2, 0, 1).contains(new BBox(1, 2, 0, 1))); assertTrue(new BBox(1, 2, 0, 1).contains(new BBox(1.5, 2, 0.5, 1))); assertFalse(new BBox(1, 2, 0, 0.5).contains(new BBox(1.5, 2, 0.5, 1))); Circle c = new Circle(10, 10, 120000); assertTrue(c.getBounds().contains(c)); assertFalse(new BBox(8.9, 11.09, 8.9, 11.2).contains(c)); }