TuttleOFX  1
multisequence.cpp
Go to the documentation of this file.
00001 #include <detector.hpp>
00002 
00003 #include <boost/assign/std/vector.hpp>
00004 
00005 #include <boost/test/unit_test.hpp>
00006 using namespace boost::unit_test;
00007 
00008 BOOST_AUTO_TEST_SUITE( MutiSequenceDetection )
00009 
00010 BOOST_AUTO_TEST_CASE( SimpleMultiSequence )
00011 {
00012         boost::ptr_vector<sequenceParser::Sequence> listSequence;
00013 
00014         std::vector<boost::filesystem::path> paths;
00015 
00016         boost::assign::push_back( paths )
00017                 ( "aaa/bbb/a1b2c1.j2c" )
00018                 ( "aaa/bbb/a1b2c2.j2c" )
00019                 ( "aaa/bbb/a1b2c3.j2c" )
00020 
00021                 ( "aaa/bbb/a1b3c6.j2c" )
00022                 ( "aaa/bbb/a1b3c2.j2c" )
00023                 ( "aaa/bbb/a1b3c3.j2c" )
00024 
00025                 ( "aaa/bbb/a1b9c6.j2c" )
00026                 ( "aaa/bbb/a1b9c2.j2c" )
00027                 ;
00028 
00029         listSequence = sequenceParser::sequenceFromFilenameList( paths );
00030 
00031         std::cout << "listSequence.size()" << listSequence.size() << std::endl;
00032         BOOST_CHECK( listSequence.size() == 3 );
00033 }
00034 
00035 BOOST_AUTO_TEST_CASE( SimpleMultiSequenceMultiLevel )
00036 {
00037         boost::ptr_vector<sequenceParser::Sequence> listSequence;
00038 
00039         std::vector<boost::filesystem::path> paths;
00040 
00041         boost::assign::push_back( paths )
00042                 ( "aaa/bbb/a1b2c1.j2c" )
00043                 ( "aaa/bbb/a1b2c2.j2c" )
00044                 ( "aaa/bbb/a1b2c3.j2c" )
00045 
00046                 ( "aaa/bbb/a1b3c4.j2c" )
00047                 ( "aaa/bbb/a1b4c4.j2c" )
00048                 ( "aaa/bbb/a1b5c4.j2c" )
00049                 ( "aaa/bbb/a1b6c4.j2c" )
00050                 ;
00051 
00052         listSequence = sequenceParser::sequenceFromFilenameList( paths );
00053 
00054 //      std::cout << "AA: " << listSequence.size() << std::endl;
00055         BOOST_CHECK( listSequence.size() == 2 );
00056         
00057         std::cout << listSequence.front().getNbFiles() << std::endl;
00058         BOOST_CHECK( listSequence.front().getNbFiles() == 3 );
00059         
00060         std::cout << listSequence.back().getNbFiles() << std::endl;
00061         BOOST_CHECK( listSequence.back().getNbFiles() == 4 );
00062 }
00063 
00064 BOOST_AUTO_TEST_CASE( MultiSequenceMultiLevelMultiPadding )
00065 {
00066         {
00067                 boost::ptr_vector<sequenceParser::Sequence> listSequence;
00068                 std::vector<boost::filesystem::path> paths;
00069                 boost::assign::push_back( paths )
00070                         ( "aaa/bbb/a1b2c1.j2c" )
00071                         ( "aaa/bbb/a1b002c2.j2c" ) // alone file will be ignored
00072                         ( "aaa/bbb/a1b2c3.j2c" )
00073 
00074                         ( "aaa/bbb/a1b3c4.j2c" )
00075                         ( "aaa/bbb/a1b4c4.j2c" )
00076                         ( "aaa/bbb/a1b5c4.j2c" )
00077                         ( "aaa/bbb/a1b6c4.j2c" )
00078                         ;
00079 
00080                 listSequence = sequenceParser::sequenceFromFilenameList( paths );
00081                 //std::cout << "listSequence.size(): " << listSequence.size() << std::endl;
00082                 BOOST_CHECK( listSequence.size() == 2 );
00083         }
00084         {
00085                 boost::ptr_vector<sequenceParser::Sequence> listSequence;
00086                 std::vector<boost::filesystem::path> paths;
00087                 boost::assign::push_back( paths )
00088                         ( "aaa/bbb/a1b2c1.j2c" )
00089                         ( "aaa/bbb/a1b002c2.j2c" )
00090                         ( "aaa/bbb/a1b2c3.j2c" )
00091 
00092                         ( "aaa/bbb/a1b002c3.j2c" )
00093                         ( "aaa/bbb/a1b3c4.j2c" )
00094                         ( "aaa/bbb/a1b4c4.j2c" )
00095                         ( "aaa/bbb/a1b5c4.j2c" )
00096                         ( "aaa/bbb/a1b6c4.j2c" )
00097                         ;
00098 
00099                 listSequence = sequenceParser::sequenceFromFilenameList( paths );
00100                 std::cout << "listSequence.size(): " << listSequence.size() << std::endl;
00101                 BOOST_CHECK( listSequence.size() == 3 );
00102         }
00103 }
00104 
00105 BOOST_AUTO_TEST_CASE( MultiSequenceMultiLevelMultiPaddingWithNegValues )
00106 {
00107         boost::ptr_vector<sequenceParser::Sequence> listSequence;
00108         std::vector<boost::filesystem::path> paths;
00109         boost::assign::push_back( paths )
00110                 ( "aaa/bbb/a1b2c1.j2c" )
00111                 ( "aaa/bbb/a1b002c2.j2c" )
00112                 ( "aaa/bbb/a1b2c3.j2c" )
00113 
00114                 ( "aaa/bbb/a1b002c-3.j2c" )
00115                 ( "aaa/bbb/a1b3c4.j2c" )
00116                 ( "aaa/bbb/a1b5c4.j2c" )
00117                 ( "aaa/bbb/a1b6c4.j2c" )
00118         
00119                 ( "aaa/bbb/a1b4c-4.j2c" )
00120                 ( "aaa/bbb/a1b5c-4.j2c" )
00121                 ( "aaa/bbb/a1b-6c-4.j2c" )
00122                 ;
00123 
00124         listSequence = sequenceParser::sequenceFromFilenameList( paths, (sequenceParser::eMaskOptionsDotFile | sequenceParser::eMaskOptionsNegativeIndexes) );
00125         std::cout << "listSequence.size(): " << listSequence.size() << std::endl;
00126         BOOST_CHECK( listSequence.size() == 4 );
00127 }
00128 
00129 
00130 BOOST_AUTO_TEST_SUITE_END()