### Question:
TilePyramid { public Bounds bounds() { return bounds; }  static TilePyramidBuilder build(); List<TileGrid> grids(); Bounds bounds(); TilePyramid bounds(Bounds bounds); CoordinateReferenceSystem crs(); TilePyramid crs(CoordinateReferenceSystem crs); Origin origin(); TilePyramid origin(Origin origin); Integer tileWidth(); TilePyramid tileWidth(Integer tileWidth); Integer tileHeight(); TilePyramid tileHeight(Integer tileHeight); TileGrid grid(int z); Bounds bounds(Tile t); Tile realign(Tile t, Origin o); TileCover cover(Bounds e, int width, int height); TileCover cover(Bounds e, double resx, double resy); TileCover cover(Bounds e, int z); TileCover cover(Bounds e, TileGrid grid);  }### Answer:
@Test public void testBounds() { assertEnvelope(tp.bounds(new Tile(0, 0, 0, null, null)), -180, -90, 0, 90); assertEnvelope(tp.bounds(new Tile(0, 1, 0, null, null)), 0, -90, 180, 90); assertEnvelope(tp.bounds(new Tile(1, 0, 0, null, null)), -180.0, -90.0, -90.0, 0.0); assertEnvelope(tp.bounds(new Tile(1, 1, 0, null, null)), -90.0, -90.0, 0.0, 0.0); assertEnvelope(tp.bounds(new Tile(1, 2, 0, null, null)), 0.0, -90.0, 90.0, 0.0); assertEnvelope(tp.bounds(new Tile(1, 3, 0, null, null)), 90.0, -90.0, 180.0, 0.0); assertEnvelope(tp.bounds(new Tile(1, 0, 1, null, null)), -180.0, 0.0, -90.0, 90.0); assertEnvelope(tp.bounds(new Tile(1, 1, 1, null, null)), -90.0, 0.0, 0.0, 90.0); assertEnvelope(tp.bounds(new Tile(1, 2, 1, null, null)), 0.0, 0.0, 90.0, 90.0); assertEnvelope(tp.bounds(new Tile(1, 3, 1, null, null)), 90.0, 0.0, 180.0, 90.0); assertEnvelope(tp.bounds(new Tile(0, 2, 0, null, null)), 180.0, -90.0, 360, 90); assertEnvelope(tp.bounds(new Tile(0, 0, 1, null, null)), -180.0, 90.0, 0, 270); try { tp.bounds(new Tile(3, 0, 0, null, null)); fail(); } catch(IllegalArgumentException e) { } }