### Question:
GeoHashUtil { public static String adjacentHash(String geohash, String directionString) { Direction direction = Direction.valueOf(directionString.toUpperCase()); if (direction == null) { throw new IllegalArgumentException("Invalid direction parameter, needs to be either TOP, BOTTON, RIGHT or LEFT"); } return GeoHash.adjacentHash(geohash, direction); }  static String adjacentHash(String geohash, String directionString); static List<String> neighbours(String geohash); static String geohash(final double latitude, final double longitude, int length); static String geohash(final double latitude, final double longitude); static Map<String, Double> decodeHash(String geohash); static int hashLengthToCoverBoundingBox(double topLeftLatitude, double topLeftLongitude, 
									double bottomRightLatitude, double bottomRightLongitude); static boolean hashContains(String geoHash, double latitude, double longitude); static List<String> coverBoundingBox(String geometryWKT, int length); static List<String> coverBoundingBox(Double topLeftLatitude, Double topLeftLongitude,  
								Double bottomRightLatitude, Double bottomRightLongitude, int length);  }### Answer:
@Test public void testAdjacentHahs() { String adjacent; adjacent = GeoHashUtil.adjacentHash("9yzf7", "TOP"); assertEquals("9yzfe", adjacent); adjacent = GeoHashUtil.adjacentHash("9yzf7", "BOTTOM"); assertEquals("9yzf5", adjacent); adjacent = GeoHashUtil.adjacentHash("9yzf7", "LEFT"); assertEquals("9yzf6", adjacent); adjacent = GeoHashUtil.adjacentHash("9yzf7", "RIGHT"); assertEquals("9yzfk", adjacent); adjacent = GeoHashUtil.adjacentHash("9yzf7", "top"); assertEquals("9yzfe", adjacent); adjacent = GeoHashUtil.adjacentHash("9yzf7", "bottom"); assertEquals("9yzf5", adjacent); adjacent = GeoHashUtil.adjacentHash("9yzf7", "left"); assertEquals("9yzf6", adjacent); adjacent = GeoHashUtil.adjacentHash("9yzf7", "right"); assertEquals("9yzfk", adjacent); }