introduce bitloops
This commit is contained in:
@@ -10,6 +10,8 @@ import puzzle.SwedishGenerator.Grid;
|
||||
import puzzle.SwedishGenerator.Lemma;
|
||||
import puzzle.SwedishGenerator.Rng;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.HashMap;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
@@ -29,7 +31,7 @@ public class ExportFormatTest {
|
||||
var clueMap = new HashMap<Integer, Lemma>();
|
||||
// key = (cellIndex << 4) | direction
|
||||
var key = (0 << 4) | 2;
|
||||
var lemma = new Lemma("TEST", 1, "A test word");
|
||||
var lemma = new Lemma("TEST", 1);
|
||||
clueMap.put(key, lemma);
|
||||
|
||||
// Manually fill the grid letters for "TEST" at (0,1), (0,2), (0,3), (0,4)
|
||||
@@ -94,4 +96,16 @@ public class ExportFormatTest {
|
||||
assertTrue(row.matches("#+"));
|
||||
}
|
||||
}
|
||||
@Test
|
||||
void testIndex() {
|
||||
var csv = Paths.get("nl_score_hints_v3.csv");
|
||||
var idx = Paths.get("nl_score_hints_v3.idx");
|
||||
|
||||
try (var svc = new CsvIndexService(csv, idx)) {
|
||||
System.out.println(svc.getLine(1319));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -103,19 +103,19 @@ public class SwedishGeneratorTest {
|
||||
|
||||
@Test
|
||||
void testLemmaAndDict() {
|
||||
var l2a = new Lemma("IN", 1, "BIJ");
|
||||
var l4a = new Lemma("INER", 1, "BIJER");
|
||||
var l6a = new Lemma("INEREN", 1, "BIJERE");
|
||||
var l7a = new Lemma("INERENA", 1, "BIJERE");
|
||||
var l8a = new Lemma("INERENAE", 1, "BIJERE");
|
||||
var l2a = new Lemma("IN", 1);
|
||||
var l4a = new Lemma("INER", 1);
|
||||
var l6a = new Lemma("INEREN", 1);
|
||||
var l7a = new Lemma("INERENA", 1);
|
||||
var l8a = new Lemma("INERENAE", 1);
|
||||
|
||||
var l1 = new Lemma("APPLE", 5, "A fruit");
|
||||
var l1 = new Lemma("APPLE", 5);
|
||||
Assertions.assertArrayEquals("APPLE".getBytes(StandardCharsets.US_ASCII), l1.word());
|
||||
assertEquals(5, l1.word().length);
|
||||
assertEquals(5, l1.simpel());
|
||||
assertEquals((byte) 'A', l1.byteAt(0));
|
||||
|
||||
var l2 = new Lemma("AXE", 2, "A tool");
|
||||
var l2 = new Lemma("AXE", 2);
|
||||
var dict = new Dict(new Lemma[]{ l1, l2, l2a, l4a, l6a, l7a, l8a });
|
||||
|
||||
assertEquals(1, dict.index()[3].words().size());
|
||||
@@ -179,15 +179,15 @@ public class SwedishGeneratorTest {
|
||||
|
||||
@Test
|
||||
void testCandidateInfoForPattern() {
|
||||
var l0 = new Lemma("IN", 1, "BIJ");
|
||||
var l3a = new Lemma("INE", 1, "BIJE");
|
||||
var l4a = new Lemma("INER", 1, "BIJER");
|
||||
var l6a = new Lemma("INEREN", 1, "BIJERE");
|
||||
var l7a = new Lemma("INERENA", 1, "BIJERE");
|
||||
var l8a = new Lemma("INERENAE", 1, "BIJERE");
|
||||
var l1 = new Lemma("APPLE", 1, "fruit");
|
||||
var l2 = new Lemma("APPLY", 1, "verb");
|
||||
var l3 = new Lemma("BANAN", 1, "fruit");
|
||||
var l0 = new Lemma("IN", 1);
|
||||
var l3a = new Lemma("INE", 1);
|
||||
var l4a = new Lemma("INER", 1);
|
||||
var l6a = new Lemma("INEREN", 1);
|
||||
var l7a = new Lemma("INERENA", 1);
|
||||
var l8a = new Lemma("INERENAE", 1);
|
||||
var l1 = new Lemma("APPLE", 1);
|
||||
var l2 = new Lemma("APPLY", 1);
|
||||
var l3 = new Lemma("BANAN", 1);
|
||||
var dict = new Dict(new Lemma[]{ l0, l1, l2, l3, l3a, l4a, l6a, l7a, l8a });
|
||||
|
||||
// Pattern "APP--" for length 5
|
||||
@@ -274,7 +274,7 @@ public class SwedishGeneratorTest {
|
||||
// r(i) and c(i) are used by placeWord.
|
||||
var packedPos = ((long) Grid.offset(0, 0)) | (((long) Grid.offset(0, 1)) << 7) | (((long) Grid.offset(0, 2)) << 14);
|
||||
var s = Slot.from(0, packedPos, 3);
|
||||
var w1 = new Lemma("ABC", 1, "test");
|
||||
var w1 = new Lemma("ABC", 1);
|
||||
var undoBuffer = new int[10];
|
||||
|
||||
// 1. Successful placement in empty grid
|
||||
@@ -289,7 +289,7 @@ public class SwedishGeneratorTest {
|
||||
assertEquals(0L, undoBuffer[1]); // 0 new characters placed
|
||||
|
||||
// 3. Conflict: place "ABD" where "ABC" is
|
||||
var w2 = new Lemma("ABD", 1, "conflict");
|
||||
var w2 = new Lemma("ABD", 1);
|
||||
assertFalse(placeWord(grid, s, w2, undoBuffer, 2));
|
||||
// Verify grid is unchanged (still "ABC")
|
||||
assertEquals('A', grid.byteAt(Grid.offset(0, 0)));
|
||||
@@ -312,7 +312,7 @@ public class SwedishGeneratorTest {
|
||||
// Slot at 0,1 length 2
|
||||
var packedPos = ((long) Grid.offset(0, 1)) | (((long) Grid.offset(0, 2)) << 7);
|
||||
var s = Slot.from((0 << 8) | (1 << 4) | 2, packedPos, 2);
|
||||
var w = new Lemma("AZ", 1, "A to Z");
|
||||
var w = new Lemma("AZ", 1);
|
||||
var undoBuffer = new int[10];
|
||||
|
||||
var placed = placeWord(grid, s, w, undoBuffer, 0);
|
||||
|
||||
Reference in New Issue
Block a user