Spaces:
Sleeping
Sleeping
Fix env tests
Browse files- wordle_env/__init__.py +3 -0
- wordle_env/test_wordle.py +16 -27
wordle_env/__init__.py
CHANGED
@@ -7,6 +7,9 @@ from gym.envs.registration import (
|
|
7 |
)
|
8 |
import os
|
9 |
from . import wordle
|
|
|
|
|
|
|
10 |
|
11 |
|
12 |
register(
|
|
|
7 |
)
|
8 |
import os
|
9 |
from . import wordle
|
10 |
+
# Classic
|
11 |
+
# ----------------------------------------
|
12 |
+
current_dir = os.path.realpath(os.path.dirname(__file__))
|
13 |
|
14 |
|
15 |
register(
|
wordle_env/test_wordle.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
import pytest
|
2 |
|
3 |
-
import wordle
|
4 |
-
import state
|
5 |
|
6 |
TESTWORDS = [
|
7 |
"APPAA",
|
@@ -50,14 +50,12 @@ def test_guess_win(wordleEnv):
|
|
50 |
def test_win_reward(wordleEnv):
|
51 |
wordleEnv.reset(seed=13)
|
52 |
goal = wordleEnv.goal_word
|
53 |
-
word_index = (wordleEnv.words
|
54 |
-
|
55 |
-
new_state, reward, done, _ = wordleEnv.step(
|
56 |
-
wordleEnv.encode_word(wordleEnv.words[word_index]))
|
57 |
assert state.remaining_steps(new_state) == wordleEnv.max_turns-1
|
58 |
assert not done
|
59 |
assert not wordleEnv.done
|
60 |
-
assert reward
|
61 |
|
62 |
new_state, reward, done, _ = wordleEnv.step(goal)
|
63 |
assert state.remaining_steps(new_state) == wordleEnv.max_turns-2
|
@@ -75,9 +73,7 @@ def test_win_reward(wordleEnv):
|
|
75 |
def test_win_reward_6(wordleEnv):
|
76 |
wordleEnv.reset(seed=13)
|
77 |
goal = wordleEnv.goal_word
|
78 |
-
|
79 |
-
wordleEnv.decode_word(goal)) + 1) % len(wordleEnv.words)
|
80 |
-
random_word = wordleEnv.encode_word(wordleEnv.words[word_index])
|
81 |
|
82 |
for i in range(5):
|
83 |
new_state, reward, done, _ = wordleEnv.step(random_word)
|
@@ -93,24 +89,21 @@ def test_win_reward_6(wordleEnv):
|
|
93 |
def test_lose_reward(wordleEnv):
|
94 |
wordleEnv.reset(seed=13)
|
95 |
goal = wordleEnv.goal_word
|
96 |
-
|
97 |
-
wordleEnv.decode_word(goal)) + 1) % len(wordleEnv.words)
|
98 |
-
random_word = wordleEnv.encode_word(wordleEnv.words[word_index])
|
99 |
for i in range(1, wordleEnv.max_turns):
|
100 |
new_state, reward, done, _ = wordleEnv.step(random_word)
|
101 |
assert state.remaining_steps(new_state) == wordleEnv.max_turns-i
|
102 |
assert not done
|
103 |
assert not wordleEnv.done
|
104 |
-
assert reward
|
105 |
|
106 |
-
word_index = (wordleEnv.
|
107 |
-
|
108 |
-
random_word = wordleEnv.encode_word(wordleEnv.words[word_index])
|
109 |
new_state, reward, done, _ = wordleEnv.step(random_word)
|
110 |
assert state.remaining_steps(new_state) == 0
|
111 |
assert done
|
112 |
assert wordleEnv.done
|
113 |
-
assert reward
|
114 |
|
115 |
try:
|
116 |
wordleEnv.step(goal)
|
@@ -121,11 +114,10 @@ def test_lose_reward(wordleEnv):
|
|
121 |
|
122 |
def test_step(wordleEnv):
|
123 |
wordleEnv.reset(seed=13)
|
124 |
-
wordleEnv.set_goal_encoded(
|
125 |
|
126 |
cur_state = wordleEnv.state
|
127 |
-
new_state, reward, done, _ = wordleEnv.step(
|
128 |
-
wordleEnv.encode_word(wordleEnv.words[1]))
|
129 |
assert state.remaining_steps(cur_state) == wordleEnv.max_turns
|
130 |
assert state.remaining_steps(new_state) == wordleEnv.max_turns-1
|
131 |
# Expect B to be all 1,0,0
|
@@ -156,8 +148,7 @@ def test_step(wordleEnv):
|
|
156 |
1, 0, 0,
|
157 |
0, 0, 0)
|
158 |
cur_state = wordleEnv.state
|
159 |
-
new_state, reward, done, _ = wordleEnv.step(
|
160 |
-
wordleEnv.encode_word(wordleEnv.words[1]))
|
161 |
assert state.remaining_steps(cur_state) == wordleEnv.max_turns-1
|
162 |
assert state.remaining_steps(new_state) == wordleEnv.max_turns-2
|
163 |
# Expect B to be all 1,0,0
|
@@ -180,8 +171,7 @@ def test_step(wordleEnv):
|
|
180 |
1, 0, 0,
|
181 |
0, 0, 0)
|
182 |
|
183 |
-
new_state, reward, done, _ = wordleEnv.step(
|
184 |
-
wordleEnv.encode_word(wordleEnv.words[2]))
|
185 |
assert state.remaining_steps(new_state) == wordleEnv.max_turns-3
|
186 |
# Expect B to be all 1,0,0
|
187 |
offset = 1 + 3*5*(ord('B')-ord('A'))
|
@@ -207,8 +197,7 @@ def test_step(wordleEnv):
|
|
207 |
1, 0, 0,
|
208 |
0, 0, 0)
|
209 |
|
210 |
-
new_state, reward, done, _ = wordleEnv.step(
|
211 |
-
wordleEnv.encode_word(wordleEnv.words[0]))
|
212 |
# Expect A to be right in position 0 4 and 5
|
213 |
offset = 1
|
214 |
assert tuple(new_state[offset:offset+15]) == (0, 0, 1,
|
|
|
1 |
import pytest
|
2 |
|
3 |
+
from . import wordle
|
4 |
+
from . import state
|
5 |
|
6 |
TESTWORDS = [
|
7 |
"APPAA",
|
|
|
50 |
def test_win_reward(wordleEnv):
|
51 |
wordleEnv.reset(seed=13)
|
52 |
goal = wordleEnv.goal_word
|
53 |
+
word_index = (goal + 1) % len(wordleEnv.words)
|
54 |
+
new_state, reward, done, _ = wordleEnv.step(word_index)
|
|
|
|
|
55 |
assert state.remaining_steps(new_state) == wordleEnv.max_turns-1
|
56 |
assert not done
|
57 |
assert not wordleEnv.done
|
58 |
+
assert reward < 1
|
59 |
|
60 |
new_state, reward, done, _ = wordleEnv.step(goal)
|
61 |
assert state.remaining_steps(new_state) == wordleEnv.max_turns-2
|
|
|
73 |
def test_win_reward_6(wordleEnv):
|
74 |
wordleEnv.reset(seed=13)
|
75 |
goal = wordleEnv.goal_word
|
76 |
+
random_word = (goal + 1) % len(wordleEnv.words)
|
|
|
|
|
77 |
|
78 |
for i in range(5):
|
79 |
new_state, reward, done, _ = wordleEnv.step(random_word)
|
|
|
89 |
def test_lose_reward(wordleEnv):
|
90 |
wordleEnv.reset(seed=13)
|
91 |
goal = wordleEnv.goal_word
|
92 |
+
random_word = (goal + 1) % len(wordleEnv.words)
|
|
|
|
|
93 |
for i in range(1, wordleEnv.max_turns):
|
94 |
new_state, reward, done, _ = wordleEnv.step(random_word)
|
95 |
assert state.remaining_steps(new_state) == wordleEnv.max_turns-i
|
96 |
assert not done
|
97 |
assert not wordleEnv.done
|
98 |
+
assert reward < 1
|
99 |
|
100 |
+
word_index = (goal + wordleEnv.max_turns) % len(wordleEnv.words)
|
101 |
+
random_word = word_index
|
|
|
102 |
new_state, reward, done, _ = wordleEnv.step(random_word)
|
103 |
assert state.remaining_steps(new_state) == 0
|
104 |
assert done
|
105 |
assert wordleEnv.done
|
106 |
+
assert reward < -wordle.REWARD + 1
|
107 |
|
108 |
try:
|
109 |
wordleEnv.step(goal)
|
|
|
114 |
|
115 |
def test_step(wordleEnv):
|
116 |
wordleEnv.reset(seed=13)
|
117 |
+
wordleEnv.set_goal_encoded(0)
|
118 |
|
119 |
cur_state = wordleEnv.state
|
120 |
+
new_state, reward, done, _ = wordleEnv.step(1)
|
|
|
121 |
assert state.remaining_steps(cur_state) == wordleEnv.max_turns
|
122 |
assert state.remaining_steps(new_state) == wordleEnv.max_turns-1
|
123 |
# Expect B to be all 1,0,0
|
|
|
148 |
1, 0, 0,
|
149 |
0, 0, 0)
|
150 |
cur_state = wordleEnv.state
|
151 |
+
new_state, reward, done, _ = wordleEnv.step(1)
|
|
|
152 |
assert state.remaining_steps(cur_state) == wordleEnv.max_turns-1
|
153 |
assert state.remaining_steps(new_state) == wordleEnv.max_turns-2
|
154 |
# Expect B to be all 1,0,0
|
|
|
171 |
1, 0, 0,
|
172 |
0, 0, 0)
|
173 |
|
174 |
+
new_state, reward, done, _ = wordleEnv.step(2)
|
|
|
175 |
assert state.remaining_steps(new_state) == wordleEnv.max_turns-3
|
176 |
# Expect B to be all 1,0,0
|
177 |
offset = 1 + 3*5*(ord('B')-ord('A'))
|
|
|
197 |
1, 0, 0,
|
198 |
0, 0, 0)
|
199 |
|
200 |
+
new_state, reward, done, _ = wordleEnv.step(0)
|
|
|
201 |
# Expect A to be right in position 0 4 and 5
|
202 |
offset = 1
|
203 |
assert tuple(new_state[offset:offset+15]) == (0, 0, 1,
|