### Question:
ChordSelector implements IChordSelector { public HashMap<ProgressionType, HiveChord> selectFirstChordForType(List<ProgressionType> progressionTypes, List<HiveChord> hiveChordInDatabase) { HashMap<ProgressionType, HiveChord> typeAndChord = new HashMap<ProgressionType, HiveChord>(); for (ProgressionType type : progressionTypes) { typeAndChord.put(type, tempRandomChordSelect(hiveChordInDatabase)); } return typeAndChord; }  HashMap<ProgressionType, HiveChord> selectFirstChordForType(List<ProgressionType> progressionTypes, List<HiveChord> hiveChordInDatabase); @Override HashMap<ProgressionType, List<HiveChord>> selectChordsFrom4BarLoop(List<ProgressionUnit> progressionUnits); HiveChord tempRandomChordSelect(List<HiveChord> getHiveChordInDatabase); HiveChord getChordTwoBarsPrior(HiveChord currentChord, List<HiveChord> hiveChordInDatabase); List<HiveChord> getChordCandidatesTwoBarsPrior(HiveChord currentChord, List<HiveChord> hiveChordInDatabase); HiveChord selectChordBetweenChords(HiveChord chordOne, HiveChord chordTwo, List<HiveChord> hiveChordInDatabase); @Override HiveChord selectChordBetweenChordsAndLoop(HiveChord chordOne, HiveChord chordTwo, HarmonicLoop harmonicLoop, List<HiveChord> hiveChordInDatabase); List<HiveChord> getChordCandidatesBetweenChords(HiveChord chordOne, HiveChord chordTwo, List<HiveChord> hiveChordInDatabase); @Override HiveChord selectMiddleChord(HarmonicLoop selectedLoop, HiveChord chordOneOfFour, HiveChord chordOneOfNextBar, List<HiveChord> hiveChordInDatabase); @Override HiveChord selectFourthChord(HarmonicLoop selectedLoop, HiveChord thirdChord, HiveChord nextChord, List<HiveChord> hiveChordInDatabase);  }### Answer:
@Test public void testCompatibleWithEachChordPair() throws Exception { List<ProgressionType> progressionTypes = setUpProgressionTypes(); List<HiveChord> hiveChordInDatabase = setUpChordsFromDatabase(); HashMap<ProgressionType, HiveChord> typeAndFirstChord = chordSelector.selectFirstChordForType(progressionTypes, hiveChordInDatabase); int total = 0; for (HiveChord chord : typeAndFirstChord.values()) { total++; } Assert.assertEquals(3, total); Assert.assertTrue(!typeAndFirstChord.get(ProgressionType.VERSE).isEqual("")); Assert.assertTrue(typeAndFirstChord.get(ProgressionType.VERSE) != null); Assert.assertTrue(typeAndFirstChord.get(ProgressionType.BRIDGE) != null); Assert.assertTrue(typeAndFirstChord.get(ProgressionType.CHORUS) != null); }