TuttleOFX  1
mutiPadding.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( MultiPaddingSequenceDetection )
00009 
00010 BOOST_AUTO_TEST_CASE( SequenceWithPadding1 )
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/a1b2c001.j2c" )
00018                 ( "aaa/bbb/a1b2c002.j2c" )
00019                 ( "aaa/bbb/a1b2c003.j2c" )
00020                 ( "aaa/bbb/a1b2c023.j2c" )
00021                 ;
00022 
00023         listSequence = sequenceParser::sequenceFromFilenameList( paths );
00024 
00025         BOOST_CHECK( listSequence.size() == 1 );
00026         
00027         const sequenceParser::Sequence& seq = listSequence.front();
00028         BOOST_CHECK( seq.getPadding() == 3 );
00029         BOOST_CHECK( seq.isStrictPadding() == true );
00030 }
00031 
00032 BOOST_AUTO_TEST_CASE( SequenceWithPadding2 )
00033 {
00034         boost::ptr_vector<sequenceParser::Sequence> listSequence;
00035 
00036         std::vector<boost::filesystem::path> paths;
00037 
00038         boost::assign::push_back( paths )
00039                 ( "aaa/bbb/a1b2c001.j2c" )
00040                 ( "aaa/bbb/a1b2c002.j2c" )
00041                 ( "aaa/bbb/a1b2c003.j2c" )
00042                 ( "aaa/bbb/a1b2c809.j2c" )
00043                 ( "aaa/bbb/a1b2c999.j2c" )
00044                 ;
00045 
00046         listSequence = sequenceParser::sequenceFromFilenameList( paths );
00047 
00048         BOOST_CHECK( listSequence.size() == 1 );
00049         
00050         const sequenceParser::Sequence& seq = listSequence.front();
00051         std::cout << "seq padding: " << seq.getPadding() << std::endl;
00052         BOOST_CHECK( seq.getPadding() == 3 );
00053         BOOST_CHECK( seq.isStrictPadding() == true );
00054 }
00055 
00056 BOOST_AUTO_TEST_CASE( SequenceWithoutPadding )
00057 {
00058         boost::ptr_vector<sequenceParser::Sequence> listSequence;
00059 
00060         std::vector<boost::filesystem::path> paths;
00061 
00062         boost::assign::push_back( paths )
00063                 ( "aaa/bbb/a1b2c99.j2c" )
00064                 ( "aaa/bbb/a1b2c102.j2c" )
00065                 ( "aaa/bbb/a1b2c1234.j2c" )
00066                 ( "aaa/bbb/a1b2c12345.j2c" )
00067                 ( "aaa/bbb/a1b2c123456.j2c" )
00068                 ;
00069 
00070         listSequence = sequenceParser::sequenceFromFilenameList( paths );
00071 
00072         std::cout << "AA: " << listSequence.size() << std::endl;
00073         BOOST_CHECK( listSequence.size() == 1 );
00074 
00075         const sequenceParser::Sequence& seq = listSequence.front();
00076         BOOST_CHECK( seq.getPadding() == 0 );
00077         BOOST_CHECK( seq.getFirstTime() == 99 );
00078         BOOST_CHECK( seq.getLastTime() == 123456 );
00079         BOOST_CHECK( seq.getNbFiles() == 5 );
00080         BOOST_CHECK( seq.hasMissingFile() == true );
00081         std::cout << "seq.getStep(): " << seq.getStep() << std::endl;
00082         BOOST_CHECK( seq.getStep() == 1 );
00083 }
00084 
00085 BOOST_AUTO_TEST_CASE( DoublePaddingForTheSameSequence )
00086 {
00087         boost::ptr_vector<sequenceParser::Sequence> listSequence;
00088 
00089         std::vector<boost::filesystem::path> paths;
00090 
00091         boost::assign::push_back( paths )
00092                 ( "aaa/bbb/a1b2c00099.j2c" )
00093                 ( "aaa/bbb/a1b2c00102.j2c" )
00094         
00095                 ( "aaa/bbb/a1b2c1234.j2c" )
00096                 ( "aaa/bbb/a1b2c12345.j2c" )
00097                 ( "aaa/bbb/a1b2c123456.j2c" )
00098                 ;
00099 
00100         listSequence = sequenceParser::sequenceFromFilenameList( paths );
00101 
00102         std::cout << "AA: " << listSequence.size() << std::endl;
00103         BOOST_CHECK( listSequence.size() == 2 );
00104 }
00105 
00106 
00107 BOOST_AUTO_TEST_SUITE_END()