redo
This commit is contained in:
@@ -4,9 +4,8 @@ import lombok.val;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import puzzle.Export.Signa;
|
||||
import puzzle.Export.Puzzle;
|
||||
import puzzle.Export.Placed;
|
||||
import puzzle.Export.PuzzleResult;
|
||||
import puzzle.Export.Rewards;
|
||||
import puzzle.Riddle.Rewards;
|
||||
import puzzle.SwedishGenerator.Assign;
|
||||
import puzzle.SwedishGenerator.FillResult;
|
||||
import puzzle.SwedishGenerator.Lemma;
|
||||
@@ -27,10 +26,13 @@ import static puzzle.Masker.STACK_SIZE;
|
||||
|
||||
public class MarkerTest {
|
||||
|
||||
private static Masker emptyMasker() {
|
||||
return new Masker(new Rng(42), new int[STACK_SIZE], Clues.createEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testValidRandomMask() {
|
||||
var rng = new Rng(42);
|
||||
var masker = new Masker(rng, new int[STACK_SIZE], Clues.createEmpty());
|
||||
var masker = emptyMasker();
|
||||
for (var i = 0; i < 200; i++) {
|
||||
for (var j = 19; j < 24; j++) {
|
||||
var clues = masker.randomMask(j);
|
||||
@@ -40,15 +42,13 @@ public class MarkerTest {
|
||||
}
|
||||
@Test
|
||||
void testValidMutate() {
|
||||
var rng = new Rng(42);
|
||||
var cache = Clues.createEmpty();
|
||||
var masker = new Masker(rng, new int[STACK_SIZE], cache);
|
||||
var masker = emptyMasker();
|
||||
var sim = 0.0;
|
||||
var simCount = 0.0;
|
||||
for (var i = 0; i < 200; i++) {
|
||||
for (var j = 19; j < 24; j++) {
|
||||
var clues = masker.randomMask(j);
|
||||
val orig = cache.from(clues);
|
||||
val orig = masker.cache(clues);
|
||||
simCount++;
|
||||
masker.mutate(clues);
|
||||
sim += Masker.similarity(orig, clues);
|
||||
@@ -59,9 +59,7 @@ public class MarkerTest {
|
||||
}
|
||||
@Test
|
||||
void testCross() {
|
||||
var rng = new Rng(42);
|
||||
var cache = Clues.createEmpty();
|
||||
var masker = new Masker(rng, new int[STACK_SIZE], cache);
|
||||
var masker = emptyMasker();
|
||||
var sim = 0.0;
|
||||
var simCount = 0.0;
|
||||
for (var i = 0; i < 200; i++) {
|
||||
@@ -97,7 +95,7 @@ public class MarkerTest {
|
||||
|
||||
@Test
|
||||
void testIsValid() {
|
||||
var masker = new Masker(new Rng(42), new int[STACK_SIZE], Clues.createEmpty());
|
||||
var masker = emptyMasker();
|
||||
assertTrue(masker.isValid(Clues.createEmpty()));
|
||||
|
||||
// Valid clue: Right from (0,0) in 9x8 grid. Length is 8.
|
||||
@@ -132,7 +130,7 @@ public class MarkerTest {
|
||||
|
||||
@Test
|
||||
void testIntersectionConstraint() {
|
||||
var masker = new Masker(new Rng(42), new int[STACK_SIZE], Clues.createEmpty());
|
||||
var masker = emptyMasker();
|
||||
// Clue 1: (0,0) Right. Slot cells: (0,1), (0,2), (0,3), (0,4), (0,5), (0,6), (0,7), (0,8)
|
||||
// Clue 2: (1,2) Up. Slot cells: (0,2)
|
||||
// Intersection is exactly 1 cell (0,2). Valid.
|
||||
@@ -152,7 +150,7 @@ public class MarkerTest {
|
||||
|
||||
@Test
|
||||
void testInvalidDirectionBits() {
|
||||
var masker = new Masker(new Rng(42), new int[STACK_SIZE], Clues.createEmpty());
|
||||
var masker = emptyMasker();
|
||||
var g = Clues.createEmpty();
|
||||
// Dir 6 (x=1, r=1, v=0) is invalid
|
||||
g.setClueLo(1L << 0, (byte) 6);
|
||||
@@ -165,8 +163,7 @@ public class MarkerTest {
|
||||
}
|
||||
@Test
|
||||
void testConnectivityPenalty() {
|
||||
var rng = new Rng(42);
|
||||
var masker = new Masker(rng, new int[STACK_SIZE], Clues.createEmpty());
|
||||
var masker = emptyMasker();
|
||||
|
||||
// 1. Maak een masker met één component van clues (bijv. 2 clues die elkaar kruisen)
|
||||
var singleComp = Clues.createEmpty().setClue(r0c0d1).setClue(r2c2d2);
|
||||
@@ -209,8 +206,7 @@ public class MarkerTest {
|
||||
|
||||
@Test
|
||||
void testCornerClueConnectivity() {
|
||||
var rng = new Rng(42);
|
||||
var masker = new Masker(rng, new int[STACK_SIZE], Clues.createEmpty());
|
||||
var masker = emptyMasker();
|
||||
|
||||
// Clue A: (2,0) Right. Slot: (2,1), (2,2), (2,3), ...
|
||||
// Clue B: (1,2) Corner Down. Word starts at (1,3) en gaat omlaag: (1,3), (2,3), (3,3)...
|
||||
@@ -316,7 +312,7 @@ public class MarkerTest {
|
||||
assertEquals(1, exported.words().length);
|
||||
var w = exported.words()[0];
|
||||
assertEquals("TEST", w.word());
|
||||
assertEquals(Placed.HORIZONTAL, w.direction());
|
||||
assertEquals(Riddle.Placed.HORIZONTAL, w.direction());
|
||||
|
||||
// The bounding box should include (0,0) for the arrow and (0,1)-(0,4) for the word.
|
||||
// minR=0, maxR=0, minC=0, maxC=4
|
||||
|
||||
Reference in New Issue
Block a user