### Question:
MBTileSet implements TileDataset, FileData { @Override public Bounds bounds() throws IOException { try { String sql = String.format(Locale.ROOT,"SELECT value FROM %s WHERE name = ?", METADATA); Backend.Results results = backend.queryPrepared(sql, "bounds"); try { if (results.next()) { Bounds b = Bounds.parse(results.getString(0), true); return b; } } finally { results.close(); } } catch(IOException e) { LOG.error("Error querying for tile bounds!", e); } return Proj.bounds(crs()); } MBTileSet(Backend backend, MBTilesOpts opts);  MBTileSet(File file); String getTileFormat(); @Override File file(); @Override Driver<?> driver(); @Override Map<Key<?>, Object> driverOptions(); @Override String name(); String title(); String description(); @Override CoordinateReferenceSystem crs(); @Override Bounds bounds(); @Override TilePyramid pyramid(); @Override Tile read(long z, long x, long y); @Override Cursor<Tile> read(long z1, long z2, long x1, long x2, long y1, long y2); @Override void close();  }### Answer:
@Test public void bounds() throws IOException { assertEquals(new Envelope(-180,180, -85, 85), tileset.bounds()); }