package jalview.datamodel; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import jalview.io.AppletFormatAdapter; import java.io.IOException; import java.util.Iterator; import org.junit.Before; import org.junit.Test; /** * Unit tests for Alignment datamodel. * * @author gmcarstairs * */ public class AlignmentTest { // @formatter:off private static final String TEST_DATA = "# STOCKHOLM 1.0\n" + "#=GS D.melanogaster.1 AC AY119185.1/838-902\n" + "#=GS D.melanogaster.2 AC AC092237.1/57223-57161\n" + "#=GS D.melanogaster.3 AC AY060611.1/560-627\n" + "D.melanogaster.1 G.AGCC.CU...AUGAUCGA\n" + "#=GR D.melanogaster.1 SS ................((((\n" + "D.melanogaster.2 C.AUUCAACU.UAUGAGGAU\n" + "#=GR D.melanogaster.2 SS ................((((\n" + "D.melanogaster.3 G.UGGCGCU..UAUGACGCA\n" + "#=GR D.melanogaster.3 SS (.(((...(....(((((((\n" + "//"; // @formatter:on private Alignment al; /* * Read in Stockholm format test data including secondary structure * annotations. */ @Before public void setUp() throws IOException { al = new jalview.io.FormatAdapter().readFile(TEST_DATA, AppletFormatAdapter.PASTE, "STH"); for (int i = 0; i < al.getSequencesArray().length; ++i) { al.getSequenceAt(i).setDatasetSequence( al.getSequenceAt(i).createDatasetSequence()); al.addAnnotation(al.getSequenceAt(i).getAnnotation()[0]); al.getSequenceAt(i).getAnnotation()[0].setCalcId("CalcIdFor" + al.getSequenceAt(i).getName()); } } /** * Test method that returns annotations that match on calcId. */ @Test public void testFindAnnotation_byCalcId() { Iterable anns = al .findAnnotation("CalcIdForD.melanogaster.2"); Iterator iter = anns.iterator(); assertTrue(iter.hasNext()); AlignmentAnnotation ann = iter.next(); assertEquals("D.melanogaster.2", ann.sequenceRef.getName()); assertFalse(iter.hasNext()); } }