### Question:
DecisionCriteria { public static Map.Entry<Object, Object> maxMin(DataTable2D payoffMatrix) { if(payoffMatrix.isValid()==false) { throw new IllegalArgumentException("The payoff matrix does not have a rectangular format."); } AssociativeArray minPayoffs = new AssociativeArray(); for(Map.Entry<Object, AssociativeArray> entry : payoffMatrix.entrySet()) { AssociativeArray optionList = entry.getValue(); for(Map.Entry<Object, Object> entry2 : optionList.entrySet()) { Object option = entry2.getKey(); Double payoff = TypeInference.toDouble(entry2.getValue()); Double currentMinPayoffOption = minPayoffs.getDouble(option); if(currentMinPayoffOption==null || payoff<currentMinPayoffOption) { minPayoffs.put(option, payoff); } } } Map.Entry<Object, Object> entry = MapMethods.selectMaxKeyValue(minPayoffs); return entry; }  static Map.Entry<Object, Object> maxMin(DataTable2D payoffMatrix); static Map.Entry<Object, Object> maxMax(DataTable2D payoffMatrix); static Map.Entry<Object, Object> savage(DataTable2D payoffMatrix); static Map.Entry<Object, Object> laplace(DataTable2D payoffMatrix); static Map.Entry<Object, Object> hurwiczAlpha(DataTable2D payoffMatrix, double alpha); static Map.Entry<Object, Object> maximumLikelihood(DataTable2D payoffMatrix, AssociativeArray eventProbabilities); static Map.Entry<Object, Object> bayes(DataTable2D payoffMatrix, AssociativeArray eventProbabilities);  }### Answer:
@Test public void testMaxMin() { logger.info("maxMin"); DataTable2D payoffMatrix = generatePayoffMatrix(); Map.Entry<Object, Object> expResult = new AbstractMap.SimpleEntry<>("A1", 400.0); Map.Entry<Object, Object> result = DecisionCriteria.maxMin(payoffMatrix); assertEquals(expResult, result); }