CitySimulation extends AbstractSimulation { WorldState getWorldState(){ return world; }  @Override Map<String, SimStart> init(int steps, JSONObject config, Set<TeamConfig> matchTeams); @Override Map<String, RequestAction> preStep(int stepNo); @Override void step(int stepNo, Map<String, Action> actions); @Override Map<String, SimEnd> finish(); @Override JSONObject getResult(); @Override String getName(); @Override DynamicWorldData getSnapshot(); @Override StaticWorldData getStaticData(); @Override void handleCommand(String[] command);  }
@Test public void chargingStationsWork(){ assert !sim.getWorldState().getChargingStations().isEmpty(); }
@Test public void dumpsWork(){ assert !sim.getWorldState().getDumps().isEmpty(); }
@Test public void workshopsWork(){ assert !sim.getWorldState().getWorkshops().isEmpty(); }
@Test public void storageWork(){ assert !sim.getWorldState().getStorages().isEmpty(); }
@Test public void jobsWork(){ WorldState world = sim.getWorldState(); for(int i = 0; i < 100; i++) { world.getGenerator().generateJobs(i, world).forEach(job -> { assert !job.getRequiredItems().getStoredTypes().isEmpty(); assert job.getReward() > 0; }); } }