introduce bitloops
This commit is contained in:
@@ -11,10 +11,11 @@ import static puzzle.SwedishGenerator.*;
|
||||
|
||||
public class SwedishGeneratorTest {
|
||||
|
||||
static final byte D_BYTE_2 = 50;
|
||||
@Test
|
||||
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 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);
|
||||
long pattern = patternForSlot(grid, slot);
|
||||
|
||||
assertEquals(1 | (2 << 5) | (3 << 10), pattern);
|
||||
@@ -22,8 +23,8 @@ public class SwedishGeneratorTest {
|
||||
|
||||
@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 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);
|
||||
long pattern = patternForSlot(grid, slot);
|
||||
|
||||
assertEquals(1 | (0 << 5) | (3 << 10), pattern);
|
||||
@@ -31,8 +32,8 @@ public class SwedishGeneratorTest {
|
||||
|
||||
@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 grid = new Grid(new byte[]{ DASH, DASH, DASH }); // - - -
|
||||
var slot = Slot.from(1 << 4 | 2, ((long) 0) | ((long) 1 << 7) | ((long) 2 << 14), 3);
|
||||
long pattern = patternForSlot(grid, slot);
|
||||
|
||||
assertEquals(0, pattern);
|
||||
@@ -40,8 +41,8 @@ public class SwedishGeneratorTest {
|
||||
|
||||
@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 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);
|
||||
long pattern = patternForSlot(grid, slot);
|
||||
|
||||
assertEquals(1, pattern);
|
||||
@@ -135,7 +136,7 @@ public class SwedishGeneratorTest {
|
||||
// key = (r << 8) | (c << 4) | d
|
||||
var offset = Grid.offset(2, 3);
|
||||
System.out.println("[DEBUG_LOG] Grid.offset(2, 3) = " + offset);
|
||||
var key = (offset << Slot.BIT_FOR_DIR) | 5;
|
||||
var key = (offset << Slot.BIT_FOR_DIR) | 5;
|
||||
System.out.println("[DEBUG_LOG] key = " + key);
|
||||
long packedPos = 0;
|
||||
// pos 0: (2, 5)
|
||||
@@ -273,7 +274,8 @@ public class SwedishGeneratorTest {
|
||||
assertTrue(f1 >= 1_000_000_000L);
|
||||
|
||||
// Add a slot
|
||||
grid.setClue(0, OFFSETS[2].dbyte());
|
||||
//var dbyte = OFFSETS[2].dbyte();
|
||||
grid.setClue(0, D_BYTE_2);
|
||||
var f2 = gen.maskFitness(grid);
|
||||
assertTrue(f2 < f1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user