Gather data

This commit is contained in:
mike
2026-01-09 21:24:52 +01:00
parent dc331fc96b
commit 95891d9efe
10 changed files with 572 additions and 584 deletions

View File

@@ -1,10 +1,9 @@
package puzzle;
import org.junit.jupiter.api.Test;
import puzzle.ExportFormat.ExportedPuzzle;
import puzzle.ExportFormat.Gridded;
import puzzle.ExportFormat.Rewards;
import puzzle.Main.PuzzleResult;
import puzzle.Export.Gridded;
import puzzle.Export.Rewards;
import puzzle.Export.PuzzleResult;
import puzzle.SwedishGenerator.FillResult;
import puzzle.SwedishGenerator.Grid;
import puzzle.SwedishGenerator.Lemma;
@@ -26,8 +25,8 @@ public class ExportFormatTest {
var clueMap = new HashMap<Integer, Lemma>();
// key = (cellIndex << 4) | direction
int key = (0 << 4) | 2;
Lemma lemma = new Lemma("TEST", 1, "A test word");
var key = (0 << 4) | 2;
var lemma = new Lemma("TEST", 1, "A test word");
clueMap.put(key, lemma);
// Manually fill the grid letters for "TEST" at (0,1), (0,2), (0,3), (0,4)
@@ -41,8 +40,8 @@ public class ExportFormatTest {
var fillResult = new FillResult(true, new Gridded(grid), clueMap, null);
var puzzleResult = new PuzzleResult(swe, null, null, fillResult);
Rewards rewards = new Rewards(10, 5, 1);
ExportedPuzzle exported = ExportFormat.exportFormatFromFilled(puzzleResult, 2, rewards);
var rewards = new Rewards(10, 5, 1);
var exported = puzzleResult.exportFormatFromFilled(2, rewards);
assertNotNull(exported);
assertEquals(2, exported.difficulty());
@@ -81,13 +80,13 @@ public class ExportFormatTest {
var fillResult = new FillResult(true, new Gridded(grid), new HashMap<>(), null);
var puzzleResult = new PuzzleResult(swe, null, null, fillResult);
ExportedPuzzle exported = ExportFormat.exportFormatFromFilled(puzzleResult, 1, new Rewards(0, 0, 0));
var exported = puzzleResult.exportFormatFromFilled(1, new Rewards(0, 0, 0));
assertNotNull(exported);
assertEquals(0, exported.words().length);
// Should return full grid with '#'
assertEquals(SwedishGenerator.R, exported.gridv2().size());
for (String row : exported.gridv2()) {
for (var row : exported.gridv2()) {
assertEquals(SwedishGenerator.C, row.length());
assertTrue(row.matches("#+"));
}

View File

@@ -2,7 +2,7 @@ package puzzle;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import puzzle.Main.PuzzleResult;
import puzzle.Export.PuzzleResult;
import puzzle.SwedishGenerator.Rng;
import puzzle.SwedishGenerator.Slot;
import java.util.concurrent.atomic.AtomicInteger;
@@ -64,7 +64,7 @@ public class MainTest {
grid.setClue(0, (byte) '2'); // right
var count = new AtomicInteger(0);
generator.forEachSlot(grid, (key, packedPos, len) -> {
grid.forEachSlot((key, packedPos, len) -> {
count.incrementAndGet();
assertEquals(8, len);
assertEquals(0, Grid.r(Slot.offset(packedPos, 0)));

View File

@@ -3,6 +3,7 @@ package puzzle;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import puzzle.SwedishGenerator.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import static org.junit.jupiter.api.Assertions.*;
@@ -103,7 +104,7 @@ public class SwedishGeneratorTest {
@Test
void testLemmaAndDict() {
var l1 = new Lemma("APPLE", 5, "A fruit");
Assertions.assertArrayEquals("APPLE".getBytes(java.nio.charset.StandardCharsets.US_ASCII), l1.word());
Assertions.assertArrayEquals("APPLE".getBytes(StandardCharsets.US_ASCII), l1.word());
assertEquals(5, l1.word().length);
assertEquals(5, l1.simpel());
assertEquals((byte) 'A', l1.byteAt(0));
@@ -116,7 +117,7 @@ public class SwedishGeneratorTest {
var entry3 = dict.index()[3];
assertEquals(1, entry3.words().size());
Assertions.assertArrayEquals("AXE".getBytes(java.nio.charset.StandardCharsets.US_ASCII), entry3.words().getFirst().word());
Assertions.assertArrayEquals("AXE".getBytes(StandardCharsets.US_ASCII), entry3.words().getFirst().word());
// Check pos indexing
// AXE: A at 0, X at 1, E at 2
@@ -181,7 +182,7 @@ public class SwedishGeneratorTest {
// Pattern "APP--" for length 5
var context = new Context();
context.setPatter(new byte[]{ 'A', 'P', 'P', SwedishGenerator.DASH, SwedishGenerator.DASH });
var info = gen.candidateInfoForPattern(context, dict.index()[5], 5);
var info = SwedishGenerator.candidateInfoForPattern(context, dict.index()[5], 5);
assertEquals(2, info.count());
assertNotNull(info.indices());