30 lines
881 B
Python
30 lines
881 B
Python
import pytest
|
|
from generals.agents import ExpanderAgent, HunterAgent, RandomAgent
|
|
|
|
from general_bots_training.opponents import SelfPlayOpponent, make_opponent
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
("name", "expected_type"),
|
|
[
|
|
("random", RandomAgent),
|
|
("expander", ExpanderAgent),
|
|
("hunter", HunterAgent),
|
|
],
|
|
)
|
|
def test_make_opponent(name, expected_type):
|
|
assert isinstance(make_opponent(name), expected_type)
|
|
|
|
|
|
def test_make_opponent_is_case_insensitive():
|
|
assert isinstance(make_opponent("HUNTER"), HunterAgent)
|
|
|
|
|
|
def test_make_opponent_supports_self_play_aliases():
|
|
assert isinstance(make_opponent("self_play"), SelfPlayOpponent)
|
|
assert isinstance(make_opponent("self-play"), SelfPlayOpponent)
|
|
|
|
|
|
def test_make_opponent_rejects_unknown_name():
|
|
with pytest.raises(ValueError, match="unknown opponent"):
|
|
make_opponent("turtle")
|