def test_centre_tile_has_correct_vertices(self): network = data.generate_network(4, 4) tile = "B2" expected_vertices = {"A1", "B1", "C1", "C2", "C3", "B3", "A3", "A2"} self.assertEqual(expected_vertices, set(network[tile]), "Vertices did not match.")
def test_bottom_right_corner_tile_has_correct_vertices(self): network = data.generate_network(4, 4) tile = "D4" expected_vertices = {"C3", "C4", "D3"} self.assertEqual(expected_vertices, set(network[tile]), "Vertices did not match.")
def test_topleft_corner_tile_has_correct_vertices(self): network = data.generate_network(4, 4) tile = "A1" expected_vertices = {"B1", "B2", "A2"} self.assertEqual(expected_vertices, set(network[tile]), "Vertices did not match.")
def test_find_expected_words_in_3x3_map(self): """ Test an example 3x3 matrix. :return: """ # Generate an example network. letters = list("COTASTTIN") network = data.generate_network(3, 3) mapping = data.assign_letters(network, letters) expected_words = ["CAT", "COAT", "STINT", "COT", "COST"] words = search.generate_words(network, mapping) for expected_word in expected_words: self.assertIn(expected_word, words, "Could not find word in generated list.")
def test_4x4_generated_networks_have_expected_names(self): network = data.generate_network(4, 4) self.assertIn("A1", network.keys(), "Could not find A1 tile.") self.assertIn("D4", network.keys(), "Could not find A1 tile.")
def test_7x7_generated_networks_have_expected_names(self): network = data.generate_network(7, 7) self.assertIn("A1", network.keys(), "Could not find A1 tile.") self.assertIn("G7", network.keys(), "Could not find A1 tile.")
from bogglers import data, search from pprint import pprint import time print("Searching...") t = time.time() network = data.generate_network(4, 4) letters = list("LTWNHWCCRJIYRFIE") mapping = data.assign_letters(network, letters) words = search.generate_words(network, mapping, max_letters=4) elapsed = time.time() - t print("Search complete.") print("Time elapsed: {}".format(elapsed)) print("Found {} words.".format(len(words))) pprint(words)