redo
This commit is contained in:
@@ -58,11 +58,11 @@ public class MainTest {
|
||||
assertEquals(1, slots.length);
|
||||
var s = slots[0];
|
||||
assertEquals(8, Masker.Slot.length(s.lo(), s.hi()));
|
||||
var cells = Puzzle.cellWalk((byte) s.key(), s.lo(), s.hi()).mapToObj(c -> Masker.IT[c]).toArray(rci[]::new);
|
||||
assertEquals(0, cells[0].r());
|
||||
assertEquals(1, cells[0].c());
|
||||
var cells = Puzzle.cellWalk(s.key(), s.lo(), s.hi()).mapToObj(c -> Masker.IT[c]).toArray(rci[]::new);
|
||||
assertEquals(0, cells[1].r());
|
||||
assertEquals(2, cells[1].c());
|
||||
assertEquals(1, cells[1].c());
|
||||
assertEquals(0, cells[2].r());
|
||||
assertEquals(2, cells[2].c());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -186,9 +186,10 @@ public class MainTest {
|
||||
Assertions.assertEquals("BEADEMT", Lemma.asWord(slotInfo[0].assign().w, Export.BYTES.get()));
|
||||
Assertions.assertEquals(74732156493031040L, grid.lo);
|
||||
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), Masker.IT, 3);
|
||||
var g = new Puzzle(grid, mask.c());
|
||||
var result = new PuzzleResult(mask, g, slotInfo, filled);
|
||||
var aa = result.exportFormatFromFilled(new Rewards(1, 1, 1), Masker.IT, 3);
|
||||
result.gridGridToString();
|
||||
System.out.println(String.join("\n", aa.grid()));
|
||||
|
||||
}
|
||||
@@ -204,8 +205,8 @@ public class MainTest {
|
||||
System.out.println("[DEBUG_LOG] Seed found: " + seed);
|
||||
System.out.println("[DEBUG_LOG] ClueMap Size: " + Slotinfo.wordCount(0, res.slots()));
|
||||
System.out.println("[DEBUG_LOG] Grid:");
|
||||
System.out.println(res.grid().renderHuman());
|
||||
System.out.println(res.grid().gridToString());
|
||||
System.out.println(res.gridRenderHuman());
|
||||
System.out.println(res.gridGridToString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,13 @@ import static puzzle.dict900.DictData900.DICT900;
|
||||
simpleMax = 800,
|
||||
minLen = 2,
|
||||
maxLen = 8
|
||||
), @DictGen(
|
||||
packageName = "puzzle.dict800_4",
|
||||
className = "DictData800_4",
|
||||
scv = "/home/mike/dev/puzzle-generator/nl_score_hints_v4.csv",
|
||||
simpleMax = 800,
|
||||
minLen = 2,
|
||||
maxLen = 4
|
||||
) })
|
||||
public class PerformanceTest {
|
||||
|
||||
@@ -73,7 +80,7 @@ public class PerformanceTest {
|
||||
for (var i = 0; i < iterations; i++) {
|
||||
val slotInfo = Masker.slots(arr[c], DICT800);
|
||||
var grid = Masker.grid(slotInfo);
|
||||
val result = fillMask(rng, slotInfo,grid.lo,grid.hi, grid.g);
|
||||
val result = fillMask(rng, slotInfo, grid.lo, grid.hi, grid.g);
|
||||
if (result.ok()) successCount++;
|
||||
totalNodes += result.nodes();
|
||||
totalBacktracks += result.backtracks();
|
||||
@@ -143,7 +150,7 @@ public class PerformanceTest {
|
||||
for (var s : slots) s.assign().w = 0;
|
||||
|
||||
var grid = Masker.grid(slots);
|
||||
val result = fillMask(rng, slots, grid.lo,grid.hi,grid.g);
|
||||
val result = fillMask(rng, slots, grid.lo, grid.hi, grid.g);
|
||||
if (result.ok()) {
|
||||
successCount++;
|
||||
}
|
||||
@@ -178,17 +185,19 @@ public class PerformanceTest {
|
||||
var slotChar = dir.slotChar;
|
||||
display[cr][cc] = clueChar;
|
||||
|
||||
Puzzle.cellWalk((byte) slot.key(), slot.lo(), slot.hi()).forEach(idx -> {
|
||||
var r = Masker.IT[idx].r();
|
||||
var c = Masker.IT[idx].c();
|
||||
if (display[r][c] == ' ' || (display[r][c] >= 'A' && display[r][c] <= 'D')) {
|
||||
if (display[r][c] != ' ' && display[r][c] != slotChar) {
|
||||
display[r][c] = '+'; // Intersection
|
||||
} else {
|
||||
display[r][c] = slotChar;
|
||||
}
|
||||
}
|
||||
});
|
||||
Puzzle.cellWalk(slot.key(), slot.lo(), slot.hi())
|
||||
.skip(1)
|
||||
.forEach(idx -> {
|
||||
var r = Masker.IT[idx].r();
|
||||
var c = Masker.IT[idx].c();
|
||||
if (display[r][c] == ' ' || (display[r][c] >= 'A' && display[r][c] <= 'D')) {
|
||||
if (display[r][c] != ' ' && display[r][c] != slotChar) {
|
||||
display[r][c] = '+'; // Intersection
|
||||
} else {
|
||||
display[r][c] = slotChar;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
for (var r = 0; r < R; r++) {
|
||||
|
||||
@@ -168,13 +168,13 @@ public class SwedishGeneratorTest {
|
||||
assertEquals(OFF_2_3, Slot.clueIndex(r2c3d0.slotKey));
|
||||
assertEquals(CLUE_DOWN0, Slot.dir(r2c3d0.slotKey));
|
||||
assertFalse(Slot.horiz(r2c3d0.slotKey));
|
||||
var cells = Puzzle.cellWalk((byte) r2c3d0.slotKey, r2c5.or(r3c5).or(r4c5).lo(), 0L).mapToObj(i -> Masker.IT[i]).toArray(rci[]::new);
|
||||
assertEquals(2, cells[0].r());
|
||||
assertEquals(3, cells[1].r());
|
||||
assertEquals(4, cells[2].r());
|
||||
assertEquals(5, cells[0].c());
|
||||
var cells = Puzzle.cellWalk( r2c3d0.slotKey, r2c5.or(r3c5).or(r4c5).lo(), 0L).mapToObj(i -> Masker.IT[i]).toArray(rci[]::new);
|
||||
assertEquals(2, cells[1].r());
|
||||
assertEquals(5, cells[1].c());
|
||||
assertEquals(3, cells[2].r());
|
||||
assertEquals(5, cells[2].c());
|
||||
assertEquals(4, cells[3].r());
|
||||
assertEquals(5, cells[3].c());
|
||||
|
||||
assertTrue(Slot.horiz(CLUE_RIGHT1)); // right
|
||||
assertFalse(Slot.horiz(CLUE_DOWN0)); // down
|
||||
|
||||
@@ -13,6 +13,7 @@ import puzzle.Export.Signa;
|
||||
import puzzle.Export.Vestigium;
|
||||
import puzzle.SwedishGenerator.Rng;
|
||||
import puzzle.dict800.DictData800;
|
||||
import puzzle.dict800_4.DictData800_4;
|
||||
import java.util.Arrays;
|
||||
import java.util.stream.Collectors;
|
||||
import static precomp.Const3x4.Cell.r0c0d4;
|
||||
@@ -29,6 +30,10 @@ public class TestDuplication {
|
||||
Test123X_Neighbors4x3.start();
|
||||
Test123X_Neighbors9x8.start();
|
||||
}
|
||||
static void main() {
|
||||
TestDuplication test = new TestDuplication();
|
||||
test.testFiller2();
|
||||
}
|
||||
@Test
|
||||
void testFiller2() {
|
||||
var mask = Signa.of(
|
||||
@@ -39,14 +44,15 @@ public class TestDuplication {
|
||||
Assertions.assertEquals(5, mask.clueCount());
|
||||
val map = mask.stream().collect(Collectors.toMap(Vestigium::index, Vestigium::clue));
|
||||
Assertions.assertEquals(5, map.size());
|
||||
var slots = Masker_Neighbors3x4.slots(mask.c(), DictData800.DICT800);
|
||||
var slots = Masker_Neighbors3x4.slots(mask.c(), DictData800_4.DICT800);
|
||||
var grid = Masker_Neighbors3x4.grid(slots);
|
||||
var filled = SwedishGenerator.fillMask(new Rng(1), slots, grid.lo, grid.hi, grid.g);
|
||||
grid.lo = Masker_Neighbors3x4.MASK_LO & ~mask.c().lo;
|
||||
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()) {
|
||||
System.out.println(filled);
|
||||
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