JAL-1645 source formatting and organise imports
[jalview.git] / test / jalview / analysis / scoremodels / FeatureScoreModelTest.java
1 package jalview.analysis.scoremodels;
2
3 import jalview.datamodel.AlignmentI;
4 import jalview.datamodel.SequenceFeature;
5 import jalview.datamodel.SequenceI;
6 import jalview.gui.AlignFrame;
7 import jalview.io.FileLoader;
8 import jalview.io.FormatAdapter;
9
10 import org.testng.AssertJUnit;
11 import org.testng.annotations.Test;
12
13 public class FeatureScoreModelTest
14 {
15   public static String alntestFile = "FER1_MESCR/72-76 DVYIL\nFER1_SPIOL/71-75 DVYIL\nFER3_RAPSA/21-25 DVYVL\nFER1_MAIZE/73-77 DVYIL\n";
16
17   int[] sf1 = new int[] { 74, 74, 73, 73, 23, 23, -1, -1 };
18
19   int[] sf2 = new int[] { -1, -1, 74, 75, -1, -1, 76, 77 };
20
21   int[] sf3 = new int[] { -1, -1, -1, -1, -1, -1, 76, 77 };
22
23   @Test(groups = { "Functional" })
24   public void testFeatureScoreModel() throws Exception
25   {
26     AlignFrame alf = new FileLoader(false).LoadFileWaitTillLoaded(
27             alntestFile, FormatAdapter.PASTE);
28     AlignmentI al = alf.getViewport().getAlignment();
29     AssertJUnit.assertEquals(4, al.getHeight());
30     AssertJUnit.assertEquals(5, al.getWidth());
31     for (int i = 0; i < 4; i++)
32     {
33       SequenceI ds = al.getSequenceAt(i).getDatasetSequence();
34       if (sf1[i * 2] > 0)
35       {
36         ds.addSequenceFeature(new SequenceFeature("sf1", "sf1", "sf1",
37                 sf1[i * 2], sf1[i * 2 + 1], "sf1"));
38       }
39       if (sf2[i * 2] > 0)
40       {
41         ds.addSequenceFeature(new SequenceFeature("sf2", "sf2", "sf2",
42                 sf2[i * 2], sf2[i * 2 + 1], "sf2"));
43       }
44       if (sf3[i * 2] > 0)
45       {
46         ds.addSequenceFeature(new SequenceFeature("sf3", "sf3", "sf3",
47                 sf3[i * 2], sf3[i * 2 + 1], "sf3"));
48       }
49     }
50     alf.setShowSeqFeatures(true);
51     alf.getFeatureRenderer().setVisible("sf1");
52     alf.getFeatureRenderer().setVisible("sf2");
53     alf.getFeatureRenderer().setVisible("sf3");
54     alf.getFeatureRenderer().findAllFeatures(true);
55     AssertJUnit.assertEquals("Number of feature types", 3, alf
56             .getFeatureRenderer().getDisplayedFeatureTypes().length);
57     AssertJUnit.assertTrue(alf.getCurrentView().areFeaturesDisplayed());
58     FeatureScoreModel fsm = new FeatureScoreModel();
59     AssertJUnit.assertTrue(fsm.configureFromAlignmentView(alf
60             .getCurrentView().getAlignPanel()));
61     alf.selectAllSequenceMenuItem_actionPerformed(null);
62     float[][] dm = fsm.findDistances(alf.getViewport().getAlignmentView(
63             true));
64     AssertJUnit.assertTrue("FER1_MESCR should be identical with RAPSA (2)",
65             dm[0][2] == 0f);
66     AssertJUnit
67             .assertTrue(
68                     "FER1_MESCR should be further from SPIOL (1) than it is from RAPSA (2)",
69                     dm[0][1] > dm[0][2]);
70
71   }
72 }