11package org .biojava .nbio .core .sequence ;
22
3+ import org .biojava .nbio .core .exceptions .CompoundNotFoundException ;
4+ import org .biojava .nbio .core .sequence .compound .NucleotideCompound ;
5+ import org .biojava .nbio .core .sequence .template .Compound ;
6+ import org .biojava .nbio .core .sequence .template .SequenceView ;
7+ import org .biojava .nbio .core .sequence .transcription .TranscriptionEngine ;
8+ import org .junit .jupiter .api .BeforeEach ;
9+ import org .junit .jupiter .api .Test ;
10+ import static java .util .stream .Collectors .joining ;
311import static org .junit .jupiter .api .Assertions .*;
412
513class RNASequenceTest {
614
15+ // AUG start, then 3 AA, then stop codon
16+ final String rnaSeq = "AUGGUCGAACUCUGA" ;
17+ final String rnaSeqCompl = "UACCAGCUUGAGACU" ;
18+ final String rnaSeqReversed = "AGUCUCAAGCUGGUA" ;
19+ final String rnaSeqReversedComplement = "UCAGAGUUCGACCAU" ;
20+ RNASequence rna ;
21+ @ BeforeEach
22+ void before () throws CompoundNotFoundException {
23+ rna = new RNASequence (rnaSeq );
24+ }
25+
26+ @ Test
27+ void translateToProteinSequence () {
28+ ProteinSequence protein = rna .getProteinSequence (TranscriptionEngine .getDefault ());
29+ assertEquals (4 , protein .getLength ());
30+ assertEquals ("MVEL" , protein .getSequenceAsString ());
31+ }
32+
33+ @ Test
34+ void complement () {
35+ SequenceView <NucleotideCompound > complement = rna .getComplement ();
36+ assertEquals (rnaSeqCompl , complement .getSequenceAsString ());
37+ assertEquals (rnaSeq , complement .getViewedSequence ().getSequenceAsString ());
38+ assertEquals (rna .getLength (), complement .getLength ());
39+ }
40+
41+ @ Test
42+ void reverse () {
43+ SequenceView <NucleotideCompound > reversed = rna .getInverse ();
44+ assertEquals (rnaSeqReversed , reversed .getSequenceAsString ());
45+ assertEquals (rnaSeq , reversed .getViewedSequence ().getSequenceAsString ());
46+ assertEquals (rna .getLength (), reversed .getLength ());
47+ }
48+
49+ @ Test
50+ void reverseComplement () {
51+ SequenceView <NucleotideCompound > reverseComplement = rna .getReverseComplement ();
52+ assertEquals (rnaSeqReversedComplement , reverseComplement .getSequenceAsString ());
53+ assertEquals (rna .getLength (), reverseComplement .getLength ());
54+ StringBuilder sb = new StringBuilder ();
55+ for (int i = 1 ; i <= rna .getLength (); i ++) {
56+ sb .append (reverseComplement .getCompoundAt (i ).toString ());
57+ }
58+ assertEquals (rnaSeqReversedComplement , sb .toString ());
59+
60+ sb = new StringBuilder ();
61+ for (Compound c : reverseComplement ) {
62+ sb .append (c .toString ());
63+ }
64+ assertEquals (rnaSeqReversedComplement , sb .toString ());
65+ assertEquals (rnaSeqReversedComplement , reverseComplement .getAsList ().stream ().map (Compound ::toString ).collect (joining ("" )));
66+ }
67+
68+ @ Test
69+ void rejectThymineInSequence () {
70+ String dna = rnaSeq .replaceAll ("U" , "T" );
71+ assertThrows (CompoundNotFoundException .class , ()->new RNASequence (dna ));
72+ }
73+
774}
0 commit comments