JAL-4036 removing the query field code from the dropdown indexes
[jalview.git] / test / jalview / analysis / DnaTest.java
index 4c12905..262de12 100644 (file)
@@ -28,14 +28,17 @@ import jalview.api.AlignViewportI;
 import jalview.datamodel.AlignedCodon;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentI;
-import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignViewport;
 import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
 import jalview.io.FormatAdapter;
 
 import java.io.IOException;
+import java.util.Iterator;
 
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
@@ -129,12 +132,15 @@ public class DnaTest
           throws IOException
   {
     AlignmentI alf = new FormatAdapter().readFile(
-            JAL_1312_example_align_fasta, jalview.io.FormatAdapter.PASTE,
-            "FASTA");
-    ColumnSelection cs = new ColumnSelection();
+            JAL_1312_example_align_fasta, DataSourceType.PASTE,
+            FileFormat.Fasta);
+    HiddenColumns cs = new HiddenColumns();
     AlignViewportI av = new AlignViewport(alf, cs);
-    Dna dna = new Dna(av, new int[] { 0, alf.getWidth() - 1 });
-    AlignmentI translated = dna.translateCdna();
+    Iterator<int[]> contigs = cs.getVisContigsIterator(0, alf.getWidth(),
+            false);
+    Dna dna = new Dna(av, contigs);
+    AlignmentI translated = dna.translateCdna(
+            GeneticCodes.getInstance().getStandardCodeTable());
     assertNotNull("Couldn't do a full width translation of test data.",
             translated);
   }
@@ -150,29 +156,34 @@ public class DnaTest
           throws IOException
   {
     AlignmentI alf = new FormatAdapter().readFile(
-            JAL_1312_example_align_fasta, jalview.io.FormatAdapter.PASTE,
-            "FASTA");
+            JAL_1312_example_align_fasta, DataSourceType.PASTE,
+            FileFormat.Fasta);
     int vwidth = 15;
     for (int ipos = 0; ipos + vwidth < alf.getWidth(); ipos += vwidth)
     {
-      ColumnSelection cs = new ColumnSelection();
+      HiddenColumns cs = new HiddenColumns();
       if (ipos > 0)
       {
         cs.hideColumns(0, ipos - 1);
       }
       cs.hideColumns(ipos + vwidth, alf.getWidth());
-      int[] vcontigs = cs.getVisibleContigs(0, alf.getWidth());
+      Iterator<int[]> vcontigs = cs.getVisContigsIterator(0, alf.getWidth(),
+              false);
       AlignViewportI av = new AlignViewport(alf, cs);
       Dna dna = new Dna(av, vcontigs);
-      AlignmentI transAlf = dna.translateCdna();
+      AlignmentI transAlf = dna.translateCdna(
+              GeneticCodes.getInstance().getStandardCodeTable());
 
-      assertTrue("Translation failed (ipos=" + ipos
-              + ") No alignment data.", transAlf != null);
+      assertTrue(
+              "Translation failed (ipos=" + ipos + ") No alignment data.",
+              transAlf != null);
       assertTrue("Translation failed (ipos=" + ipos + ") Empty alignment.",
               transAlf.getHeight() > 0);
-      assertTrue("Translation failed (ipos=" + ipos + ") Translated "
-              + transAlf.getHeight() + " sequences from " + alf.getHeight()
-              + " sequences", alf.getHeight() == transAlf.getHeight());
+      assertTrue(
+              "Translation failed (ipos=" + ipos + ") Translated "
+                      + transAlf.getHeight() + " sequences from "
+                      + alf.getHeight() + " sequences",
+              alf.getHeight() == transAlf.getHeight());
     }
   }
 
@@ -185,11 +196,14 @@ public class DnaTest
   public void testTranslateCdna_simple() throws IOException
   {
     AlignmentI alf = new FormatAdapter().readFile(fasta,
-            FormatAdapter.PASTE, "FASTA");
-    ColumnSelection cs = new ColumnSelection();
+            DataSourceType.PASTE, FileFormat.Fasta);
+    HiddenColumns cs = new HiddenColumns();
     AlignViewportI av = new AlignViewport(alf, cs);
-    Dna dna = new Dna(av, new int[] { 0, alf.getWidth() - 1 });
-    AlignmentI translated = dna.translateCdna();
+    Iterator<int[]> contigs = cs.getVisContigsIterator(0, alf.getWidth(),
+            false);
+    Dna dna = new Dna(av, contigs);
+    AlignmentI translated = dna.translateCdna(
+            GeneticCodes.getInstance().getStandardCodeTable());
     String aa = translated.getSequenceAt(0).getSequenceAsString();
     assertEquals(
             "AAAACCDDEEFFGGGGHHIIIKKLLLLLLMNNPPPPQQRRRRRRSSSSSSTTTTVVVVWYY***",
@@ -205,16 +219,20 @@ public class DnaTest
   public void testTranslateCdna_hiddenColumns() throws IOException
   {
     AlignmentI alf = new FormatAdapter().readFile(fasta,
-            FormatAdapter.PASTE, "FASTA");
-    ColumnSelection cs = new jalview.datamodel.ColumnSelection();
+            DataSourceType.PASTE, FileFormat.Fasta);
+    HiddenColumns cs = new HiddenColumns();
     cs.hideColumns(6, 14); // hide codons 3/4/5
     cs.hideColumns(24, 35); // hide codons 9-12
     cs.hideColumns(177, 191); // hide codons 60-64
     AlignViewportI av = new AlignViewport(alf, cs);
-    Dna dna = new Dna(av, new int[] { 0, alf.getWidth() - 1 });
-    AlignmentI translated = dna.translateCdna();
+    Iterator<int[]> contigs = cs.getVisContigsIterator(0, alf.getWidth(),
+            false);
+    Dna dna = new Dna(av, contigs);
+    AlignmentI translated = dna.translateCdna(
+            GeneticCodes.getInstance().getStandardCodeTable());
     String aa = translated.getSequenceAt(0).getSequenceAsString();
-    assertEquals("AACDDGGGGHHIIIKKLLLLLLMNNPPPPQQRRRRRRSSSSSSTTTTVVVVW", aa);
+    assertEquals("AACDDGGGGHHIIIKKLLLLLLMNNPPPPQQRRRRRRSSSSSSTTTTVVVVW",
+            aa);
   }
 
   /**
@@ -292,11 +310,15 @@ public class DnaTest
     /*
      * Generate cDNA - 8 sequences of 12 bases each.
      */
-    AlignmentI cdna = new DnaAlignmentGenerator().generate(12, 8, 97, 5, 5);
-    ColumnSelection cs = new ColumnSelection();
+    AlignmentI cdna = new AlignmentGenerator(true).generate(12, 8, 97, 5,
+            5);
+    HiddenColumns cs = new HiddenColumns();
     AlignViewportI av = new AlignViewport(cdna, cs);
-    Dna dna = new Dna(av, new int[] { 0, cdna.getWidth() - 1 });
-    AlignmentI translated = dna.translateCdna();
+    Iterator<int[]> contigs = cs.getVisContigsIterator(0, cdna.getWidth(),
+            false);
+    Dna dna = new Dna(av, contigs);
+    AlignmentI translated = dna.translateCdna(
+            GeneticCodes.getInstance().getStandardCodeTable());
 
     /*
      * Jumble the cDNA sequences and translate.
@@ -310,8 +332,10 @@ public class DnaTest
     }
     AlignmentI cdnaReordered = new Alignment(sorted);
     av = new AlignViewport(cdnaReordered, cs);
-    dna = new Dna(av, new int[] { 0, cdna.getWidth() - 1 });
-    AlignmentI translated2 = dna.translateCdna();
+    contigs = cs.getVisContigsIterator(0, cdna.getWidth(), false);
+    dna = new Dna(av, contigs);
+    AlignmentI translated2 = dna.translateCdna(
+            GeneticCodes.getInstance().getStandardCodeTable());
 
     /*
      * Check translated sequences are the same in both alignments.
@@ -324,10 +348,10 @@ public class DnaTest
     int sortedSequenceIndex = 0;
     for (int originalSequenceIndex : jumbler)
     {
-      final String translation1 = translated.getSequenceAt(
-              originalSequenceIndex).getSequenceAsString();
-      final String translation2 = translated2.getSequenceAt(
-              sortedSequenceIndex).getSequenceAsString();
+      final String translation1 = translated
+              .getSequenceAt(originalSequenceIndex).getSequenceAsString();
+      final String translation2 = translated2
+              .getSequenceAt(sortedSequenceIndex).getSequenceAsString();
       assertEquals(translation2, translation1);
       sortedSequenceIndex++;
     }
@@ -371,8 +395,10 @@ public class DnaTest
 
   private void assertSymmetric(String codon1, String codon2)
   {
-    assertEquals("Comparison of '" + codon1 + "' and '" + codon2
-            + " not symmetric", Integer.signum(compare(codon1, codon2)),
+    assertEquals(
+            "Comparison of '" + codon1 + "' and '" + codon2
+                    + " not symmetric",
+            Integer.signum(compare(codon1, codon2)),
             -Integer.signum(compare(codon2, codon1)));
   }
 
@@ -401,8 +427,8 @@ public class DnaTest
    */
   private void assertPrecedes(String codon1, String codon2)
   {
-    assertEquals("Expected '" + codon1 + "'  precedes '" + codon2 + "'",
-            -1, compare(codon1, codon2));
+    assertEquals("Expected '" + codon1 + "'  precedes '" + codon2 + "'", -1,
+            compare(codon1, codon2));
   }
 
   /**
@@ -536,12 +562,14 @@ public class DnaTest
     SequenceI dna = new Sequence("Seq1", seq);
     Alignment al = new Alignment(new SequenceI[] { dna });
     al.createDatasetAlignment();
-    assertEquals(seqDs, al.getSequenceAt(0).getDatasetSequence()
-            .getSequenceAsString());
+    assertEquals(seqDs,
+            al.getSequenceAt(0).getDatasetSequence().getSequenceAsString());
 
-    ColumnSelection cs = new ColumnSelection();
+    HiddenColumns cs = new HiddenColumns();
     AlignViewportI av = new AlignViewport(al, cs);
-    Dna testee = new Dna(av, new int[] { 0, al.getWidth() - 1 });
+    Iterator<int[]> contigs = cs.getVisContigsIterator(0, al.getWidth(),
+            false);
+    Dna testee = new Dna(av, contigs);
     AlignmentI reversed = testee.reverseCdna(false);
     assertEquals(1, reversed.getHeight());
     assertEquals(seqRev, reversed.getSequenceAt(0).getSequenceAsString());