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);
             }
         }
     }
 }