public final void testCodonToAmino() { final Map<Protein, SortedSet<String>> map = new TreeMap<>(); for (final DNA c1 : DNA.values()) { for (final DNA c2 : DNA.values()) { for (final DNA c3 : DNA.values()) { final String s = "" + c1 + c2 + c3; final Protein pr = TranslatedFrame.codonToAmino(c1, c2, c3); if (c1.ignore() || c2.ignore()) { assertTrue(s + ":" + pr, pr.ignore()); } else { final SortedSet<String> set = map.get(pr); final SortedSet<String> ns; if (set == null) { ns = new TreeSet<>(); map.put(pr, ns); } else { ns = set; } ns.add(s); } } } } final StringBuilder sb = new StringBuilder(); for (final Map.Entry<Protein, SortedSet<String>> e : map.entrySet()) { final Protein pr = e.getKey(); final SortedSet<String> set = e.getValue(); sb.append(pr.threeLetter()).append("/").append(pr.toString()).append(" "); int i = 0; for (final String s : set) { if (i > 0) { sb.append(", "); } sb.append(s); i++; } sb.append(LS); } assertEquals(CODON_TABLE, sb.toString()); }