ArbitrAgent / test_env.py
AbeBhatti
Play-gent: Diplomacy-trained negotiation agent
afd245f
import numpy as np
from diplomacy_env import DiplomacyNegotiationEnv
def main() -> None:
env = DiplomacyNegotiationEnv(power_name="ENGLAND", seed=42)
# Reset environment and inspect initial observation.
obs, info = env.reset()
print("Initial reset:")
print(f" Observation shape: {obs.shape}")
print(f" Phase: {info.get('phase')}")
print(f" SC count: {info.get('sc_count')}")
assert isinstance(obs, np.ndarray), "Observation must be a numpy array."
actions = [
"Attack France from the north",
"Hold position and support allies",
"Move south toward Mediterranean",
"Form alliance with Germany",
"Expand into Eastern Europe",
]
total_reward = 0.0
shape_ok = True
for step_idx, action in enumerate(actions, start=1):
obs, reward, done, info = env.step(action)
total_reward += reward
shape_ok = shape_ok and isinstance(obs, np.ndarray) and obs.shape == (384,)
print(f"\nStep {step_idx}:")
print(f" Action: {action!r}")
print(f" Reward: {reward:.3f}")
print(f" SC count: {info.get('sc_count')}")
print(f" Phase: {info.get('phase')}")
print(f" Done: {done} (reason: {info.get('done_reason')})")
print(f" Obs shape: {obs.shape}")
print("\nRun summary:")
print(f" Total reward over {len(actions)} steps: {total_reward:.3f}")
print(f" Observation shape always (384,): {shape_ok}")
env.close()
if __name__ == "__main__":
main()