Merge branch 'spike/try_spotless_JAL-3438' into develop
[jalview.git] / test / jalview / datamodel / features / SequenceFeaturesTest.java
index 56512cd..7dde97b 100644 (file)
@@ -1,3 +1,23 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.datamodel.features;
 
 import static org.testng.Assert.assertEquals;
@@ -77,8 +97,8 @@ public class SequenceFeaturesTest
             Float.NaN, null);
     store.add(sf6);
     // contact feature
-    SequenceFeature sf7 = new SequenceFeature("Disulphide bond", "desc",
-            18, 45, Float.NaN, null);
+    SequenceFeature sf7 = new SequenceFeature("Disulphide bond", "desc", 18,
+            45, Float.NaN, null);
     store.add(sf7);
     // different feature type
     SequenceFeature sf8 = new SequenceFeature("Pfam", "desc", 30, 40,
@@ -142,8 +162,8 @@ public class SequenceFeaturesTest
             Float.NaN, null);
     store.add(sf2);
     // contact feature
-    SequenceFeature sf3 = new SequenceFeature("Disulphide bond", "desc",
-            18, 45, Float.NaN, null);
+    SequenceFeature sf3 = new SequenceFeature("Disulphide bond", "desc", 18,
+            45, Float.NaN, null);
     store.add(sf3);
     // repeat for different feature type
     SequenceFeature sf4 = new SequenceFeature("Pfam", "desc", 10, 20,
@@ -155,7 +175,7 @@ public class SequenceFeaturesTest
     SequenceFeature sf6 = new SequenceFeature("Disulfide bond", "desc", 18,
             45, Float.NaN, null);
     store.add(sf6);
-  
+
     /*
      * get all contact features
      */
@@ -163,7 +183,7 @@ public class SequenceFeaturesTest
     assertEquals(features.size(), 2);
     assertTrue(features.contains(sf3));
     assertTrue(features.contains(sf6));
-  
+
     /*
      * get contact features by type
      */
@@ -171,11 +191,11 @@ public class SequenceFeaturesTest
     assertTrue(store.getContactFeatures("Cath").isEmpty());
     assertTrue(store.getContactFeatures("Pfam").isEmpty());
     assertTrue(store.getContactFeatures("DISULPHIDE BOND").isEmpty());
-  
+
     features = store.getContactFeatures("Disulphide bond");
     assertEquals(features.size(), 1);
     assertTrue(features.contains(sf3));
-  
+
     features = store.getContactFeatures("Disulfide bond");
     assertEquals(features.size(), 1);
     assertTrue(features.contains(sf6));
@@ -194,8 +214,8 @@ public class SequenceFeaturesTest
             Float.NaN, null);
     store.add(sf2);
     // contact feature
-    SequenceFeature sf3 = new SequenceFeature("Disulphide bond", "desc",
-            18, 45, Float.NaN, null);
+    SequenceFeature sf3 = new SequenceFeature("Disulphide bond", "desc", 18,
+            45, Float.NaN, null);
     store.add(sf3);
     // repeat for different feature type
     SequenceFeature sf4 = new SequenceFeature("Pfam", "desc", 10, 20,
@@ -211,7 +231,7 @@ public class SequenceFeaturesTest
     SequenceFeature sf7 = new SequenceFeature("Pfam", "desc2", 0, 0,
             Float.NaN, null);
     store.add(sf7);
-  
+
     /*
      * get all non-positional features
      */
@@ -220,18 +240,18 @@ public class SequenceFeaturesTest
     assertTrue(features.contains(sf2));
     assertTrue(features.contains(sf5));
     assertTrue(features.contains(sf7));
-  
+
     /*
      * get non-positional features by type
      */
     assertTrue(store.getNonPositionalFeatures((String) null).isEmpty());
     assertTrue(store.getNonPositionalFeatures("Cath").isEmpty());
     assertTrue(store.getNonPositionalFeatures("PFAM").isEmpty());
-  
+
     features = store.getNonPositionalFeatures("Metal");
     assertEquals(features.size(), 1);
     assertTrue(features.contains(sf2));
-  
+
     features = store.getNonPositionalFeatures("Pfam");
     assertEquals(features.size(), 2);
     assertTrue(features.contains(sf5));
@@ -250,8 +270,7 @@ public class SequenceFeaturesTest
   SequenceFeature addFeature(SequenceFeaturesI sf, String type, int from,
           int to)
   {
-    SequenceFeature sf1 = new SequenceFeature(type, "", from, to,
-            Float.NaN,
+    SequenceFeature sf1 = new SequenceFeature(type, "", from, to, Float.NaN,
             null);
     sf.add(sf1);
     return sf1;
@@ -273,31 +292,31 @@ public class SequenceFeaturesTest
     SequenceFeature sf10 = addFeature(sf, "Cath", 40, 100);
     SequenceFeature sf11 = addFeature(sf, "Cath", 60, 100);
     SequenceFeature sf12 = addFeature(sf, "Cath", 70, 70);
-  
+
     List<SequenceFeature> overlaps = sf.findFeatures(200, 200, "Pfam");
     assertTrue(overlaps.isEmpty());
-  
-    overlaps = sf.findFeatures( 1, 9, "Pfam");
+
+    overlaps = sf.findFeatures(1, 9, "Pfam");
     assertEquals(overlaps.size(), 1);
     assertTrue(overlaps.contains(sf2));
-  
-    overlaps = sf.findFeatures( 5, 18, "Pfam");
+
+    overlaps = sf.findFeatures(5, 18, "Pfam");
     assertEquals(overlaps.size(), 2);
     assertTrue(overlaps.contains(sf1));
     assertTrue(overlaps.contains(sf2));
-  
+
     overlaps = sf.findFeatures(30, 40, "Pfam");
     assertEquals(overlaps.size(), 3);
     assertTrue(overlaps.contains(sf1));
     assertTrue(overlaps.contains(sf3));
     assertTrue(overlaps.contains(sf4));
-  
-    overlaps = sf.findFeatures( 80, 90, "Pfam");
+
+    overlaps = sf.findFeatures(80, 90, "Pfam");
     assertEquals(overlaps.size(), 2);
     assertTrue(overlaps.contains(sf4));
     assertTrue(overlaps.contains(sf5));
-  
-    overlaps = sf.findFeatures( 68, 70, "Pfam");
+
+    overlaps = sf.findFeatures(68, 70, "Pfam");
     assertEquals(overlaps.size(), 3);
     assertTrue(overlaps.contains(sf4));
     assertTrue(overlaps.contains(sf5));
@@ -377,12 +396,10 @@ public class SequenceFeaturesTest
      * add, then delete, more non-positional features of different types
      */
     SequenceFeature sfy = new SequenceFeature("AnotherType", "Desc", 0, 0,
-            0f,
-            "AnotherGroup");
+            0f, "AnotherGroup");
     sf.add(sfy);
     SequenceFeature sfz = new SequenceFeature("AThirdType", "Desc", 0, 0,
-            0f,
-            null);
+            0f, null);
     sf.add(sfz);
     groups = sf.getFeatureGroups(false);
     assertEquals(groups.size(), 3);
@@ -452,7 +469,7 @@ public class SequenceFeaturesTest
   {
     SequenceFeaturesI sf = new SequenceFeatures();
     assertTrue(sf.getFeatureTypesForGroups(true, (String) null).isEmpty());
-  
+
     /*
      * add feature with group = "Uniprot", type = "helix"
      */
@@ -464,7 +481,7 @@ public class SequenceFeaturesTest
     assertEquals(groups.size(), 1);
     assertTrue(groups.contains("helix"));
     assertTrue(sf.getFeatureTypesForGroups(true, (String) null).isEmpty());
-  
+
     /*
      * add feature with group = "Uniprot", type = "strand"
      */
@@ -525,8 +542,9 @@ public class SequenceFeaturesTest
     assertTrue(groups.contains("turn"));
     assertTrue(groups.contains("strand"));
     // alternative vararg syntax
-    groups = sf.getFeatureTypesForGroups(true, new String[] { "Cath",
-        "Scop" });
+    groups = sf.getFeatureTypesForGroups(true,
+            new String[]
+            { "Cath", "Scop" });
     assertEquals(groups.size(), 2);
     assertTrue(groups.contains("turn"));
     assertTrue(groups.contains("strand"));
@@ -568,8 +586,8 @@ public class SequenceFeaturesTest
     /*
      * add contact feature
      */
-    SequenceFeature sf4 = new SequenceFeature("Disulphide Bond", "desc",
-            10, 20, Float.NaN, null);
+    SequenceFeature sf4 = new SequenceFeature("Disulphide Bond", "desc", 10,
+            20, Float.NaN, null);
     store.add(sf4);
     types = store.getFeatureTypes();
     assertEquals(types.size(), 3);
@@ -607,7 +625,7 @@ public class SequenceFeaturesTest
     SequenceFeaturesI store = new SequenceFeatures();
     assertEquals(store.getFeatureCount(true), 0);
     assertEquals(store.getFeatureCount(false), 0);
-  
+
     /*
      * add positional
      */
@@ -625,7 +643,7 @@ public class SequenceFeaturesTest
     assertFalse(store.add(sf2));
     assertEquals(store.getFeatureCount(true), 1);
     assertEquals(store.getFeatureCount(false), 0);
-  
+
     /*
      * add non-positional feature
      */
@@ -634,16 +652,16 @@ public class SequenceFeaturesTest
     store.add(sf3);
     assertEquals(store.getFeatureCount(true), 1);
     assertEquals(store.getFeatureCount(false), 1);
-  
+
     /*
      * add contact feature (counts as 1)
      */
-    SequenceFeature sf4 = new SequenceFeature("Disulphide Bond", "desc",
-            10, 20, Float.NaN, null);
+    SequenceFeature sf4 = new SequenceFeature("Disulphide Bond", "desc", 10,
+            20, Float.NaN, null);
     store.add(sf4);
     assertEquals(store.getFeatureCount(true), 2);
     assertEquals(store.getFeatureCount(false), 1);
-  
+
     /*
      * add another Pfam but this time as a positional feature
      */
@@ -668,7 +686,7 @@ public class SequenceFeaturesTest
     assertTrue(store.delete(sf3));
     assertEquals(store.getFeatureCount(true), 3);
     assertEquals(store.getFeatureCount(false), 0);
-  
+
     /*
      * delete second Pfam (positional)
      */
@@ -683,21 +701,21 @@ public class SequenceFeaturesTest
     SequenceFeaturesI store = new SequenceFeatures();
     List<SequenceFeature> features = store.getAllFeatures();
     assertTrue(features.isEmpty());
-  
+
     SequenceFeature sf1 = new SequenceFeature("Metal", "desc", 10, 20,
             Float.NaN, null);
     store.add(sf1);
     features = store.getAllFeatures();
     assertEquals(features.size(), 1);
     assertTrue(features.contains(sf1));
-  
+
     SequenceFeature sf2 = new SequenceFeature("Metallic", "desc", 10, 20,
             Float.NaN, null);
     store.add(sf2);
     features = store.getAllFeatures();
     assertEquals(features.size(), 2);
     assertTrue(features.contains(sf2));
-  
+
     /*
      * add non-positional feature
      */
@@ -707,17 +725,17 @@ public class SequenceFeaturesTest
     features = store.getAllFeatures();
     assertEquals(features.size(), 3);
     assertTrue(features.contains(sf3));
-  
+
     /*
      * add contact feature
      */
-    SequenceFeature sf4 = new SequenceFeature("Disulphide Bond", "desc",
-            10, 20, Float.NaN, null);
+    SequenceFeature sf4 = new SequenceFeature("Disulphide Bond", "desc", 10,
+            20, Float.NaN, null);
     store.add(sf4);
     features = store.getAllFeatures();
     assertEquals(features.size(), 4);
     assertTrue(features.contains(sf4));
-  
+
     /*
      * add another Pfam
      */
@@ -740,7 +758,7 @@ public class SequenceFeaturesTest
     assertTrue(features.contains(sf1));
     assertTrue(features.contains(sf3));
     assertTrue(features.contains(sf5));
-  
+
     /*
      * delete first Pfam
      */
@@ -748,7 +766,7 @@ public class SequenceFeaturesTest
     features = store.getAllFeatures();
     assertEquals(features.size(), 4);
     assertFalse(features.contains(sf3));
-  
+
     /*
      * delete second Pfam
      */
@@ -786,8 +804,8 @@ public class SequenceFeaturesTest
     /*
      * add contact feature - counts 1 to feature length
      */
-    SequenceFeature sf4 = new SequenceFeature("Disulphide Bond", "desc",
-            10, 20, Float.NaN, null);
+    SequenceFeature sf4 = new SequenceFeature("Disulphide Bond", "desc", 10,
+            20, Float.NaN, null);
     store.add(sf4);
     assertEquals(store.getTotalFeatureLength(), 12);
 
@@ -963,7 +981,7 @@ public class SequenceFeaturesTest
   public void testGetFeatureTypes_byOntology()
   {
     SequenceFeaturesI store = new SequenceFeatures();
-  
+
     SequenceFeature sf1 = new SequenceFeature("transcript", "desc", 10, 20,
             Float.NaN, null);
     store.add(sf1);
@@ -1003,9 +1021,9 @@ public class SequenceFeaturesTest
     assertTrue(features.isEmpty());
     assertTrue(store.getFeaturesByOntology(new String[] {}).isEmpty());
     assertTrue(store.getFeaturesByOntology((String[]) null).isEmpty());
-  
-    SequenceFeature transcriptFeature = new SequenceFeature("transcript", "desc", 10, 20,
-            Float.NaN, null);
+
+    SequenceFeature transcriptFeature = new SequenceFeature("transcript",
+            "desc", 10, 20, Float.NaN, null);
     store.add(transcriptFeature);
 
     /*
@@ -1016,8 +1034,8 @@ public class SequenceFeaturesTest
             Float.NaN, null);
     store.add(mrnaFeature);
 
-    SequenceFeature pfamFeature = new SequenceFeature("Pfam", "desc", 30, 40,
-            Float.NaN, null);
+    SequenceFeature pfamFeature = new SequenceFeature("Pfam", "desc", 30,
+            40, Float.NaN, null);
     store.add(pfamFeature);
 
     /*
@@ -1051,8 +1069,7 @@ public class SequenceFeaturesTest
   public void testSortFeatures()
   {
     List<SequenceFeature> sfs = new ArrayList<>();
-    SequenceFeature sf1 = new SequenceFeature("Pfam", "desc", 30,
-            60,
+    SequenceFeature sf1 = new SequenceFeature("Pfam", "desc", 30, 60,
             Float.NaN, null);
     sfs.add(sf1);
     SequenceFeature sf2 = new SequenceFeature("Rfam", "desc", 40, 50,
@@ -1061,12 +1078,10 @@ public class SequenceFeaturesTest
     SequenceFeature sf3 = new SequenceFeature("Rfam", "desc", 50, 60,
             Float.NaN, null);
     sfs.add(sf3);
-    SequenceFeature sf4 = new SequenceFeature("Xfam", "desc", 30,
-            80,
+    SequenceFeature sf4 = new SequenceFeature("Xfam", "desc", 30, 80,
             Float.NaN, null);
     sfs.add(sf4);
-    SequenceFeature sf5 = new SequenceFeature("Xfam", "desc", 30,
-            90,
+    SequenceFeature sf5 = new SequenceFeature("Xfam", "desc", 30, 90,
             Float.NaN, null);
     sfs.add(sf5);
 
@@ -1125,12 +1140,14 @@ public class SequenceFeaturesTest
     assertTrue(features.contains(sf5));
 
     // positional features for null group, specified type
-    features = store.getFeaturesForGroup(true, null, new String[] { "Pfam",
-        "Xfam" });
+    features = store.getFeaturesForGroup(true, null,
+            new String[]
+            { "Pfam", "Xfam" });
     assertEquals(features.size(), 1);
     assertTrue(features.contains(sf1));
-    features = store.getFeaturesForGroup(true, null, new String[] { "Pfam",
-        "Xfam", "Cath" });
+    features = store.getFeaturesForGroup(true, null,
+            new String[]
+            { "Pfam", "Xfam", "Cath" });
     assertEquals(features.size(), 2);
     assertTrue(features.contains(sf1));
     assertTrue(features.contains(sf5));
@@ -1146,7 +1163,8 @@ public class SequenceFeaturesTest
             "Rfam");
     assertEquals(features.size(), 1);
     assertTrue(features.contains(sf3));
-    assertTrue(store.getFeaturesForGroup(true, "Uniprot", "Cath").isEmpty());
+    assertTrue(
+            store.getFeaturesForGroup(true, "Uniprot", "Cath").isEmpty());
 
     // non-positional features for null group, any type
     features = store.getFeaturesForGroup(false, null);
@@ -1191,17 +1209,17 @@ public class SequenceFeaturesTest
     // non-positional feature:
     SequenceFeature sf4 = new SequenceFeature("Pfam", "", 0, 0, 0f, null);
     store.add(sf4);
-  
+
     /*
      * shift features right by 5
      */
     assertTrue(store.shiftFeatures(0, 5));
-  
+
     // non-positional features untouched:
     List<SequenceFeature> nonPos = store.getNonPositionalFeatures();
     assertEquals(nonPos.size(), 1);
     assertTrue(nonPos.contains(sf4));
-  
+
     // positional features are replaced
     List<SequenceFeature> pos = store.getPositionalFeatures();
     assertEquals(pos.size(), 3);
@@ -1218,7 +1236,7 @@ public class SequenceFeaturesTest
     assertEquals(pos.get(2).getBegin(), 28);
     assertEquals(pos.get(2).getEnd(), 37);
     assertEquals(pos.get(2).getType(), "Disulfide bond");
-  
+
     /*
      * now shift left by 15
      * feature at [7-10] should be removed