libsequence  1.9.5
RedundancyCom95test.cc
3 #include <boost/test/unit_test.hpp>
4 #include <fstream>
5 #include <iostream>
6 #include <string>
7 #include <vector>
8 #include <utility>
9 #include <iterator>
10 #include <unistd.h>
11 
12 //Test that redundancy values sum to 3 for all non-stop codons + universal code
13 BOOST_AUTO_TEST_SUITE(RedundancyCom95Test)
14 
15 BOOST_AUTO_TEST_CASE( universal_code_1 )
16 {
18 
19  unsigned ncodons = 0;
20 
21  for( unsigned i = 0 ; i < 4 ; ++i )
22  {
23  for( unsigned j = 0 ; j < 4 ; ++j )
24  {
25  for( unsigned k = 0 ; k < 4 ; ++k )
26  {
27  std::string codon( { Sequence::dna_alphabet[i],
29  Sequence::dna_alphabet[k] } );
30  ++ncodons;
31  //Vals must some to 3 for all but the stop codons
32  if( codon != "TGA" &&
33  codon != "TAG" &&
34  codon != "TAA" )
35  {
36  BOOST_CHECK_CLOSE( rc.L0_vals(codon) + rc.L2S_vals(codon) +
37  rc.L2V_vals(codon) + rc.L4_vals(codon) , 3.,1e-6 );
38  }
39  }
40  }
41  }
42  BOOST_REQUIRE( ncodons == 64 );
43 }
44 
45 BOOST_AUTO_TEST_CASE( AAA )
46 {
47  std::string codon("AAA");
49  BOOST_CHECK_EQUAL(rc.FirstNon(codon), 1. );
50  BOOST_CHECK_EQUAL(rc.First2S(codon), 0. );
51  BOOST_CHECK_EQUAL(rc.First2V(codon), 0. );
52  BOOST_CHECK_EQUAL(rc.ThirdNon(codon), 0. );
53  BOOST_CHECK_EQUAL(rc.ThirdFour(codon), 0. );
54  BOOST_CHECK_EQUAL(rc.Third2S(codon), 1. );
55  BOOST_CHECK_EQUAL(rc.Third2V(codon), 0. );
56 }
57 
58 BOOST_AUTO_TEST_CASE( AAC )
59 {
60  std::string codon("AAC");
62  BOOST_CHECK_EQUAL(rc.FirstNon(codon), 1. );
63  BOOST_CHECK_EQUAL(rc.First2S(codon), 0. );
64  BOOST_CHECK_EQUAL(rc.First2V(codon), 0. );
65  BOOST_CHECK_EQUAL(rc.ThirdNon(codon), 0. );
66  BOOST_CHECK_EQUAL(rc.ThirdFour(codon), 0. );
67  BOOST_CHECK_EQUAL(rc.Third2S(codon), 1. );
68  BOOST_CHECK_EQUAL(rc.Third2V(codon), 0. );
69 }
70 
71 BOOST_AUTO_TEST_CASE( AAT )
72 {
73  std::string codon("AAT");
75  BOOST_CHECK_EQUAL(rc.FirstNon(codon), 1. );
76  BOOST_CHECK_EQUAL(rc.First2S(codon), 0. );
77  BOOST_CHECK_EQUAL(rc.First2V(codon), 0. );
78  BOOST_CHECK_EQUAL(rc.ThirdNon(codon), 0. );
79  BOOST_CHECK_EQUAL(rc.ThirdFour(codon), 0. );
80  BOOST_CHECK_EQUAL(rc.Third2S(codon), 1. );
81  BOOST_CHECK_EQUAL(rc.Third2V(codon), 0. );
82 }
83 
84 BOOST_AUTO_TEST_CASE( AAG )
85 {
86  std::string codon("AAG");
88  BOOST_CHECK_EQUAL(rc.FirstNon(codon), 1. );
89  BOOST_CHECK_EQUAL(rc.First2S(codon), 0. );
90  BOOST_CHECK_EQUAL(rc.First2V(codon), 0. );
91  BOOST_CHECK_EQUAL(rc.ThirdNon(codon), 0. );
92  BOOST_CHECK_EQUAL(rc.ThirdFour(codon), 0. );
93  BOOST_CHECK_EQUAL(rc.Third2S(codon), 1. );
94  BOOST_CHECK_EQUAL(rc.Third2V(codon), 0. );
95 }
96 
97 BOOST_AUTO_TEST_CASE( ACA )
98 {
99  std::string codon("ACA");
101  BOOST_CHECK_EQUAL(rc.FirstNon(codon), 1. );
102  BOOST_CHECK_EQUAL(rc.First2S(codon), 0. );
103  BOOST_CHECK_EQUAL(rc.First2V(codon), 0. );
104  BOOST_CHECK_EQUAL(rc.ThirdNon(codon), 0. );
105  BOOST_CHECK_EQUAL(rc.ThirdFour(codon), 1. );
106  BOOST_CHECK_EQUAL(rc.Third2S(codon), 0. );
107  BOOST_CHECK_EQUAL(rc.Third2V(codon), 0. );
108 }
109 
110 BOOST_AUTO_TEST_CASE( ACC )
111 {
112  std::string codon("ACC");
114  BOOST_CHECK_EQUAL(rc.FirstNon(codon), 1. );
115  BOOST_CHECK_EQUAL(rc.First2S(codon), 0. );
116  BOOST_CHECK_EQUAL(rc.First2V(codon), 0. );
117  BOOST_CHECK_EQUAL(rc.ThirdNon(codon), 0. );
118  BOOST_CHECK_EQUAL(rc.ThirdFour(codon), 1. );
119  BOOST_CHECK_EQUAL(rc.Third2S(codon), 0. );
120  BOOST_CHECK_EQUAL(rc.Third2V(codon), 0. );
121 }
122 
123 BOOST_AUTO_TEST_CASE( ACG )
124 {
125  std::string codon("ACG");
127  BOOST_CHECK_EQUAL(rc.FirstNon(codon), 1. );
128  BOOST_CHECK_EQUAL(rc.First2S(codon), 0. );
129  BOOST_CHECK_EQUAL(rc.First2V(codon), 0. );
130  BOOST_CHECK_EQUAL(rc.ThirdNon(codon), 0. );
131  BOOST_CHECK_EQUAL(rc.ThirdFour(codon), 1. );
132  BOOST_CHECK_EQUAL(rc.Third2S(codon), 0. );
133  BOOST_CHECK_EQUAL(rc.Third2V(codon), 0. );
134 }
135 
136 BOOST_AUTO_TEST_CASE( ACT )
137 {
138  std::string codon("ACT");
140  BOOST_CHECK_EQUAL(rc.FirstNon(codon), 1. );
141  BOOST_CHECK_EQUAL(rc.First2S(codon), 0. );
142  BOOST_CHECK_EQUAL(rc.First2V(codon), 0. );
143  BOOST_CHECK_EQUAL(rc.ThirdNon(codon), 0. );
144  BOOST_CHECK_EQUAL(rc.ThirdFour(codon), 1. );
145  BOOST_CHECK_EQUAL(rc.Third2S(codon), 0. );
146  BOOST_CHECK_EQUAL(rc.Third2V(codon), 0. );
147 }
148 
149 BOOST_AUTO_TEST_CASE( AGA )
150 {
151  std::string codon("AGA");
153  BOOST_CHECK_EQUAL(rc.FirstNon(codon), 0. );
154  BOOST_CHECK_EQUAL(rc.First2S(codon), 0. );
155  BOOST_CHECK_EQUAL(rc.First2V(codon), 1. );
156  BOOST_CHECK_EQUAL(rc.ThirdNon(codon), 0. );
157  BOOST_CHECK_EQUAL(rc.ThirdFour(codon), 0. );
158  BOOST_CHECK_EQUAL(rc.Third2S(codon), 1. );
159  BOOST_CHECK_EQUAL(rc.Third2V(codon), 0. );
160 }
161 
162 BOOST_AUTO_TEST_CASE( AGC )
163 {
164  std::string codon("AGC");
166  BOOST_CHECK_EQUAL(rc.FirstNon(codon), 1. );
167  BOOST_CHECK_EQUAL(rc.First2S(codon), 0. );
168  BOOST_CHECK_EQUAL(rc.First2V(codon), 0. );
169  BOOST_CHECK_EQUAL(rc.ThirdNon(codon), 0. );
170  BOOST_CHECK_EQUAL(rc.ThirdFour(codon), 0. );
171  BOOST_CHECK_EQUAL(rc.Third2S(codon), 1. );
172  BOOST_CHECK_EQUAL(rc.Third2V(codon), 0. );
173 }
174 
175 BOOST_AUTO_TEST_CASE( AGG )
176 {
177  std::string codon("AGG");
179  BOOST_CHECK_CLOSE(rc.FirstNon(codon), 2./3., 1e-6 );
180  BOOST_CHECK_EQUAL(rc.First2S(codon), 0. );
181  BOOST_CHECK_CLOSE(rc.First2V(codon), 1./3., 1e-6 );
182  BOOST_CHECK_EQUAL(rc.ThirdNon(codon), 0. );
183  BOOST_CHECK_EQUAL(rc.ThirdFour(codon), 0. );
184  BOOST_CHECK_EQUAL(rc.Third2S(codon), 1. );
185  BOOST_CHECK_EQUAL(rc.Third2V(codon), 0. );
186 }
187 
188 
189 BOOST_AUTO_TEST_CASE( AGT )
190 {
191  std::string codon("AGT");
193  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
194  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
195  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
196  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
197  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
198  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
199  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
200 }
201 
202 BOOST_AUTO_TEST_CASE( ATA )
203 {
204  std::string codon("ATA");
206  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
207  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
208  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
209  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
210  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
211  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
212  BOOST_CHECK_EQUAL(rc.Third2V(codon),1.);
213 }
214 
215 BOOST_AUTO_TEST_CASE( ATC )
216 {
217  std::string codon("ATC");
219  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
220  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
221  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
222  BOOST_CHECK_CLOSE(rc.ThirdNon(codon),1./3.,1e-6);
223  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
224  BOOST_CHECK_CLOSE(rc.Third2S(codon),1./3.,1e-6);
225  BOOST_CHECK_CLOSE(rc.Third2V(codon),1./3.,1e-6);
226 }
227 
228 BOOST_AUTO_TEST_CASE( ATG )
229 {
230  std::string codon("ATG");
232  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
233  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
234  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
235  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),1.);
236  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
237  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
238  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
239 }
240 
241 BOOST_AUTO_TEST_CASE( ATT )
242 {
243  std::string codon("ATT");
245  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
246  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
247  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
248  BOOST_CHECK_CLOSE(rc.ThirdNon(codon),1./3.,1e-6);
249  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
250  BOOST_CHECK_CLOSE(rc.Third2S(codon),1./3.,1e-6);
251  BOOST_CHECK_CLOSE(rc.Third2V(codon),1./3.,1e-6);
252 }
253 
254 BOOST_AUTO_TEST_CASE( CAA )
255 {
256  std::string codon("CAA");
258  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
259  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
260  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
261  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
262  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
263  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
264  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
265 }
266 
267 BOOST_AUTO_TEST_CASE( CAC )
268 {
269  std::string codon("CAC");
271  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
272  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
273  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
274  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
275  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
276  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
277  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
278 }
279 
280 BOOST_AUTO_TEST_CASE( CAG )
281 {
282  std::string codon("CAG");
284  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
285  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
286  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
287  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
288  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
289  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
290  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
291 }
292 
293 BOOST_AUTO_TEST_CASE( CAT )
294 {
295  std::string codon("CAT");
297  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
298  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
299  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
300  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
301  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
302  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
303  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
304 }
305 
306 BOOST_AUTO_TEST_CASE( CCA )
307 {
308  std::string codon("CCA");
310  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
311  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
312  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
313  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
314  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
315  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
316  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
317 }
318 
319 BOOST_AUTO_TEST_CASE( CCC )
320 {
321  std::string codon("CCC");
323  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
324  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
325  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
326  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
327  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
328  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
329  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
330 }
331 
332 BOOST_AUTO_TEST_CASE( CCG )
333 {
334  std::string codon("CCG");
336  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
337  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
338  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
339  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
340  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
341  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
342  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
343 }
344 
345 BOOST_AUTO_TEST_CASE( CCT )
346 {
347  std::string codon("CCT");
349  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
350  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
351  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
352  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
353  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
354  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
355  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
356 }
357 
358 BOOST_AUTO_TEST_CASE( CGA )
359 {
360  std::string codon("CGA");
362  BOOST_CHECK_EQUAL(rc.FirstNon(codon),0.5);
363  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
364  BOOST_CHECK_EQUAL(rc.First2V(codon),0.5);
365  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
366  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
367  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
368  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
369 }
370 
371 BOOST_AUTO_TEST_CASE( CGC )
372 {
373  std::string codon("CGC");
375  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
376  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
377  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
378  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
379  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
380  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
381  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
382 }
383 
384 BOOST_AUTO_TEST_CASE( CGG )
385 {
386  std::string codon("CGG");
388  BOOST_CHECK_CLOSE(rc.FirstNon(codon),2./3.,1e-6);
389  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
390  BOOST_CHECK_CLOSE(rc.First2V(codon),1./3.,1e-6);
391  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
392  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
393  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
394  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
395 }
396 
397 BOOST_AUTO_TEST_CASE( CGT )
398 {
399  std::string codon("CGT");
401  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
402  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
403  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
404  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
405  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
406  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
407  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
408 }
409 
410 BOOST_AUTO_TEST_CASE( CTA )
411 {
412  std::string codon("CTA");
414  BOOST_CHECK_EQUAL(rc.FirstNon(codon),0.);
415  BOOST_CHECK_EQUAL(rc.First2S(codon),1.);
416  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
417  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
418  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
419  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
420  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
421 }
422 
423 BOOST_AUTO_TEST_CASE( CTC )
424 {
425  std::string codon("CTC");
427  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
428  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
429  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
430  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
431  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
432  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
433  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
434 }
435 
436 BOOST_AUTO_TEST_CASE( CTG )
437 {
438  std::string codon("CTG");
440  BOOST_CHECK_EQUAL(rc.FirstNon(codon),0.);
441  BOOST_CHECK_EQUAL(rc.First2S(codon),1.);
442  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
443  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
444  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
445  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
446  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
447 }
448 
449 BOOST_AUTO_TEST_CASE( CTT )
450 {
451  std::string codon("CTT");
453  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
454  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
455  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
456  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
457  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
458  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
459  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
460 }
461 
462 BOOST_AUTO_TEST_CASE( GAA )
463 {
464  std::string codon("GAA");
466  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
467  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
468  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
469  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
470  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
471  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
472  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
473 }
474 
475 BOOST_AUTO_TEST_CASE( GAC )
476 {
477  std::string codon("GAC");
479  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
480  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
481  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
482  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
483  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
484  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
485  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
486 }
487 
488 BOOST_AUTO_TEST_CASE( GAG )
489 {
490  std::string codon("GAG");
492  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
493  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
494  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
495  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
496  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
497  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
498  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
499 }
500 
501 BOOST_AUTO_TEST_CASE( GAT )
502 {
503  std::string codon("GAT");
505  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
506  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
507  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
508  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
509  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
510  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
511  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
512 }
513 
514 BOOST_AUTO_TEST_CASE( GCA )
515 {
516  std::string codon("GCA");
518  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
519  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
520  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
521  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
522  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
523  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
524  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
525 }
526 
527 BOOST_AUTO_TEST_CASE( GCC )
528 {
529  std::string codon("GCC");
531  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
532  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
533  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
534  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
535  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
536  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
537  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
538 }
539 
540 BOOST_AUTO_TEST_CASE( GCG )
541 {
542  std::string codon("GCG");
544  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
545  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
546  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
547  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
548  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
549  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
550  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
551 }
552 
553 BOOST_AUTO_TEST_CASE( GCT )
554 {
555  std::string codon("GCT");
557  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
558  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
559  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
560  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
561  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
562  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
563  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
564 }
565 
566 BOOST_AUTO_TEST_CASE( GGA )
567 {
568  std::string codon("GGA");
570  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
571  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
572  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
573  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
574  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
575  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
576  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
577 }
578 
579 BOOST_AUTO_TEST_CASE( GGC )
580 {
581  std::string codon("GGC");
583  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
584  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
585  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
586  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
587  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
588  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
589  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
590 }
591 
592 BOOST_AUTO_TEST_CASE( GGG )
593 {
594  std::string codon("GGG");
596  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
597  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
598  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
599  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
600  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
601  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
602  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
603 }
604 
605 BOOST_AUTO_TEST_CASE( GGT )
606 {
607  std::string codon("GGT");
609  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
610  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
611  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
612  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
613  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
614  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
615  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
616 }
617 
618 BOOST_AUTO_TEST_CASE( GTA )
619 {
620  std::string codon("GTA");
622  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
623  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
624  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
625  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
626  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
627  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
628  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
629 }
630 
631 BOOST_AUTO_TEST_CASE( GTC )
632 {
633  std::string codon("GTC");
635  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
636  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
637  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
638  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
639  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
640  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
641  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
642 }
643 
644 BOOST_AUTO_TEST_CASE( GTG )
645 {
646  std::string codon("GTG");
648  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
649  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
650  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
651  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
652  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
653  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
654  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
655 }
656 
657 BOOST_AUTO_TEST_CASE( GTT )
658 {
659  std::string codon("GTT");
661  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
662  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
663  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
664  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
665  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
666  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
667  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
668 }
669 
670 BOOST_AUTO_TEST_CASE( TAA )
671 {
672  std::string codon("TAA");
674  BOOST_CHECK_EQUAL(rc.FirstNon(codon),0.);
675  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
676  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
677  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
678  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
679  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
680  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
681 }
682 
683 BOOST_AUTO_TEST_CASE( TAC )
684 {
685  std::string codon("TAC");
687  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
688  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
689  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
690  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
691  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
692  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
693  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
694 }
695 
696 BOOST_AUTO_TEST_CASE( TAG )
697 {
698  std::string codon("TAG");
700  BOOST_CHECK_EQUAL(rc.FirstNon(codon),0.);
701  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
702  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
703  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
704  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
705  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
706  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
707 }
708 
709 BOOST_AUTO_TEST_CASE( TAT )
710 {
711  std::string codon("TAT");
713  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
714  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
715  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
716  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
717  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
718  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
719  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
720 }
721 
722 BOOST_AUTO_TEST_CASE( TCA )
723 {
724  std::string codon("TCA");
726  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
727  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
728  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
729  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
730  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
731  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
732  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
733 }
734 
735 BOOST_AUTO_TEST_CASE( TCC )
736 {
737  std::string codon("TCC");
739  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
740  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
741  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
742  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
743  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
744  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
745  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
746 }
747 
748 BOOST_AUTO_TEST_CASE( TCG )
749 {
750  std::string codon("TCG");
752  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
753  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
754  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
755  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
756  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
757  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
758  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
759 }
760 
761 BOOST_AUTO_TEST_CASE( TCT )
762 {
763  std::string codon("TCT");
765  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
766  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
767  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
768  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
769  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),1.);
770  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
771  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
772 }
773 
774 BOOST_AUTO_TEST_CASE( TGA )
775 {
776  std::string codon("TGA");
778  BOOST_CHECK_EQUAL(rc.FirstNon(codon),0.);
779  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
780  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
781  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
782  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
783  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
784  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
785 }
786 
787 BOOST_AUTO_TEST_CASE( TGC )
788 {
789  std::string codon("TGC");
791  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
792  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
793  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
794  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
795  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
796  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
797  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
798 }
799 
800 BOOST_AUTO_TEST_CASE( TGG )
801 {
802  std::string codon("TGG");
804  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
805  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
806  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
807  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),1.);
808  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
809  BOOST_CHECK_EQUAL(rc.Third2S(codon),0.);
810  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
811 }
812 
813 BOOST_AUTO_TEST_CASE( TGT )
814 {
815  std::string codon("TGT");
817  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
818  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
819  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
820  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
821  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
822  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
823  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
824 }
825 
826 BOOST_AUTO_TEST_CASE( TTA )
827 {
828  std::string codon("TTA");
830  BOOST_CHECK_EQUAL(rc.FirstNon(codon),0.);
831  BOOST_CHECK_EQUAL(rc.First2S(codon),1.);
832  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
833  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
834  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
835  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
836  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
837 }
838 
839 BOOST_AUTO_TEST_CASE( TTC )
840 {
841  std::string codon("TTC");
843  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
844  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
845  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
846  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
847  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
848  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
849  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
850 }
851 
852 BOOST_AUTO_TEST_CASE( TTG )
853 {
854  std::string codon("TTG");
856  BOOST_CHECK_EQUAL(rc.FirstNon(codon),0.);
857  BOOST_CHECK_EQUAL(rc.First2S(codon),1.);
858  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
859  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
860  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
861  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
862  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
863 }
864 
865 BOOST_AUTO_TEST_CASE( TTT )
866 {
867  std::string codon("TTT");
869  BOOST_CHECK_EQUAL(rc.FirstNon(codon),1.);
870  BOOST_CHECK_EQUAL(rc.First2S(codon),0.);
871  BOOST_CHECK_EQUAL(rc.First2V(codon),0.);
872  BOOST_CHECK_EQUAL(rc.ThirdNon(codon),0.);
873  BOOST_CHECK_EQUAL(rc.ThirdFour(codon),0.);
874  BOOST_CHECK_EQUAL(rc.Third2S(codon),1.);
875  BOOST_CHECK_EQUAL(rc.Third2V(codon),0.);
876 }
877 BOOST_AUTO_TEST_SUITE_END()
double L2S_vals(const std::string &codon) const
const alphabet_t dna_alphabet
Alphabet for DNA sequences Valid DNA characters. Upper-case only. Only - is accepted as gap character...
Definition: SeqAlphabets.cc:8
double First2V(const std::string &codon) const
double FirstNon(const std::string &codon) const
double ThirdFour(const std::string &codon) const
class Sequence::RedundancyCom95
double L2V_vals(const std::string &codon) const
double ThirdNon(const std::string &codon) const
double Third2V(const std::string &codon) const
double L4_vals(const std::string &codon) const
double First2S(const std::string &codon) const
Calculate redundancy of a genetic code using Comeron&#39;s counting scheme.
double Third2S(const std::string &codon) const
double L0_vals(const std::string &codon) const