redo
This commit is contained in:
@@ -5,7 +5,6 @@ import anno.DictGen;
|
||||
import lombok.val;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import precomp.Neighbors9x8;
|
||||
import puzzle.Export.Vestigium;
|
||||
import puzzle.Export.Signa;
|
||||
import puzzle.Export.Puzzle;
|
||||
@@ -180,7 +179,7 @@ public class MainTest {
|
||||
r7c0d2, r7c1d1, r7c4d2, r7c5d2, r7c8d3
|
||||
);
|
||||
var slotInfo = mask.slots(DictData950.DICT950);
|
||||
var grid = Masker.grid(slotInfo, Neighbors9x8.SIZE);
|
||||
var grid = Masker.grid(slotInfo);
|
||||
var filled = fillMask(rng, slotInfo, grid.lo, grid.hi, grid.g);
|
||||
Assertions.assertTrue(filled.ok(), "Puzzle generation failed (not ok)");
|
||||
Assertions.assertEquals(17, Slotinfo.wordCount(0, slotInfo), "Number of assigned words changed");
|
||||
@@ -189,7 +188,7 @@ public class MainTest {
|
||||
Assertions.assertEquals(193L, grid.hi);
|
||||
var g = new Puzzle(grid, mask.c());
|
||||
g.gridToString();
|
||||
var aa = new PuzzleResult(mask, g, slotInfo, filled).exportFormatFromFilled(new Rewards(1, 1, 1));
|
||||
var aa = new PuzzleResult(mask, g, slotInfo, filled).exportFormatFromFilled(new Rewards(1, 1, 1), Masker.IT, 3);
|
||||
System.out.println(String.join("\n", aa.grid()));
|
||||
|
||||
}
|
||||
|
||||
@@ -112,22 +112,22 @@ public class MarkerTest {
|
||||
var g = Clues.createEmpty();
|
||||
|
||||
// Room for Right clue at (0,0) (length 8)
|
||||
assertTrue(Masker.hasRoomForClue(g,r0c0d1.slotKey));
|
||||
assertTrue(Masker.hasRoomForClue(g, r0c0d1.slotKey));
|
||||
|
||||
// No room for Right clue at (0,8) (length 0 < MIN_LEN)
|
||||
assertFalse(Masker.hasRoomForClue(g,r0c8d1.slotKey));
|
||||
assertFalse(Masker.hasRoomForClue(g, r0c8d1.slotKey));
|
||||
|
||||
// Blocked room
|
||||
// Let's place a clue that leaves only 1 cell for another clue.
|
||||
g.setClue(r0c2d1);
|
||||
// Now Right at (0,0) only has (0,1) available -> length 1 < MIN_LEN (which is 2)
|
||||
assertFalse(Masker.hasRoomForClue(g,r0c0d1.slotKey));
|
||||
assertFalse(Masker.hasRoomForClue(g, r0c0d1.slotKey));
|
||||
|
||||
// But enough room
|
||||
g.clearClueLo(0L);
|
||||
g.setClue(r0c3d1);
|
||||
// Now Right at (0,0) has (0,1), (0,2) -> length 2 == MIN_LEN
|
||||
assertTrue(Masker.hasRoomForClue(g,r0c0d1.slotKey));
|
||||
assertTrue(Masker.hasRoomForClue(g, r0c0d1.slotKey));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -307,7 +307,7 @@ public class MarkerTest {
|
||||
}, fillResult);
|
||||
|
||||
var rewards = new Rewards(10, 5, 1);
|
||||
var exported = puzzleResult.exportFormatFromFilled(rewards);
|
||||
var exported = puzzleResult.exportFormatFromFilled(rewards, Masker.IT, 3);
|
||||
|
||||
assertNotNull(exported);
|
||||
assertEquals(709, exported.difficulty());
|
||||
@@ -346,7 +346,7 @@ public class MarkerTest {
|
||||
var fillResult = new FillResult(true, 0, 0, 0, 0);
|
||||
var puzzleResult = new PuzzleResult(new Signa(clues), new Puzzle(grid, clues), new Slotinfo[0], fillResult);
|
||||
|
||||
var exported = puzzleResult.exportFormatFromFilled(new Rewards(0, 0, 0));
|
||||
var exported = puzzleResult.exportFormatFromFilled(new Rewards(0, 0, 0), Masker.IT, 3);
|
||||
|
||||
assertNotNull(exported);
|
||||
assertEquals(0, exported.words().length);
|
||||
|
||||
@@ -5,7 +5,6 @@ import anno.DictGen;
|
||||
import anno.Dictionaries;
|
||||
import lombok.val;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import precomp.Neighbors9x8;
|
||||
import puzzle.Export.Clue;
|
||||
import puzzle.Export.Signa;
|
||||
import puzzle.Export.Puzzle;
|
||||
@@ -73,7 +72,7 @@ public class PerformanceTest {
|
||||
|
||||
for (var i = 0; i < iterations; i++) {
|
||||
val slotInfo = Masker.slots(arr[c], DICT800);
|
||||
var grid = Masker.grid(slotInfo, Neighbors9x8.SIZE);
|
||||
var grid = Masker.grid(slotInfo);
|
||||
val result = fillMask(rng, slotInfo,grid.lo,grid.hi, grid.g);
|
||||
if (result.ok()) successCount++;
|
||||
totalNodes += result.nodes();
|
||||
@@ -143,7 +142,7 @@ public class PerformanceTest {
|
||||
// Reset assignments for each iteration
|
||||
for (var s : slots) s.assign().w = 0;
|
||||
|
||||
var grid = Masker.grid(slots, Neighbors9x8.SIZE);
|
||||
var grid = Masker.grid(slots);
|
||||
val result = fillMask(rng, slots, grid.lo,grid.hi,grid.g);
|
||||
if (result.ok()) {
|
||||
successCount++;
|
||||
|
||||
@@ -12,6 +12,7 @@ import puzzle.Export.Signa;
|
||||
import puzzle.Export.Vestigium;
|
||||
import puzzle.SwedishGenerator.Rng;
|
||||
import puzzle.dict800.DictData800;
|
||||
import java.util.Arrays;
|
||||
import java.util.stream.Collectors;
|
||||
import static precomp.Const9x8.Cell.r0c0d1;
|
||||
import static precomp.Const9x8.Cell.r1c0d1;
|
||||
@@ -35,9 +36,16 @@ public class TestDuplication {
|
||||
Assertions.assertEquals(4, mask.clueCount());
|
||||
val map = mask.stream().collect(Collectors.toMap(Vestigium::index, Vestigium::clue));
|
||||
Assertions.assertEquals(4, map.size());
|
||||
var slots = Masker_Neighbors4x3.slots(mask.c(), DictData800.DICT800);
|
||||
var grid = Masker_Neighbors4x3.grid(slots, Masker_Neighbors4x3.SIZE);
|
||||
var slots = Masker_Neighbors3x4.slots(mask.c(), DictData800.DICT800);
|
||||
var grid = Masker_Neighbors3x4.grid(slots);
|
||||
var filled = SwedishGenerator.fillMask(new Rng(1), slots, grid.lo, grid.hi, grid.g);
|
||||
val res = new PuzzleResult(new Signa(mask.c()), new Puzzle(grid, mask.c()), slots, filled).exportFormatFromFilled(new Rewards(0, 0, 0));
|
||||
grid.lo = Masker_Neighbors3x4.MASK_LO & ~mask.c().lo;
|
||||
grid.hi = Masker_Neighbors3x4.MASK_HI & ~mask.c().hi;
|
||||
var grid1 = new Puzzle(grid, mask.c());
|
||||
var result = new PuzzleResult(new Signa(mask.c()), grid1, slots, filled);
|
||||
if (filled.ok()) {
|
||||
val res = result.exportFormatFromFilled(new Rewards(0, 0, 0), Masker_Neighbors3x4.IT, 2);
|
||||
System.out.println(String.join("\n", res.grid()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user