ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

Definition at line 69 of file test_bit_vector.cpp.

Referenced by main().

{
#define __WORD_BIT (int(CHAR_BIT*sizeof(unsigned int)))

  // Make some bit vectors to work with.
  BitVector emptyVector;
  BitVector testVector, testVector2;

  EH_ASSERT( testVector.size() == 0 );

  size_t BitVectorSize = random_number( random_base );
  // Half the time, choose a size that will guarantee immediate reallocation
  if ( random_number(2) )
    BitVectorSize = BitVectorSize / __WORD_BIT * __WORD_BIT;

  EH_ASSERT( testVector.size() == 0 );
  testVector.reserve(BitVectorSize);
  EH_ASSERT( testVector.size() == 0 );
  while (testVector.size() < BitVectorSize) {
    testVector.push_back(random_number(2) != 0);
    testVector2.push_back(random_number(2) != 0);
  }

  // Test insertions
  StrongCheck(testVector, test_insert_one<BitVector>(testVector) );
  StrongCheck(testVector, test_insert_one<BitVector>(testVector,0) );
  StrongCheck(testVector, test_insert_one<BitVector>(testVector, (int)testVector.size()) );

  StrongCheck(testVector, test_insert_n<BitVector>(testVector, random_number(random_base) ) );
  StrongCheck(testVector, test_insert_n<BitVector>(testVector, random_number(random_base),0 ) );
  StrongCheck(testVector, test_insert_n<BitVector>(testVector, random_number(random_base), (int)testVector.size()) );
#if 0
  // Allocate some random bools to insert
  size_t insCnt = 1 + random_number(random_base);
  bool *insFirst = new BitVector::value_type[insCnt];
  for (size_t n = 0; n < insCnt; n++)
    insFirst[n] = random_number(2);
  StrongCheck(testVector, insert_range_tester(testVector, insFirst, insFirst+insCnt));
  StrongCheck(testVector, insert_range_at_begin_tester(testVector, insFirst, insFirst+insCnt));
  StrongCheck(testVector, insert_range_at_end_tester(testVector, insFirst, insFirst+insCnt));
  ConstCheck(0, test_construct_pointer_range<BitVector>( insFirst, insFirst + insCnt));
  delete[] insFirst;
#endif
  StrongCheck(testVector, insert_range_tester(testVector, testVector2.begin(), testVector2.end()));
  StrongCheck(testVector, insert_range_at_begin_tester(testVector, testVector2.begin(),
                                                                   testVector2.end()));
  StrongCheck(testVector, insert_range_at_end_tester(testVector, testVector2.begin(),
                                                                 testVector2.end()));
  StrongCheck(testVector, test_BitVector_reserve( testVector.capacity() + random_number(50)));
  StrongCheck(testVector, test_push_back<BitVector>(testVector));
  StrongCheck(emptyVector, test_push_back<BitVector>(emptyVector));

  ConstCheck(0, test_default_construct<BitVector>());
  ConstCheck(0, test_construct_n<BitVector>(random_number(random_base)));
  ConstCheck(0, test_construct_n_instance<BitVector>(random_number(random_base)));
  ConstCheck(0, test_construct_iter_range<BitVector>(testVector2));
  ConstCheck(testVector, test_copy_construct<BitVector>() );
  WeakCheck(testVector, test_assign_op<BitVector>(testVector2) );
}

Generated on Sat May 26 2012 06:02:27 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.