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( NegativeSequenceDetection ) 00009 00010 00011 bool compareSequencesByNbFiles( const sequenceParser::Sequence& a, const sequenceParser::Sequence& b ) { return a.getNbFiles() < b.getNbFiles(); } 00012 00013 BOOST_AUTO_TEST_CASE( NoNegativeValues ) 00014 { 00015 boost::ptr_vector<sequenceParser::Sequence> listSequence; 00016 00017 std::vector<boost::filesystem::path> paths; 00018 00019 boost::assign::push_back( paths ) 00020 ( "aaa/bbb/a1b-2c1.j2c" ) 00021 ( "aaa/bbb/a1b-2c2.j2c" ) 00022 ( "aaa/bbb/a1b-2c3.j2c" ) 00023 00024 ( "aaa/bbb/a1b+3c6.j2c" ) 00025 ( "aaa/bbb/a1b+3c2.j2c" ) 00026 ( "aaa/bbb/a1b+3c0.j2c" ) 00027 ( "aaa/bbb/a1b+3c3.j2c" ) 00028 ( "aaa/bbb/a1b+3c9.j2c" ) 00029 00030 ( "aaa/bbb/a1b9c6.j2c" ) 00031 ( "aaa/bbb/a1b9c2.j2c" ) 00032 ; 00033 00034 listSequence = sequenceParser::sequenceFromFilenameList( paths ); 00035 00036 BOOST_CHECK( listSequence.size() == 3 ); 00037 00038 std::sort( listSequence.begin(), listSequence.end(), compareSequencesByNbFiles ); 00039 00040 BOOST_CHECK( listSequence[0].getNbFiles() == 2 ); 00041 BOOST_CHECK( listSequence[0].getFirstTime() == 2 ); 00042 BOOST_CHECK( listSequence[0].getLastTime() == 6 ); 00043 00044 BOOST_CHECK( listSequence[1].getNbFiles() == 3 ); 00045 BOOST_CHECK( listSequence[1].getFirstTime() == 1 ); 00046 BOOST_CHECK( listSequence[1].getLastTime() == 3 ); 00047 00048 BOOST_CHECK( listSequence[2].getNbFiles() == 5 ); 00049 BOOST_CHECK( listSequence[2].getFirstTime() == 0 ); 00050 BOOST_CHECK( listSequence[2].getLastTime() == 9 ); 00051 } 00052 00053 BOOST_AUTO_TEST_CASE( NegativeSequence ) 00054 { 00055 boost::ptr_vector<sequenceParser::Sequence> listSequence; 00056 00057 std::vector<boost::filesystem::path> paths; 00058 00059 boost::assign::push_back( paths ) 00060 ( "aaa/bbb/a1b2c-3.j2c" ) 00061 ( "aaa/bbb/a1b2c-2.j2c" ) 00062 ( "aaa/bbb/a1b2c-1.j2c" ) 00063 ( "aaa/bbb/a1b2c0.j2c" ) 00064 ( "aaa/bbb/a1b2c1.j2c" ) 00065 ( "aaa/bbb/a1b2c2.j2c" ) 00066 ( "aaa/bbb/a1b2c3.j2c" ) 00067 ; 00068 00069 listSequence = sequenceParser::sequenceFromFilenameList( paths, sequenceParser::eMaskOptionsNegativeIndexes ); 00070 00071 //std::cout << "listSequence.size(): " << listSequence.size() << std::endl; 00072 BOOST_CHECK( listSequence.size() == 1 ); 00073 00074 const sequenceParser::Sequence& seq = listSequence.front(); 00075 BOOST_CHECK( seq.getFirstTime() == -3 ); 00076 BOOST_CHECK( seq.getLastTime() == 3 ); 00077 BOOST_CHECK( seq.getNbFiles() == 7 ); 00078 BOOST_CHECK( seq.hasMissingFile() == false ); 00079 BOOST_CHECK( seq.getStep() == 1 ); 00080 } 00081 00082 00083 BOOST_AUTO_TEST_SUITE_END()