package jalview.io;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
import jalview.datamodel.features.SequenceFeaturesI;
import java.io.IOException;
import java.util.List;
import org.testng.annotations.Test;
public class BSMLFileTest
{
@Test(groups="Functional")
public void testParse_BSML() throws IOException
{
//@formatter:off
String data = "\r\n" +
"\r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" --AATTTT-ATTTAGTGTCT-----------\r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
" \r\n" +
"\r\n" +
"";
BSMLFile cf = new BSMLFile(data, DataSourceType.PASTE);
// why twice? cf.parse();
SequenceI[] seqs = cf.getSeqsAsArray();
assertEquals(seqs.length, 1);
SequenceI seq = seqs[0];
assertEquals(seq.getName(), "EP1");
assertEquals(seq.getStart(), 1);
assertEquals(seq.getEnd(), 31);
assertTrue(seq.getSequenceAsString().equals("--AATTTT-ATTTAGTGTCT-----------"));
SequenceFeaturesI features = seq.getFeatures();
List genes = features.getAllFeatures("GENE");
assertEquals(genes.size(), 1);
SequenceFeature sf = genes.get(0);
assertEquals(sf.getDescription(), "TEST-001");
assertEquals(sf.begin + "," + sf.end, "10,20");
}
}