Main   Namespaces   Classes   Hierarchy   Annotated   Files   Compound   Global   Pages  

SortedSequenceTest.cpp

Go to the documentation of this file.
00001 //----------------------------------------------------------------------------
00002 /** @file
00003  */
00004 //----------------------------------------------------------------------------
00005 
00006 #include <boost/test/auto_unit_test.hpp>
00007 
00008 #include "SortedSequence.hpp"
00009 
00010 using namespace benzene;
00011 
00012 //---------------------------------------------------------------------------
00013 
00014 namespace {
00015 
00016 BOOST_AUTO_TEST_CASE(SortedSequence_Empty)
00017 {
00018     SortedSequence seq;
00019     BOOST_CHECK(seq.finished());
00020 
00021     SortedSequence ss(5, 0);
00022     BOOST_CHECK(!ss.finished());
00023     BOOST_CHECK_EQUAL(ss[0], 0);
00024 
00025     ++ss;
00026     BOOST_CHECK(ss.finished());
00027 }
00028 
00029 BOOST_AUTO_TEST_CASE(SortedSequence_one)
00030 {
00031     SortedSequence seq(4, 1);
00032     
00033     BOOST_CHECK(!seq.finished());
00034     BOOST_CHECK_EQUAL(seq[0], 0);
00035 
00036     ++seq;
00037     BOOST_CHECK(!seq.finished());
00038     BOOST_CHECK_EQUAL(seq[0], 1);
00039 
00040     ++seq;
00041     BOOST_CHECK(!seq.finished());
00042     BOOST_CHECK_EQUAL(seq[0], 2);
00043 
00044     ++seq;
00045     BOOST_CHECK(!seq.finished());
00046     BOOST_CHECK_EQUAL(seq[0], 3);
00047 
00048     ++seq;
00049     BOOST_CHECK(seq.finished());
00050 
00051     // now set it to something explicit
00052     seq[0] = 2;
00053     BOOST_CHECK(!seq.finished());
00054     BOOST_CHECK_EQUAL(seq[0], 2);
00055 
00056     ++seq;
00057     BOOST_CHECK(!seq.finished());
00058     BOOST_CHECK_EQUAL(seq[0], 3);
00059 
00060     ++seq;
00061     BOOST_CHECK(seq.finished());
00062 }
00063 
00064 BOOST_AUTO_TEST_CASE(SortedSequence_two)
00065 {
00066     std::vector<int> v(2);
00067     v[0] = 1;
00068     v[1] = 3;
00069     SortedSequence seq(5, v);
00070     
00071     BOOST_CHECK(!seq.finished());
00072     BOOST_CHECK_EQUAL(seq[0], 1);
00073     BOOST_CHECK_EQUAL(seq[1], 3);
00074 
00075     ++seq;
00076     BOOST_CHECK(!seq.finished());
00077     BOOST_CHECK_EQUAL(seq[0], 1);
00078     BOOST_CHECK_EQUAL(seq[1], 4);
00079 
00080     ++seq;
00081     BOOST_CHECK(!seq.finished());
00082     BOOST_CHECK_EQUAL(seq[0], 2);
00083     BOOST_CHECK_EQUAL(seq[1], 3);
00084 
00085     ++seq;
00086     BOOST_CHECK(!seq.finished());
00087     BOOST_CHECK_EQUAL(seq[0], 2);
00088     BOOST_CHECK_EQUAL(seq[1], 4);
00089 
00090     ++seq;
00091     BOOST_CHECK(!seq.finished());
00092     BOOST_CHECK_EQUAL(seq[0], 3);
00093     BOOST_CHECK_EQUAL(seq[1], 4);
00094 
00095     ++seq;
00096     BOOST_CHECK(seq.finished());
00097 }
00098 
00099 BOOST_AUTO_TEST_CASE(SortedSequence_three)
00100 {
00101     SortedSequence seq(5, 3);
00102     
00103     BOOST_CHECK(!seq.finished());
00104     BOOST_CHECK_EQUAL(seq[0], 0);
00105     BOOST_CHECK_EQUAL(seq[1], 1);
00106     BOOST_CHECK_EQUAL(seq[2], 2);
00107 
00108     ++seq;
00109     BOOST_CHECK(!seq.finished());
00110     BOOST_CHECK_EQUAL(seq[0], 0);
00111     BOOST_CHECK_EQUAL(seq[1], 1);
00112     BOOST_CHECK_EQUAL(seq[2], 3);
00113 
00114     ++seq;
00115     BOOST_CHECK(!seq.finished());
00116     BOOST_CHECK_EQUAL(seq[0], 0);
00117     BOOST_CHECK_EQUAL(seq[1], 1);
00118     BOOST_CHECK_EQUAL(seq[2], 4);
00119 
00120     ++seq;
00121     BOOST_CHECK(!seq.finished());
00122     BOOST_CHECK_EQUAL(seq[0], 0);
00123     BOOST_CHECK_EQUAL(seq[1], 2);
00124     BOOST_CHECK_EQUAL(seq[2], 3);
00125 
00126     ++seq;
00127     BOOST_CHECK(!seq.finished());
00128     BOOST_CHECK_EQUAL(seq[0], 0);
00129     BOOST_CHECK_EQUAL(seq[1], 2);
00130     BOOST_CHECK_EQUAL(seq[2], 4);
00131 
00132     ++seq;
00133     BOOST_CHECK(!seq.finished());
00134     BOOST_CHECK_EQUAL(seq[0], 0);
00135     BOOST_CHECK_EQUAL(seq[1], 3);
00136     BOOST_CHECK_EQUAL(seq[2], 4);
00137 
00138     ++seq;
00139     BOOST_CHECK(!seq.finished());
00140     BOOST_CHECK_EQUAL(seq[0], 1);
00141     BOOST_CHECK_EQUAL(seq[1], 2);
00142     BOOST_CHECK_EQUAL(seq[2], 3);
00143 
00144     ++seq;
00145     BOOST_CHECK(!seq.finished());
00146     BOOST_CHECK_EQUAL(seq[0], 1);
00147     BOOST_CHECK_EQUAL(seq[1], 2);
00148     BOOST_CHECK_EQUAL(seq[2], 4);
00149 
00150     ++seq;
00151     BOOST_CHECK(!seq.finished());
00152     BOOST_CHECK_EQUAL(seq[0], 1);
00153     BOOST_CHECK_EQUAL(seq[1], 3);
00154     BOOST_CHECK_EQUAL(seq[2], 4);
00155 
00156     ++seq;
00157     BOOST_CHECK(!seq.finished());
00158     BOOST_CHECK_EQUAL(seq[0], 2);
00159     BOOST_CHECK_EQUAL(seq[1], 3);
00160     BOOST_CHECK_EQUAL(seq[2], 4);
00161 
00162     ++seq;
00163     BOOST_CHECK(seq.finished());
00164 }
00165 
00166 }
00167 
00168 //---------------------------------------------------------------------------


6 Jan 2011 Doxygen 1.6.3