introduce bitloops
This commit is contained in:
@@ -4,6 +4,7 @@ import module java.base;
|
||||
import lombok.val;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import precomp.Neighbors9x8.rci;
|
||||
import puzzle.Export.ClueAt;
|
||||
import puzzle.Export.Clued;
|
||||
import puzzle.Export.Gridded;
|
||||
@@ -23,10 +24,10 @@ import static precomp.Const9x8.OFF_1_1;
|
||||
import static precomp.Const9x8.OFF_1_2;
|
||||
import static precomp.Const9x8.OFF_2_1;
|
||||
import static precomp.Const9x8.OFF_2_3;
|
||||
import static puzzle.Export.Clue.DOWN;
|
||||
import static puzzle.Export.Clue.LEFT;
|
||||
import static puzzle.Export.Clue.RIGHT;
|
||||
import static puzzle.Export.Clue.UP;
|
||||
import static puzzle.Export.Clue.DOWN0;
|
||||
import static puzzle.Export.Clue.LEFT3;
|
||||
import static puzzle.Export.Clue.RIGHT1;
|
||||
import static puzzle.Export.Clue.UP2;
|
||||
import static puzzle.SwedishGenerator.Lemma;
|
||||
import static puzzle.SwedishGenerator.Slotinfo;
|
||||
import static puzzle.SwedishGenerator.fillMask;
|
||||
@@ -70,11 +71,11 @@ public class MainTest {
|
||||
assertEquals(1, slots.length);
|
||||
var s = slots[0];
|
||||
assertEquals(8, Masker.Slot.length(s.lo(), s.hi()));
|
||||
var cells = Gridded.cellWalk((byte) s.key(), s.lo(), s.hi()).toArray();
|
||||
assertEquals(0, Masker.IT[cells[0]].r());
|
||||
assertEquals(1, Masker.IT[cells[0]].c());
|
||||
assertEquals(0, Masker.IT[cells[1]].r());
|
||||
assertEquals(2, Masker.IT[cells[1]].c());
|
||||
var cells = Gridded.cellWalk((byte) s.key(), s.lo(), s.hi()).mapToObj(c-> Masker.IT[c]).toArray(rci[]::new);
|
||||
assertEquals(0, cells[0].r());
|
||||
assertEquals(1, cells[0].c());
|
||||
assertEquals(0, cells[1].r());
|
||||
assertEquals(2, cells[1].c());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -125,10 +126,10 @@ public class MainTest {
|
||||
Assertions.assertEquals(CLUE_UP, clueMap.get(OFF_2_1));
|
||||
|
||||
// Test isLetterAt
|
||||
Assertions.assertTrue(clues.notClue(OFF_0_0));
|
||||
Assertions.assertTrue(clues.notClue(OFF_1_2));
|
||||
Assertions.assertTrue(clues.notClue(OFF_2_3));
|
||||
Assertions.assertFalse(clues.isClueLo(OFF_1_1));
|
||||
Assertions.assertFalse(clueMap.containsKey(OFF_0_0));
|
||||
Assertions.assertFalse(clueMap.containsKey(OFF_1_2));
|
||||
Assertions.assertFalse(clueMap.containsKey(OFF_2_3));
|
||||
Assertions.assertFalse(clueMap.containsKey(OFF_1_1));
|
||||
|
||||
// Test isDigitAt
|
||||
Assertions.assertFalse(clues.isClueLo(OFF_0_0));
|
||||
@@ -146,19 +147,19 @@ public class MainTest {
|
||||
@Test
|
||||
public void testCluesDeepCopy() {
|
||||
var clues = new Clued(Masker.Clues.createEmpty());
|
||||
clues.setClueLo(IDX_0_0.lo, RIGHT.dir);
|
||||
clues.setClueLo(IDX_0_1.lo, UP.dir);
|
||||
clues.setClueLo(IDX_1_0.lo, LEFT.dir);
|
||||
clues.setClueLo(IDX_1_1.lo, DOWN.dir);
|
||||
clues.setClueLo(IDX_0_0.lo, RIGHT1.dir);
|
||||
clues.setClueLo(IDX_0_1.lo, UP2.dir);
|
||||
clues.setClueLo(IDX_1_0.lo, LEFT3.dir);
|
||||
clues.setClueLo(IDX_1_1.lo, DOWN0.dir);
|
||||
|
||||
var copy = clues.deepCopyGrid();
|
||||
var clueMap = clues.stream().collect(Collectors.toMap(ClueAt::index, ClueAt::clue));
|
||||
Assertions.assertEquals(CLUE_RIGHT, clueMap.get(OFF_0_0));
|
||||
|
||||
copy.setClueLo(IDX_0_0.lo, DOWN.dir);
|
||||
copy.setClueLo(IDX_0_0.lo, DOWN0.dir);
|
||||
var copied = copy.stream().collect(Collectors.toMap(ClueAt::index, ClueAt::clue));
|
||||
Assertions.assertEquals(DOWN.dir, copied.get(OFF_0_0));
|
||||
Assertions.assertEquals(RIGHT.dir, clueMap.get(OFF_0_0));
|
||||
Assertions.assertEquals(DOWN0.dir, copied.get(OFF_0_0));
|
||||
Assertions.assertEquals(RIGHT1.dir, clueMap.get(OFF_0_0));
|
||||
}
|
||||
@Test
|
||||
public void testMini() {
|
||||
|
||||
Reference in New Issue
Block a user