-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_helpers.py
112 lines (97 loc) · 2.61 KB
/
test_helpers.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
from helpers import (letters_in_word, letters_not_in_word,
matches_known_positions, parse_known_positions,
return_relevant_words)
def test_letters_in_word():
letters = "tia"
word = "tibia"
result = letters_in_word(letters, word)
assert result
letters = "ab"
word = "tennessee"
result = letters_in_word(letters, word)
assert not result
def test_letters_not_in_word():
letters = "tia"
word = "tibia"
result = letters_not_in_word(letters, word)
assert not result
letters = "ab"
word = "tennessee"
result = letters_not_in_word(letters, word)
assert result
def test_matches_known_positions():
first_word = "tibia"
second_word = "tacit"
third_word = "await"
known_position = {
"first": "t",
}
assert matches_known_positions(
known_positions=known_position,
word=first_word,
)
assert matches_known_positions(
known_positions=known_position,
word=second_word,
)
assert not matches_known_positions(
known_positions=known_position,
word=third_word,
)
first_word = "trais"
second_word = "thais"
third_word = "chasis"
known_position = {
"first": "t",
"third": "a",
"fifth": "s",
}
assert matches_known_positions(
known_positions=known_position,
word=first_word,
)
assert matches_known_positions(
known_positions=known_position,
word=second_word,
)
assert not matches_known_positions(
known_positions=known_position,
word=third_word,
)
def test_return_relevant_words():
words = """await
habit
haiti
tibia
hello
loony
"""
known_letter_pos = "tia"
known_letters_neg = "roeslcknfumed"
known_positions = {
"first": "t",
}
results = return_relevant_words(
words=words,
known_letters_pos=known_letter_pos,
known_letters_neg=known_letters_neg,
known_positions=known_positions,
)
expected_words = ["tibia"]
assert expected_words == results
known_positions = {}
expected_words = ["await", "habit", "haiti", "tibia"]
results = return_relevant_words(
words=words,
known_letters_pos=known_letter_pos,
known_letters_neg=known_letters_neg,
known_positions=known_positions,
)
def test_parse_known_positions():
kp = "_e__l"
result = parse_known_positions(kp)
expected = {"second": "e", "fifth": "l"}
assert result == expected
kp = ""
result = parse_known_positions(kp)
assert result == {}