Merge branch 'Release_2_8_3_Branch' of https://source.jalview.org/git/jalview into...
[jalview.git] / test / jalview / analysis / CrossRefTest.java
index 2ae4afc..35606f0 100644 (file)
@@ -1,72 +1,46 @@
 package jalview.analysis;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import jalview.datamodel.DBRefEntry;
-import jalview.datamodel.Sequence;
-import jalview.datamodel.SequenceI;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
 
 import org.junit.Test;
 
+import jalview.datamodel.DBRefEntry;
+
 public class CrossRefTest
 {
-
-  /**
-   * Tests for the method that checks if one sequence cross-references another
-   */
   @Test
-  public void testHasCrossRef()
+  public void testFindXDbRefs()
   {
-    assertFalse(CrossRef.hasCrossRef(null, null));
-    SequenceI seq1 = new Sequence("EMBL|A12345", "ABCDEF");
-    assertFalse(CrossRef.hasCrossRef(seq1, null));
-    assertFalse(CrossRef.hasCrossRef(null, seq1));
-    SequenceI seq2 = new Sequence("UNIPROT|V20192", "ABCDEF");
-    assertFalse(CrossRef.hasCrossRef(seq1, seq2));
-
-    // different ref
-    seq1.addDBRef(new DBRefEntry("UNIPROT", "1", "v20193"));
-    assertFalse(CrossRef.hasCrossRef(seq1, seq2));
-
-    // case-insensitive; version number is ignored
-    seq1.addDBRef(new DBRefEntry("UNIPROT", "1", "v20192"));
-    assertTrue(CrossRef.hasCrossRef(seq1, seq2));
-
-    // right case!
-    seq1.addDBRef(new DBRefEntry("UNIPROT", "1", "V20192"));
-    assertTrue(CrossRef.hasCrossRef(seq1, seq2));
-    // test is one-way only
-    assertFalse(CrossRef.hasCrossRef(seq2, seq1));
+    DBRefEntry ref1 = new DBRefEntry("UNIPROT", "1", "A123");
+    DBRefEntry ref2 = new DBRefEntry("UNIPROTKB/TREMBL", "1", "A123");
+    DBRefEntry ref3 = new DBRefEntry("pdb", "1", "A123");
+    DBRefEntry ref4 = new DBRefEntry("EMBLCDSPROTEIN", "1", "A123");
+    DBRefEntry ref5 = new DBRefEntry("embl", "1", "A123");
+    DBRefEntry ref6 = new DBRefEntry("emblCDS", "1", "A123");
+    DBRefEntry ref7 = new DBRefEntry("GeneDB", "1", "A123");
+    DBRefEntry ref8 = new DBRefEntry("PFAM", "1", "A123");
+    DBRefEntry[] refs = new DBRefEntry[]
+    { ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8 };
+
+    /*
+     * Just the DNA refs:
+     */
+    DBRefEntry[] found = CrossRef.findXDbRefs(false, refs);
+    assertEquals(3, found.length);
+    assertSame(ref5, found[0]);
+    assertSame(ref6, found[1]);
+    assertSame(ref7, found[2]);
+
+    /*
+     * Just the protein refs:
+     */
+    found = CrossRef.findXDbRefs(true, refs);
+    assertEquals(4, found.length);
+    assertSame(ref1, found[0]);
+    assertSame(ref2, found[1]);
+    assertSame(ref3, found[2]);
+    assertSame(ref4, found[3]);
   }
 
-  /**
-   * Tests for the method that checks if either sequence cross-references the
-   * other
-   */
-  @Test
-  public void testHaveCrossRef()
-  {
-    assertFalse(CrossRef.hasCrossRef(null, null));
-    SequenceI seq1 = new Sequence("EMBL|A12345", "ABCDEF");
-    assertFalse(CrossRef.haveCrossRef(seq1, null));
-    assertFalse(CrossRef.haveCrossRef(null, seq1));
-    SequenceI seq2 = new Sequence("UNIPROT|V20192", "ABCDEF");
-    assertFalse(CrossRef.haveCrossRef(seq1, seq2));
-
-    seq1.addDBRef(new DBRefEntry("UNIPROT", "1", "V20192"));
-    assertTrue(CrossRef.haveCrossRef(seq1, seq2));
-    // next is true for haveCrossRef, false for hasCrossRef
-    assertTrue(CrossRef.haveCrossRef(seq2, seq1));
-
-    // now the other way round
-    seq1.setDBRef(null);
-    seq2.addDBRef(new DBRefEntry("EMBL", "1", "A12345"));
-    assertTrue(CrossRef.haveCrossRef(seq1, seq2));
-    assertTrue(CrossRef.haveCrossRef(seq2, seq1));
-
-    // now both ways
-    seq1.addDBRef(new DBRefEntry("UNIPROT", "1", "V20192"));
-    assertTrue(CrossRef.haveCrossRef(seq1, seq2));
-    assertTrue(CrossRef.haveCrossRef(seq2, seq1));
-  }
 }