コード例 #1
0
 void checkNorms(IndexReaderPtr reader)
 {
     // test omit norms
     for (int32_t i = 0; i < DocHelper::fields.size(); ++i)
     {
         FieldPtr f = DocHelper::fields[i];
         if (f->isIndexed())
         {
             BOOST_CHECK_EQUAL(reader->hasNorms(f->name()), !f->getOmitNorms());
             BOOST_CHECK_EQUAL(reader->hasNorms(f->name()), !DocHelper::noNorms.contains(f->name()));
             
             if (!reader->hasNorms(f->name()))
             {
                 // test for fake norms of 1.0 or null depending on the flag
                 ByteArray norms = reader->norms(f->name());
                 uint8_t norm1 = DefaultSimilarity::encodeNorm(1.0);
                 BOOST_CHECK(!norms);
                 norms.resize(reader->maxDoc());
                 reader->norms(f->name(), norms, 0);
                 for (int32_t j = 0; j < reader->maxDoc(); ++j)
                     BOOST_CHECK_EQUAL(norms[j], norm1);
             }
         }
     }
 }
コード例 #2
0
 void checkNorms(IndexReaderPtr reader)
 {
     for (Collection<FieldPtr>::iterator field = DocHelper::fields.begin(); field != DocHelper::fields.end(); ++field)
     {
         if ((*field)->isIndexed())
         {
             BOOST_CHECK_EQUAL(reader->hasNorms((*field)->name()), !(*field)->getOmitNorms());
             BOOST_CHECK_EQUAL(reader->hasNorms((*field)->name()), !DocHelper::noNorms.contains((*field)->name()));
             if (!reader->hasNorms((*field)->name()))
             {
                 // test for fake norms of 1.0 or null depending on the flag
                 ByteArray norms = reader->norms((*field)->name());
                 uint8_t norm1 = DefaultSimilarity::encodeNorm(1.0);
                 BOOST_CHECK(!norms);
                 norms = ByteArray::newInstance(reader->maxDoc());
                 reader->norms((*field)->name(), norms, 0);
                 for (int32_t j = 0; j < reader->maxDoc(); ++j)
                     BOOST_CHECK_EQUAL(norms[j], norm1);
             }
         }
     }
 }