### Question:
CompositeDateTimeDecider implements Decider { @Override public List<Pair<PotentialColumn, Integer>> calculateConfidence(List<PotentialColumn> potentials, List<? extends List<? extends String>> sampleData) { List<Pair<PotentialColumn, Integer>> dateScores = myDateDecider.calculateConfidence(potentials, sampleData); Set<Integer> dateColumns = New.set(); for (Pair<PotentialColumn, Integer> pair : dateScores) { dateColumns.add(Integer.valueOf(pair.getFirstObject().getColumnIndex())); } List<PotentialColumn> timePotentials = New.list(); for (PotentialColumn column : potentials) { if (!dateColumns.contains(Integer.valueOf(column.getColumnIndex()))) { timePotentials.add(column); } } List<Pair<PotentialColumn, Integer>> timeScores = myTimeDecider.calculateConfidence(timePotentials, sampleData); Pair<PotentialColumn, Integer> bestDate = getBestPassingColumn(dateScores); List<Pair<PotentialColumn, Integer>> bestColumns = New.list(); if (bestDate != null) { Pair<PotentialColumn, Integer> bestTime = getBestPassingColumn(timeScores); if (bestTime != null && bestTime.getFirstObject().getColumnIndex() > bestDate.getFirstObject().getColumnIndex()) { bestColumns.add(bestDate); bestColumns.add(bestTime); } } return bestColumns; }  @Override List<Pair<PotentialColumn, Integer>> calculateConfidence(List<PotentialColumn> potentials,
            List<? extends List<? extends String>> sampleData); @SuppressWarnings("null") @Override List<Pair<DateColumn, Integer>> compileResults(List<Pair<PotentialColumn, Integer>> potentials); @Override void setConfidence(int passingScore);  }### Answer:
@Test public void testCalculateConfidence() { List<List<String>> testData = CsvTestUtils.createMultipleTimesData(); List<PotentialColumn> potential = createPotentialColumn(); CompositeDateTimeDecider decider = new CompositeDateTimeDecider(); List<Pair<PotentialColumn, Integer>> score = decider.calculateConfidence(potential, testData); assertEquals((Integer)(testData.size() - testData.size() / 10), score.get(0).getSecondObject()); assertEquals(8, score.get(0).getFirstObject().getColumnIndex()); assertEquals((Integer)(testData.size() - testData.size() / 5), score.get(1).getSecondObject()); assertEquals(9, score.get(1).getFirstObject().getColumnIndex()); }