1 #define BOOST_TEST_DYN_LINK
2 #define BOOST_TEST_MODULE test_tsf
3 #include <boost/test/unit_test.hpp>
5 #include "trivial_filter.hpp"
7 BOOST_AUTO_TEST_CASE( test_nt_map )
9 BOOST_CHECK_EQUAL( nt_map('A'), A );
10 BOOST_CHECK_EQUAL( nt_map('a'), A );
11 BOOST_CHECK_EQUAL( nt_map('T'), T );
12 BOOST_CHECK_EQUAL( nt_map('t'), T );
13 BOOST_CHECK_EQUAL( nt_map('G'), G );
14 BOOST_CHECK_EQUAL( nt_map('g'), G );
15 BOOST_CHECK_EQUAL( nt_map('C'), C );
16 BOOST_CHECK_EQUAL( nt_map('c'), C );
17 BOOST_CHECK_EQUAL( nt_map('U'), U );
18 BOOST_CHECK_EQUAL( nt_map('u'), U );
19 BOOST_CHECK_EQUAL( nt_map('N'), N );
20 BOOST_CHECK_EQUAL( nt_map('n'), N );
21 BOOST_CHECK_EQUAL( nt_map('X'), X );
22 BOOST_CHECK_EQUAL( nt_map('x'), X );
25 BOOST_AUTO_TEST_CASE( test_generate_dna_pattern_1mer )
27 TSFLookupTable table(1,4);
28 BOOST_CHECK( table.states() > 0);
30 const int failed_state = TSFLookupTable::failed_state;
31 const int accept_state = TSFLookupTable::accept_state;
34 int a_state = table.next(TSFLookupTable::start_state, A);
35 int t_state = table.next(TSFLookupTable::start_state, T);
36 int g_state = table.next(TSFLookupTable::start_state, G);
37 int c_state = table.next(TSFLookupTable::start_state, C);
39 BOOST_CHECK(a_state != t_state);
40 BOOST_CHECK(a_state != g_state);
41 BOOST_CHECK(a_state != c_state);
42 BOOST_CHECK(t_state != g_state);
43 BOOST_CHECK(t_state != c_state);
44 BOOST_CHECK(g_state != c_state);
46 BOOST_CHECK_EQUAL( table.next(TSFLookupTable::start_state, A), a_state );
47 BOOST_CHECK_EQUAL( table.next(a_state, A), a_state+1 );
48 BOOST_CHECK_EQUAL( table.next(a_state, G), failed_state);
49 BOOST_CHECK_EQUAL( table.next(a_state+1, A), a_state+2 );
50 BOOST_CHECK_EQUAL( table.next(a_state+2, A), a_state+3 );
51 BOOST_CHECK_EQUAL( table.next(a_state+3, A), a_state+3 );
52 BOOST_CHECK_EQUAL( table.next(a_state+3, G), accept_state);
54 BOOST_CHECK_EQUAL( table.next(TSFLookupTable::start_state, G), g_state );
55 BOOST_CHECK_EQUAL( table.next(g_state, G), g_state+1 );
56 BOOST_CHECK_EQUAL( table.next(g_state, T), failed_state);
57 BOOST_CHECK_EQUAL( table.next(g_state+1, G), g_state+2 );
58 BOOST_CHECK_EQUAL( table.next(g_state+2, G), g_state+3 );
59 BOOST_CHECK_EQUAL( table.next(g_state+3, G), g_state+3 );
60 BOOST_CHECK_EQUAL( table.next(g_state+3, C), accept_state);