static void doTestCountVectorOfSize(int32_t n) { BitVectorPtr bv = newLucene<BitVector>(n); // test count when incrementally setting bits for (int32_t i = 0; i < bv->size(); ++i) { BOOST_CHECK(!bv->get(i)); BOOST_CHECK_EQUAL(i, bv->count()); bv->set(i); BOOST_CHECK(bv->get(i)); BOOST_CHECK_EQUAL(i + 1, bv->count()); } bv = newLucene<BitVector>(n); // test count when setting then clearing bits for (int32_t i = 0; i < bv->size(); ++i) { BOOST_CHECK(!bv->get(i)); BOOST_CHECK_EQUAL(0, bv->count()); bv->set(i); BOOST_CHECK(bv->get(i)); BOOST_CHECK_EQUAL(1, bv->count()); bv->clear(i); BOOST_CHECK(!bv->get(i)); BOOST_CHECK_EQUAL(0, bv->count()); } }
ByteVecotrPtr VLC_HuffmanDecoder::transitData(BitVectorPtr src) { ByteVecotrPtr ret = ByteVecotrPtr(new ByteVecotr()); ret->clear(); huffmanTree->Root(); for (BitVector::size_type i = 0; i < src->size(); i++ ) { bool bit = (*src)[i]; if (!bit) { huffmanTree->FirstChild(); } else { huffmanTree->FirstChild(); huffmanTree->NextSibling(); } if (huffmanTree->IsLeaf()) { stKey val = huffmanTree->GetCurrentData().GrayScale; ret->push_back(val); huffmanTree->Root(); } } return ret; }
static void doTestGetSetVectorOfSize(int32_t n) { BitVectorPtr bv = newLucene<BitVector>(n); for (int32_t i = 0; i < bv->size(); ++i) { BOOST_CHECK(!bv->get(i)); bv->set(i); BOOST_CHECK(bv->get(i)); } }
static bool compareBitVectors(BitVectorPtr bv, BitVectorPtr compare) { for (int32_t i = 0; i < bv->size(); ++i) { // bits must be equal if (bv->get(i) != compare->get(i)) return false; } return true; }
/// Compare a subset against the corresponding portion of the test pattern static void doTestSubset(int32_t start, int32_t end) { BitVectorPtr full = createSubsetTestVector(); BitVectorPtr subset = full->subset(start, end); BOOST_CHECK_EQUAL(end - start, subset->size()); int32_t count = 0; for (int32_t i = start, j = 0; i < end; ++i, ++j) { if (subsetPattern[i] == 1) { ++count; BOOST_CHECK(subset->get(j)); } else BOOST_CHECK(!subset->get(j)); } BOOST_CHECK_EQUAL(count, subset->count()); }
static void doTestWriteRead(int32_t n) { DirectoryPtr d = newLucene<RAMDirectory>(); BitVectorPtr bv = newLucene<BitVector>(n); // test count when incrementally setting bits for (int32_t i = 0; i < bv->size(); ++i) { BOOST_CHECK(!bv->get(i)); BOOST_CHECK_EQUAL(i, bv->count()); bv->set(i); BOOST_CHECK(bv->get(i)); BOOST_CHECK_EQUAL(i + 1, bv->count()); bv->write(d, L"TESTBV"); BitVectorPtr compare = newLucene<BitVector>(d, L"TESTBV"); // compare bit vectors with bits set incrementally BOOST_CHECK(compareBitVectors(bv, compare)); } }
static void doTestConstructOfSize(int32_t n) { BitVectorPtr bv = newLucene<BitVector>(n); BOOST_CHECK_EQUAL(n, bv->size()); }