introduce bitloops
This commit is contained in:
@@ -15,40 +15,36 @@ public class SwedishGeneratorTest {
|
||||
void testPatternForSlotAllLetters() {
|
||||
var grid = new Grid(new byte[]{ 65, 66, 67 }); // A B C
|
||||
var slot = Slot.from(18, ((long) 0) | ((long) 1 << 7) | ((long) 2 << 14), 3);
|
||||
var pattern = new byte[3];
|
||||
patternForSlot(grid, slot, pattern);
|
||||
long pattern = patternForSlot(grid, slot);
|
||||
|
||||
assertArrayEquals(new byte[]{ 'A', 'B', 'C' }, pattern);
|
||||
assertEquals(1 | (2 << 5) | (3 << 10), pattern);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testPatternForSlotMixed() {
|
||||
var grid = new Grid(new byte[]{ 65, DASH, 67 }); // A - C
|
||||
var slot = Slot.from(1 << 4 | 2, ((long) 0) | ((long) 1 << 7) | ((long) 2 << 14), 3);
|
||||
var pattern = new byte[3];
|
||||
patternForSlot(grid, slot, pattern);
|
||||
long pattern = patternForSlot(grid, slot);
|
||||
|
||||
assertArrayEquals(new byte[]{ 'A', DASH, 'C' }, pattern);
|
||||
assertEquals(1 | (0 << 5) | (3 << 10), pattern);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testPatternForSlotAllDashes() {
|
||||
var grid = new Grid(new byte[]{ DASH, DASH, DASH }); // - - -
|
||||
var slot = Slot.from(1 << 4 | 2, ((long) 0) | ((long) 1 << 7) | ((long) 2 << 14), 3);
|
||||
var pattern = new byte[3];
|
||||
patternForSlot(grid, slot, pattern);
|
||||
long pattern = patternForSlot(grid, slot);
|
||||
|
||||
assertArrayEquals(new byte[]{ DASH, DASH, DASH }, pattern);
|
||||
assertEquals(0, pattern);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testPatternForSlotSingleLetter() {
|
||||
var grid = new Grid(new byte[]{ 65, DASH, DASH }); // A - -
|
||||
var slot = Slot.from(1 << 4 | 2, ((long) 0) | ((long) 1 << 7) | ((long) 2 << 14), 3);
|
||||
var pattern = new byte[3];
|
||||
patternForSlot(grid, slot, pattern);
|
||||
long pattern = patternForSlot(grid, slot);
|
||||
|
||||
assertArrayEquals(new byte[]{ 'A', DASH, DASH }, pattern);
|
||||
assertEquals(1, pattern);
|
||||
}
|
||||
@Test
|
||||
void testRng() {
|
||||
@@ -198,7 +194,7 @@ public class SwedishGeneratorTest {
|
||||
|
||||
// Pattern "APP--" for length 5
|
||||
var context = new Context();
|
||||
context.setPatter(new byte[]{ 'A', 'P', 'P', DASH, DASH });
|
||||
context.setPattern(Lemma.pack(new byte[]{ 'A', 'P', 'P', DASH, DASH }));
|
||||
var info = candidateInfoForPattern(context, dict.index()[5], 5);
|
||||
|
||||
assertEquals(2, info.count());
|
||||
@@ -214,7 +210,7 @@ public class SwedishGeneratorTest {
|
||||
grid.setClue(0, (byte) '2');
|
||||
// This should detect a slot starting at 0,1 with length 2 (0,1 and 0,2)
|
||||
|
||||
var slots = gen.extractSlots(grid);
|
||||
var slots = extractSlots(grid);
|
||||
// Depending on MAX_WORD_LENGTH and grid size.
|
||||
// In 3x3, if we have '2' at 0,0, rr=0, cc=1.
|
||||
// while loop:
|
||||
|
||||
Reference in New Issue
Block a user