Skip to content

Commit

Permalink
test: changing shifts
Browse files Browse the repository at this point in the history
  • Loading branch information
zyr17 committed Aug 31, 2023
1 parent 05e3e1d commit 6af6f20
Show file tree
Hide file tree
Showing 2 changed files with 163 additions and 2 deletions.
96 changes: 94 additions & 2 deletions tests/server/cards/test_event_cards.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from server.match import Match, MatchState
from server.deck import Deck
from tests.utils_for_test import (
get_random_state, get_test_id_from_command, make_respond
get_random_state, get_test_id_from_command, make_respond, set_16_omni
)


Expand Down Expand Up @@ -73,5 +73,97 @@ def test_bestest():
assert match.state != MatchState.ERROR


def test_changing_shifts():
agent_0 = InteractionAgent(
player_idx = 0,
verbose_level = 0,
commands = [
"sw_card",
"choose 1",
"card 0 0",
"card 0 0",
"TEST 1 status usage 1",
"skill 0 0 1 2",
"TEST 1 status 1 usage 1",
"sw_char 0",
"TEST 3 status 0",
"sw_char 1 0",
"card 0 0",
"sw_char 0",
"TEST 4 dice 12",
"card 0 0",
"end",
"TEST 1 status usage 1",
"end"
],
only_use_command = True
)
agent_1 = InteractionAgent(
player_idx = 1,
verbose_level = 0,
commands = [
"sw_card",
"choose 1",
"sw_char 0 0",
"sw_char 1 0",
"end",
"end"
],
only_use_command = True
)
match = Match(random_state = get_random_state())
deck = Deck.from_str(
'''
charactor:Fischl
charactor:Mona
charactor:Nahida
# Gambler's Earrings*2
# Wine-Stained Tricorne*2
# Vanarana
# Timmie*2
# Rana*2
# Covenant of Rock
# Wind and Freedom
# The Bestest Travel Companion!*2
# Changing Shifts*2
# Strategize*2
Changing Shifts*30
'''
)
for charactor in deck.charactors:
charactor.hp = 2
charactor.max_hp = 2
match.set_deck([deck, deck])
match.config.max_same_card_number = 30
match.config.random_first_player = False
set_16_omni(match)
match.start()
match.step()

while True:
if match.need_respond(0):
while True:
test_id = get_test_id_from_command(agent_0)
if test_id == 1:
assert len(match.player_tables[0].team_status) == 1
assert match.player_tables[0].team_status[0].usage == 1
elif test_id == 3:
assert len(match.player_tables[0].team_status) == 0
elif test_id == 4:
assert len(match.player_tables[0].dice.colors) == 12
else:
break
make_respond(agent_0, match)
elif match.need_respond(1):
make_respond(agent_1, match)
else:
raise AssertionError('No need respond.')
if len(agent_1.commands) == 0:
break

assert match.state != MatchState.ERROR


if __name__ == '__main__':
test_bestest()
# test_bestest()
test_changing_shifts()
69 changes: 69 additions & 0 deletions tests/server/cards/test_nation_resonance.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from agents.interaction_agent import InteractionAgent
from agents.nothing_agent import NothingAgent
from server.deck import Deck
from server.match import Match, MatchState
from tests.utils_for_test import (
Expand Down Expand Up @@ -129,5 +130,73 @@ def test_wind_and_freedom():
assert match.state != MatchState.ERROR


def test_wind_and_freedom_one_round():
agent_0 = NothingAgent(player_idx = 0)
agent_1 = InteractionAgent(
player_idx = 1,
verbose_level = 0,
commands = [
"sw_card",
"choose 0",
"card 0 0 0",
"card 0 0 0",
"TEST 1 one team status",
"end",
"TEST 2 no status",
"end"
],
only_use_command = True
)
match = Match(random_state = get_random_state())
deck = Deck.from_str(
'''
# charactor:Fischl
# charactor:Mona
charactor:Nahida*10
# Gambler's Earrings*2
# Wine-Stained Tricorne*2
# Vanarana
# Timmie*2
# Rana*2
# Covenant of Rock
# Wind and Freedom
# The Bestest Travel Companion!*2
# Strategize*2
Wind and Freedom*30
'''
)
for charactor in deck.charactors:
charactor.hp = 2
charactor.max_hp = 2
match.set_deck([deck, deck])
match.config.max_same_card_number = 30
match.config.charactor_number = 10
match.config.random_first_player = False
set_16_omni(match)
match.start()
match.step()

while True:
if match.need_respond(0):
make_respond(agent_0, match)
elif match.need_respond(1):
while True:
test_id = get_test_id_from_command(agent_1)
if test_id == 1:
assert len(match.player_tables[1].team_status) == 1
assert match.player_tables[1].team_status[0].usage == 1
elif test_id == 2:
assert len(match.player_tables[1].team_status) == 0
else:
break
make_respond(agent_1, match)
else:
raise AssertionError('No need respond.')
if len(agent_1.commands) == 0:
break

assert match.state != MatchState.ERROR


if __name__ == '__main__':
test_wind_and_freedom()

0 comments on commit 6af6f20

Please sign in to comment.