Gjør det mulig å sjekke om to retninger står rett på hverandre

This commit is contained in:
Kristian Knarvik 2020-03-23 12:45:50 +01:00
parent 693b9fb886
commit 7635c33d8a
2 changed files with 43 additions and 0 deletions

View File

@ -45,6 +45,17 @@ public enum Direction {
return null;
}
/**
* Checks whether two directions are perpendicular
* @param direction1 The first direction
* @param direction2 The second direction
* @return True if the directions are perpendicular
*/
public static boolean arePerpendicular(Direction direction1, Direction direction2) {
return direction1.equals(getLeftRotatedDirection(direction2)) ||
direction1.equals(getRightRotatedDirection(direction2));
}
/**
* Gets the reverse of a direction
* @param direction A direction

View File

@ -8,7 +8,9 @@ import java.util.List;
import java.util.Set;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
public class DirectionTest {
@ -176,4 +178,34 @@ public class DirectionTest {
public void getLeftRotatedDirectionFromSouthWest() {
assertEquals(Direction.SOUTH_EAST, Direction.getLeftRotatedDirection(Direction.SOUTH_WEST));
}
@Test
public void eastAndWestArePerpendicular() {
assertFalse(Direction.arePerpendicular(Direction.EAST, Direction.WEST));
}
@Test
public void eastAndNorthArePerpendicular() {
assertTrue(Direction.arePerpendicular(Direction.EAST, Direction.NORTH));
}
@Test
public void eastAndSouthArePerpendicular() {
assertTrue(Direction.arePerpendicular(Direction.EAST, Direction.SOUTH));
}
@Test
public void northAndSouthArePerpendicular() {
assertFalse(Direction.arePerpendicular(Direction.NORTH, Direction.SOUTH));
}
@Test
public void northAndWestArePerpendicular() {
assertTrue(Direction.arePerpendicular(Direction.NORTH, Direction.WEST));
}
@Test
public void southAndWestArePerpendicular() {
assertTrue(Direction.arePerpendicular(Direction.SOUTH, Direction.WEST));
}
}