TuttleOFX
1
|
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()