### Question:
Shapes { public Stream<String> containing(double lat, double lon) { return shapes.keySet().stream() .filter(name -> shapes.get(name).contains(lat, lon)); } Shapes();  Shapes(String resource); Stream<String> containing(double lat, double lon); void add(String name, Shapefile shapefile);  }### Answer:
@Test public void testPointInSrrAndCoralSeaAtba() { assertEquals(Arrays.asList("SRR", "Coral Sea ATBA"), new Shapes().containing(-17.050, 149.678).collect(Collectors.toList())); }
@Test public void testPointInSrrAndNotInCoralSeaAtba() { assertEquals(Arrays.asList("SRR"), new Shapes().containing(-17.050, 100).collect(Collectors.toList())); }
@Test public void testPointInNeitherSrrNorInCoralSeaAtba() { assertTrue(new Shapes().containing(30, 100).collect(Collectors.toList()).isEmpty()); }