Files
oops/src/test/java/oving5/stringgrid/StringGridTest.java
T
Andreas Omholt Olsen 55c36a603a Add oving 5
2026-02-09 15:28:09 +01:00

112 lines
3.4 KiB
Java

package oving5.stringgrid;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
public class StringGridTest {
private StringGrid grid;
@BeforeEach
public void setUp() {
grid = new StringGridImpl(2, 3);
}
@Test
@DisplayName("Test the size of the grid")
public void testSize() {
assertEquals(2, grid.getRowCount(), "The number of rows was incorrect");
assertEquals(3, grid.getColumnCount(), "The number of columns was incorrect");
}
@Test
@DisplayName("Test that setElement sets the correct grid element")
public void testGrid() {
grid.setElement(0, 0, "0, 0");
grid.setElement(0, 1, "0, 1");
grid.setElement(0, 2, "0, 2");
grid.setElement(1, 0, "1, 0");
grid.setElement(1, 1, "1, 1");
grid.setElement(1, 2, "1, 2");
assertEquals("0, 0", grid.getElement(0, 0));
assertEquals("0, 1", grid.getElement(0, 1));
assertEquals("0, 2", grid.getElement(0, 2));
assertEquals("1, 0", grid.getElement(1, 0));
assertEquals("1, 1", grid.getElement(1, 1));
assertEquals("1, 2", grid.getElement(1, 2));
}
@Test
@DisplayName("Check the elements in the grid with row-first order")
public void testGridIteratorRowMajor() {
StringGridIterator iterator = new StringGridIterator(grid, true);
grid.setElement(0, 0, "0, 0");
grid.setElement(0, 1, "0, 1");
grid.setElement(0, 2, "0, 2");
grid.setElement(1, 0, "1, 0");
grid.setElement(1, 1, "1, 1");
grid.setElement(1, 2, "1, 2");
assertTrue(iterator.hasNext());
assertEquals("0, 0", iterator.next());
assertTrue(iterator.hasNext());
assertEquals("0, 1", iterator.next());
assertTrue(iterator.hasNext());
assertEquals("0, 2", iterator.next());
assertTrue(iterator.hasNext());
assertEquals("1, 0", iterator.next());
assertTrue(iterator.hasNext());
assertEquals("1, 1", iterator.next());
assertTrue(iterator.hasNext());
// False after going through the last one
assertEquals("1, 2", iterator.next());
assertFalse(iterator.hasNext());
}
@Test
@DisplayName("Check the elements in the grid with column-first order")
public void testGridIteratorColumnMajor() {
StringGridIterator iterator = new StringGridIterator(grid, false);
grid.setElement(0, 0, "0, 0");
grid.setElement(0, 1, "0, 1");
grid.setElement(0, 2, "0, 2");
grid.setElement(1, 0, "1, 0");
grid.setElement(1, 1, "1, 1");
grid.setElement(1, 2, "1, 2");
assertTrue(iterator.hasNext());
assertEquals("0, 0", iterator.next(), "A cell was incorrect");
assertTrue(iterator.hasNext(), "Incorrect number of cells in the grid");
assertEquals("1, 0", iterator.next(), "A cell was incorrect");
assertTrue(iterator.hasNext(), "Incorrect number of cells in the grid");
assertEquals("0, 1", iterator.next(), "A cell was incorrect");
assertTrue(iterator.hasNext(), "Incorrect number of cells in the grid");
assertEquals("1, 1", iterator.next(), "A cell was incorrect");
assertTrue(iterator.hasNext(), "Incorrect number of cells in the grid");
assertEquals("0, 2", iterator.next(), "A cell was incorrect");
assertTrue(iterator.hasNext(), "Incorrect number of cells in the grid");
// False after going through the last one
assertEquals("1, 2", iterator.next());
assertFalse(iterator.hasNext(), "Incorrect number of cells in the grid");
}
}