introduce bitloops
This commit is contained in:
@@ -30,9 +30,8 @@ public class ExportFormatTest {
|
||||
|
||||
var clueMap = new HashMap<Integer, Long>();
|
||||
// key = (cellIndex << 4) | direction
|
||||
var key = (0 << 4) | 2;
|
||||
var lemma = new Lemma("TEST");
|
||||
clueMap.put(key, lemma.word());
|
||||
var key = 2;
|
||||
clueMap.put(key, new Lemma("TEST").word());
|
||||
|
||||
// Manually fill the grid letters for "TEST" at (0,1), (0,2), (0,3), (0,4)
|
||||
grid.setLetter(Grid.offset(0, 1), (byte) 'T');
|
||||
@@ -74,8 +73,8 @@ public class ExportFormatTest {
|
||||
// letterAt only contains letters from placed words.
|
||||
// arrow cells are NOT in letterAt unless they are also part of a word (unlikely).
|
||||
// So (0,0) should be '#'
|
||||
assertEquals(1, exported.gridv2().length);
|
||||
assertEquals("#TEST", exported.gridv2()[0]);
|
||||
assertEquals(1, exported.grid().length);
|
||||
assertEquals("#TEST", exported.grid()[0]);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -90,8 +89,8 @@ public class ExportFormatTest {
|
||||
assertNotNull(exported);
|
||||
assertEquals(0, exported.words().length);
|
||||
// Should return full grid with '#'
|
||||
assertEquals(R, exported.gridv2().length);
|
||||
for (var row : exported.gridv2()) {
|
||||
assertEquals(R, exported.grid().length);
|
||||
for (var row : exported.grid()) {
|
||||
assertEquals(C, row.length());
|
||||
assertTrue(row.matches("#+"));
|
||||
}
|
||||
|
||||
@@ -101,20 +101,20 @@ public class SwedishGeneratorTest {
|
||||
|
||||
@Test
|
||||
void testLemmaAndDict() {
|
||||
var l2a = new Lemma("IN");
|
||||
var l4a = new Lemma("INER");
|
||||
var l6a = new Lemma("INEREN");
|
||||
var l7a = new Lemma("INERENA");
|
||||
var l8a = new Lemma("INERENAE");
|
||||
var l2a = new Lemma("IN").word();
|
||||
var l4a = new Lemma("INER").word();
|
||||
var l6a = new Lemma("INEREN").word();
|
||||
var l7a = new Lemma("INERENA").word();
|
||||
var l8a = new Lemma("INERENAE").word();
|
||||
|
||||
var l1 = new Lemma("APPLE");
|
||||
Assertions.assertEquals(Lemma.pack("APPLE".getBytes(StandardCharsets.US_ASCII)), Lemma.unpackLetters(l1.word()));
|
||||
assertEquals(5, Lemma.length(l1.word()));
|
||||
assertEquals((byte) 'A', l1.byteAt(0));
|
||||
assertEquals(1, l1.intAt(0));
|
||||
var l1 = new Lemma("APPLE").word();
|
||||
Assertions.assertEquals(Lemma.pack("APPLE".getBytes(StandardCharsets.US_ASCII)), Lemma.unpackLetters(l1));
|
||||
assertEquals(5, Lemma.length(l1));
|
||||
assertEquals((byte) 'A', Lemma.byteAt(l1, 0));
|
||||
assertEquals(1, Lemma.intAt(l1, 0));
|
||||
|
||||
var l2 = new Lemma("AXE");
|
||||
var dict = new Dict(new Lemma[]{ l1, l2, l2a, l4a, l6a, l7a, l8a });
|
||||
var l2 = new Lemma("AXE").word();
|
||||
var dict = new Dict(new long[]{ l1, l2, l2a, l4a, l6a, l7a, l8a });
|
||||
|
||||
assertEquals(1, dict.index()[3].words().length);
|
||||
assertEquals(1, dict.index()[5].words().length);
|
||||
@@ -213,16 +213,16 @@ public class SwedishGeneratorTest {
|
||||
|
||||
@Test
|
||||
void testCandidateInfoForPattern() {
|
||||
var l0 = new Lemma("IN");
|
||||
var l3a = new Lemma("INE");
|
||||
var l4a = new Lemma("INER");
|
||||
var l6a = new Lemma("INEREN");
|
||||
var l7a = new Lemma("INERENA");
|
||||
var l8a = new Lemma("INERENAE");
|
||||
var l1 = new Lemma("APPLE");
|
||||
var l2 = new Lemma("APPLY");
|
||||
var l3 = new Lemma("BANAN");
|
||||
var dict = new Dict(new Lemma[]{ l0, l1, l2, l3, l3a, l4a, l6a, l7a, l8a });
|
||||
var l0 = new Lemma("IN").word();
|
||||
var l3a = new Lemma("INE").word();
|
||||
var l4a = new Lemma("INER").word();
|
||||
var l6a = new Lemma("INEREN").word();
|
||||
var l7a = new Lemma("INERENA").word();
|
||||
var l8a = new Lemma("INERENAE").word();
|
||||
var l1 = new Lemma("APPLE").word();
|
||||
var l2 = new Lemma("APPLY").word();
|
||||
var l3 = new Lemma("BANAN").word();
|
||||
var dict = new Dict(new long[]{ l0, l1, l2, l3, l3a, l4a, l6a, l7a, l8a });
|
||||
|
||||
// Pattern "APP--" for length 5
|
||||
var context = new Context();
|
||||
|
||||
Reference in New Issue
Block a user