introduce bitloops

This commit is contained in:
mike
2026-01-14 09:59:24 +01:00
parent 1a56297986
commit 69af69a8b8
3 changed files with 36 additions and 32 deletions

View File

@@ -109,6 +109,12 @@ public class MainTest {
Assertions.assertEquals(LETTER_Z, grid.letter32At(OFF_2_3));
Assertions.assertEquals(DASH, grid.letter32At(OFF_1_1));
// Verify letter mask
Assertions.assertTrue((grid.lo & (1L << OFF_0_0)) != 0);
Assertions.assertTrue((grid.lo & (1L << OFF_2_3)) != 0);
Assertions.assertTrue((grid.lo & (1L << OFF_1_2)) != 0); // Clue also in lo
Assertions.assertTrue((grid.lo & (1L << OFF_1_1)) == 0); // Empty letter cell
// Test isLetterAt
Assertions.assertTrue(clues.notClue(OFF_0_0));
Assertions.assertFalse(clues.notClue(OFF_1_2));
@@ -181,8 +187,8 @@ public class MainTest {
Assertions.assertTrue(filled.ok(), "Puzzle generation failed (not ok)");
Assertions.assertEquals(18, filled.wordCount(), "Number of assigned words changed");
Assertions.assertEquals("SLEDE", Lemma.asWord(filled.clueMap()[282]));
Assertions.assertEquals(74732156493031040L, filled.grid().grid().lo);
Assertions.assertEquals(193L, filled.grid().grid().hi);
Assertions.assertEquals(-1L, filled.grid().grid().lo);
Assertions.assertEquals(255L, filled.grid().grid().hi);
var aa = new PuzzleResult(new Clued(mask), filled).exportFormatFromFilled(1, new Rewards(1, 1, 1));