test_resize_iter.cpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:4k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: test_resize_iter.cpp,v $
  4.  * PRODUCTION Revision 1000.2  2004/06/01 19:42:55  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.6
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: test_resize_iter.cpp,v 1000.2 2004/06/01 19:42:55 gouriano Exp $
  10.  * ===========================================================================
  11.  *
  12.  *                            PUBLIC DOMAIN NOTICE
  13.  *               National Center for Biotechnology Information
  14.  *
  15.  *  This software/database is a "United States Government Work" under the
  16.  *  terms of the United States Copyright Act.  It was written as part of
  17.  *  the author's official duties as a United States Government employee and
  18.  *  thus cannot be copyrighted.  This software/database is freely available
  19.  *  to the public for use. The National Library of Medicine and the U.S.
  20.  *  Government have not placed any restriction on its use or reproduction.
  21.  *
  22.  *  Although all reasonable efforts have been taken to ensure the accuracy
  23.  *  and reliability of the software and data, the NLM and the U.S.
  24.  *  Government do not and cannot warrant the performance or results that
  25.  *  may be obtained by using this software or data. The NLM and the U.S.
  26.  *  Government disclaim all warranties, express or implied, including
  27.  *  warranties of performance, merchantability or fitness for any particular
  28.  *  purpose.
  29.  *
  30.  *  Please cite the author in any work or product based on this material.
  31.  *
  32.  * ===========================================================================
  33.  *
  34.  * Author:  Aaron Ucko
  35.  *
  36.  * File Description:
  37.  *   Test of CConstResizingIterator.
  38.  *
  39.  */
  40. #include <ncbi_pch.hpp>
  41. #include <corelib/ncbistd.hpp>
  42. #include <util/resize_iter.hpp>
  43. #include <test/test_assert.h>  /* This header must go last */
  44. USING_NCBI_SCOPE;
  45. int main(int argc, char** argv) {
  46.     if (argc != 2) {
  47.         NcbiCerr << "Usage: test_resize_iter <string>" << endl;
  48.         return 1;
  49.     }
  50.     
  51.     cout << hex;
  52.     string s(argv[1]);
  53.     for (unsigned int new_size = 1;  new_size <= 32;  new_size++) {
  54.         for (unsigned int count = 1; count <= 2; count++) {
  55.             CConstResizingIterator<string> it(s, new_size);
  56.             string s2(s.size(), '?');
  57.             CResizingIterator<string> it2(s2, new_size);
  58.             for (unsigned int n = 0;  n < s.size() * CHAR_BIT / new_size;
  59.                  n += count) {
  60.                 for (unsigned int i = 0; i < count; ++i) {
  61.                     int value = *it;
  62.                     *it2 = value; // ignore bogus WorkShop complaints here
  63.                     ++it2;
  64.                     cout << value;
  65.                     if (new_size > 4)
  66.                         cout << ' ';
  67.                 }
  68.                 for (unsigned int i = 0; i < count; ++i) {
  69.                     ++it;
  70.                 }
  71.             }
  72.             cout << ' ' << NStr::PrintableString(s2) << ' ' << it.AtEnd()
  73.                  << ' ' << it2.AtEnd() << endl;
  74.         }
  75.     }
  76.     return 0;
  77. }
  78. /*
  79.  * ===========================================================================
  80.  * $Log: test_resize_iter.cpp,v $
  81.  * Revision 1000.2  2004/06/01 19:42:55  gouriano
  82.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.6
  83.  *
  84.  * Revision 1.6  2004/05/17 21:09:26  gorelenk
  85.  * Added include of PCH ncbi_pch.hpp
  86.  *
  87.  * Revision 1.5  2004/02/12 20:11:48  ucko
  88.  * Use NStr::PrintableString, since we may get non-ASCII characters.
  89.  *
  90.  * Revision 1.4  2002/12/30 20:56:51  ucko
  91.  * Note location of bogus WorkShop warnings.
  92.  *
  93.  * Revision 1.3  2002/12/30 20:39:11  ucko
  94.  * kBitsPerByte changed to CHAR_BIT; use preincrement rather than post-.
  95.  *
  96.  * Revision 1.2  2002/04/16 18:52:16  ivanov
  97.  * Centralize threatment of assert() in tests.
  98.  * Added #include <test/test_assert.h>. CVS log moved to end of file.
  99.  *
  100.  * Revision 1.1  2001/09/04 14:06:32  ucko
  101.  * Add resizing iterators for sequences whose representation uses an
  102.  * unnatural unit size -- for instance, ASN.1 octet strings corresponding
  103.  * to sequences of 32-bit integers or of packed nucleotides.
  104.  *
  105.  * ===========================================================================
  106. */