Update solved 4x4 board tests - check paths

- 4x4 board solving tests now checks for the original order of the words as well as the
exact path for each
This commit is contained in:
2023-05-31 18:08:05 -04:00
parent 9e2cd55741
commit 3b79ca7519
+820 -95
View File
@@ -17,96 +17,826 @@ def board_4x4():
@pytest.fixture
def expected_words_max_4():
return [
"u", "un", "unn", "uns", "uni", "unie", "uni", "unie", "un", "unn", "uni",
"unie", "n", "ni", "nis", "nisi", "nil", "nile", "nu", "nun", "nuns", "nr", "r",
"rin", "rie", "riel", "risqu", "rise", "riss", "ria", "rial", "rial", "rin",
"rins", "rile", "rn", "rle", "rn", "re", "rel", "rei", "rein", "reis", "rein",
"e", "el", "ela", "elhi", "eli", "elia", "eir", "eila", "er", "erin", "eris",
"eria", "erin", "ern", "erns", "ern", "qu", "qui", "quin", "quis", "quis", "n",
"nu", "nun", "nr", "ns", "ni", "nis", "nies", "nies", "nis", "nisi", "ni",
"nis", "nisi", "nil", "nile", "i", "ir", "ire", "in", "inn", "inns", "ie",
"ihs", "is", "isn", "ise", "isl", "isle", "isis", "ish", "ia", "in", "inn",
"ins", "il", "ile", "ila", "l", "le", "lei", "leis", "ler", "lr", "la", "lai",
"lair", "lain", "lain", "lab", "lah", "lh", "lhb", "li", "lir", "lire", "lin",
"linn", "lie", "lier", "lis", "lise", "liss", "lish", "lin", "linn", "lins",
"i", "in", "inn", "ins", "inia", "is", "ise", "ie", "is", "isn", "ise", "isl",
"isle", "ish", "s", "sn", "si", "sir", "sire", "sin", "sie", "sier", "sia",
"sial", "sial", "sin", "sinh", "sil", "sile", "se", "sei", "seis", "sel", "ss",
"ssi", "sl", "sla", "slab", "si", "sin", "sinh", "sis", "sise", "sie", "sh",
"shi", "shin", "shia", "shin", "she", "shes", "shel", "sha", "shai", "shab",
"h", "hi", "hir", "hire", "hin", "hie", "his", "hisn", "hiss", "hia", "hin",
"hins", "hile", "hila", "hl", "hler", "hl", "he", "hes", "hei", "hein", "hes",
"hel", "hb", "hs", "hsi", "hsi", "ha", "hal", "hale", "hair", "hain", "hain",
"hail", "hab", "hal", "hals", "hale", "a", "al", "ale", "alin", "alin", "ai",
"air", "airn", "airn", "aire", "ain", "ainu", "aiel", "ais", "ain", "ainu",
"ains", "ail", "aile", "ab", "abl", "able", "al", "als", "ale", "ales", "ales",
"alb", "ah", "ahi", "ahir", "ahs", "s", "si", "sin", "sins", "sinh", "sie",
"sis", "sisi", "sise", "sish", "ss", "ssi", "ssi", "se", "sei", "seis", "sel",
"sels", "e", "es", "ess", "eh", "es", "ess", "el", "elhi", "els", "ela", "elb",
"l", "lh", "lhb", "ls", "la", "lai", "lair", "lain", "lain", "lab", "lah", "le",
"les", "less", "lei", "leis", "leis", "lehi", "les", "less", "lb", "b", "ba",
"bal", "bale", "balr", "bali", "bai", "bain", "bais", "bain", "bail", "bal",
"bals", "bale", "bah", "bhil", "bl", "bls", "blah"
("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","un","unn","unrelinquishable","unrelishable","unreliable","unrein","uns",
"unsin","unslain","unshale","unshale","uni","unie","unhale","unhair","unhale",
"uni","unie","un","unn","uni","unie","unrelishable","unreliable",
"unrelinquishable","unrein","n","ni","nihal","nihal","nis","nisei","niseis",
"nisse","nisi","nil","nile","nu","nun","nuns","nr","r","rin","rie",
"riel","risqu","rise","rises","riss","rissel","ria","rial","rial",
"rials","rin","rins","rinse","rinses","rile","rn","rle","rn",
"re","rel","relais","relinquish","relinquishes","relish","relishes",
"relishable","reliable","relinquish","relinquishes","rei","rein","reis",
"rein","reins","e","el","ela","elain","elain","elains","elhi","eli","elisha",
"elia","eir","eila","er","erin","eris","eria","erin","ern","erns","ernie",
"ern","qu","qui","quin","quins","quinse","quinin","quiniela","quinia",
"quis","quis","quisle","n","nu","nun","nr","ns","ni",
"nis","nisse","nies","nies","niels","nis","nisi","nisse","ni",
"nihal","nihal","nis","nisei","niseis","nisse","nisi","nil","nile",
"i","ir","ire","in","inn","inns","ie","ihs","is",
"isn","ise","issei","isl","isle","isles","isis","ish","ia",
"in","inn","ins","inisle","inhale","inhaler","inhale","inhales","inhales",
"il","ile","ila","l","le","lei","leis","leiss","ler",
"lr","la","lai","lair","lain","laisse","lain","lab","lah",
"lh","lhb","li","lir","lire","lin","linn","linns","linquish",
"lie","lier","lis","lise","liss","lisle","lisles","lish","liable",
"lin","linn","lins","linie","linha","linquish","i","in","inn",
"ins","inhale","inhaler","inhale","inhales","inhales","inisle","inia","inial",
"inial","is","ise","ie","is","isn","ise","isl","isle",
"isles","ish","s","sn","snies","snirl","squin","squinnier","si",
"sir","sire","sin","sie","sier","sia","sial","sial","sin",
"sinh","sil","sile","se","sei","seis","sel","selah","ss",
"ssi","sl","sla","slain","slain","slab","si","sin","sinh",
"sis","sise","sisel","sie","sh","shi","shirl","shire","shin",
"shinnies","shiel","shier","shia","shin","she","shes","shel","shela",
"sha","shale","shalier","shai","shairn","shairn","shab","shale","shales",
"h","hi","hir","hire","hin","hinnies","hinnies","hie","his",
"hisn","hiss","hissel","hisis","hia","hin","hins","hile","hila",
"hl","hler","hl","he","hes","hei","hein","heinie","hes",
"hel","hb","hs","hsi","hsi","ha","hal","hale","haler",
"hair","haire","hain","hain","hail","hailer","hab","hable","hal",
"hals","halse","hale","hales","hales","a","al","ale","alin",
"alish","alin","ai","air","airn","airns","airn","aire","ain",
"ainu","aiel","ais","aisle","aisles","ain","ainu","ains","ail",
"aile","ab","abl","able","ables","ables","al","als","ale",
"ales","ales","alb","ah","ahi","ahir","ahs","s","si",
"sin","sins","sinh","sinhs","sie","sis","sisi","sise","sisel",
"sish","ss","ssi","ssi","se","sesqui","sesia","sei","seis",
"seisin","seisin","sel","sels","selah","selahs","e","es","ess",
"eshin","eshin","eh","es","ess","essie","el","elhi","els",
"elsin","elsin","elsin","elshin","elshin","ela","elain","elain","elains",
"elb","l","lh","lhb","ls","la","lai","lair","lain",
"laisse","lain","lab","lah","le","les","less","lei","leis",
"leiss","leis","leiss","lehi","les","less","lessn","lb","b",
"ba","bal","bale","balei","baleise","baler","balr","bali","bai",
"bairn","bairns","bairnie","bairnish","bairn","bain","bais","bain","bainie",
"bail","baile","bailer","bal","bals","bale","bales","balei","bales",
"bah","bhil","bl","bls","blair","blain","blain","blains","blah",
"blahs","bless","bless"
("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)]),
]
# -----------------------------------------------------
@@ -130,11 +860,9 @@ def found_words_4(tree_4):
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, tree_4):
found_words = [x.word_paths for x in tree_4.values()]
for letter, subtree in tree_4.items():
for i in range(0, min(len(expected_words_max_4), len(found_words_4))):
assert expected_words_max_4[i] == found_words_4[i][0]
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
@@ -164,11 +892,8 @@ def found_words_20(tree_20):
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, tree_20):
found_words = [x.word_paths for x in tree_20.values()]
for letter, subtree in tree_20.items():
for i in range(0, min(len(expected_words_max_20), len(found_words_20))):
assert expected_words_max_20[i] == found_words_20[i][0]
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