@Test
 public void middleTest() {
   Direction[] expectedDirections = {
     Down.getInstance(), Up.getInstance(), Right.getInstance(), Left.getInstance()
   };
   positionTest(Middle.getInstance(), expectedDirections);
 }
 @Test
 public void LeftGetNextPositionTest() {
   BoardModel boardModel = BoardModel.initialize();
   int currentPosition = boardModel.getPositionOfEmptySlot();
   int nextPosition = Left.getInstance().getNextPosition(boardModel);
   assertTrue(nextPosition == currentPosition - 1);
 }
 @Test
 public void RightOppositeTest() {
   assertTrue(Right.getInstance().opposite() == Left.getInstance());
 }
 @Test
 public void topRightCornerTest() {
   Direction[] expectedDirections = {Down.getInstance(), Left.getInstance()};
   positionTest(TopRightCorner.getInstance(), expectedDirections);
 }
 @Test
 public void topEdgeTest() {
   Direction[] expectedDirections = {Down.getInstance(), Right.getInstance(), Left.getInstance()};
   positionTest(TopEdge.getInstance(), expectedDirections);
 }
 @Test
 public void bottomRightCornerTest() {
   Direction[] expectedDirections = {Up.getInstance(), Left.getInstance()};
   positionTest(BottomRightCorner.getInstance(), expectedDirections);
 }
 @Test
 public void bottomEdgeTest() {
   Direction[] expectedDirections = {Up.getInstance(), Left.getInstance(), Right.getInstance()};
   positionTest(BottomEdge.getInstance(), expectedDirections);
 }