void parseScoreboard(String scoreboard, Map<String, Number> retValue) { int workers[] = new int[WorkerStat.values().length]; for(char c: scoreboard.toCharArray()) { WorkerStat worker = WorkerStat.resolv(c); if(worker != null) workers[worker.ordinal()]++; } for(WorkerStat worker: WorkerStat.values()) { retValue.put(worker.toString(), workers[worker.ordinal()]); } }
@Test public void parse() { Map<String, Number> values = new HashMap<String, Number>(); parseScoreboard("_SRWKDCLGI.", values); for(WorkerStat w: WorkerStat.values()) { Assert.assertEquals(1, values.get(w.name())); } for(Map.Entry<String, Number> e: values.entrySet()) { WorkerStat w = WorkerStat.valueOf(e.getKey()); Assert.assertEquals(e.getValue(), values.get(w.name())); Assert.assertEquals(1, e.getValue()); } }