mirror of
https://codeberg.org/cblanken/boggler.git
synced 2026-07-26 03:29:26 -04:00
- 4x4 board solving tests now checks for the original order of the words as well as the exact path for each
903 lines
41 KiB
Python
Executable File
903 lines
41 KiB
Python
Executable File
from itertools import chain
|
|
from pathlib import Path
|
|
import pytest
|
|
from boggler.boggler_utils import BoggleBoard, build_full_boggle_tree
|
|
|
|
WORDLISTS_DIR = Path("./boggler/wordlists/dwyl/").absolute()
|
|
|
|
@pytest.fixture
|
|
def board_4x4():
|
|
return [
|
|
['u','n','r','e'],
|
|
['qu','n','i','l'],
|
|
['i','s','h','a'],
|
|
['s','e','l','b']
|
|
]
|
|
|
|
@pytest.fixture
|
|
def expected_words_max_4():
|
|
return [
|
|
("u", [(0, 0)]),
|
|
("un", [(0, 0), (1, 1)]),
|
|
("unn", [(0, 0), (1, 1), (0, 1)]),
|
|
("uns", [(0, 0), (1, 1), (2, 1)]),
|
|
("uni", [(0, 0), (1, 1), (2, 0)]),
|
|
("unie", [(0, 0), (1, 1), (2, 0), (3, 1)]),
|
|
("uni", [(0, 0), (1, 1), (1, 2)]),
|
|
("unie", [(0, 0), (1, 1), (1, 2), (0, 3)]),
|
|
("un", [(0, 0), (0, 1)]),
|
|
("unn", [(0, 0), (0, 1), (1, 1)]),
|
|
("uni", [(0, 0), (0, 1), (1, 2)]),
|
|
("unie", [(0, 0), (0, 1), (1, 2), (0, 3)]),
|
|
("n", [(0, 1)]),
|
|
("ni", [(0, 1), (1, 2)]),
|
|
("nis", [(0, 1), (1, 2), (2, 1)]),
|
|
("nisi", [(0, 1), (1, 2), (2, 1), (2, 0)]),
|
|
("nil", [(0, 1), (1, 2), (1, 3)]),
|
|
("nile", [(0, 1), (1, 2), (1, 3), (0, 3)]),
|
|
("nu", [(0, 1), (0, 0)]),
|
|
("nun", [(0, 1), (0, 0), (1, 1)]),
|
|
("nuns", [(0, 1), (0, 0), (1, 1), (2, 1)]),
|
|
("nr", [(0, 1), (0, 2)]),
|
|
("r", [(0, 2)]),
|
|
("rin", [(0, 2), (1, 2), (0, 1)]),
|
|
("rie", [(0, 2), (1, 2), (0, 3)]),
|
|
("riel", [(0, 2), (1, 2), (0, 3), (1, 3)]),
|
|
("risqu", [(0, 2), (1, 2), (2, 1), (1, 0)]),
|
|
("rise", [(0, 2), (1, 2), (2, 1), (3, 1)]),
|
|
("riss", [(0, 2), (1, 2), (2, 1), (3, 0)]),
|
|
("ria", [(0, 2), (1, 2), (2, 3)]),
|
|
("rial", [(0, 2), (1, 2), (2, 3), (1, 3)]),
|
|
("rial", [(0, 2), (1, 2), (2, 3), (3, 2)]),
|
|
("rin", [(0, 2), (1, 2), (1, 1)]),
|
|
("rins", [(0, 2), (1, 2), (1, 1), (2, 1)]),
|
|
("rile", [(0, 2), (1, 2), (1, 3), (0, 3)]),
|
|
("rn", [(0, 2), (1, 1)]),
|
|
("rle", [(0, 2), (1, 3), (0, 3)]),
|
|
("rn", [(0, 2), (0, 1)]),
|
|
("re", [(0, 2), (0, 3)]),
|
|
("rel", [(0, 2), (0, 3), (1, 3)]),
|
|
("rei", [(0, 2), (0, 3), (1, 2)]),
|
|
("rein", [(0, 2), (0, 3), (1, 2), (0, 1)]),
|
|
("reis", [(0, 2), (0, 3), (1, 2), (2, 1)]),
|
|
("rein", [(0, 2), (0, 3), (1, 2), (1, 1)]),
|
|
("e", [(0, 3)]),
|
|
("el", [(0, 3), (1, 3)]),
|
|
("ela", [(0, 3), (1, 3), (2, 3)]),
|
|
("elhi", [(0, 3), (1, 3), (2, 2), (1, 2)]),
|
|
("eli", [(0, 3), (1, 3), (1, 2)]),
|
|
("elia", [(0, 3), (1, 3), (1, 2), (2, 3)]),
|
|
("eir", [(0, 3), (1, 2), (0, 2)]),
|
|
("eila", [(0, 3), (1, 2), (1, 3), (2, 3)]),
|
|
("er", [(0, 3), (0, 2)]),
|
|
("erin", [(0, 3), (0, 2), (1, 2), (0, 1)]),
|
|
("eris", [(0, 3), (0, 2), (1, 2), (2, 1)]),
|
|
("eria", [(0, 3), (0, 2), (1, 2), (2, 3)]),
|
|
("erin", [(0, 3), (0, 2), (1, 2), (1, 1)]),
|
|
("ern", [(0, 3), (0, 2), (1, 1)]),
|
|
("erns", [(0, 3), (0, 2), (1, 1), (2, 1)]),
|
|
("ern", [(0, 3), (0, 2), (0, 1)]),
|
|
("qu", [(1, 0)]),
|
|
("qui", [(1, 0), (2, 0)]),
|
|
("quin", [(1, 0), (2, 0), (1, 1)]),
|
|
("quis", [(1, 0), (2, 0), (3, 0)]),
|
|
("quis", [(1, 0), (2, 0), (2, 1)]),
|
|
("n", [(1, 1)]),
|
|
("nu", [(1, 1), (0, 0)]),
|
|
("nun", [(1, 1), (0, 0), (0, 1)]),
|
|
("nr", [(1, 1), (0, 2)]),
|
|
("ns", [(1, 1), (2, 1)]),
|
|
("ni", [(1, 1), (2, 0)]),
|
|
("nis", [(1, 1), (2, 0), (3, 0)]),
|
|
("nies", [(1, 1), (2, 0), (3, 1), (2, 1)]),
|
|
("nies", [(1, 1), (2, 0), (3, 1), (3, 0)]),
|
|
("nis", [(1, 1), (2, 0), (2, 1)]),
|
|
("nisi", [(1, 1), (2, 0), (2, 1), (1, 2)]),
|
|
("ni", [(1, 1), (1, 2)]),
|
|
("nis", [(1, 1), (1, 2), (2, 1)]),
|
|
("nisi", [(1, 1), (1, 2), (2, 1), (2, 0)]),
|
|
("nil", [(1, 1), (1, 2), (1, 3)]),
|
|
("nile", [(1, 1), (1, 2), (1, 3), (0, 3)]),
|
|
("i", [(1, 2)]),
|
|
("ir", [(1, 2), (0, 2)]),
|
|
("ire", [(1, 2), (0, 2), (0, 3)]),
|
|
("in", [(1, 2), (0, 1)]),
|
|
("inn", [(1, 2), (0, 1), (1, 1)]),
|
|
("inns", [(1, 2), (0, 1), (1, 1), (2, 1)]),
|
|
("ie", [(1, 2), (0, 3)]),
|
|
("ihs", [(1, 2), (2, 2), (2, 1)]),
|
|
("is", [(1, 2), (2, 1)]),
|
|
("isn", [(1, 2), (2, 1), (1, 1)]),
|
|
("ise", [(1, 2), (2, 1), (3, 1)]),
|
|
("isl", [(1, 2), (2, 1), (3, 2)]),
|
|
("isle", [(1, 2), (2, 1), (3, 2), (3, 1)]),
|
|
("isis", [(1, 2), (2, 1), (2, 0), (3, 0)]),
|
|
("ish", [(1, 2), (2, 1), (2, 2)]),
|
|
("ia", [(1, 2), (2, 3)]),
|
|
("in", [(1, 2), (1, 1)]),
|
|
("inn", [(1, 2), (1, 1), (0, 1)]),
|
|
("ins", [(1, 2), (1, 1), (2, 1)]),
|
|
("il", [(1, 2), (1, 3)]),
|
|
("ile", [(1, 2), (1, 3), (0, 3)]),
|
|
("ila", [(1, 2), (1, 3), (2, 3)]),
|
|
("l", [(1, 3)]),
|
|
("le", [(1, 3), (0, 3)]),
|
|
("lei", [(1, 3), (0, 3), (1, 2)]),
|
|
("leis", [(1, 3), (0, 3), (1, 2), (2, 1)]),
|
|
("ler", [(1, 3), (0, 3), (0, 2)]),
|
|
("lr", [(1, 3), (0, 2)]),
|
|
("la", [(1, 3), (2, 3)]),
|
|
("lai", [(1, 3), (2, 3), (1, 2)]),
|
|
("lair", [(1, 3), (2, 3), (1, 2), (0, 2)]),
|
|
("lain", [(1, 3), (2, 3), (1, 2), (0, 1)]),
|
|
("lain", [(1, 3), (2, 3), (1, 2), (1, 1)]),
|
|
("lab", [(1, 3), (2, 3), (3, 3)]),
|
|
("lah", [(1, 3), (2, 3), (2, 2)]),
|
|
("lh", [(1, 3), (2, 2)]),
|
|
("lhb", [(1, 3), (2, 2), (3, 3)]),
|
|
("li", [(1, 3), (1, 2)]),
|
|
("lir", [(1, 3), (1, 2), (0, 2)]),
|
|
("lire", [(1, 3), (1, 2), (0, 2), (0, 3)]),
|
|
("lin", [(1, 3), (1, 2), (0, 1)]),
|
|
("linn", [(1, 3), (1, 2), (0, 1), (1, 1)]),
|
|
("lie", [(1, 3), (1, 2), (0, 3)]),
|
|
("lier", [(1, 3), (1, 2), (0, 3), (0, 2)]),
|
|
("lis", [(1, 3), (1, 2), (2, 1)]),
|
|
("lise", [(1, 3), (1, 2), (2, 1), (3, 1)]),
|
|
("liss", [(1, 3), (1, 2), (2, 1), (3, 0)]),
|
|
("lish", [(1, 3), (1, 2), (2, 1), (2, 2)]),
|
|
("lin", [(1, 3), (1, 2), (1, 1)]),
|
|
("linn", [(1, 3), (1, 2), (1, 1), (0, 1)]),
|
|
("lins", [(1, 3), (1, 2), (1, 1), (2, 1)]),
|
|
("i", [(2, 0)]),
|
|
("in", [(2, 0), (1, 1)]),
|
|
("inn", [(2, 0), (1, 1), (0, 1)]),
|
|
("ins", [(2, 0), (1, 1), (2, 1)]),
|
|
("inia", [(2, 0), (1, 1), (1, 2), (2, 3)]),
|
|
("is", [(2, 0), (3, 0)]),
|
|
("ise", [(2, 0), (3, 0), (3, 1)]),
|
|
("ie", [(2, 0), (3, 1)]),
|
|
("is", [(2, 0), (2, 1)]),
|
|
("isn", [(2, 0), (2, 1), (1, 1)]),
|
|
("ise", [(2, 0), (2, 1), (3, 1)]),
|
|
("isl", [(2, 0), (2, 1), (3, 2)]),
|
|
("isle", [(2, 0), (2, 1), (3, 2), (3, 1)]),
|
|
("ish", [(2, 0), (2, 1), (2, 2)]),
|
|
("s", [(2, 1)]),
|
|
("sn", [(2, 1), (1, 1)]),
|
|
("si", [(2, 1), (1, 2)]),
|
|
("sir", [(2, 1), (1, 2), (0, 2)]),
|
|
("sire", [(2, 1), (1, 2), (0, 2), (0, 3)]),
|
|
("sin", [(2, 1), (1, 2), (0, 1)]),
|
|
("sie", [(2, 1), (1, 2), (0, 3)]),
|
|
("sier", [(2, 1), (1, 2), (0, 3), (0, 2)]),
|
|
("sia", [(2, 1), (1, 2), (2, 3)]),
|
|
("sial", [(2, 1), (1, 2), (2, 3), (1, 3)]),
|
|
("sial", [(2, 1), (1, 2), (2, 3), (3, 2)]),
|
|
("sin", [(2, 1), (1, 2), (1, 1)]),
|
|
("sinh", [(2, 1), (1, 2), (1, 1), (2, 2)]),
|
|
("sil", [(2, 1), (1, 2), (1, 3)]),
|
|
("sile", [(2, 1), (1, 2), (1, 3), (0, 3)]),
|
|
("se", [(2, 1), (3, 1)]),
|
|
("sei", [(2, 1), (3, 1), (2, 0)]),
|
|
("seis", [(2, 1), (3, 1), (2, 0), (3, 0)]),
|
|
("sel", [(2, 1), (3, 1), (3, 2)]),
|
|
("ss", [(2, 1), (3, 0)]),
|
|
("ssi", [(2, 1), (3, 0), (2, 0)]),
|
|
("sl", [(2, 1), (3, 2)]),
|
|
("sla", [(2, 1), (3, 2), (2, 3)]),
|
|
("slab", [(2, 1), (3, 2), (2, 3), (3, 3)]),
|
|
("si", [(2, 1), (2, 0)]),
|
|
("sin", [(2, 1), (2, 0), (1, 1)]),
|
|
("sinh", [(2, 1), (2, 0), (1, 1), (2, 2)]),
|
|
("sis", [(2, 1), (2, 0), (3, 0)]),
|
|
("sise", [(2, 1), (2, 0), (3, 0), (3, 1)]),
|
|
("sie", [(2, 1), (2, 0), (3, 1)]),
|
|
("sh", [(2, 1), (2, 2)]),
|
|
("shi", [(2, 1), (2, 2), (1, 2)]),
|
|
("shin", [(2, 1), (2, 2), (1, 2), (0, 1)]),
|
|
("shia", [(2, 1), (2, 2), (1, 2), (2, 3)]),
|
|
("shin", [(2, 1), (2, 2), (1, 2), (1, 1)]),
|
|
("she", [(2, 1), (2, 2), (3, 1)]),
|
|
("shes", [(2, 1), (2, 2), (3, 1), (3, 0)]),
|
|
("shel", [(2, 1), (2, 2), (3, 1), (3, 2)]),
|
|
("sha", [(2, 1), (2, 2), (2, 3)]),
|
|
("shai", [(2, 1), (2, 2), (2, 3), (1, 2)]),
|
|
("shab", [(2, 1), (2, 2), (2, 3), (3, 3)]),
|
|
("h", [(2, 2)]),
|
|
("hi", [(2, 2), (1, 2)]),
|
|
("hir", [(2, 2), (1, 2), (0, 2)]),
|
|
("hire", [(2, 2), (1, 2), (0, 2), (0, 3)]),
|
|
("hin", [(2, 2), (1, 2), (0, 1)]),
|
|
("hie", [(2, 2), (1, 2), (0, 3)]),
|
|
("his", [(2, 2), (1, 2), (2, 1)]),
|
|
("hisn", [(2, 2), (1, 2), (2, 1), (1, 1)]),
|
|
("hiss", [(2, 2), (1, 2), (2, 1), (3, 0)]),
|
|
("hia", [(2, 2), (1, 2), (2, 3)]),
|
|
("hin", [(2, 2), (1, 2), (1, 1)]),
|
|
("hins", [(2, 2), (1, 2), (1, 1), (2, 1)]),
|
|
("hile", [(2, 2), (1, 2), (1, 3), (0, 3)]),
|
|
("hila", [(2, 2), (1, 2), (1, 3), (2, 3)]),
|
|
("hl", [(2, 2), (1, 3)]),
|
|
("hler", [(2, 2), (1, 3), (0, 3), (0, 2)]),
|
|
("hl", [(2, 2), (3, 2)]),
|
|
("he", [(2, 2), (3, 1)]),
|
|
("hes", [(2, 2), (3, 1), (2, 1)]),
|
|
("hei", [(2, 2), (3, 1), (2, 0)]),
|
|
("hein", [(2, 2), (3, 1), (2, 0), (1, 1)]),
|
|
("hes", [(2, 2), (3, 1), (3, 0)]),
|
|
("hel", [(2, 2), (3, 1), (3, 2)]),
|
|
("hb", [(2, 2), (3, 3)]),
|
|
("hs", [(2, 2), (2, 1)]),
|
|
("hsi", [(2, 2), (2, 1), (1, 2)]),
|
|
("hsi", [(2, 2), (2, 1), (2, 0)]),
|
|
("ha", [(2, 2), (2, 3)]),
|
|
("hal", [(2, 2), (2, 3), (1, 3)]),
|
|
("hale", [(2, 2), (2, 3), (1, 3), (0, 3)]),
|
|
("hair", [(2, 2), (2, 3), (1, 2), (0, 2)]),
|
|
("hain", [(2, 2), (2, 3), (1, 2), (0, 1)]),
|
|
("hain", [(2, 2), (2, 3), (1, 2), (1, 1)]),
|
|
("hail", [(2, 2), (2, 3), (1, 2), (1, 3)]),
|
|
("hab", [(2, 2), (2, 3), (3, 3)]),
|
|
("hal", [(2, 2), (2, 3), (3, 2)]),
|
|
("hals", [(2, 2), (2, 3), (3, 2), (2, 1)]),
|
|
("hale", [(2, 2), (2, 3), (3, 2), (3, 1)]),
|
|
("a", [(2, 3)]),
|
|
("al", [(2, 3), (1, 3)]),
|
|
("ale", [(2, 3), (1, 3), (0, 3)]),
|
|
("alin", [(2, 3), (1, 3), (1, 2), (0, 1)]),
|
|
("alin", [(2, 3), (1, 3), (1, 2), (1, 1)]),
|
|
("ai", [(2, 3), (1, 2)]),
|
|
("air", [(2, 3), (1, 2), (0, 2)]),
|
|
("airn", [(2, 3), (1, 2), (0, 2), (1, 1)]),
|
|
("airn", [(2, 3), (1, 2), (0, 2), (0, 1)]),
|
|
("aire", [(2, 3), (1, 2), (0, 2), (0, 3)]),
|
|
("ain", [(2, 3), (1, 2), (0, 1)]),
|
|
("ainu", [(2, 3), (1, 2), (0, 1), (0, 0)]),
|
|
("aiel", [(2, 3), (1, 2), (0, 3), (1, 3)]),
|
|
("ais", [(2, 3), (1, 2), (2, 1)]),
|
|
("ain", [(2, 3), (1, 2), (1, 1)]),
|
|
("ainu", [(2, 3), (1, 2), (1, 1), (0, 0)]),
|
|
("ains", [(2, 3), (1, 2), (1, 1), (2, 1)]),
|
|
("ail", [(2, 3), (1, 2), (1, 3)]),
|
|
("aile", [(2, 3), (1, 2), (1, 3), (0, 3)]),
|
|
("ab", [(2, 3), (3, 3)]),
|
|
("abl", [(2, 3), (3, 3), (3, 2)]),
|
|
("able", [(2, 3), (3, 3), (3, 2), (3, 1)]),
|
|
("al", [(2, 3), (3, 2)]),
|
|
("als", [(2, 3), (3, 2), (2, 1)]),
|
|
("ale", [(2, 3), (3, 2), (3, 1)]),
|
|
("ales", [(2, 3), (3, 2), (3, 1), (2, 1)]),
|
|
("ales", [(2, 3), (3, 2), (3, 1), (3, 0)]),
|
|
("alb", [(2, 3), (3, 2), (3, 3)]),
|
|
("ah", [(2, 3), (2, 2)]),
|
|
("ahi", [(2, 3), (2, 2), (1, 2)]),
|
|
("ahir", [(2, 3), (2, 2), (1, 2), (0, 2)]),
|
|
("ahs", [(2, 3), (2, 2), (2, 1)]),
|
|
("s", [(3, 0)]),
|
|
("si", [(3, 0), (2, 0)]),
|
|
("sin", [(3, 0), (2, 0), (1, 1)]),
|
|
("sins", [(3, 0), (2, 0), (1, 1), (2, 1)]),
|
|
("sinh", [(3, 0), (2, 0), (1, 1), (2, 2)]),
|
|
("sie", [(3, 0), (2, 0), (3, 1)]),
|
|
("sis", [(3, 0), (2, 0), (2, 1)]),
|
|
("sisi", [(3, 0), (2, 0), (2, 1), (1, 2)]),
|
|
("sise", [(3, 0), (2, 0), (2, 1), (3, 1)]),
|
|
("sish", [(3, 0), (2, 0), (2, 1), (2, 2)]),
|
|
("ss", [(3, 0), (2, 1)]),
|
|
("ssi", [(3, 0), (2, 1), (1, 2)]),
|
|
("ssi", [(3, 0), (2, 1), (2, 0)]),
|
|
("se", [(3, 0), (3, 1)]),
|
|
("sei", [(3, 0), (3, 1), (2, 0)]),
|
|
("seis", [(3, 0), (3, 1), (2, 0), (2, 1)]),
|
|
("sel", [(3, 0), (3, 1), (3, 2)]),
|
|
("sels", [(3, 0), (3, 1), (3, 2), (2, 1)]),
|
|
("e", [(3, 1)]),
|
|
("es", [(3, 1), (2, 1)]),
|
|
("ess", [(3, 1), (2, 1), (3, 0)]),
|
|
("eh", [(3, 1), (2, 2)]),
|
|
("es", [(3, 1), (3, 0)]),
|
|
("ess", [(3, 1), (3, 0), (2, 1)]),
|
|
("el", [(3, 1), (3, 2)]),
|
|
("elhi", [(3, 1), (3, 2), (2, 2), (1, 2)]),
|
|
("els", [(3, 1), (3, 2), (2, 1)]),
|
|
("ela", [(3, 1), (3, 2), (2, 3)]),
|
|
("elb", [(3, 1), (3, 2), (3, 3)]),
|
|
("l", [(3, 2)]),
|
|
("lh", [(3, 2), (2, 2)]),
|
|
("lhb", [(3, 2), (2, 2), (3, 3)]),
|
|
("ls", [(3, 2), (2, 1)]),
|
|
("la", [(3, 2), (2, 3)]),
|
|
("lai", [(3, 2), (2, 3), (1, 2)]),
|
|
("lair", [(3, 2), (2, 3), (1, 2), (0, 2)]),
|
|
("lain", [(3, 2), (2, 3), (1, 2), (0, 1)]),
|
|
("lain", [(3, 2), (2, 3), (1, 2), (1, 1)]),
|
|
("lab", [(3, 2), (2, 3), (3, 3)]),
|
|
("lah", [(3, 2), (2, 3), (2, 2)]),
|
|
("le", [(3, 2), (3, 1)]),
|
|
("les", [(3, 2), (3, 1), (2, 1)]),
|
|
("less", [(3, 2), (3, 1), (2, 1), (3, 0)]),
|
|
("lei", [(3, 2), (3, 1), (2, 0)]),
|
|
("leis", [(3, 2), (3, 1), (2, 0), (3, 0)]),
|
|
("leis", [(3, 2), (3, 1), (2, 0), (2, 1)]),
|
|
("lehi", [(3, 2), (3, 1), (2, 2), (1, 2)]),
|
|
("les", [(3, 2), (3, 1), (3, 0)]),
|
|
("less", [(3, 2), (3, 1), (3, 0), (2, 1)]),
|
|
("lb", [(3, 2), (3, 3)]),
|
|
("b", [(3, 3)]),
|
|
("ba", [(3, 3), (2, 3)]),
|
|
("bal", [(3, 3), (2, 3), (1, 3)]),
|
|
("bale", [(3, 3), (2, 3), (1, 3), (0, 3)]),
|
|
("balr", [(3, 3), (2, 3), (1, 3), (0, 2)]),
|
|
("bali", [(3, 3), (2, 3), (1, 3), (1, 2)]),
|
|
("bai", [(3, 3), (2, 3), (1, 2)]),
|
|
("bain", [(3, 3), (2, 3), (1, 2), (0, 1)]),
|
|
("bais", [(3, 3), (2, 3), (1, 2), (2, 1)]),
|
|
("bain", [(3, 3), (2, 3), (1, 2), (1, 1)]),
|
|
("bail", [(3, 3), (2, 3), (1, 2), (1, 3)]),
|
|
("bal", [(3, 3), (2, 3), (3, 2)]),
|
|
("bals", [(3, 3), (2, 3), (3, 2), (2, 1)]),
|
|
("bale", [(3, 3), (2, 3), (3, 2), (3, 1)]),
|
|
("bah", [(3, 3), (2, 3), (2, 2)]),
|
|
("bhil", [(3, 3), (2, 2), (1, 2), (1, 3)]),
|
|
("bl", [(3, 3), (3, 2)]),
|
|
("bls", [(3, 3), (3, 2), (2, 1)]),
|
|
("blah", [(3, 3), (3, 2), (2, 3), (2, 2)]),
|
|
]
|
|
|
|
@pytest.fixture
|
|
def expected_words_max_20():
|
|
return [
|
|
("u", [(0, 0)]),
|
|
("un", [(0, 0), (1, 1)]),
|
|
("unn", [(0, 0), (1, 1), (0, 1)]),
|
|
("unrelinquishable", [(0, 0), (1, 1), (0, 2), (0, 3), (1, 3), (1, 2), (0, 1), (1, 0), (2, 0), (2, 1), (2, 2), (2, 3), (3, 3), (3, 2), (3, 1)]),
|
|
("unrelishable", [(0, 0), (1, 1), (0, 2), (0, 3), (1, 3), (1, 2), (2, 1), (2, 2), (2, 3), (3, 3), (3, 2), (3, 1)]),
|
|
("unreliable", [(0, 0), (1, 1), (0, 2), (0, 3), (1, 3), (1, 2), (2, 3), (3, 3), (3, 2), (3, 1)]),
|
|
("unrein", [(0, 0), (1, 1), (0, 2), (0, 3), (1, 2), (0, 1)]),
|
|
("uns", [(0, 0), (1, 1), (2, 1)]),
|
|
("unsin", [(0, 0), (1, 1), (2, 1), (1, 2), (0, 1)]),
|
|
("unslain", [(0, 0), (1, 1), (2, 1), (3, 2), (2, 3), (1, 2), (0, 1)]),
|
|
("unshale", [(0, 0), (1, 1), (2, 1), (2, 2), (2, 3), (1, 3), (0, 3)]),
|
|
("unshale", [(0, 0), (1, 1), (2, 1), (2, 2), (2, 3), (3, 2), (3, 1)]),
|
|
("uni", [(0, 0), (1, 1), (2, 0)]),
|
|
("unie", [(0, 0), (1, 1), (2, 0), (3, 1)]),
|
|
("unhale", [(0, 0), (1, 1), (2, 2), (2, 3), (1, 3), (0, 3)]),
|
|
("unhair", [(0, 0), (1, 1), (2, 2), (2, 3), (1, 2), (0, 2)]),
|
|
("unhale", [(0, 0), (1, 1), (2, 2), (2, 3), (3, 2), (3, 1)]),
|
|
("uni", [(0, 0), (1, 1), (1, 2)]),
|
|
("unie", [(0, 0), (1, 1), (1, 2), (0, 3)]),
|
|
("un", [(0, 0), (0, 1)]),
|
|
("unn", [(0, 0), (0, 1), (1, 1)]),
|
|
("uni", [(0, 0), (0, 1), (1, 2)]),
|
|
("unie", [(0, 0), (0, 1), (1, 2), (0, 3)]),
|
|
("unrelishable", [(0, 0), (0, 1), (0, 2), (0, 3), (1, 3), (1, 2), (2, 1), (2, 2), (2, 3), (3, 3), (3, 2), (3, 1)]),
|
|
("unreliable", [(0, 0), (0, 1), (0, 2), (0, 3), (1, 3), (1, 2), (2, 3), (3, 3), (3, 2), (3, 1)]),
|
|
("unrelinquishable", [(0, 0), (0, 1), (0, 2), (0, 3), (1, 3), (1, 2), (1, 1), (1, 0), (2, 0), (2, 1), (2, 2), (2, 3), (3, 3), (3, 2), (3, 1)]),
|
|
("unrein", [(0, 0), (0, 1), (0, 2), (0, 3), (1, 2), (1, 1)]),
|
|
("n", [(0, 1)]),
|
|
("ni", [(0, 1), (1, 2)]),
|
|
("nihal", [(0, 1), (1, 2), (2, 2), (2, 3), (1, 3)]),
|
|
("nihal", [(0, 1), (1, 2), (2, 2), (2, 3), (3, 2)]),
|
|
("nis", [(0, 1), (1, 2), (2, 1)]),
|
|
("nisei", [(0, 1), (1, 2), (2, 1), (3, 1), (2, 0)]),
|
|
("niseis", [(0, 1), (1, 2), (2, 1), (3, 1), (2, 0), (3, 0)]),
|
|
("nisse", [(0, 1), (1, 2), (2, 1), (3, 0), (3, 1)]),
|
|
("nisi", [(0, 1), (1, 2), (2, 1), (2, 0)]),
|
|
("nil", [(0, 1), (1, 2), (1, 3)]),
|
|
("nile", [(0, 1), (1, 2), (1, 3), (0, 3)]),
|
|
("nu", [(0, 1), (0, 0)]),
|
|
("nun", [(0, 1), (0, 0), (1, 1)]),
|
|
("nuns", [(0, 1), (0, 0), (1, 1), (2, 1)]),
|
|
("nr", [(0, 1), (0, 2)]),
|
|
("r", [(0, 2)]),
|
|
("rin", [(0, 2), (1, 2), (0, 1)]),
|
|
("rie", [(0, 2), (1, 2), (0, 3)]),
|
|
("riel", [(0, 2), (1, 2), (0, 3), (1, 3)]),
|
|
("risqu", [(0, 2), (1, 2), (2, 1), (1, 0)]),
|
|
("rise", [(0, 2), (1, 2), (2, 1), (3, 1)]),
|
|
("rises", [(0, 2), (1, 2), (2, 1), (3, 1), (3, 0)]),
|
|
("riss", [(0, 2), (1, 2), (2, 1), (3, 0)]),
|
|
("rissel", [(0, 2), (1, 2), (2, 1), (3, 0), (3, 1), (3, 2)]),
|
|
("ria", [(0, 2), (1, 2), (2, 3)]),
|
|
("rial", [(0, 2), (1, 2), (2, 3), (1, 3)]),
|
|
("rial", [(0, 2), (1, 2), (2, 3), (3, 2)]),
|
|
("rials", [(0, 2), (1, 2), (2, 3), (3, 2), (2, 1)]),
|
|
("rin", [(0, 2), (1, 2), (1, 1)]),
|
|
("rins", [(0, 2), (1, 2), (1, 1), (2, 1)]),
|
|
("rinse", [(0, 2), (1, 2), (1, 1), (2, 1), (3, 1)]),
|
|
("rinses", [(0, 2), (1, 2), (1, 1), (2, 1), (3, 1), (3, 0)]),
|
|
("rile", [(0, 2), (1, 2), (1, 3), (0, 3)]),
|
|
("rn", [(0, 2), (1, 1)]),
|
|
("rle", [(0, 2), (1, 3), (0, 3)]),
|
|
("rn", [(0, 2), (0, 1)]),
|
|
("re", [(0, 2), (0, 3)]),
|
|
("rel", [(0, 2), (0, 3), (1, 3)]),
|
|
("relais", [(0, 2), (0, 3), (1, 3), (2, 3), (1, 2), (2, 1)]),
|
|
("relinquish", [(0, 2), (0, 3), (1, 3), (1, 2), (0, 1), (1, 0), (2, 0), (2, 1), (2, 2)]),
|
|
("relinquishes", [(0, 2), (0, 3), (1, 3), (1, 2), (0, 1), (1, 0), (2, 0), (2, 1), (2, 2), (3, 1), (3, 0)]),
|
|
("relish", [(0, 2), (0, 3), (1, 3), (1, 2), (2, 1), (2, 2)]),
|
|
("relishes", [(0, 2), (0, 3), (1, 3), (1, 2), (2, 1), (2, 2), (3, 1), (3, 0)]),
|
|
("relishable", [(0, 2), (0, 3), (1, 3), (1, 2), (2, 1), (2, 2), (2, 3), (3, 3), (3, 2), (3, 1)]),
|
|
("reliable", [(0, 2), (0, 3), (1, 3), (1, 2), (2, 3), (3, 3), (3, 2), (3, 1)]),
|
|
("relinquish", [(0, 2), (0, 3), (1, 3), (1, 2), (1, 1), (1, 0), (2, 0), (2, 1), (2, 2)]),
|
|
("relinquishes", [(0, 2), (0, 3), (1, 3), (1, 2), (1, 1), (1, 0), (2, 0), (2, 1), (2, 2), (3, 1), (3, 0)]),
|
|
("rei", [(0, 2), (0, 3), (1, 2)]),
|
|
("rein", [(0, 2), (0, 3), (1, 2), (0, 1)]),
|
|
("reis", [(0, 2), (0, 3), (1, 2), (2, 1)]),
|
|
("rein", [(0, 2), (0, 3), (1, 2), (1, 1)]),
|
|
("reins", [(0, 2), (0, 3), (1, 2), (1, 1), (2, 1)]),
|
|
("e", [(0, 3)]),
|
|
("el", [(0, 3), (1, 3)]),
|
|
("ela", [(0, 3), (1, 3), (2, 3)]),
|
|
("elain", [(0, 3), (1, 3), (2, 3), (1, 2), (0, 1)]),
|
|
("elain", [(0, 3), (1, 3), (2, 3), (1, 2), (1, 1)]),
|
|
("elains", [(0, 3), (1, 3), (2, 3), (1, 2), (1, 1), (2, 1)]),
|
|
("elhi", [(0, 3), (1, 3), (2, 2), (1, 2)]),
|
|
("eli", [(0, 3), (1, 3), (1, 2)]),
|
|
("elisha", [(0, 3), (1, 3), (1, 2), (2, 1), (2, 2), (2, 3)]),
|
|
("elia", [(0, 3), (1, 3), (1, 2), (2, 3)]),
|
|
("eir", [(0, 3), (1, 2), (0, 2)]),
|
|
("eila", [(0, 3), (1, 2), (1, 3), (2, 3)]),
|
|
("er", [(0, 3), (0, 2)]),
|
|
("erin", [(0, 3), (0, 2), (1, 2), (0, 1)]),
|
|
("eris", [(0, 3), (0, 2), (1, 2), (2, 1)]),
|
|
("eria", [(0, 3), (0, 2), (1, 2), (2, 3)]),
|
|
("erin", [(0, 3), (0, 2), (1, 2), (1, 1)]),
|
|
("ern", [(0, 3), (0, 2), (1, 1)]),
|
|
("erns", [(0, 3), (0, 2), (1, 1), (2, 1)]),
|
|
("ernie", [(0, 3), (0, 2), (1, 1), (2, 0), (3, 1)]),
|
|
("ern", [(0, 3), (0, 2), (0, 1)]),
|
|
("qu", [(1, 0)]),
|
|
("qui", [(1, 0), (2, 0)]),
|
|
("quin", [(1, 0), (2, 0), (1, 1)]),
|
|
("quins", [(1, 0), (2, 0), (1, 1), (2, 1)]),
|
|
("quinse", [(1, 0), (2, 0), (1, 1), (2, 1), (3, 1)]),
|
|
("quinin", [(1, 0), (2, 0), (1, 1), (1, 2), (0, 1)]),
|
|
("quiniela", [(1, 0), (2, 0), (1, 1), (1, 2), (0, 3), (1, 3), (2, 3)]),
|
|
("quinia", [(1, 0), (2, 0), (1, 1), (1, 2), (2, 3)]),
|
|
("quis", [(1, 0), (2, 0), (3, 0)]),
|
|
("quis", [(1, 0), (2, 0), (2, 1)]),
|
|
("quisle", [(1, 0), (2, 0), (2, 1), (3, 2), (3, 1)]),
|
|
("n", [(1, 1)]),
|
|
("nu", [(1, 1), (0, 0)]),
|
|
("nun", [(1, 1), (0, 0), (0, 1)]),
|
|
("nr", [(1, 1), (0, 2)]),
|
|
("ns", [(1, 1), (2, 1)]),
|
|
("ni", [(1, 1), (2, 0)]),
|
|
("nis", [(1, 1), (2, 0), (3, 0)]),
|
|
("nisse", [(1, 1), (2, 0), (3, 0), (2, 1), (3, 1)]),
|
|
("nies", [(1, 1), (2, 0), (3, 1), (2, 1)]),
|
|
("nies", [(1, 1), (2, 0), (3, 1), (3, 0)]),
|
|
("niels", [(1, 1), (2, 0), (3, 1), (3, 2), (2, 1)]),
|
|
("nis", [(1, 1), (2, 0), (2, 1)]),
|
|
("nisi", [(1, 1), (2, 0), (2, 1), (1, 2)]),
|
|
("nisse", [(1, 1), (2, 0), (2, 1), (3, 0), (3, 1)]),
|
|
("ni", [(1, 1), (1, 2)]),
|
|
("nihal", [(1, 1), (1, 2), (2, 2), (2, 3), (1, 3)]),
|
|
("nihal", [(1, 1), (1, 2), (2, 2), (2, 3), (3, 2)]),
|
|
("nis", [(1, 1), (1, 2), (2, 1)]),
|
|
("nisei", [(1, 1), (1, 2), (2, 1), (3, 1), (2, 0)]),
|
|
("niseis", [(1, 1), (1, 2), (2, 1), (3, 1), (2, 0), (3, 0)]),
|
|
("nisse", [(1, 1), (1, 2), (2, 1), (3, 0), (3, 1)]),
|
|
("nisi", [(1, 1), (1, 2), (2, 1), (2, 0)]),
|
|
("nil", [(1, 1), (1, 2), (1, 3)]),
|
|
("nile", [(1, 1), (1, 2), (1, 3), (0, 3)]),
|
|
("i", [(1, 2)]),
|
|
("ir", [(1, 2), (0, 2)]),
|
|
("ire", [(1, 2), (0, 2), (0, 3)]),
|
|
("in", [(1, 2), (0, 1)]),
|
|
("inn", [(1, 2), (0, 1), (1, 1)]),
|
|
("inns", [(1, 2), (0, 1), (1, 1), (2, 1)]),
|
|
("ie", [(1, 2), (0, 3)]),
|
|
("ihs", [(1, 2), (2, 2), (2, 1)]),
|
|
("is", [(1, 2), (2, 1)]),
|
|
("isn", [(1, 2), (2, 1), (1, 1)]),
|
|
("ise", [(1, 2), (2, 1), (3, 1)]),
|
|
("issei", [(1, 2), (2, 1), (3, 0), (3, 1), (2, 0)]),
|
|
("isl", [(1, 2), (2, 1), (3, 2)]),
|
|
("isle", [(1, 2), (2, 1), (3, 2), (3, 1)]),
|
|
("isles", [(1, 2), (2, 1), (3, 2), (3, 1), (3, 0)]),
|
|
("isis", [(1, 2), (2, 1), (2, 0), (3, 0)]),
|
|
("ish", [(1, 2), (2, 1), (2, 2)]),
|
|
("ia", [(1, 2), (2, 3)]),
|
|
("in", [(1, 2), (1, 1)]),
|
|
("inn", [(1, 2), (1, 1), (0, 1)]),
|
|
("ins", [(1, 2), (1, 1), (2, 1)]),
|
|
("inisle", [(1, 2), (1, 1), (2, 0), (2, 1), (3, 2), (3, 1)]),
|
|
("inhale", [(1, 2), (1, 1), (2, 2), (2, 3), (1, 3), (0, 3)]),
|
|
("inhaler", [(1, 2), (1, 1), (2, 2), (2, 3), (1, 3), (0, 3), (0, 2)]),
|
|
("inhale", [(1, 2), (1, 1), (2, 2), (2, 3), (3, 2), (3, 1)]),
|
|
("inhales", [(1, 2), (1, 1), (2, 2), (2, 3), (3, 2), (3, 1), (2, 1)]),
|
|
("inhales", [(1, 2), (1, 1), (2, 2), (2, 3), (3, 2), (3, 1), (3, 0)]),
|
|
("il", [(1, 2), (1, 3)]),
|
|
("ile", [(1, 2), (1, 3), (0, 3)]),
|
|
("ila", [(1, 2), (1, 3), (2, 3)]),
|
|
("l", [(1, 3)]),
|
|
("le", [(1, 3), (0, 3)]),
|
|
("lei", [(1, 3), (0, 3), (1, 2)]),
|
|
("leis", [(1, 3), (0, 3), (1, 2), (2, 1)]),
|
|
("leiss", [(1, 3), (0, 3), (1, 2), (2, 1), (3, 0)]),
|
|
("ler", [(1, 3), (0, 3), (0, 2)]),
|
|
("lr", [(1, 3), (0, 2)]),
|
|
("la", [(1, 3), (2, 3)]),
|
|
("lai", [(1, 3), (2, 3), (1, 2)]),
|
|
("lair", [(1, 3), (2, 3), (1, 2), (0, 2)]),
|
|
("lain", [(1, 3), (2, 3), (1, 2), (0, 1)]),
|
|
("laisse", [(1, 3), (2, 3), (1, 2), (2, 1), (3, 0), (3, 1)]),
|
|
("lain", [(1, 3), (2, 3), (1, 2), (1, 1)]),
|
|
("lab", [(1, 3), (2, 3), (3, 3)]),
|
|
("lah", [(1, 3), (2, 3), (2, 2)]),
|
|
("lh", [(1, 3), (2, 2)]),
|
|
("lhb", [(1, 3), (2, 2), (3, 3)]),
|
|
("li", [(1, 3), (1, 2)]),
|
|
("lir", [(1, 3), (1, 2), (0, 2)]),
|
|
("lire", [(1, 3), (1, 2), (0, 2), (0, 3)]),
|
|
("lin", [(1, 3), (1, 2), (0, 1)]),
|
|
("linn", [(1, 3), (1, 2), (0, 1), (1, 1)]),
|
|
("linns", [(1, 3), (1, 2), (0, 1), (1, 1), (2, 1)]),
|
|
("linquish", [(1, 3), (1, 2), (0, 1), (1, 0), (2, 0), (2, 1), (2, 2)]),
|
|
("lie", [(1, 3), (1, 2), (0, 3)]),
|
|
("lier", [(1, 3), (1, 2), (0, 3), (0, 2)]),
|
|
("lis", [(1, 3), (1, 2), (2, 1)]),
|
|
("lise", [(1, 3), (1, 2), (2, 1), (3, 1)]),
|
|
("liss", [(1, 3), (1, 2), (2, 1), (3, 0)]),
|
|
("lisle", [(1, 3), (1, 2), (2, 1), (3, 2), (3, 1)]),
|
|
("lisles", [(1, 3), (1, 2), (2, 1), (3, 2), (3, 1), (3, 0)]),
|
|
("lish", [(1, 3), (1, 2), (2, 1), (2, 2)]),
|
|
("liable", [(1, 3), (1, 2), (2, 3), (3, 3), (3, 2), (3, 1)]),
|
|
("lin", [(1, 3), (1, 2), (1, 1)]),
|
|
("linn", [(1, 3), (1, 2), (1, 1), (0, 1)]),
|
|
("lins", [(1, 3), (1, 2), (1, 1), (2, 1)]),
|
|
("linie", [(1, 3), (1, 2), (1, 1), (2, 0), (3, 1)]),
|
|
("linha", [(1, 3), (1, 2), (1, 1), (2, 2), (2, 3)]),
|
|
("linquish", [(1, 3), (1, 2), (1, 1), (1, 0), (2, 0), (2, 1), (2, 2)]),
|
|
("i", [(2, 0)]),
|
|
("in", [(2, 0), (1, 1)]),
|
|
("inn", [(2, 0), (1, 1), (0, 1)]),
|
|
("ins", [(2, 0), (1, 1), (2, 1)]),
|
|
("inhale", [(2, 0), (1, 1), (2, 2), (2, 3), (1, 3), (0, 3)]),
|
|
("inhaler", [(2, 0), (1, 1), (2, 2), (2, 3), (1, 3), (0, 3), (0, 2)]),
|
|
("inhale", [(2, 0), (1, 1), (2, 2), (2, 3), (3, 2), (3, 1)]),
|
|
("inhales", [(2, 0), (1, 1), (2, 2), (2, 3), (3, 2), (3, 1), (2, 1)]),
|
|
("inhales", [(2, 0), (1, 1), (2, 2), (2, 3), (3, 2), (3, 1), (3, 0)]),
|
|
("inisle", [(2, 0), (1, 1), (1, 2), (2, 1), (3, 2), (3, 1)]),
|
|
("inia", [(2, 0), (1, 1), (1, 2), (2, 3)]),
|
|
("inial", [(2, 0), (1, 1), (1, 2), (2, 3), (1, 3)]),
|
|
("inial", [(2, 0), (1, 1), (1, 2), (2, 3), (3, 2)]),
|
|
("is", [(2, 0), (3, 0)]),
|
|
("ise", [(2, 0), (3, 0), (3, 1)]),
|
|
("ie", [(2, 0), (3, 1)]),
|
|
("is", [(2, 0), (2, 1)]),
|
|
("isn", [(2, 0), (2, 1), (1, 1)]),
|
|
("ise", [(2, 0), (2, 1), (3, 1)]),
|
|
("isl", [(2, 0), (2, 1), (3, 2)]),
|
|
("isle", [(2, 0), (2, 1), (3, 2), (3, 1)]),
|
|
("isles", [(2, 0), (2, 1), (3, 2), (3, 1), (3, 0)]),
|
|
("ish", [(2, 0), (2, 1), (2, 2)]),
|
|
("s", [(2, 1)]),
|
|
("sn", [(2, 1), (1, 1)]),
|
|
("snies", [(2, 1), (1, 1), (2, 0), (3, 1), (3, 0)]),
|
|
("snirl", [(2, 1), (1, 1), (1, 2), (0, 2), (1, 3)]),
|
|
("squin", [(2, 1), (1, 0), (2, 0), (1, 1)]),
|
|
("squinnier", [(2, 1), (1, 0), (2, 0), (1, 1), (0, 1), (1, 2), (0, 3), (0, 2)]),
|
|
("si", [(2, 1), (1, 2)]),
|
|
("sir", [(2, 1), (1, 2), (0, 2)]),
|
|
("sire", [(2, 1), (1, 2), (0, 2), (0, 3)]),
|
|
("sin", [(2, 1), (1, 2), (0, 1)]),
|
|
("sie", [(2, 1), (1, 2), (0, 3)]),
|
|
("sier", [(2, 1), (1, 2), (0, 3), (0, 2)]),
|
|
("sia", [(2, 1), (1, 2), (2, 3)]),
|
|
("sial", [(2, 1), (1, 2), (2, 3), (1, 3)]),
|
|
("sial", [(2, 1), (1, 2), (2, 3), (3, 2)]),
|
|
("sin", [(2, 1), (1, 2), (1, 1)]),
|
|
("sinh", [(2, 1), (1, 2), (1, 1), (2, 2)]),
|
|
("sil", [(2, 1), (1, 2), (1, 3)]),
|
|
("sile", [(2, 1), (1, 2), (1, 3), (0, 3)]),
|
|
("se", [(2, 1), (3, 1)]),
|
|
("sei", [(2, 1), (3, 1), (2, 0)]),
|
|
("seis", [(2, 1), (3, 1), (2, 0), (3, 0)]),
|
|
("sel", [(2, 1), (3, 1), (3, 2)]),
|
|
("selah", [(2, 1), (3, 1), (3, 2), (2, 3), (2, 2)]),
|
|
("ss", [(2, 1), (3, 0)]),
|
|
("ssi", [(2, 1), (3, 0), (2, 0)]),
|
|
("sl", [(2, 1), (3, 2)]),
|
|
("sla", [(2, 1), (3, 2), (2, 3)]),
|
|
("slain", [(2, 1), (3, 2), (2, 3), (1, 2), (0, 1)]),
|
|
("slain", [(2, 1), (3, 2), (2, 3), (1, 2), (1, 1)]),
|
|
("slab", [(2, 1), (3, 2), (2, 3), (3, 3)]),
|
|
("si", [(2, 1), (2, 0)]),
|
|
("sin", [(2, 1), (2, 0), (1, 1)]),
|
|
("sinh", [(2, 1), (2, 0), (1, 1), (2, 2)]),
|
|
("sis", [(2, 1), (2, 0), (3, 0)]),
|
|
("sise", [(2, 1), (2, 0), (3, 0), (3, 1)]),
|
|
("sisel", [(2, 1), (2, 0), (3, 0), (3, 1), (3, 2)]),
|
|
("sie", [(2, 1), (2, 0), (3, 1)]),
|
|
("sh", [(2, 1), (2, 2)]),
|
|
("shi", [(2, 1), (2, 2), (1, 2)]),
|
|
("shirl", [(2, 1), (2, 2), (1, 2), (0, 2), (1, 3)]),
|
|
("shire", [(2, 1), (2, 2), (1, 2), (0, 2), (0, 3)]),
|
|
("shin", [(2, 1), (2, 2), (1, 2), (0, 1)]),
|
|
("shinnies", [(2, 1), (2, 2), (1, 2), (0, 1), (1, 1), (2, 0), (3, 1), (3, 0)]),
|
|
("shiel", [(2, 1), (2, 2), (1, 2), (0, 3), (1, 3)]),
|
|
("shier", [(2, 1), (2, 2), (1, 2), (0, 3), (0, 2)]),
|
|
("shia", [(2, 1), (2, 2), (1, 2), (2, 3)]),
|
|
("shin", [(2, 1), (2, 2), (1, 2), (1, 1)]),
|
|
("she", [(2, 1), (2, 2), (3, 1)]),
|
|
("shes", [(2, 1), (2, 2), (3, 1), (3, 0)]),
|
|
("shel", [(2, 1), (2, 2), (3, 1), (3, 2)]),
|
|
("shela", [(2, 1), (2, 2), (3, 1), (3, 2), (2, 3)]),
|
|
("sha", [(2, 1), (2, 2), (2, 3)]),
|
|
("shale", [(2, 1), (2, 2), (2, 3), (1, 3), (0, 3)]),
|
|
("shalier", [(2, 1), (2, 2), (2, 3), (1, 3), (1, 2), (0, 3), (0, 2)]),
|
|
("shai", [(2, 1), (2, 2), (2, 3), (1, 2)]),
|
|
("shairn", [(2, 1), (2, 2), (2, 3), (1, 2), (0, 2), (1, 1)]),
|
|
("shairn", [(2, 1), (2, 2), (2, 3), (1, 2), (0, 2), (0, 1)]),
|
|
("shab", [(2, 1), (2, 2), (2, 3), (3, 3)]),
|
|
("shale", [(2, 1), (2, 2), (2, 3), (3, 2), (3, 1)]),
|
|
("shales", [(2, 1), (2, 2), (2, 3), (3, 2), (3, 1), (3, 0)]),
|
|
("h", [(2, 2)]),
|
|
("hi", [(2, 2), (1, 2)]),
|
|
("hir", [(2, 2), (1, 2), (0, 2)]),
|
|
("hire", [(2, 2), (1, 2), (0, 2), (0, 3)]),
|
|
("hin", [(2, 2), (1, 2), (0, 1)]),
|
|
("hinnies", [(2, 2), (1, 2), (0, 1), (1, 1), (2, 0), (3, 1), (2, 1)]),
|
|
("hinnies", [(2, 2), (1, 2), (0, 1), (1, 1), (2, 0), (3, 1), (3, 0)]),
|
|
("hie", [(2, 2), (1, 2), (0, 3)]),
|
|
("his", [(2, 2), (1, 2), (2, 1)]),
|
|
("hisn", [(2, 2), (1, 2), (2, 1), (1, 1)]),
|
|
("hiss", [(2, 2), (1, 2), (2, 1), (3, 0)]),
|
|
("hissel", [(2, 2), (1, 2), (2, 1), (3, 0), (3, 1), (3, 2)]),
|
|
("hisis", [(2, 2), (1, 2), (2, 1), (2, 0), (3, 0)]),
|
|
("hia", [(2, 2), (1, 2), (2, 3)]),
|
|
("hin", [(2, 2), (1, 2), (1, 1)]),
|
|
("hins", [(2, 2), (1, 2), (1, 1), (2, 1)]),
|
|
("hile", [(2, 2), (1, 2), (1, 3), (0, 3)]),
|
|
("hila", [(2, 2), (1, 2), (1, 3), (2, 3)]),
|
|
("hl", [(2, 2), (1, 3)]),
|
|
("hler", [(2, 2), (1, 3), (0, 3), (0, 2)]),
|
|
("hl", [(2, 2), (3, 2)]),
|
|
("he", [(2, 2), (3, 1)]),
|
|
("hes", [(2, 2), (3, 1), (2, 1)]),
|
|
("hei", [(2, 2), (3, 1), (2, 0)]),
|
|
("hein", [(2, 2), (3, 1), (2, 0), (1, 1)]),
|
|
("heinie", [(2, 2), (3, 1), (2, 0), (1, 1), (1, 2), (0, 3)]),
|
|
("hes", [(2, 2), (3, 1), (3, 0)]),
|
|
("hel", [(2, 2), (3, 1), (3, 2)]),
|
|
("hb", [(2, 2), (3, 3)]),
|
|
("hs", [(2, 2), (2, 1)]),
|
|
("hsi", [(2, 2), (2, 1), (1, 2)]),
|
|
("hsi", [(2, 2), (2, 1), (2, 0)]),
|
|
("ha", [(2, 2), (2, 3)]),
|
|
("hal", [(2, 2), (2, 3), (1, 3)]),
|
|
("hale", [(2, 2), (2, 3), (1, 3), (0, 3)]),
|
|
("haler", [(2, 2), (2, 3), (1, 3), (0, 3), (0, 2)]),
|
|
("hair", [(2, 2), (2, 3), (1, 2), (0, 2)]),
|
|
("haire", [(2, 2), (2, 3), (1, 2), (0, 2), (0, 3)]),
|
|
("hain", [(2, 2), (2, 3), (1, 2), (0, 1)]),
|
|
("hain", [(2, 2), (2, 3), (1, 2), (1, 1)]),
|
|
("hail", [(2, 2), (2, 3), (1, 2), (1, 3)]),
|
|
("hailer", [(2, 2), (2, 3), (1, 2), (1, 3), (0, 3), (0, 2)]),
|
|
("hab", [(2, 2), (2, 3), (3, 3)]),
|
|
("hable", [(2, 2), (2, 3), (3, 3), (3, 2), (3, 1)]),
|
|
("hal", [(2, 2), (2, 3), (3, 2)]),
|
|
("hals", [(2, 2), (2, 3), (3, 2), (2, 1)]),
|
|
("halse", [(2, 2), (2, 3), (3, 2), (2, 1), (3, 1)]),
|
|
("hale", [(2, 2), (2, 3), (3, 2), (3, 1)]),
|
|
("hales", [(2, 2), (2, 3), (3, 2), (3, 1), (2, 1)]),
|
|
("hales", [(2, 2), (2, 3), (3, 2), (3, 1), (3, 0)]),
|
|
("a", [(2, 3)]),
|
|
("al", [(2, 3), (1, 3)]),
|
|
("ale", [(2, 3), (1, 3), (0, 3)]),
|
|
("alin", [(2, 3), (1, 3), (1, 2), (0, 1)]),
|
|
("alish", [(2, 3), (1, 3), (1, 2), (2, 1), (2, 2)]),
|
|
("alin", [(2, 3), (1, 3), (1, 2), (1, 1)]),
|
|
("ai", [(2, 3), (1, 2)]),
|
|
("air", [(2, 3), (1, 2), (0, 2)]),
|
|
("airn", [(2, 3), (1, 2), (0, 2), (1, 1)]),
|
|
("airns", [(2, 3), (1, 2), (0, 2), (1, 1), (2, 1)]),
|
|
("airn", [(2, 3), (1, 2), (0, 2), (0, 1)]),
|
|
("aire", [(2, 3), (1, 2), (0, 2), (0, 3)]),
|
|
("ain", [(2, 3), (1, 2), (0, 1)]),
|
|
("ainu", [(2, 3), (1, 2), (0, 1), (0, 0)]),
|
|
("aiel", [(2, 3), (1, 2), (0, 3), (1, 3)]),
|
|
("ais", [(2, 3), (1, 2), (2, 1)]),
|
|
("aisle", [(2, 3), (1, 2), (2, 1), (3, 2), (3, 1)]),
|
|
("aisles", [(2, 3), (1, 2), (2, 1), (3, 2), (3, 1), (3, 0)]),
|
|
("ain", [(2, 3), (1, 2), (1, 1)]),
|
|
("ainu", [(2, 3), (1, 2), (1, 1), (0, 0)]),
|
|
("ains", [(2, 3), (1, 2), (1, 1), (2, 1)]),
|
|
("ail", [(2, 3), (1, 2), (1, 3)]),
|
|
("aile", [(2, 3), (1, 2), (1, 3), (0, 3)]),
|
|
("ab", [(2, 3), (3, 3)]),
|
|
("abl", [(2, 3), (3, 3), (3, 2)]),
|
|
("able", [(2, 3), (3, 3), (3, 2), (3, 1)]),
|
|
("ables", [(2, 3), (3, 3), (3, 2), (3, 1), (2, 1)]),
|
|
("ables", [(2, 3), (3, 3), (3, 2), (3, 1), (3, 0)]),
|
|
("al", [(2, 3), (3, 2)]),
|
|
("als", [(2, 3), (3, 2), (2, 1)]),
|
|
("ale", [(2, 3), (3, 2), (3, 1)]),
|
|
("ales", [(2, 3), (3, 2), (3, 1), (2, 1)]),
|
|
("ales", [(2, 3), (3, 2), (3, 1), (3, 0)]),
|
|
("alb", [(2, 3), (3, 2), (3, 3)]),
|
|
("ah", [(2, 3), (2, 2)]),
|
|
("ahi", [(2, 3), (2, 2), (1, 2)]),
|
|
("ahir", [(2, 3), (2, 2), (1, 2), (0, 2)]),
|
|
("ahs", [(2, 3), (2, 2), (2, 1)]),
|
|
("s", [(3, 0)]),
|
|
("si", [(3, 0), (2, 0)]),
|
|
("sin", [(3, 0), (2, 0), (1, 1)]),
|
|
("sins", [(3, 0), (2, 0), (1, 1), (2, 1)]),
|
|
("sinh", [(3, 0), (2, 0), (1, 1), (2, 2)]),
|
|
("sinhs", [(3, 0), (2, 0), (1, 1), (2, 2), (2, 1)]),
|
|
("sie", [(3, 0), (2, 0), (3, 1)]),
|
|
("sis", [(3, 0), (2, 0), (2, 1)]),
|
|
("sisi", [(3, 0), (2, 0), (2, 1), (1, 2)]),
|
|
("sise", [(3, 0), (2, 0), (2, 1), (3, 1)]),
|
|
("sisel", [(3, 0), (2, 0), (2, 1), (3, 1), (3, 2)]),
|
|
("sish", [(3, 0), (2, 0), (2, 1), (2, 2)]),
|
|
("ss", [(3, 0), (2, 1)]),
|
|
("ssi", [(3, 0), (2, 1), (1, 2)]),
|
|
("ssi", [(3, 0), (2, 1), (2, 0)]),
|
|
("se", [(3, 0), (3, 1)]),
|
|
("sesqui", [(3, 0), (3, 1), (2, 1), (1, 0), (2, 0)]),
|
|
("sesia", [(3, 0), (3, 1), (2, 1), (1, 2), (2, 3)]),
|
|
("sei", [(3, 0), (3, 1), (2, 0)]),
|
|
("seis", [(3, 0), (3, 1), (2, 0), (2, 1)]),
|
|
("seisin", [(3, 0), (3, 1), (2, 0), (2, 1), (1, 2), (0, 1)]),
|
|
("seisin", [(3, 0), (3, 1), (2, 0), (2, 1), (1, 2), (1, 1)]),
|
|
("sel", [(3, 0), (3, 1), (3, 2)]),
|
|
("sels", [(3, 0), (3, 1), (3, 2), (2, 1)]),
|
|
("selah", [(3, 0), (3, 1), (3, 2), (2, 3), (2, 2)]),
|
|
("selahs", [(3, 0), (3, 1), (3, 2), (2, 3), (2, 2), (2, 1)]),
|
|
("e", [(3, 1)]),
|
|
("es", [(3, 1), (2, 1)]),
|
|
("ess", [(3, 1), (2, 1), (3, 0)]),
|
|
("eshin", [(3, 1), (2, 1), (2, 2), (1, 2), (0, 1)]),
|
|
("eshin", [(3, 1), (2, 1), (2, 2), (1, 2), (1, 1)]),
|
|
("eh", [(3, 1), (2, 2)]),
|
|
("es", [(3, 1), (3, 0)]),
|
|
("ess", [(3, 1), (3, 0), (2, 1)]),
|
|
("essie", [(3, 1), (3, 0), (2, 1), (1, 2), (0, 3)]),
|
|
("el", [(3, 1), (3, 2)]),
|
|
("elhi", [(3, 1), (3, 2), (2, 2), (1, 2)]),
|
|
("els", [(3, 1), (3, 2), (2, 1)]),
|
|
("elsin", [(3, 1), (3, 2), (2, 1), (1, 2), (0, 1)]),
|
|
("elsin", [(3, 1), (3, 2), (2, 1), (1, 2), (1, 1)]),
|
|
("elsin", [(3, 1), (3, 2), (2, 1), (2, 0), (1, 1)]),
|
|
("elshin", [(3, 1), (3, 2), (2, 1), (2, 2), (1, 2), (0, 1)]),
|
|
("elshin", [(3, 1), (3, 2), (2, 1), (2, 2), (1, 2), (1, 1)]),
|
|
("ela", [(3, 1), (3, 2), (2, 3)]),
|
|
("elain", [(3, 1), (3, 2), (2, 3), (1, 2), (0, 1)]),
|
|
("elain", [(3, 1), (3, 2), (2, 3), (1, 2), (1, 1)]),
|
|
("elains", [(3, 1), (3, 2), (2, 3), (1, 2), (1, 1), (2, 1)]),
|
|
("elb", [(3, 1), (3, 2), (3, 3)]),
|
|
("l", [(3, 2)]),
|
|
("lh", [(3, 2), (2, 2)]),
|
|
("lhb", [(3, 2), (2, 2), (3, 3)]),
|
|
("ls", [(3, 2), (2, 1)]),
|
|
("la", [(3, 2), (2, 3)]),
|
|
("lai", [(3, 2), (2, 3), (1, 2)]),
|
|
("lair", [(3, 2), (2, 3), (1, 2), (0, 2)]),
|
|
("lain", [(3, 2), (2, 3), (1, 2), (0, 1)]),
|
|
("laisse", [(3, 2), (2, 3), (1, 2), (2, 1), (3, 0), (3, 1)]),
|
|
("lain", [(3, 2), (2, 3), (1, 2), (1, 1)]),
|
|
("lab", [(3, 2), (2, 3), (3, 3)]),
|
|
("lah", [(3, 2), (2, 3), (2, 2)]),
|
|
("le", [(3, 2), (3, 1)]),
|
|
("les", [(3, 2), (3, 1), (2, 1)]),
|
|
("less", [(3, 2), (3, 1), (2, 1), (3, 0)]),
|
|
("lei", [(3, 2), (3, 1), (2, 0)]),
|
|
("leis", [(3, 2), (3, 1), (2, 0), (3, 0)]),
|
|
("leiss", [(3, 2), (3, 1), (2, 0), (3, 0), (2, 1)]),
|
|
("leis", [(3, 2), (3, 1), (2, 0), (2, 1)]),
|
|
("leiss", [(3, 2), (3, 1), (2, 0), (2, 1), (3, 0)]),
|
|
("lehi", [(3, 2), (3, 1), (2, 2), (1, 2)]),
|
|
("les", [(3, 2), (3, 1), (3, 0)]),
|
|
("less", [(3, 2), (3, 1), (3, 0), (2, 1)]),
|
|
("lessn", [(3, 2), (3, 1), (3, 0), (2, 1), (1, 1)]),
|
|
("lb", [(3, 2), (3, 3)]),
|
|
("b", [(3, 3)]),
|
|
("ba", [(3, 3), (2, 3)]),
|
|
("bal", [(3, 3), (2, 3), (1, 3)]),
|
|
("bale", [(3, 3), (2, 3), (1, 3), (0, 3)]),
|
|
("balei", [(3, 3), (2, 3), (1, 3), (0, 3), (1, 2)]),
|
|
("baleise", [(3, 3), (2, 3), (1, 3), (0, 3), (1, 2), (2, 1), (3, 1)]),
|
|
("baler", [(3, 3), (2, 3), (1, 3), (0, 3), (0, 2)]),
|
|
("balr", [(3, 3), (2, 3), (1, 3), (0, 2)]),
|
|
("bali", [(3, 3), (2, 3), (1, 3), (1, 2)]),
|
|
("bai", [(3, 3), (2, 3), (1, 2)]),
|
|
("bairn", [(3, 3), (2, 3), (1, 2), (0, 2), (1, 1)]),
|
|
("bairns", [(3, 3), (2, 3), (1, 2), (0, 2), (1, 1), (2, 1)]),
|
|
("bairnie", [(3, 3), (2, 3), (1, 2), (0, 2), (1, 1), (2, 0), (3, 1)]),
|
|
("bairnish", [(3, 3), (2, 3), (1, 2), (0, 2), (1, 1), (2, 0), (2, 1), (2, 2)]),
|
|
("bairn", [(3, 3), (2, 3), (1, 2), (0, 2), (0, 1)]),
|
|
("bain", [(3, 3), (2, 3), (1, 2), (0, 1)]),
|
|
("bais", [(3, 3), (2, 3), (1, 2), (2, 1)]),
|
|
("bain", [(3, 3), (2, 3), (1, 2), (1, 1)]),
|
|
("bainie", [(3, 3), (2, 3), (1, 2), (1, 1), (2, 0), (3, 1)]),
|
|
("bail", [(3, 3), (2, 3), (1, 2), (1, 3)]),
|
|
("baile", [(3, 3), (2, 3), (1, 2), (1, 3), (0, 3)]),
|
|
("bailer", [(3, 3), (2, 3), (1, 2), (1, 3), (0, 3), (0, 2)]),
|
|
("bal", [(3, 3), (2, 3), (3, 2)]),
|
|
("bals", [(3, 3), (2, 3), (3, 2), (2, 1)]),
|
|
("bale", [(3, 3), (2, 3), (3, 2), (3, 1)]),
|
|
("bales", [(3, 3), (2, 3), (3, 2), (3, 1), (2, 1)]),
|
|
("balei", [(3, 3), (2, 3), (3, 2), (3, 1), (2, 0)]),
|
|
("bales", [(3, 3), (2, 3), (3, 2), (3, 1), (3, 0)]),
|
|
("bah", [(3, 3), (2, 3), (2, 2)]),
|
|
("bhil", [(3, 3), (2, 2), (1, 2), (1, 3)]),
|
|
("bl", [(3, 3), (3, 2)]),
|
|
("bls", [(3, 3), (3, 2), (2, 1)]),
|
|
("blair", [(3, 3), (3, 2), (2, 3), (1, 2), (0, 2)]),
|
|
("blain", [(3, 3), (3, 2), (2, 3), (1, 2), (0, 1)]),
|
|
("blain", [(3, 3), (3, 2), (2, 3), (1, 2), (1, 1)]),
|
|
("blains", [(3, 3), (3, 2), (2, 3), (1, 2), (1, 1), (2, 1)]),
|
|
("blah", [(3, 3), (3, 2), (2, 3), (2, 2)]),
|
|
("blahs", [(3, 3), (3, 2), (2, 3), (2, 2), (2, 1)]),
|
|
("bless", [(3, 3), (3, 2), (3, 1), (2, 1), (3, 0)]),
|
|
("bless", [(3, 3), (3, 2), (3, 1), (3, 0), (2, 1)]),
|
|
]
|
|
|
|
# -----------------------------------------------------
|
|
# Solved board max 4-letter words
|
|
# -----------------------------------------------------
|
|
|
|
# Init for word tree (4 board_4x4 or less) and fixtures
|
|
@pytest.fixture
|
|
def board_4(board_4x4):
|
|
return BoggleBoard(board_4x4, 4)
|
|
|
|
@pytest.fixture
|
|
def tree_4(board_4):
|
|
return build_full_boggle_tree(board_4, Path(WORDLISTS_DIR))
|
|
|
|
@pytest.fixture
|
|
def found_words_4(tree_4):
|
|
return list(chain.from_iterable([x.word_paths for x in tree_4.values()]))
|
|
|
|
# Tests for solved board with max of 4-letter words
|
|
def test_word_count_4_board_4x4_max(expected_words_max_4, tree_4):
|
|
assert len(expected_words_max_4) == sum(map(lambda x: len(x.word_paths), tree_4.values()))
|
|
|
|
def test_words_full_4_board_4x4_max(expected_words_max_4, found_words_4):
|
|
"""Verify words and paths match in exact order"""
|
|
assert found_words_4 == expected_words_max_4
|
|
|
|
def test_format_words_4_to_csv():
|
|
pass
|
|
|
|
def test_format_words_4_to_json():
|
|
pass
|
|
|
|
|
|
# -----------------------------------------------------
|
|
# Solved board max 20-letter words
|
|
# -----------------------------------------------------
|
|
|
|
# Init for word tree (20 board_4x4 or less) and fixtures
|
|
@pytest.fixture
|
|
def board_20(board_4x4):
|
|
return BoggleBoard(board_4x4, 20)
|
|
|
|
@pytest.fixture
|
|
def tree_20(board_20):
|
|
return build_full_boggle_tree(board_20, WORDLISTS_DIR)
|
|
|
|
@pytest.fixture
|
|
def found_words_20(tree_20):
|
|
return list(chain.from_iterable([x.word_paths for x in tree_20.values()]))
|
|
|
|
# Tests for solved board with max of 20-letter words
|
|
def test_word_count_20_board_4x4_max(expected_words_max_20, tree_20):
|
|
assert len(expected_words_max_20) == sum(map(lambda x: len(x.word_paths), tree_20.values()))
|
|
|
|
def test_words_full_20_board_4x4_max(expected_words_max_20, found_words_20):
|
|
assert found_words_20 == expected_words_max_20
|
|
|
|
def test_format_words_20_to_csv():
|
|
pass
|
|
|
|
def test_format_words_20_to_json():
|
|
pass
|