Merge branch 'task/JAL-3763_newDatasetForCds' into merge/develop_task/JAL-3763_newDat...
[jalview.git] / test / jalview / util / MappingUtilsTest.java
index 3c1dbbb..bd81d30 100644 (file)
@@ -24,6 +24,17 @@ import static org.testng.AssertJUnit.assertEquals;
 import static org.testng.AssertJUnit.assertFalse;
 import static org.testng.AssertJUnit.assertSame;
 import static org.testng.AssertJUnit.assertTrue;
+import static org.testng.AssertJUnit.fail;
+
+import java.awt.Color;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
 
 import java.awt.Color;
 import java.io.IOException;
@@ -36,6 +47,7 @@ import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 import jalview.api.AlignViewportI;
+import jalview.bin.Cache;
 import jalview.commands.EditCommand;
 import jalview.commands.EditCommand.Action;
 import jalview.commands.EditCommand.Edit;
@@ -58,6 +70,11 @@ import jalview.io.FormatAdapter;
 
 public class MappingUtilsTest
 {
+  @BeforeClass(alwaysRun = true)
+  public void setUp()
+  {
+    Cache.initLogger();
+  }
 
   @BeforeClass(alwaysRun = true)
   public void setUpJvOptionPane()
@@ -1322,10 +1339,40 @@ public class MappingUtilsTest
     assertEquals(9, ranges.get(0)[1]);
   }
 
+  @Test(groups = "Functional")
+  public void testListToArray()
+  {
+    List<int[]> ranges = new ArrayList<>();
+
+    int[] result = MappingUtils.rangeListToArray(ranges);
+    assertEquals(result.length, 0);
+    ranges.add(new int[] { 24, 12 });
+    result = MappingUtils.rangeListToArray(ranges);
+    assertEquals(result.length, 2);
+    assertEquals(result[0], 24);
+    assertEquals(result[1], 12);
+    ranges.add(new int[] { -7, 30 });
+    result = MappingUtils.rangeListToArray(ranges);
+    assertEquals(result.length, 4);
+    assertEquals(result[0], 24);
+    assertEquals(result[1], 12);
+    assertEquals(result[2], -7);
+    assertEquals(result[3], 30);
+    try
+    {
+      MappingUtils.rangeListToArray(null);
+      fail("Expected exception");
+    } catch (NullPointerException e)
+    {
+      // expected
+    }
+  }
+  
   /**
    * Test mapping a sequence group where sequences in and outside the group
    * share a dataset sequence (e.g. alternative CDS for the same gene)
-   * 
+   * <p>
+   * This scenario doesn't arise after JAL-3763 changes, but test left as still valid
    * @throws IOException
    */
   @Test(groups = { "Functional" })
@@ -1347,6 +1394,9 @@ public class MappingUtilsTest
     SequenceI pep1 = new Sequence("pep1", "KF");
     SequenceI pep2 = new Sequence("pep2", "FG");
     SequenceI pep3 = new Sequence("pep3", "GP");
+    pep1.createDatasetSequence();
+    pep2.createDatasetSequence();
+    pep3.createDatasetSequence();
 
     /*
      * add mappings from coding positions of dna to respective peptides
@@ -1371,7 +1421,7 @@ public class MappingUtilsTest
             new SequenceI[]
             { pep1, pep2, pep3 });
     AlignViewportI cdnaView = new AlignViewport(cdna);
-    AlignViewportI proteinView = new AlignViewport(protein);
+    AlignViewportI peptideView = new AlignViewport(protein);
     protein.setCodonFrames(acfList);
 
     /*
@@ -1389,7 +1439,7 @@ public class MappingUtilsTest
      * Verify the mapped sequence group in dna is cds1 and cds3
      */
     SequenceGroup mappedGroup = MappingUtils.mapSequenceGroup(sg,
-            proteinView, cdnaView);
+            peptideView, cdnaView);
     assertTrue(mappedGroup.getColourText());
     assertSame(sg.getIdColour(), mappedGroup.getIdColour());
     assertSame(sg.getOutlineColour(), mappedGroup.getOutlineColour());
@@ -1408,7 +1458,7 @@ public class MappingUtilsTest
     sg.addSequence(cds1, false);
     sg.setStartRes(0);
     sg.setEndRes(cdna.getWidth() - 1);
-    mappedGroup = MappingUtils.mapSequenceGroup(sg, cdnaView, proteinView);
+    mappedGroup = MappingUtils.mapSequenceGroup(sg, cdnaView, peptideView);
     assertTrue(mappedGroup.getColourText());
     assertSame(sg.getIdColour(), mappedGroup.getIdColour());
     assertSame(sg.getOutlineColour(), mappedGroup.getOutlineColour());