1#include <vector> 2 3#include "cppunit/cppunit_proxy.h" 4 5#if !defined (STLPORT) || defined (_STLP_USE_NAMESPACES) 6using namespace std; 7#endif 8 9// 10// TestCase class 11// 12class BvectorTest : public CPPUNIT_NS::TestCase 13{ 14 CPPUNIT_TEST_SUITE(BvectorTest); 15#if !defined (STLPORT) || defined (_STLP_NO_EXTENSIONS) 16 CPPUNIT_IGNORE; 17#endif 18 CPPUNIT_TEST(bvec1); 19 CPPUNIT_TEST_SUITE_END(); 20 21protected: 22 void bvec1(); 23}; 24 25CPPUNIT_TEST_SUITE_REGISTRATION(BvectorTest); 26 27// 28// tests implementation 29// 30void BvectorTest::bvec1() 31{ 32#if defined (STLPORT) && !defined (_STLP_NO_EXTENSIONS) 33 bool ii[3]= {1,0,1}; 34 bit_vector b(3); 35 36 CPPUNIT_ASSERT(b[0]==0); 37 CPPUNIT_ASSERT(b[1]==0); 38 CPPUNIT_ASSERT(b[2]==0); 39 40 b[0] = b[2] = 1; 41 42 CPPUNIT_ASSERT(b[0]==1); 43 CPPUNIT_ASSERT(b[1]==0); 44 CPPUNIT_ASSERT(b[2]==1); 45 46 b.insert(b.begin(),(bool*)ii, ii+2); 47 48 CPPUNIT_ASSERT(b[0]==1); 49 CPPUNIT_ASSERT(b[1]==0); 50 CPPUNIT_ASSERT(b[2]==1); 51 CPPUNIT_ASSERT(b[3]==0); 52 CPPUNIT_ASSERT(b[4]==1); 53 54 bit_vector bb = b; 55 if (bb != b) 56 exit(1); 57 58 b[0] |= 0; 59 b[1] |= 0; 60 b[2] |= 1; 61 b[3] |= 1; 62 CPPUNIT_ASSERT(!((b[0] != 1) || (b[1] != 0) || (b[2] != 1) || (b[3] != 1))); 63 64 65 bb[0] &= 0; 66 bb[1] &= 0; 67 bb[2] &= 1; 68 bb[3] &= 1; 69 CPPUNIT_ASSERT(!((bb[0] != 0) || (bb[1] != 0) || (bb[2] != 1) || (bb[3] != 0))); 70#endif 71} 72