Merge branch 'Jalview-JS/develop' into merge_js_develop
[jalview.git] / test / jalview / hmmer / HMMERTest.java
index 112ce21..04cc3be 100644 (file)
@@ -1,6 +1,7 @@
 package jalview.hmmer;
 
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
@@ -11,11 +12,15 @@ import jalview.datamodel.HiddenMarkovModel;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
 import jalview.gui.Desktop;
+import jalview.io.HMMFile;
+import jalview.util.MessageManager;
 import jalview.ws.params.ArgumentI;
+import jalview.ws.params.simple.Option;
 
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.util.ArrayList;
+import java.util.List;
 
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
@@ -28,24 +33,22 @@ public class HMMERTest {
   @BeforeClass(alwaysRun = true)
   public void setUpBeforeClass() throws Exception
   {
+    /*
+     * NB: check HMMER_PATH in testProps.jvprops is valid for
+     * the machine on which this runs
+     */
     Jalview.main(
             new String[]
     { "-noquestionnaire", "-nonews", "-props",
                 "test/jalview/hmmer/testProps.jvprops", "-open",
                 "examples/uniref50.fa" });
-    // FastaFile file = null;
-    // file = new FastaFile(
-    // new FileParse("examples/uniref50.fa", DataSourceType.FILE));
-    // SequenceI[] seqs = file.getSeqsAsArray();
-    // AlignmentI al = new Alignment(seqs);
-    // frame = new AlignFrame(al, 150, 20);
     frame = Desktop.getAlignFrames()[0];
   }
 
   @AfterClass(alwaysRun = true)
   public static void tearDownAfterClass() throws Exception
   {
-    Desktop.instance.closeAll_actionPerformed(null);
+    Desktop.getInstance().closeAll_actionPerformed(null);
   }
 
   /**
@@ -59,40 +62,49 @@ public class HMMERTest {
           throws MalformedURLException, IOException
   {
     /*
-     * run hmmbuild - not the side-effect of selecting the HMM
-     * sequence that gets added to the alignment
+     * run hmmbuild
      */
     testHMMBuild();
-    HiddenMarkovModel hmm = frame.getSelectedHMM();
+    List<SequenceI> hmms = frame.getViewport().getAlignment()
+            .getHmmSequences();
+    assertFalse(hmms.isEmpty());
 
     /*
-     * now run hmmalign - with respect to the select HMM profile
+     * now run hmmalign - by default with respect to the added HMM profile
      */
     testHMMAlign();
   }
 
   public void testHMMBuild()
   {
-    HMMBuildThread thread = new HMMBuildThread(frame,
-            new ArrayList<ArgumentI>());
-    thread.hmmbuildWaitTillComplete();
+    /*
+     * set up argument to run hmmbuild for the alignment
+     */
+    ArrayList<ArgumentI> params = new ArrayList<>();
+    String argName = MessageManager.getString("label.hmmbuild_for");
+    String argValue = MessageManager.getString("label.alignment");
+    params.add(
+            new Option(argName, null, false, null, argValue, null, null));
+
+    HMMBuild builder = new HMMBuild(frame, params);
+    builder.run();
 
     SequenceI seq = frame.getViewport().getAlignment().getSequenceAt(0);
     HiddenMarkovModel hmm = seq.getHMM();
     assertNotNull(hmm);
 
-    assertEquals(hmm.getLength().intValue(), 148);
+    assertEquals(hmm.getLength(), 148);
     assertEquals(hmm.getAlphabetType(), "amino");
-    assertEquals(hmm.getName(), "Alignment");
-    assertEquals(hmm.getEffectiveNumberOfSequences(), 0.648193, 0.0001);
-    assertEquals(hmm.getConsensusAtAlignColumn(15), 's');
+    assertEquals(hmm.getName(), "Alignment_HMM");
+    assertEquals(hmm.getProperty(HMMFile.EFF_NUMBER_OF_SEQUENCES),
+            "0.648193");
   }
 
   public void testHMMAlign()
   {
-    HMMAlignThread thread = new HMMAlignThread(frame,
+    HmmerCommand thread = new HMMAlign(frame,
             new ArrayList<ArgumentI>());
-    thread.hmmalignWaitTillComplete();
+    thread.run();
 
     AlignFrame[] alignFrames = Desktop.getAlignFrames();
     if (alignFrames == null)
@@ -108,8 +120,8 @@ public class HMMERTest {
     assertNotNull(original);
     AlignmentI realigned = alignFrames[1].getViewport().getAlignment();
     assertNotNull(realigned);
-    assertNotNull(original.getHMMConsensusSequences());
-    assertNotNull(realigned.getHMMConsensusSequences());
+    assertFalse(original.getHmmSequences().isEmpty());
+    assertFalse(realigned.getHmmSequences().isEmpty());
 
     SequenceI ferCapan = original.findName("FER_CAPAN");
     assertTrue(ferCapan.getSequenceAsString().startsWith("MA------SVSAT"));