### Question:
AbstractBoard extends AbstractLayeredBoard<E> { public E getAt(int x, int y) { List<E> at = getAllAt(x, y); if (at.isEmpty()) { return null; } else { return at.get(0); } }  abstract E valueOf(char ch); ClientBoard forString(String boardString); @Override AbstractBoard forString(String... layers); List<Point> get(E... elements); boolean isAt(int x, int y, E element); boolean isAt(Point point, E element); E getAt(int x, int y); E getAt(Point point); List<E> getAllAt(int x, int y); List<E> getAllAt(Point point); String boardAsString(); boolean isAt(int x, int y, E... elements); boolean isAt(Point point, E... elements); boolean isNear(int x, int y, E element); boolean isNear(Point point, E element); int countNear(int x, int y, E element); int countNear(Point point, E element); List<E> getNear(int x, int y); List<E> getNear(Point point); void set(int x, int y, char ch); char[][] getField();  }### Answer:
@Test public void shouldWork_getAt() { assertEquals(Elements.ONE, board.getAt(0, 0)); assertEquals(Elements.TWO, board.getAt(2, 1)); assertEquals(Elements.THREE, board.getAt(2, 2)); }