PSCalib/test/TestCalibFileFinder.cpp

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // File and Version Information:
00003 //      $Id: TestCalibFileFinder.cpp 7403 2013-12-18 21:40:32Z salnikov@SLAC.STANFORD.EDU $
00004 //
00005 // Description:
00006 //      Test suite case for the TestCalibFileFinder.
00007 //
00008 //------------------------------------------------------------------------
00009 
00010 //---------------
00011 // C++ Headers --
00012 //---------------
00013 
00014 //-------------------------------
00015 // Collaborating Class Headers --
00016 //-------------------------------
00017 #include "PSCalib/CalibFileFinder.h"
00018 
00019 using namespace PSCalib;
00020 using namespace std;
00021 
00022 #define BOOST_TEST_MODULE TestCalibFileFinder
00023 #include <boost/test/included/unit_test.hpp>
00024 
00025 /**
00026  * Simple test suite for module TestCalibFileFinder.
00027  * See http://www.boost.org/doc/libs/1_36_0/libs/test/doc/html/index.html
00028  */
00029 
00030 // ==============================================================
00031 
00032 BOOST_AUTO_TEST_CASE( test_1 )
00033 {
00034   // one interval covering whole range
00035   vector<string> files;
00036   files.push_back("0-end.data");
00037 
00038   string res;
00039 
00040   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 0));
00041   BOOST_CHECK_EQUAL(res, "0-end.data");
00042 
00043   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 100));
00044   BOOST_CHECK_EQUAL(res, "0-end.data");
00045 
00046   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 1000000));
00047   BOOST_CHECK_EQUAL(res, "0-end.data");
00048 }
00049 
00050 // ==============================================================
00051 
00052 BOOST_AUTO_TEST_CASE( test_2 )
00053 {
00054   // two adjacent intervals
00055   vector<string> files;
00056   files.push_back("0-10.data");
00057   files.push_back("11-20.data");
00058 
00059   string res;
00060 
00061   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 0));
00062   BOOST_CHECK_EQUAL(res, "0-10.data");
00063   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 10));
00064   BOOST_CHECK_EQUAL(res, "0-10.data");
00065 
00066   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 11));
00067   BOOST_CHECK_EQUAL(res, "11-20.data");
00068   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 20));
00069   BOOST_CHECK_EQUAL(res, "11-20.data");
00070 
00071   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 21));
00072   BOOST_CHECK_EQUAL(res, "");
00073 }
00074 
00075 // ==============================================================
00076 
00077 BOOST_AUTO_TEST_CASE( test_3 )
00078 {
00079   // two overlapping intervals
00080   vector<string> files;
00081   files.push_back("0-10.data");
00082   files.push_back("5-15.data");
00083 
00084   string res;
00085 
00086   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 0));
00087   BOOST_CHECK_EQUAL(res, "0-10.data");
00088   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 4));
00089   BOOST_CHECK_EQUAL(res, "0-10.data");
00090 
00091   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 5));
00092   BOOST_CHECK_EQUAL(res, "5-15.data");
00093   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 15));
00094   BOOST_CHECK_EQUAL(res, "5-15.data");
00095 }
00096 
00097 // ==============================================================
00098 
00099 BOOST_AUTO_TEST_CASE( test_4 )
00100 {
00101   // overlapping intervals with common start
00102   vector<string> files;
00103   files.push_back("0-10.data");
00104   files.push_back("0-5.data");
00105   files.push_back("0-end.data");
00106 
00107   string res;
00108 
00109   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 0));
00110   BOOST_CHECK_EQUAL(res, "0-5.data");
00111   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 5));
00112   BOOST_CHECK_EQUAL(res, "0-5.data");
00113 
00114   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 6));
00115   BOOST_CHECK_EQUAL(res, "0-10.data");
00116   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 10));
00117   BOOST_CHECK_EQUAL(res, "0-10.data");
00118 
00119   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 11));
00120   BOOST_CHECK_EQUAL(res, "0-end.data");
00121   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 20));
00122   BOOST_CHECK_EQUAL(res, "0-end.data");
00123 }
00124 
00125 // ==============================================================
00126 
00127 BOOST_AUTO_TEST_CASE( test_5 )
00128 {
00129   // one interval completely inside another
00130   vector<string> files;
00131   files.push_back("0-end.data");
00132   files.push_back("5-10.data");
00133 
00134   string res;
00135 
00136   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 0));
00137   BOOST_CHECK_EQUAL(res, "0-end.data");
00138   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 4));
00139   BOOST_CHECK_EQUAL(res, "0-end.data");
00140 
00141   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 5));
00142   BOOST_CHECK_EQUAL(res, "5-10.data");
00143   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 10));
00144   BOOST_CHECK_EQUAL(res, "5-10.data");
00145 
00146   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 11));
00147   BOOST_CHECK_EQUAL(res, "0-end.data");
00148   BOOST_CHECK_NO_THROW(res = CalibFileFinder::selectCalibFile(files, 20));
00149   BOOST_CHECK_EQUAL(res, "0-end.data");
00150 }

Generated on 19 Dec 2016 for PSANAmodules by  doxygen 1.4.7