JAL-3423 use System.lineSeparator() in code and tests
[jalview.git] / test / jalview / gui / PairwiseAlignmentPanelTest.java
1 package jalview.gui;
2
3 import static org.testng.Assert.assertEquals;
4
5 import jalview.datamodel.AlignmentI;
6 import jalview.datamodel.SequenceGroup;
7 import jalview.io.DataSourceType;
8 import jalview.io.FileLoader;
9
10 import javax.swing.JTextArea;
11
12 import org.testng.annotations.Test;
13
14 import junit.extensions.PA;
15
16 public class PairwiseAlignmentPanelTest
17 {
18   private static final String NL = System.lineSeparator();
19
20   @Test(groups = "Functional")
21   public void testConstructor_withSelectionGroup()
22   {
23     AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
24             "examples/uniref50.fa", DataSourceType.FILE);
25     AlignViewport viewport = af.getViewport();
26     AlignmentI al = viewport.getAlignment();
27
28     /*
29      * select columns 29-36 of sequences 4 and 5 for alignment
30      * Q93XJ9_SOLTU/23-29 L-KAISNV
31      * FER1_PEA/26-32     V-TTTKAF
32      */
33     SequenceGroup sg = new SequenceGroup();
34     sg.addSequence(al.getSequenceAt(3), false);
35     sg.addSequence(al.getSequenceAt(4), false);
36     sg.setStartRes(28);
37     sg.setEndRes(35);
38     viewport.setSelectionGroup(sg);
39
40     PairwiseAlignPanel testee = new PairwiseAlignPanel(viewport);
41
42     String text = ((JTextArea) PA.getValue(testee, "textarea")).getText()
43     ;// .replaceAll("\r", "");
44     String expected = "Score = 80.0" + NL + "Length of alignment = 4" + NL
45             + "Sequence     FER1_PEA/29-32 (Sequence length = 7)" + NL
46             + "Sequence Q93XJ9_SOLTU/23-26 (Sequence length = 7)" + NL + NL
47             + "    FER1_PEA/29-32 TKAF" + NL + "                    ||."
48             + NL + "Q93XJ9_SOLTU/23-26 LKAI" + NL + NL
49             + "Percentage ID = 50.00" + NL + NL;
50     assertEquals(text, expected);
51   }
52
53   /**
54    * This test aligns the same sequences as testConstructor_withSelectionGroup
55    * but as a complete alignment (no selection). Note that in fact the user is
56    * currently required to make a selection in order to calculate pairwise
57    * alignments, so this case does not arise.
58    */
59   @Test(groups = "Functional")
60   public void testConstructor_noSelectionGroup()
61   {
62     String seqs = ">Q93XJ9_SOLTU/23-29\nL-KAISNV\n>FER1_PEA/26-32\nV-TTTKAF\n";
63     AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(seqs,
64             DataSourceType.PASTE);
65     AlignViewport viewport = af.getViewport();
66
67     PairwiseAlignPanel testee = new PairwiseAlignPanel(viewport);
68
69     String text = ((JTextArea) PA.getValue(testee, "textarea")).getText()
70     ;// .replaceAll("\r", "");
71     String expected = "Score = 80.0" + NL + "Length of alignment = 4" + NL
72             + "Sequence     FER1_PEA/29-32 (Sequence length = 7)" + NL
73             + "Sequence Q93XJ9_SOLTU/23-26 (Sequence length = 7)" + NL + NL
74             + "    FER1_PEA/29-32 TKAF" + NL + "                    ||."
75             + NL + "Q93XJ9_SOLTU/23-26 LKAI" + NL + NL
76             + "Percentage ID = 50.00" + NL + NL;
77     assertEquals(text, expected);
78   }
79 }