package resa.evaluation.optimize;
import resa.optimize.AggResult;
import resa.optimize.AllocCalculator;
import resa.optimize.AllocResult;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
/**
* Created by ding on 14-5-1.
*/
public class FakeAllocCalculator extends AllocCalculator {
@Override
public AllocResult calc(Map<String, AggResult[]> executorAggResults, int maxAvailableExecutors) {
Map<String, Integer> ret = new HashMap<>(currAllocation);
ArrayList<Map.Entry<String, Integer>> tmp = new ArrayList<>(ret.entrySet());
Collections.shuffle(tmp);
Map.Entry<String, Integer> entry = tmp.get(0);
int old = entry.getValue();
int newThreads = System.currentTimeMillis() % 2 == 0 ? old + 1 : old - 1;
entry.setValue(newThreads);
System.out.println(entry.getKey() + ": Old is " + old + ", new is " + newThreads);
return new AllocResult(AllocResult.Status.FEASIBALE, ret, ret);
}
}