introduce bitloops
This commit is contained in:
@@ -90,10 +90,10 @@ public class MainTest {
|
||||
grid.setLetter(OFF_0_0, LETTER_A);
|
||||
grid.setLetter(OFF_2_3, LETTER_Z);
|
||||
|
||||
Assertions.assertEquals(LETTER_A, grid.byteAt(OFF_0_0));
|
||||
Assertions.assertEquals(CLUE_UP, grid.byteAt(OFF_1_2));
|
||||
Assertions.assertEquals(LETTER_Z, grid.byteAt(OFF_2_3));
|
||||
Assertions.assertEquals(DASH, grid.byteAt(OFF_1_1));
|
||||
Assertions.assertEquals(LETTER_A, grid.letter32At(OFF_0_0));
|
||||
Assertions.assertEquals(CLUE_UP, grid.letter32At(OFF_1_2));
|
||||
Assertions.assertEquals(LETTER_Z, grid.letter32At(OFF_2_3));
|
||||
Assertions.assertEquals(DASH, grid.letter32At(OFF_1_1));
|
||||
|
||||
// Test isLetterAt
|
||||
Assertions.assertTrue(grid.notClue(OFF_0_0));
|
||||
@@ -104,7 +104,7 @@ public class MainTest {
|
||||
// Test isDigitAt
|
||||
Assertions.assertFalse(grid.isClue(0));
|
||||
Assertions.assertTrue(grid.isClue(OFF_1_2));
|
||||
Assertions.assertEquals(CLUE_UP, grid.digitAt(OFF_1_2));
|
||||
Assertions.assertEquals(CLUE_UP, clues.digitAt(OFF_1_2));
|
||||
Assertions.assertFalse(grid.isClue(OFF_2_3));
|
||||
Assertions.assertFalse(grid.isClue(OFF_1_1));
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ public class SwedishGeneratorTest {
|
||||
void testGrid() {
|
||||
var grid = Grid.createEmpty();
|
||||
grid.setLetter(OFF_0_0, LETTER_A);
|
||||
assertEquals('A', grid.byteAt(OFF_0_0));
|
||||
assertEquals('A', grid.letter32At(OFF_0_0));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -311,9 +311,9 @@ public class SwedishGeneratorTest {
|
||||
|
||||
// 1. Successful placement in empty grid
|
||||
assertTrue(placeWord(grid, s, w1, undoBuffer, 0));
|
||||
assertEquals('A', grid.byteAt(OFF_0_0));
|
||||
assertEquals('B', grid.byteAt(OFF_0_1));
|
||||
assertEquals('C', grid.byteAt(OFF_0_2));
|
||||
assertEquals('A', grid.letter32At(OFF_0_0));
|
||||
assertEquals('B', grid.letter32At(OFF_0_1));
|
||||
assertEquals('C', grid.letter32At(OFF_0_2));
|
||||
assertEquals(lo, undoBuffer[0]);
|
||||
|
||||
// 2. Successful placement with partial overlap (same characters)
|
||||
@@ -324,18 +324,18 @@ public class SwedishGeneratorTest {
|
||||
var w2 = Lemma.from("ABD");
|
||||
assertFalse(placeWord(grid, s, w2, undoBuffer, 2));
|
||||
// Verify grid is unchanged (still "ABC")
|
||||
assertEquals('A', grid.byteAt(OFF_0_0));
|
||||
assertEquals('B', grid.byteAt(OFF_0_1));
|
||||
assertEquals('C', grid.byteAt(OFF_0_2));
|
||||
assertEquals('A', grid.letter32At(OFF_0_0));
|
||||
assertEquals('B', grid.letter32At(OFF_0_1));
|
||||
assertEquals('C', grid.letter32At(OFF_0_2));
|
||||
|
||||
// 4. Partial placement then conflict (rollback)
|
||||
grid = Grid.createEmpty();
|
||||
grid.setLetter(OFF_0_2, LETTER_X); // Conflict at the end
|
||||
assertFalse(placeWord(grid, s, w1, undoBuffer, 3));
|
||||
// Verify grid is still empty (except for 'X')
|
||||
assertEquals(DASH, grid.byteAt(OFF_0_0));
|
||||
assertEquals(DASH, grid.byteAt(OFF_0_1));
|
||||
assertEquals('X', grid.byteAt(OFF_0_2));
|
||||
assertEquals(DASH, grid.letter32At(OFF_0_0));
|
||||
assertEquals(DASH, grid.letter32At(OFF_0_1));
|
||||
assertEquals('X', grid.letter32At(OFF_0_2));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -350,13 +350,13 @@ public class SwedishGeneratorTest {
|
||||
|
||||
var placed = placeWord(grid, s, w, undoBuffer, 0);
|
||||
assertTrue(placed);
|
||||
assertEquals('A', grid.byteAt(OFF_0_1));
|
||||
assertEquals('Z', grid.byteAt(OFF_0_2));
|
||||
assertEquals('A', grid.letter32At(OFF_0_1));
|
||||
assertEquals('Z', grid.letter32At(OFF_0_2));
|
||||
assertEquals(lo, undoBuffer[0]);
|
||||
|
||||
grid.undoPlace(undoBuffer[0], undoBuffer[1]);
|
||||
assertEquals(DASH, grid.byteAt(OFF_0_1));
|
||||
assertEquals(DASH, grid.byteAt(OFF_0_2));
|
||||
assertEquals(DASH, grid.letter32At(OFF_0_1));
|
||||
assertEquals(DASH, grid.letter32At(OFF_0_2));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user