import org.junit.Ignore;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static org.junit.Assert.assertEquals;
public class MatrixTest {
@Test
public void testCanIdentifySingleSaddlePoint() {
Matrix matrix = new Matrix(Arrays.asList(
Arrays.asList(9, 8, 7),
Arrays.asList(5, 3, 2),
Arrays.asList(6, 6, 7)
));
List<MatrixCoordinate> expectedSaddlePoints = Collections.singletonList(new MatrixCoordinate(1, 0));
assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
}
@Ignore("Remove to run test")
@Test
public void testCanIdentifyThatEmptyMatrixHasNoSaddlePoints() {
Matrix matrix = new Matrix(new ArrayList<>());
List<MatrixCoordinate> expectedSaddlePoints = new ArrayList<>();
assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
}
@Ignore("Remove to run test")
@Test
public void testCanIdentifyLackOfSaddlePointsWhenThereAreNone() {
Matrix matrix = new Matrix(Arrays.asList(
Arrays.asList(1, 2, 3),
Arrays.asList(3, 1, 2),
Arrays.asList(2, 3, 1)
));
List<MatrixCoordinate> expectedSaddlePoints = new ArrayList<>();
assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
}
@Ignore("Remove to run test")
@Test
public void testCanIdentifyMultipleSaddlePoints() {
Matrix matrix = new Matrix(Arrays.asList(
Arrays.asList(4, 5, 4),
Arrays.asList(3, 5, 5),
Arrays.asList(1, 5, 4)
));
List<MatrixCoordinate> expectedSaddlePoints = Arrays.asList(
new MatrixCoordinate(0, 1),
new MatrixCoordinate(1, 1),
new MatrixCoordinate(2, 1)
);
assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
}
@Ignore("Remove to run test")
@Test
public void testCanIdentifySaddlePointInBottomRightCorner() {
Matrix matrix = new Matrix(Arrays.asList(
Arrays.asList(8, 7, 9),
Arrays.asList(6, 7, 6),
Arrays.asList(3, 2, 5)
));
List<MatrixCoordinate> expectedSaddlePoints = Collections.singletonList(new MatrixCoordinate(2, 2));
assertEquals(expectedSaddlePoints, matrix.getSaddlePoints());
}
}