Skip to content
Snippets Groups Projects
Commit c3e71240 authored by Fabian Heinrich's avatar Fabian Heinrich
Browse files

Test for player registration and simulator frequency timing

parent b764c1eb
No related branches found
No related tags found
1 merge request!1Issue #6 Base simulator class and methods
Pipeline #41144 failed
from player import Player
import sys
from simulation_runner import Simulator
from overcooked_environment import Environment
def main():
simulator = Simulator()
simulator = Simulator(Environment, 300)
simulator.register_player(Player("p1", [100, 200]))
simulator.register_player(Player("p2", [200, 100]))
......
......@@ -17,13 +17,13 @@ class Simulator(Thread):
sim.start()
"""
def __init__(self):
def __init__(self, env_class: type, frequency: int):
self.finished: bool = False
self.step_frequency: float = 300
self.step_frequency: int = frequency
self.prefered_sleeptime_ns: float = 1e9 / self.step_frequency
self.env: Environment = Environment()
self.env = env_class()
super().__init__()
......@@ -59,6 +59,7 @@ class Simulator(Thread):
return self.env.get_state_json()
def register_player(self, player: Player):
print(f"Added player {player.name} to the game.")
"""Adds a player to the environment.
Args:
......@@ -98,4 +99,5 @@ class Simulator(Thread):
def stop(self):
"""Stops the simulator
"""
print("Stopping the simulation.")
self.finished = True
from overcooked_simulator.simulation_runner import Simulator
from overcooked_simulator.player import Player
from overcooked_simulator.overcooked_environment import Environment, Action
import numpy as np
import time
def test_dummy():
assert "overcooked".startswith("over"), "overcooked does not start with 'over'"
def test_player_registration():
def test_failure():
assert False, "What does happen now?"
sim = Simulator()
p1 = Player("player", np.array([0, 0]))
sim.register_player(p1)
assert len(sim.env.players) != 0
assert len(sim.env.players) == 1
p2 = Player("player", np.array([100, 100]))
sim.register_player(p2)
assert len(sim.env.players) == 2
sim.start()
sim.stop()
def test_simulator_frequency():
class TestEnv:
def __init__(self):
self.c = 0
def step(self):
self.c += 1
frequency = 1000
running_time_seconds = 5
sim = Simulator(TestEnv, frequency)
sim.start()
time.sleep(running_time_seconds)
sim.stop()
accepted_tolerance = 0.04
lower = frequency * running_time_seconds * (1-accepted_tolerance)
upper = frequency * running_time_seconds * (1+accepted_tolerance)
assert sim.env.c > lower and sim.env.c < upper, "Timing error in the environment at 1000hz"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment