AminoAcidFunctions { @NotNull @VisibleForTesting static Map<String, Set<String>> aminoAcidToTrinucleotidesMap() { return AMINO_ACID_TO_TRINUCLEOTIDES_MAP; }  @Nullable static String findAminoAcidForCodon(@NotNull String codon); @NotNull static List<String> allTrinucleotidesForSameAminoAcid(@NotNull String trinucleotideToFind, @NotNull Strand strand); @NotNull static String forceSingleLetterProteinAnnotation(@NotNull String proteinAnnotation); @NotNull static String reverseAndFlip(@NotNull String string);  }
@Test public void allAminoAcidsAreFoundAndAreUnique() { Map<String, Set<String>> aminoAcidToTrinucleotideMap = AminoAcidFunctions.aminoAcidToTrinucleotidesMap(); Set<String> bases = Sets.newHashSet("A", "T", "G", "C"); for (String base1 : bases) { for (String base2 : bases) { for (String base3 : bases) { String trinucleotide = base1 + base2 + base3; boolean expectsToExist = !STOP_CODONS.contains(trinucleotide); assertEquals(expectsToExist, aminoAcidExists(aminoAcidToTrinucleotideMap, trinucleotide)); } } } }