JAL-1828 lookup table to convert MSE to MET when parsing PDB data
[jalview.git] / test / jalview / schemes / ResiduePropertiesTest.java
index b976e44..b1d860e 100644 (file)
@@ -1,9 +1,12 @@
 package jalview.schemes;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertNull;
 
-import org.junit.Test;
+import java.util.Collections;
+import java.util.List;
+
+import org.testng.annotations.Test;
 
 public class ResiduePropertiesTest
 {
@@ -11,7 +14,7 @@ public class ResiduePropertiesTest
   /**
    * Test 'standard' codon translations (no ambiguity codes)
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCodonTranslate()
   {
     // standard translation table order column 1/2/3/4
@@ -85,7 +88,7 @@ public class ResiduePropertiesTest
    * Test a sample of codon translations involving ambiguity codes. Should
    * return a protein value where the ambiguity does not affect the translation.
    */
-  @Test
+  @Test(groups ={ "Functional" })
   public void testCodonTranslate_ambiguityCodes()
   {
     // Y is C or T
@@ -171,4 +174,65 @@ public class ResiduePropertiesTest
     assertNull(ResidueProperties.codonTranslate("VHD"));
     assertNull(ResidueProperties.codonTranslate("WSK"));
   }
+
+  @Test(groups ={ "Functional" })
+  public void testGetResidues_nucleotide()
+  {
+    /*
+     * Non-ambiguous only; we don't care about the order of the list, it is just
+     * sorted here to make assertions reliable
+     */
+    List<String> residues = ResidueProperties.getResidues(true, false);
+    Collections.sort(residues);
+    assertEquals("[A, C, G, T, U]", residues.toString());
+
+    /*
+     * Including ambiguity codes I N R X Y
+     */
+    residues = ResidueProperties.getResidues(true, true);
+    Collections.sort(residues);
+    assertEquals("[A, C, G, I, N, R, T, U, X, Y]", residues.toString());
+  }
+
+  @Test(groups ={ "Functional" })
+  public void testGetResidues_peptide()
+  {
+    /*
+     * Non-ambiguous only; we don't care about the order of the list, it is just
+     * sorted here to make assertions reliable
+     */
+    List<String> residues = ResidueProperties.getResidues(false, false);
+    Collections.sort(residues);
+    assertEquals(
+            "[ALA, ARG, ASN, ASP, CYS, GLN, GLU, GLY, HIS, ILE, LEU, LYS, MET, PHE, PRO, SER, THR, TRP, TYR, VAL]",
+            residues.toString());
+
+    /*
+     * Including ambiguity codes ASX, GLX, XAA
+     */
+    residues = ResidueProperties.getResidues(false, true);
+    Collections.sort(residues);
+    assertEquals(
+            "[ALA, ARG, ASN, ASP, ASX, CYS, GLN, GLU, GLX, GLY, HIS, ILE, LEU, LYS, MET, PHE, PRO, SER, THR, TRP, TYR, VAL, XAA]",
+            residues.toString());
+  }
+
+  @Test(groups = { "Functional" })
+  public void testGetCanonicalAminoAcid()
+  {
+    assertEquals("MET", ResidueProperties.getCanonicalAminoAcid("MET"));
+    assertEquals("MET", ResidueProperties.getCanonicalAminoAcid("MSE"));
+    assertEquals(null, ResidueProperties.getCanonicalAminoAcid(null));
+  }
+
+  @Test(groups = { "Functional" })
+  public void testGetSingleCharacterCode()
+  {
+    assertEquals('0', ResidueProperties.getSingleCharacterCode(null));
+    assertEquals('0', ResidueProperties.getSingleCharacterCode(null));
+    assertEquals('0', ResidueProperties.getSingleCharacterCode(""));
+    assertEquals('Q', ResidueProperties.getSingleCharacterCode("GLN"));
+    assertEquals('Q', ResidueProperties.getSingleCharacterCode("Gln"));
+    assertEquals('Q', ResidueProperties.getSingleCharacterCode("gln"));
+  }
 }